A parser for arguments and config-files that also allows direct python input.
Project description
Generic Parser
A parser for arguments and config-files that also allows direct python input.
Getting Started
Installing
Installation is easily done via pip
. The package is then used as generic_parser
.
pip install generic-parser
Example Usage:
Content of myscript.py
from generic_parser import entrypoint, EntryPointParameters
def get_arguments():
args = EntryPointParameters()
args.add_parameter(name="first",
flags=["-f", "--first"],
help="First Parameter, an int",
choices=[1, 2, 3],
type=int,
required=True,
)
args.add_parameter(name="second",
flags=["-s", "--second"],
help="Second Parameter, a string",
type=str,
default="default",
required=False,
)
return args
@entrypoint(get_arguments())
def main(opt, unknown):
print(opt.first == 1)
print(opt.second == "default")
if __name__ == '__main__':
main()
Commandline
Calling that script with python myscript.py -f 1 -s "test"
will result in
True
False
It is assumed, that this is the standard mode of operation for your functions.
Config File
Further, one can also use a config file config.ini
containing:
[Section]
first = 2
second = "Hello"
and run the script with python myscript.py --entry_cfg config.ini
leading to
False
False
Config files are very useful if you want to rerun your code with the same or similar parameters.
Especially the declaration of a [DEFAULT]
section can be helpful.
For further information about config files, check the python
Config Parser.
Python
Or call the function directly from python code
if __name__ == '__main__':
main(first=1, second="World")
True
False
This is incredibly helpful if one wants to write python-wrappers around entrypoint-functions, and does not want to resort to commandline calls from python.
Note that also in this case all variables are validated, courtesy of the dict_parser
.
dict_parser
provides even multi-level dictionary checking functionality,
which is not used in the Entrypoint
, but can be handy in other use-cases.
Description
The package provides an all-around parser for arguments and config-files. The creation of the arguments is similar to the ones from argparse, but the input can then be either from command line, a config file or directly from python.
For a detailed description check the documentation.
Authors
- pyLHC/OMC-Team - Working Group - pyLHC
License
This project is licensed under the MIT License - see the LICENSE.md file for details
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 generic_parser-1.0.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b76df0a2458b2f860aab10b01b67fc2e5b1c099cb8563dccaf99acd74b03e448 |
|
MD5 | b68beef9fc9ff0327c70aa58816bdf3d |
|
BLAKE2b-256 | 887f9414963a9e536bec1cae272db0909db6b3535c6a88863c203fd63e5d3d3e |