summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-31 06:25:20 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-31 06:25:20 +0000
commit3130e201b61412e03f400291fd91d247b2df3090 (patch)
treea3e0ddcbdfc37f9387eb8e0eb58174cee4a9b57e
parent540565948bf740d19af6a2af357a50422ae797e8 (diff)
automatic import of python-aparse
-rw-r--r--.gitignore1
-rw-r--r--python-aparse.spec447
-rw-r--r--sources1
3 files changed, 449 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..11b8c2e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
+[![pypi](https://img.shields.io/pypi/v/aparse.svg)](https://pypi.org/project/aparse/)
+[![tests](https://img.shields.io/github/workflow/status/jkulhanek/aparse/run-tests?label=tests)](https://github.com/jkulhanek/aparse/actions/workflows/run-tests.yml)
+[![coverage](https://img.shields.io/codecov/c/gh/jkulhanek/aparse)](https://app.codecov.io/gh/jkulhanek/aparse)
+![python](https://img.shields.io/badge/python-3.7%2C3.8%2C3.9-blue)
+
+
+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
+[![pypi](https://img.shields.io/pypi/v/aparse.svg)](https://pypi.org/project/aparse/)
+[![tests](https://img.shields.io/github/workflow/status/jkulhanek/aparse/run-tests?label=tests)](https://github.com/jkulhanek/aparse/actions/workflows/run-tests.yml)
+[![coverage](https://img.shields.io/codecov/c/gh/jkulhanek/aparse)](https://app.codecov.io/gh/jkulhanek/aparse)
+![python](https://img.shields.io/badge/python-3.7%2C3.8%2C3.9-blue)
+
+
+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
+[![pypi](https://img.shields.io/pypi/v/aparse.svg)](https://pypi.org/project/aparse/)
+[![tests](https://img.shields.io/github/workflow/status/jkulhanek/aparse/run-tests?label=tests)](https://github.com/jkulhanek/aparse/actions/workflows/run-tests.yml)
+[![coverage](https://img.shields.io/codecov/c/gh/jkulhanek/aparse)](https://app.codecov.io/gh/jkulhanek/aparse)
+![python](https://img.shields.io/badge/python-3.7%2C3.8%2C3.9-blue)
+
+
+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
diff --git a/sources b/sources
new file mode 100644
index 0000000..8f162e4
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+54f5ba3dcae64735cdf87d09a205dce3 aparse-0.0.19.tar.gz