%global _empty_manifest_terminate_build 0 Name: python-generic-parser Version: 1.1.1 Release: 1 Summary: A parser for arguments and config-files that also allows direct python input. License: MIT URL: https://github.com/pylhc/generic_parser Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ba/08/56ca64678aaa2d3ece1abda3147dcbb7a685aebf57cc3f9ca08182cb88ab/generic_parser-1.1.1.tar.gz BuildArch: noarch Requires: python3-sphinx Requires: python3-travis-sphinx Requires: python3-sphinx-rtd-theme Requires: python3-pytest Requires: python3-pytest-cov Requires: python3-hypothesis Requires: python3-attrs %description # Generic Parser [![Cron Testing](https://github.com/pylhc/generic_parser/workflows/Cron%20Testing/badge.svg)](https://github.com/pylhc/generic_parser/actions?query=workflow%3A%22Cron+Testing%22) [![Code Climate coverage](https://img.shields.io/codeclimate/coverage/pylhc/generic_parser.svg?style=popout)](https://codeclimate.com/github/pylhc/generic_parser) [![Code Climate maintainability (percentage)](https://img.shields.io/codeclimate/maintainability-percentage/pylhc/generic_parser.svg?style=popout)](https://codeclimate.com/github/pylhc/generic_parser) [![PyPI Version](https://img.shields.io/pypi/v/generic_parser?label=PyPI&logo=pypi)](https://pypi.org/project/generic_parser/) [![GitHub release](https://img.shields.io/github/v/release/pylhc/generic_parser?logo=github)](https://github.com/pylhc/generic_parser/) [![Conda-forge Version](https://img.shields.io/conda/vn/conda-forge/generic_parser?color=orange&logo=anaconda)](https://anaconda.org/conda-forge/generic_parser) [![DOI](https://zenodo.org/badge/201085116.svg)](https://zenodo.org/badge/latestdoi/201085116) 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. See the [API documentation](https://pylhc.github.io/generic_parser/) for details. ## Installing Installation is easily done via `pip`. The package is then used as `generic_parser`. ```bash python -m pip install generic-parser ``` One can also install in a `conda` environment via the `conda-forge` channel with: ```bash conda install -c conda-forge generic_parser ``` ## Example Usage: Content of `myscript.py` ```python 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](https://docs.python.org/3/library/configparser.html). ### Python Or call the function directly from python code: ```python 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. ## License This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details %package -n python3-generic-parser Summary: A parser for arguments and config-files that also allows direct python input. Provides: python-generic-parser BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-generic-parser # Generic Parser [![Cron Testing](https://github.com/pylhc/generic_parser/workflows/Cron%20Testing/badge.svg)](https://github.com/pylhc/generic_parser/actions?query=workflow%3A%22Cron+Testing%22) [![Code Climate coverage](https://img.shields.io/codeclimate/coverage/pylhc/generic_parser.svg?style=popout)](https://codeclimate.com/github/pylhc/generic_parser) [![Code Climate maintainability (percentage)](https://img.shields.io/codeclimate/maintainability-percentage/pylhc/generic_parser.svg?style=popout)](https://codeclimate.com/github/pylhc/generic_parser) [![PyPI Version](https://img.shields.io/pypi/v/generic_parser?label=PyPI&logo=pypi)](https://pypi.org/project/generic_parser/) [![GitHub release](https://img.shields.io/github/v/release/pylhc/generic_parser?logo=github)](https://github.com/pylhc/generic_parser/) [![Conda-forge Version](https://img.shields.io/conda/vn/conda-forge/generic_parser?color=orange&logo=anaconda)](https://anaconda.org/conda-forge/generic_parser) [![DOI](https://zenodo.org/badge/201085116.svg)](https://zenodo.org/badge/latestdoi/201085116) 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. See the [API documentation](https://pylhc.github.io/generic_parser/) for details. ## Installing Installation is easily done via `pip`. The package is then used as `generic_parser`. ```bash python -m pip install generic-parser ``` One can also install in a `conda` environment via the `conda-forge` channel with: ```bash conda install -c conda-forge generic_parser ``` ## Example Usage: Content of `myscript.py` ```python 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](https://docs.python.org/3/library/configparser.html). ### Python Or call the function directly from python code: ```python 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. ## License This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details %package help Summary: Development documents and examples for generic-parser Provides: python3-generic-parser-doc %description help # Generic Parser [![Cron Testing](https://github.com/pylhc/generic_parser/workflows/Cron%20Testing/badge.svg)](https://github.com/pylhc/generic_parser/actions?query=workflow%3A%22Cron+Testing%22) [![Code Climate coverage](https://img.shields.io/codeclimate/coverage/pylhc/generic_parser.svg?style=popout)](https://codeclimate.com/github/pylhc/generic_parser) [![Code Climate maintainability (percentage)](https://img.shields.io/codeclimate/maintainability-percentage/pylhc/generic_parser.svg?style=popout)](https://codeclimate.com/github/pylhc/generic_parser) [![PyPI Version](https://img.shields.io/pypi/v/generic_parser?label=PyPI&logo=pypi)](https://pypi.org/project/generic_parser/) [![GitHub release](https://img.shields.io/github/v/release/pylhc/generic_parser?logo=github)](https://github.com/pylhc/generic_parser/) [![Conda-forge Version](https://img.shields.io/conda/vn/conda-forge/generic_parser?color=orange&logo=anaconda)](https://anaconda.org/conda-forge/generic_parser) [![DOI](https://zenodo.org/badge/201085116.svg)](https://zenodo.org/badge/latestdoi/201085116) 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. See the [API documentation](https://pylhc.github.io/generic_parser/) for details. ## Installing Installation is easily done via `pip`. The package is then used as `generic_parser`. ```bash python -m pip install generic-parser ``` One can also install in a `conda` environment via the `conda-forge` channel with: ```bash conda install -c conda-forge generic_parser ``` ## Example Usage: Content of `myscript.py` ```python 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](https://docs.python.org/3/library/configparser.html). ### Python Or call the function directly from python code: ```python 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. ## License This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details %prep %autosetup -n generic-parser-1.1.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-generic-parser -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed May 31 2023 Python_Bot - 1.1.1-1 - Package Spec generated