The CLI helper you need 🥭
Project description
WIP
Currently in development.
Save time building command-line apps with LUPE
Install
$ pip install lupe
Features
- 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
Usage
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, --mangeo Include a mango
Examples
$ main.py dinner --mango --no-banana
"""
cli = lupe(help, {
'flags': {
'mango': {
'type': 'boolen',
'alias': 'm'
},
'banana': {
'type': 'boolen',
}
}
})
print(cli.flags)
# {'mango': True, 'banana': False}
print(cli.inputs)
# [dinner]
API
lupe(help_message, options?)
lupe(options)
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
help_message
Type: string
options
Type: object
Shortcut for the help option.
version
Type: string
Version of the command-line application.
flags
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,
}
}
Credit
Based on meow from @sindresorhus
License
MIT © Abraham Hernandez
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lupe-0.1.12.tar.gz.
File metadata
- Download URL: lupe-0.1.12.tar.gz
- Upload date:
- Size: 3.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
251d0db692f8a18e5b3cfe1b1f27d9e5c950ebc018c4be17ef62557125bb6a58
|
|
| MD5 |
289ae37e4c2f0adb25289431e2f5d309
|
|
| BLAKE2b-256 |
cb09b241bb5ad58094f4e2dcec9c60da4625c487334997ddad5f39fca6215657
|
File details
Details for the file lupe-0.1.12-py3-none-any.whl.
File metadata
- Download URL: lupe-0.1.12-py3-none-any.whl
- Upload date:
- Size: 3.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a6161bef11a08b9ad76c1856d717bdf46fbb9a3847853b483500f83996c4efd
|
|
| MD5 |
18b98f21b1bb1a6e78e5d545e7f22e8c
|
|
| BLAKE2b-256 |
125a47a90fa59eeefe65ff6ed1b88af0f0954041523aed470eff0863212769b6
|