Parse environment variables and CLI arguments for a given function signature.
Project description
Argmagic
Based on a idea by @lbb.
Automatically generate argparse based env-var/CLI-interface from a given function.
Example:
Given a function with a docstring and type hints.
def hello(name: str):
'''
Say hello to name.
Args:
name: Your name.
Raises:
Nothing.
Returns:
Nothing.
'''
print('Hello', name)
Create a CLI interface:
argmagic(hello)
Argmagic will call the function with all parameters filled from CLI arguments.
$ ./hello.py -h
usage: hello [-h] [--name NAME]
Say hello to name.
optional arguments:
-h, --help show this help message and exit
--name NAME Your name.
Additionally all specified parameters can also be defined via environment variables.
$ NAME=test hello.py
Hello test
These can then again be overriden by CLI arguments.
$ NAME=test hello.py --name something
Hello something
Support of composite types
Current parsing of lists, tuples and unions are supported.
For example a typehint containing List[str]
, will parse input [a, b, c]
to
a python list containing ["a", "b", "c"]
.
Also these types can be arbitrarily nested, such as Dict[str, List[int]]
will
correctly parse strings of structure {a: [1, 2, 3], b: [5, 3]}
.
Syntax overview:
Tuple syntax:
(a, b, c)
List syntax:
[a, b, c]
Dict syntax:
{a: i, b: j, k: l}
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
Hashes for argmagic-0.0.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7919e8e3f67dff8ec4a2f4c078b58b404c40db1dd9a51b8039f81d44cc28219 |
|
MD5 | 4aaacd40bc9b2918d488ad7d8d56de6a |
|
BLAKE2b-256 | 8d18cfba2769e6bd62f90af3d6007ede83c99fd00bbf65331d7d3a2eecfa7379 |