- logger.debug(f'Starting {funct.__name__}')
- start = time.perf_counter()
- ret = funct(*args, **kwargs)
- end = time.perf_counter()
- logger.debug(f'{funct} returned {ret}.')
+
+ # Allow programs that don't bother to override the random seed
+ # to be replayed via the commandline.
+ import random
+ random_seed = config.config['set_random_seed']
+ if random_seed is not None:
+ random_seed = random_seed[0]
+ else:
+ random_seed = int.from_bytes(os.urandom(4), 'little')
+
+ if config.config['show_random_seed']:
+ msg = f'Global random seed is: {random_seed}'
+ print(msg)
+ logger.debug(msg)
+ random.seed(random_seed)
+
+ # Do it, invoke the user's code. Pay attention to how long it takes.
+ logger.debug(f'Starting {entry_point.__name__} (program entry point)')
+ ret = None
+ import stopwatch
+ with stopwatch.Timer() as t:
+ ret = entry_point(*args, **kwargs)
+ logger.debug(
+ f'{entry_point.__name__} (program entry point) returned {ret}.'
+ )
+
+ walltime = t()