diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-15 04:15:09 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 04:15:09 +0000 |
commit | a3ba8c34c42de9040dfa8931093591e18aa422da (patch) | |
tree | befd750e9be54f5940e7f20db9edee7a8816a72d | |
parent | a8d3f738e8d5df155de81857e534178a970432a9 (diff) |
automatic import of python-pyparam
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-pyparam.spec | 495 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 497 insertions, 0 deletions
@@ -0,0 +1 @@ +/pyparam-0.5.4.tar.gz diff --git a/python-pyparam.spec b/python-pyparam.spec new file mode 100644 index 0000000..8bdb16b --- /dev/null +++ b/python-pyparam.spec @@ -0,0 +1,495 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pyparam +Version: 0.5.4 +Release: 1 +Summary: Powerful parameter processing. +License: MIT +URL: https://github.com/pwwang/pyparam +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/46/c8/4d326f8a256ac668e69f21caa53c56bb54905603f8af8f067c6237164ae2/pyparam-0.5.4.tar.gz +BuildArch: noarch + +Requires: python3-simpleconf +Requires: python3-rich +Requires: python3-diot + +%description +# pyparam + +[![pypi][1]][2] [![pypi][10]][11] [![codacy quality][4]][6] [![codacy quality][7]][6] [![docs][12]][5] ![github action][3] ![pyver][8] + +Powerful parameter processing + +## Features + +- Command line argument parser (with subcommand support) +- Rich type support, including `py`, `json`, `namespace`, etc. +- Type overwriting for parameters from command line +- Arbitrary parsing arguments from command line +- Automatic help page assembling +- Help page customization +- Callbacks for option values +- Parameter loading from configuration files + +## Installation + +```shell +pip install -U pyparam +``` + +## Documentation + +[https://pwwang.github.io/pyparam/][5] + +## Basic usage + +`example.py` + +```python +from rich import print +from pyparam import Params +# program name, otherwise sys.argv[0] +params = Params(prog='pyparam', desc="An example for %(prog)s") +# adding parameters +params.add_param('i, int', type=int, + desc="An integer argument.") +params.add_param('float', default=0.1, # type float implied + desc="A float argument.") +params.add_param('str', type=str, + desc="A str argument.") +params.add_param('flag', type=bool, + desc="A flag argument.") +params.add_param('c,count', type='count', + desc="A count argument.") +params.add_param('a', type='auto', type_frozen=False, + desc="Value will be automatically casted.") +params.add_param('py', type='py', + desc="Value will be evaluated by `ast.literal_eval`.") +params.add_param('json', type='json', + desc="Value will be converted using `json.loads`.") +params.add_param('list', type='list', + desc="Values will be accumulated.") +params.add_param('path', type='path', required=True, + desc="Value will be casted into `pathlib.Path`.", + callback=( # check if path exists + lambda path: ValueError('File does not exist.') + if not path.exists() else path + )) +params.add_param('choice', type='choice', default='medium', + choices=['small', 'medium', 'large'], + desc="One of {choices}.") +params.add_param('config.ncores', default=1, # namespace config implied + argname_shorten=False, + desc='Number of cores to use.') + +print(vars(params.parse())) +``` + +Try it out: + +```sh +python example.py +``` + + + +```sh +$ python example.py \ + -i2 \ + --float 0.5 \ + --str abc \ + -ccc \ + -a:int 1 \ + --py "{1,2,3}" \ + --json "{\"a\": 1}" \ + --list 1 2 3 \ + --choice large \ + --path . \ + --config.ncores 4 +``` + +```python +{ + 'i': 2, + 'int': 2, + 'float': 0.5, + 'str': 'abc', + 'flag': False, + 'c': 3, + 'count': 3, + 'a': 1, + 'py': {1, 2, 3}, + 'json': {'a': 1}, + 'list': [1, 2, 3], + 'path': PosixPath('.'), + 'choice': 'large', + 'config': Namespace(ncores=4) +} +``` + +Try more features with: + +```sh +python -m pyparam +``` + +## Shell completions + +Here is how the command completion in `fish` works: + + + +Check the [documentation][13], as well as the `__main__.py` to see how the completion works. + +[1]: https://img.shields.io/pypi/v/pyparam.svg?style=flat-square +[2]: https://pypi.org/project/pyparam/ +[3]: https://img.shields.io/github/actions/workflow/status/pwwang/pyparam/build.yml?style=flat-square +[4]: https://img.shields.io/codacy/grade/370aa0074595445188b01dc8dba47fe5.svg?style=flat-square +[5]: https://pwwang.github.io/pyparam/ +[6]: https://app.codacy.com/gh/pwwang/pyparam/dashboard +[7]: https://img.shields.io/codacy/coverage/370aa0074595445188b01dc8dba47fe5.svg?style=flat-square +[8]: https://img.shields.io/pypi/pyversions/pyparam.svg?style=flat-square +[9]: https://raw.githubusercontent.com/pwwang/pyparam/master/docs/static/help.png +[10]: https://img.shields.io/github/tag/pwwang/pyparam.svg?style=flat-square +[11]: https://github.com/pwwang/pyparam +[12]: https://img.shields.io/github/actions/workflow/status/pwwang/pyparam/docs.yml?label=docs&style=flat-square +[13]: https://pwwang.github.io/pyparam/shellCompletion/ + + +%package -n python3-pyparam +Summary: Powerful parameter processing. +Provides: python-pyparam +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pyparam +# pyparam + +[![pypi][1]][2] [![pypi][10]][11] [![codacy quality][4]][6] [![codacy quality][7]][6] [![docs][12]][5] ![github action][3] ![pyver][8] + +Powerful parameter processing + +## Features + +- Command line argument parser (with subcommand support) +- Rich type support, including `py`, `json`, `namespace`, etc. +- Type overwriting for parameters from command line +- Arbitrary parsing arguments from command line +- Automatic help page assembling +- Help page customization +- Callbacks for option values +- Parameter loading from configuration files + +## Installation + +```shell +pip install -U pyparam +``` + +## Documentation + +[https://pwwang.github.io/pyparam/][5] + +## Basic usage + +`example.py` + +```python +from rich import print +from pyparam import Params +# program name, otherwise sys.argv[0] +params = Params(prog='pyparam', desc="An example for %(prog)s") +# adding parameters +params.add_param('i, int', type=int, + desc="An integer argument.") +params.add_param('float', default=0.1, # type float implied + desc="A float argument.") +params.add_param('str', type=str, + desc="A str argument.") +params.add_param('flag', type=bool, + desc="A flag argument.") +params.add_param('c,count', type='count', + desc="A count argument.") +params.add_param('a', type='auto', type_frozen=False, + desc="Value will be automatically casted.") +params.add_param('py', type='py', + desc="Value will be evaluated by `ast.literal_eval`.") +params.add_param('json', type='json', + desc="Value will be converted using `json.loads`.") +params.add_param('list', type='list', + desc="Values will be accumulated.") +params.add_param('path', type='path', required=True, + desc="Value will be casted into `pathlib.Path`.", + callback=( # check if path exists + lambda path: ValueError('File does not exist.') + if not path.exists() else path + )) +params.add_param('choice', type='choice', default='medium', + choices=['small', 'medium', 'large'], + desc="One of {choices}.") +params.add_param('config.ncores', default=1, # namespace config implied + argname_shorten=False, + desc='Number of cores to use.') + +print(vars(params.parse())) +``` + +Try it out: + +```sh +python example.py +``` + + + +```sh +$ python example.py \ + -i2 \ + --float 0.5 \ + --str abc \ + -ccc \ + -a:int 1 \ + --py "{1,2,3}" \ + --json "{\"a\": 1}" \ + --list 1 2 3 \ + --choice large \ + --path . \ + --config.ncores 4 +``` + +```python +{ + 'i': 2, + 'int': 2, + 'float': 0.5, + 'str': 'abc', + 'flag': False, + 'c': 3, + 'count': 3, + 'a': 1, + 'py': {1, 2, 3}, + 'json': {'a': 1}, + 'list': [1, 2, 3], + 'path': PosixPath('.'), + 'choice': 'large', + 'config': Namespace(ncores=4) +} +``` + +Try more features with: + +```sh +python -m pyparam +``` + +## Shell completions + +Here is how the command completion in `fish` works: + + + +Check the [documentation][13], as well as the `__main__.py` to see how the completion works. + +[1]: https://img.shields.io/pypi/v/pyparam.svg?style=flat-square +[2]: https://pypi.org/project/pyparam/ +[3]: https://img.shields.io/github/actions/workflow/status/pwwang/pyparam/build.yml?style=flat-square +[4]: https://img.shields.io/codacy/grade/370aa0074595445188b01dc8dba47fe5.svg?style=flat-square +[5]: https://pwwang.github.io/pyparam/ +[6]: https://app.codacy.com/gh/pwwang/pyparam/dashboard +[7]: https://img.shields.io/codacy/coverage/370aa0074595445188b01dc8dba47fe5.svg?style=flat-square +[8]: https://img.shields.io/pypi/pyversions/pyparam.svg?style=flat-square +[9]: https://raw.githubusercontent.com/pwwang/pyparam/master/docs/static/help.png +[10]: https://img.shields.io/github/tag/pwwang/pyparam.svg?style=flat-square +[11]: https://github.com/pwwang/pyparam +[12]: https://img.shields.io/github/actions/workflow/status/pwwang/pyparam/docs.yml?label=docs&style=flat-square +[13]: https://pwwang.github.io/pyparam/shellCompletion/ + + +%package help +Summary: Development documents and examples for pyparam +Provides: python3-pyparam-doc +%description help +# pyparam + +[![pypi][1]][2] [![pypi][10]][11] [![codacy quality][4]][6] [![codacy quality][7]][6] [![docs][12]][5] ![github action][3] ![pyver][8] + +Powerful parameter processing + +## Features + +- Command line argument parser (with subcommand support) +- Rich type support, including `py`, `json`, `namespace`, etc. +- Type overwriting for parameters from command line +- Arbitrary parsing arguments from command line +- Automatic help page assembling +- Help page customization +- Callbacks for option values +- Parameter loading from configuration files + +## Installation + +```shell +pip install -U pyparam +``` + +## Documentation + +[https://pwwang.github.io/pyparam/][5] + +## Basic usage + +`example.py` + +```python +from rich import print +from pyparam import Params +# program name, otherwise sys.argv[0] +params = Params(prog='pyparam', desc="An example for %(prog)s") +# adding parameters +params.add_param('i, int', type=int, + desc="An integer argument.") +params.add_param('float', default=0.1, # type float implied + desc="A float argument.") +params.add_param('str', type=str, + desc="A str argument.") +params.add_param('flag', type=bool, + desc="A flag argument.") +params.add_param('c,count', type='count', + desc="A count argument.") +params.add_param('a', type='auto', type_frozen=False, + desc="Value will be automatically casted.") +params.add_param('py', type='py', + desc="Value will be evaluated by `ast.literal_eval`.") +params.add_param('json', type='json', + desc="Value will be converted using `json.loads`.") +params.add_param('list', type='list', + desc="Values will be accumulated.") +params.add_param('path', type='path', required=True, + desc="Value will be casted into `pathlib.Path`.", + callback=( # check if path exists + lambda path: ValueError('File does not exist.') + if not path.exists() else path + )) +params.add_param('choice', type='choice', default='medium', + choices=['small', 'medium', 'large'], + desc="One of {choices}.") +params.add_param('config.ncores', default=1, # namespace config implied + argname_shorten=False, + desc='Number of cores to use.') + +print(vars(params.parse())) +``` + +Try it out: + +```sh +python example.py +``` + + + +```sh +$ python example.py \ + -i2 \ + --float 0.5 \ + --str abc \ + -ccc \ + -a:int 1 \ + --py "{1,2,3}" \ + --json "{\"a\": 1}" \ + --list 1 2 3 \ + --choice large \ + --path . \ + --config.ncores 4 +``` + +```python +{ + 'i': 2, + 'int': 2, + 'float': 0.5, + 'str': 'abc', + 'flag': False, + 'c': 3, + 'count': 3, + 'a': 1, + 'py': {1, 2, 3}, + 'json': {'a': 1}, + 'list': [1, 2, 3], + 'path': PosixPath('.'), + 'choice': 'large', + 'config': Namespace(ncores=4) +} +``` + +Try more features with: + +```sh +python -m pyparam +``` + +## Shell completions + +Here is how the command completion in `fish` works: + + + +Check the [documentation][13], as well as the `__main__.py` to see how the completion works. + +[1]: https://img.shields.io/pypi/v/pyparam.svg?style=flat-square +[2]: https://pypi.org/project/pyparam/ +[3]: https://img.shields.io/github/actions/workflow/status/pwwang/pyparam/build.yml?style=flat-square +[4]: https://img.shields.io/codacy/grade/370aa0074595445188b01dc8dba47fe5.svg?style=flat-square +[5]: https://pwwang.github.io/pyparam/ +[6]: https://app.codacy.com/gh/pwwang/pyparam/dashboard +[7]: https://img.shields.io/codacy/coverage/370aa0074595445188b01dc8dba47fe5.svg?style=flat-square +[8]: https://img.shields.io/pypi/pyversions/pyparam.svg?style=flat-square +[9]: https://raw.githubusercontent.com/pwwang/pyparam/master/docs/static/help.png +[10]: https://img.shields.io/github/tag/pwwang/pyparam.svg?style=flat-square +[11]: https://github.com/pwwang/pyparam +[12]: https://img.shields.io/github/actions/workflow/status/pwwang/pyparam/docs.yml?label=docs&style=flat-square +[13]: https://pwwang.github.io/pyparam/shellCompletion/ + + +%prep +%autosetup -n pyparam-0.5.4 + +%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-pyparam -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.4-1 +- Package Spec generated @@ -0,0 +1 @@ +e369513bd12b3546ce5cbf60247929fb pyparam-0.5.4.tar.gz |