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--help
show_help([exit_code=2])
(Function) - Show the help text and exit withexit_code
show_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: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,
}
}
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
File details
Details for the file lupe-0.1.3.tar.gz
.
File metadata
- Download URL: lupe-0.1.3.tar.gz
- Upload date:
- Size: 2.7 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 | e0bcf305c204a9267b50250af50b394a3d6f824c6beb322bb092550e02c273aa |
|
MD5 | 61e21488356af09864146a5f5e98a55f |
|
BLAKE2b-256 | 6f9ce3c6ec088e847b31e8c4d53f3bb80457e555ab407db81d47899e5d173a4a |
File details
Details for the file lupe-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: lupe-0.1.3-py3-none-any.whl
- Upload date:
- Size: 2.5 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 | c48af38e4deda4a896c83a63c1eb349b2368313af0b766ce09cfcd994f0b35e0 |
|
MD5 | 08484f8712e2c9280332cd23960593b4 |
|
BLAKE2b-256 | 43e6c7e5ce3801ba40017466848f899d2fd6ee5d32937d2e869c6b077bbb58e4 |