50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
# pylint: disable=C0413
|
|
# flake8: noqa: E402
|
|
|
|
from nimbus.utils.utils import init_env
|
|
|
|
init_env()
|
|
|
|
import argparse
|
|
|
|
from nimbus import run_data_engine
|
|
from nimbus.utils.config_processor import ConfigProcessor
|
|
from nimbus.utils.flags import set_debug_mode, set_random_seed
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--config", required=True, help="path to config file")
|
|
parser.add_argument("--random_seed", help="random seed")
|
|
parser.add_argument("--debug", action="store_true", help="enable debug mode: all errors raised immediately")
|
|
args, extras = parser.parse_known_args()
|
|
|
|
processor = ConfigProcessor()
|
|
|
|
try:
|
|
config = processor.process_config(args.config, cli_args=extras)
|
|
except ValueError as e:
|
|
print(f"Configuration Error: {e}")
|
|
print(f"\n Available configuration paths can be found in: {args.config}")
|
|
print(" Use dot notation to override nested values, e.g.:")
|
|
print(" --stage_pipe.worker_num='[2,4]'")
|
|
print(" --load_stage.layout_random_generator.args.random_num=500")
|
|
return 1
|
|
|
|
processor.print_final_config(config)
|
|
|
|
if args.debug:
|
|
set_debug_mode(True)
|
|
|
|
if args.random_seed is not None:
|
|
set_random_seed(int(args.random_seed))
|
|
|
|
try:
|
|
run_data_engine(config, args.random_seed)
|
|
except Exception as e:
|
|
raise e
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|