diff --git a/main.py b/main.py index a40e242..501865e 100644 --- a/main.py +++ b/main.py @@ -55,24 +55,25 @@ ) # parse and validate arguments -args = generator.parse_args() +args = vars(generator.parse_args()) -if args.command == "validate": - generator: Generator = Generator(args) + +if args["command"] == "validate": + generator: Generator = Generator(**args) generator.logger.info("Configuration is valid!") -elif args.command == "generate": - generator: Generator = Generator(args) +elif args["command"] == "generate": + generator: Generator = Generator(**args) generator.generate() -elif args.command == "update_metadata": - update_metadata(args.image_path, args.output, args.verbose) +elif args["command"] == "update_metadata": + update_metadata(args["image_path"], args["output"], args["verbose"]) -elif args.command == "build_config": - if args.output == "./output": - args.output = "generated.json" +elif args["command"] == "build_config": + if args["output"] == "./output": + args["output"] = "generated.json" - if not args.trait_dir: + if not args["trait_dir"]: raise ValueError("No trait directory was provided.") - generate_config(args.trait_dir, args.output, args.verbose) + generate_config(args["trait_dir"], args["output"], args["verbose"]) diff --git a/src/core/main.py b/src/core/main.py index 5706aae..a44568b 100644 --- a/src/core/main.py +++ b/src/core/main.py @@ -12,40 +12,40 @@ class Generator: - def __init__(self, args): + def __init__(self, **args): # set verbosity level and initialize logger - self.logger = get_logger(args.verbose) + self.logger = get_logger(args["verbose"]) - if args.command in ["generate", "validate"]: - if not args.config: + if args["command"] in ["generate", "validate"]: + if not args["config"]: raise ValueError("No configuration file was provided.") - elif not args.config.endswith(".json"): - raise ValueError("Invalid configuration file '{}'".format(args.config)) + elif not args["config"].endswith(".json"): + raise ValueError("Invalid configuration file '{}'".format(args["config"])) - if not args.amount: + if not args["amount"]: raise ValueError("No amount was provided.") - elif not args.amount.isnumeric(): - raise ValueError("Invalid amount '{}'".format(args.amount)) - self.amount = int(args.amount) - self.no_pad = args.no_pad + elif not args["amount"].isnumeric(): + raise ValueError("Invalid amount '{}'".format(args["amount"])) + self.amount = int(args["amount"]) + self.no_pad = args["no_pad"] self.pad_amount = 0 if self.no_pad else len(str(self.amount)) # read configuration and validate it - self.logger.debug("Loading configuration from '%s'", args.config) - self.config = read_json(args.config) + self.logger.debug("Loading configuration from '%s'", args["config"]) + self.config = read_json(args["config"]) self.logger.debug("Validating configuration") validate_config(self.config) # set arguments self.seed = ( - int(args.seed) - if args.seed is not None - else int.from_bytes(random.randbytes(16)) + int(args["seed"]) + if args["seed"] is not None + else int.from_bytes(random.randbytes(16), byteorder='little') ) - self.start_at = int(args.start_at) - self.output = args.output - self.allow_duplicates = args.allow_duplicates - self.image_path = args.image_path + self.start_at = int(args["start_at"]) + self.output = args["output"] + self.allow_duplicates = args["allow_duplicates"] + self.image_path = args["image_path"] # initialize state self.nonce = 0