Skip to content

Commit

Permalink
Merge pull request #54 from webcoderz/main
Browse files Browse the repository at this point in the history
make args into a dict and use as **kwargs so can be used as a library or cli.
  • Loading branch information
Jon-Becker committed Jul 1, 2023
2 parents 4d15fbb + 012832d commit 077ae13
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 32 deletions.
25 changes: 13 additions & 12 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"])
40 changes: 20 additions & 20 deletions src/core/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 077ae13

Please sign in to comment.