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-banana
On 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--help
show_help([exit_code=2])
(Function) - Show the help text and exit withexit_code
show_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:string
boolean
number
)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