Parse environment variables and CLI arguments for a given function signature.
Project description
Argmagic
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.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9f829b4017e9bcbd5b8daaaa125e19c2bf6d328a3c6025b966d0e0ce57302b6 |
|
MD5 | 4b6bd453ef0b2987d54434a7ca3be888 |
|
BLAKE2b-256 | 08f25b1736be51a36c08902c1c2ab78e270f440c3370129616bd8f6355cdf85b |