'--extra', default=[], action='append', help=argparse.SUPPRESS) args = parser.parse_args() extras = { t[0]: t[1] if len(t) > 1 else True for t in [x.split('=', 1) for x in args.extra] } # script_name = os.path.splitext(os.path.basename(__file__))[0] # log_dir = os.path.join(args.outdir if args.outdir else '.', 'logs') # os.makedirs(log_dir, exist_ok=True) # now_str = datetime_iso(date_sep='', time_sep='') amlb.logger.setup(root_level='DEBUG', console_level='INFO') root_dir = os.path.dirname(__file__) config = config_load(os.path.join(root_dir, "resources", "config.yaml")) config_args = ns.parse( root_dir=root_dir, script=os.path.basename(__file__), run_mode='script', ) + ns.parse(extras) config_args = ns({k: v for k, v in config_args if v is not None}) amlb.resources.from_configs(config, config_args) if args.reconnect: amlb.AWSBenchmark.reconnect(args.instances) else: amlb.AWSBenchmark.fetch_results(args.instances)
root_file=os.path.join(log_dir, '{script}.{now}.full.log'.format(script=script_name, now=now_str)), root_level='INFO', app_level='DEBUG', console_level='INFO', print_to_log=True) log.info("Running `%s` on `%s` benchmarks in `%s` mode.", args.framework, args.benchmark, args.mode) log.debug("Script args: %s.", args) config = config_load(os.path.join(root_dir, "resources", "config.yaml")) # allowing config override from user_dir: useful to define custom benchmarks and frameworks for example. config_user = config_load(os.path.join(args.userdir if args.userdir is not None else config.user_dir, "config.yaml")) # config listing properties set by command line config_args = ns.parse( {'results.save': args.keep_scores}, input_dir=args.indir, output_dir=args.outdir, user_dir=args.userdir, root_dir=root_dir, script=os.path.basename(__file__), run_mode=args.mode, parallel_jobs=args.parallel, sid=sid, ) + ns.parse(extras) if args.mode != 'local': config_args + ns.parse({'monitoring.frequency_seconds': 0}) config_args = ns({k: v for k, v in config_args if v is not None}) log.debug("Config args: %s.", config_args) # merging all configuration files amlb.resources.from_configs(config, config_user, config_args) try: if args.mode == 'local': bench = amlb.Benchmark(args.framework, args.benchmark, args.constraint)
import os # prevent asap other modules from defining the root logger using basicConfig import amlb.logger import amlb from amlb import log from amlb.utils import Namespace as ns, config_load parser = argparse.ArgumentParser() parser.add_argument('instances', type=str, help="The path to an instances.csv file.") parser.add_argument('-X', '--extra', default=[], action='append', help=argparse.SUPPRESS) args = parser.parse_args() extras = {t[0]: t[1] if len(t) > 1 else True for t in [x.split('=', 1) for x in args.extra]} # script_name = os.path.splitext(os.path.basename(__file__))[0] # log_dir = os.path.join(args.outdir if args.outdir else '.', 'logs') # os.makedirs(log_dir, exist_ok=True) # now_str = datetime_iso(date_sep='', time_sep='') amlb.logger.setup(root_level='DEBUG', console_level='INFO') config = config_load("resources/config.yaml") config.run_mode = 'script' config.script = os.path.basename(__file__) amlb.resources.from_configs(config, ns.parse(extras)) aws = amlb.AWSBenchmark.fetch_results(args.instances, force_update=True)