A lightweight, explicit argument parsing library for Python programs.
I made this for a teaching machine project I'm working on (I needed a custom argument parser for reasons), and I'm always too impatient to use argparse.
importarglitearglite.parser.require("name", type=str)
arglite.parser.optional("count", default=1, type=int)
arglite.parser.flag("verbose")
defmain():
print(arglite.parser.name)
print(arglite.parser.count)
print(arglite.parser.verbose)
if__name__=="__main__":
main()python main.py --name Yo --count 5 --verboseYou can also declare flags in a .arglite.yaml file in the working directory. arglite loads it automatically, or you can point to a different file with parser.load().
flags:
name:
help: "The user name"type: strrequired: truecount:
help: "Number of items"type: intdefault: 1verbose:
help: "Enable verbose output"action: store_trueimportargliteprint(arglite.parser.name)
print(arglite.parser.count)
print(arglite.parser.verbose)Python declarations override YAML for runtime behavior (type, required, default, action), while YAML metadata like help and choices is merged in.
Full documentation is available at arglite.readthedocs.io.
pip install arglite- Flags are case-sensitive.
- Both
-f/--flagand--flag=value/-f=valuesyntaxes are supported. - Values containing spaces work when passed via the shell's normal quoting rules.
- Empty string values (
--name "") are preserved. ast.literal_evalis used for type inference when no explicittypeis given.