Currently in development.
Save time building command-line apps with LUPE
$ pip install lupe- Parses arguments
- Converts flags snake_case for easier use
- Negates flags when using the
--no-prefix - Outputs version when
-v,--version - Outputs description and supplied help text when
-h,--help
On the command line:
$ python main.py dinner --mango --no-bananaOn the app:
#!/usr/bin/python
import lupe
help = """
Usage foo [input]
Options
-h, --help Show this help message and exit
-v, --version Show version and exit
-m, --mango Include a mango
Examples
$ main.py dinner --mango --no-banana
"""
cli = lupe(help, {
'flags': {
'mango': {
'type': 'boolean',
'alias': 'm'
},
'banana': {
'type': 'boolean',
}
}
})
print(cli.flags)
# {'mango': True, 'banana': False}
print(cli.inputs)
# ['dinner']Returns an object with:
inputs(Array) - Non-flag argumentsflags(Object) - Flags converted to snake_case excluding aliaseshelp(string) - The help text used with--helpshow_help([exit_code=2])(Function) - Show the help text and exit withexit_codeshow_version()(Function) - Show the version text and exit
Type: string
Type: object
Shortcut for the help option.
Type: string
Version of the command-line application.
Type: object
Define argument flags.
The key is the flag name in snake_case and the value is an object with any of:
type: Type of value. (Possible values:stringbooleannumber)alias: Usually used to define a short flag alias.default: Default value when the flag is not specified.required: Determine if the flag is required. (Default: false)
Note that flags are always defined using a snake_case key (my_key), but will match arguments in kebab-case (--my-key).
Example:
flags = {
'unicorn': {
'type': 'string',
'alias': 'u',
'default': ['rainbow', 'cat'],
'required': True,
}
}Based on meow from @sindresorhus
MIT © Abraham Hernandez