diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-31 06:25:20 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-31 06:25:20 +0000 |
commit | 3130e201b61412e03f400291fd91d247b2df3090 (patch) | |
tree | a3e0ddcbdfc37f9387eb8e0eb58174cee4a9b57e | |
parent | 540565948bf740d19af6a2af357a50422ae797e8 (diff) |
automatic import of python-aparse
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-aparse.spec | 447 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 449 insertions, 0 deletions
@@ -0,0 +1 @@ +/aparse-0.0.19.tar.gz diff --git a/python-aparse.spec b/python-aparse.spec new file mode 100644 index 0000000..90b4feb --- /dev/null +++ b/python-aparse.spec @@ -0,0 +1,447 @@ +%global _empty_manifest_terminate_build 0 +Name: python-aparse +Version: 0.0.19 +Release: 1 +Summary: please add a summary manually as the author left a blank one +License: MIT License +URL: https://pypi.org/project/aparse/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4d/f2/99ead635273d26cfbe341a32df847b894393ccc3d05381aaed67b68d4c1c/aparse-0.0.19.tar.gz +BuildArch: noarch + + +%description +# Aparse +[](https://pypi.org/project/aparse/) +[](https://github.com/jkulhanek/aparse/actions/workflows/run-tests.yml) +[](https://app.codecov.io/gh/jkulhanek/aparse) + + + +Aparse is a python argparse extension with support for typing. It has support for `argparse` and `click` +libraries. It uses function signatures to automatically register arguments to parsers. +Please refer to the [documentation](https://jkulhanek.github.io/aparse). + +The following features are currently supported: +- Arguments with `int`, `float`, `str`, `bool` values both with and without default value. +- List of `int`, `float`, `str`, `bool` types. +- Types with `from_str` method. +- `dataclass` arguments, where the dataclass is expanded into individual parameters +- Multi-level `dataclass` arguments. +- `argparse` and `click` libraries are fully supported. +- For `argparse`, when classes are used, it supports traversing inheritance chain. +- For `argparse`, custom prefixes can be used for groups of parameters. +- Callbacks before and after arguments are parsed. +- Conditional arguments, where the type of arguments depends on the value of another argument. + +## Why aparse +**Why not argparse?** +Aparse does not force you to replace your argparse code. In fact, it was +designed to extend argparse. You can combine the original argparse code +and in some parts of the code, you can let aparse generate the arguments +automatically. + +Furthermore, aparse allows you to use conditional parameter parsing, which +cannot be achieved with pure argparse. + +**Why not click?** +Same as with argparse, aparse extends click in such a way, that you can +combine the original code with aparse. With aparse, you don't have to +decorate your commands with all options, but you can let aparse manage +them for you. + +**Why not docopt?** +With docopt you have to keep documentation in sync with your code. +Aparse uses the signatures instead, which allows you to validate +your code with a typechecker. + + +## Installation +Install the library from pip: +``` +$ pip install aparse +``` + +## Getting started +### Using argparse library +Extend a function with `@add_argparse_arguments` decorator to add arguments automatically: +```python +import argparse +from aparse import add_argparse_arguments + +@add_argparse_arguments() +def example(arg1: str, arg2: int = 5): + pass + +parser = argparse.ArgumentParser() +parser = example.add_argparse_arguments(parser) +args = parser.parse_args() + +# Call example with args +example.from_argparse_arguments(args) +``` + +Extend a class with `@add_argparse_arguments` decorator to construct it automatically: +```python +import argparse +from aparse import add_argparse_arguments + +@add_argparse_arguments() +class Example: + def __init__(self, arg1: str, arg2: int = 5): + pass + +parser = argparse.ArgumentParser() +parser = Example.add_argparse_arguments(parser) +args = parser.parse_args() + +# Construct Example with args +instance = Example.from_argparse_arguments(args) +``` + +### Using click library +Import `aparse.click` instead of `click` and let `aparse` register all +the arguments and options: +```python +# python main.py --arg1 test --arg2 4 + +from aparse import click + +@click.command() +def example(arg1: str, arg2: int = 5): + pass + +example() +``` + +When using `click.groups`: +```python +# python main.py example --arg1 test --arg2 4 + +from aparse import click + +@click.group() +def main(): + pass + +@main.command('example') +def example(arg1: str, arg2: int = 5): + pass + +main() +``` + +For further details please look at the [documentation](https://jkulhanek.github.io/aparse). + + +## License +[MIT](/LICENSE) + + +%package -n python3-aparse +Summary: please add a summary manually as the author left a blank one +Provides: python-aparse +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-aparse +# Aparse +[](https://pypi.org/project/aparse/) +[](https://github.com/jkulhanek/aparse/actions/workflows/run-tests.yml) +[](https://app.codecov.io/gh/jkulhanek/aparse) + + + +Aparse is a python argparse extension with support for typing. It has support for `argparse` and `click` +libraries. It uses function signatures to automatically register arguments to parsers. +Please refer to the [documentation](https://jkulhanek.github.io/aparse). + +The following features are currently supported: +- Arguments with `int`, `float`, `str`, `bool` values both with and without default value. +- List of `int`, `float`, `str`, `bool` types. +- Types with `from_str` method. +- `dataclass` arguments, where the dataclass is expanded into individual parameters +- Multi-level `dataclass` arguments. +- `argparse` and `click` libraries are fully supported. +- For `argparse`, when classes are used, it supports traversing inheritance chain. +- For `argparse`, custom prefixes can be used for groups of parameters. +- Callbacks before and after arguments are parsed. +- Conditional arguments, where the type of arguments depends on the value of another argument. + +## Why aparse +**Why not argparse?** +Aparse does not force you to replace your argparse code. In fact, it was +designed to extend argparse. You can combine the original argparse code +and in some parts of the code, you can let aparse generate the arguments +automatically. + +Furthermore, aparse allows you to use conditional parameter parsing, which +cannot be achieved with pure argparse. + +**Why not click?** +Same as with argparse, aparse extends click in such a way, that you can +combine the original code with aparse. With aparse, you don't have to +decorate your commands with all options, but you can let aparse manage +them for you. + +**Why not docopt?** +With docopt you have to keep documentation in sync with your code. +Aparse uses the signatures instead, which allows you to validate +your code with a typechecker. + + +## Installation +Install the library from pip: +``` +$ pip install aparse +``` + +## Getting started +### Using argparse library +Extend a function with `@add_argparse_arguments` decorator to add arguments automatically: +```python +import argparse +from aparse import add_argparse_arguments + +@add_argparse_arguments() +def example(arg1: str, arg2: int = 5): + pass + +parser = argparse.ArgumentParser() +parser = example.add_argparse_arguments(parser) +args = parser.parse_args() + +# Call example with args +example.from_argparse_arguments(args) +``` + +Extend a class with `@add_argparse_arguments` decorator to construct it automatically: +```python +import argparse +from aparse import add_argparse_arguments + +@add_argparse_arguments() +class Example: + def __init__(self, arg1: str, arg2: int = 5): + pass + +parser = argparse.ArgumentParser() +parser = Example.add_argparse_arguments(parser) +args = parser.parse_args() + +# Construct Example with args +instance = Example.from_argparse_arguments(args) +``` + +### Using click library +Import `aparse.click` instead of `click` and let `aparse` register all +the arguments and options: +```python +# python main.py --arg1 test --arg2 4 + +from aparse import click + +@click.command() +def example(arg1: str, arg2: int = 5): + pass + +example() +``` + +When using `click.groups`: +```python +# python main.py example --arg1 test --arg2 4 + +from aparse import click + +@click.group() +def main(): + pass + +@main.command('example') +def example(arg1: str, arg2: int = 5): + pass + +main() +``` + +For further details please look at the [documentation](https://jkulhanek.github.io/aparse). + + +## License +[MIT](/LICENSE) + + +%package help +Summary: Development documents and examples for aparse +Provides: python3-aparse-doc +%description help +# Aparse +[](https://pypi.org/project/aparse/) +[](https://github.com/jkulhanek/aparse/actions/workflows/run-tests.yml) +[](https://app.codecov.io/gh/jkulhanek/aparse) + + + +Aparse is a python argparse extension with support for typing. It has support for `argparse` and `click` +libraries. It uses function signatures to automatically register arguments to parsers. +Please refer to the [documentation](https://jkulhanek.github.io/aparse). + +The following features are currently supported: +- Arguments with `int`, `float`, `str`, `bool` values both with and without default value. +- List of `int`, `float`, `str`, `bool` types. +- Types with `from_str` method. +- `dataclass` arguments, where the dataclass is expanded into individual parameters +- Multi-level `dataclass` arguments. +- `argparse` and `click` libraries are fully supported. +- For `argparse`, when classes are used, it supports traversing inheritance chain. +- For `argparse`, custom prefixes can be used for groups of parameters. +- Callbacks before and after arguments are parsed. +- Conditional arguments, where the type of arguments depends on the value of another argument. + +## Why aparse +**Why not argparse?** +Aparse does not force you to replace your argparse code. In fact, it was +designed to extend argparse. You can combine the original argparse code +and in some parts of the code, you can let aparse generate the arguments +automatically. + +Furthermore, aparse allows you to use conditional parameter parsing, which +cannot be achieved with pure argparse. + +**Why not click?** +Same as with argparse, aparse extends click in such a way, that you can +combine the original code with aparse. With aparse, you don't have to +decorate your commands with all options, but you can let aparse manage +them for you. + +**Why not docopt?** +With docopt you have to keep documentation in sync with your code. +Aparse uses the signatures instead, which allows you to validate +your code with a typechecker. + + +## Installation +Install the library from pip: +``` +$ pip install aparse +``` + +## Getting started +### Using argparse library +Extend a function with `@add_argparse_arguments` decorator to add arguments automatically: +```python +import argparse +from aparse import add_argparse_arguments + +@add_argparse_arguments() +def example(arg1: str, arg2: int = 5): + pass + +parser = argparse.ArgumentParser() +parser = example.add_argparse_arguments(parser) +args = parser.parse_args() + +# Call example with args +example.from_argparse_arguments(args) +``` + +Extend a class with `@add_argparse_arguments` decorator to construct it automatically: +```python +import argparse +from aparse import add_argparse_arguments + +@add_argparse_arguments() +class Example: + def __init__(self, arg1: str, arg2: int = 5): + pass + +parser = argparse.ArgumentParser() +parser = Example.add_argparse_arguments(parser) +args = parser.parse_args() + +# Construct Example with args +instance = Example.from_argparse_arguments(args) +``` + +### Using click library +Import `aparse.click` instead of `click` and let `aparse` register all +the arguments and options: +```python +# python main.py --arg1 test --arg2 4 + +from aparse import click + +@click.command() +def example(arg1: str, arg2: int = 5): + pass + +example() +``` + +When using `click.groups`: +```python +# python main.py example --arg1 test --arg2 4 + +from aparse import click + +@click.group() +def main(): + pass + +@main.command('example') +def example(arg1: str, arg2: int = 5): + pass + +main() +``` + +For further details please look at the [documentation](https://jkulhanek.github.io/aparse). + + +## License +[MIT](/LICENSE) + + +%prep +%autosetup -n aparse-0.0.19 + +%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-aparse -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.19-1 +- Package Spec generated @@ -0,0 +1 @@ +54f5ba3dcae64735cdf87d09a205dce3 aparse-0.0.19.tar.gz |