diff options
Diffstat (limited to 'python-exec-helpers.spec')
| -rw-r--r-- | python-exec-helpers.spec | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/python-exec-helpers.spec b/python-exec-helpers.spec new file mode 100644 index 0000000..86a3be3 --- /dev/null +++ b/python-exec-helpers.spec @@ -0,0 +1,189 @@ +%global _empty_manifest_terminate_build 0 +Name: python-exec-helpers +Version: 7.3.6 +Release: 1 +Summary: Execution helpers for simplified usage of subprocess and ssh. +License: Apache License, Version 2.0 +URL: https://pypi.org/project/exec-helpers/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/58/be/9837f19c87720e707fed2db3534d8a73d97ae3ffaadc7c2bf7de7c8c6dc1/exec-helpers-7.3.6.tar.gz +BuildArch: noarch + +Requires: python3-paramiko +Requires: python3-tenacity +Requires: python3-psutil +Requires: python3-defusedxml +Requires: python3-lxml +Requires: python3-PyYAML +Requires: python3-defusedxml +Requires: python3-lxml +Requires: python3-PyYAML +Requires: python3-lxml +Requires: python3-defusedxml +Requires: python3-PyYAML + +%description +Execution helpers for simplified usage of subprocess and ssh. +Why another subprocess wrapper and why no clear `paramiko`? +Historically `paramiko` offers good ssh client, but with specific limitations: +you can call command with timeout, but without receiving return code, +or call command and wait for return code, but without timeout processing. +In the most cases, we are need just simple SSH client with comfortable API for calls, calls via SSH proxy and checking return code/stderr. +This library offers this functionality with deadlock free polling and friendly result objects +(with inline decoding of XML Element tree, YAML, JSON, binary or just strings). +In addition this library offers the same API for subprocess calls, but with specific limitation: no parallel calls +(for protection from race conditions). +Pros: +* STDOUT and STDERR polling during command execution - no deadlocks. +* The same API for subprocess and ssh. +* Free software: Apache license +* Open Source: https://github.com/python-useful-helpers/exec-helpers +* PyPI packaged: https://pypi.python.org/pypi/exec-helpers +* Self-documented code: docstrings with types in comments +* Tested: see badges on top +* Support multiple Python versions: + Python 3.7 + Python 3.8 + Python 3.9 + Python 3.10 + Python 3.11 +This package includes: +* `SSHClient` - historically the first one helper, which used for SSH connections. + Several API calls for sFTP also presents. +* `SSHAuth` - class for credentials storage. `SSHClient` does not store credentials as-is, but uses `SSHAuth` for it. + Objects of this class can be copied between ssh connection objects, also it used for `execute_through_host`. +* `Subprocess` - `subprocess.Popen` wrapper with timeouts, polling and almost the same API, as `SSHClient` + (except specific flags, like `cwd` for subprocess and `get_tty` for ssh). +* `async_api.Subprocess` - the same, as `Subprocess` helper, but works with asyncio. +* `ExecResult` - class for execution results storage. + Contains exit code, stdout, stderr and getters for decoding as JSON, YAML, XML (and LXML) element tree, string, bytearray + and brief strings (up to 7 lines). +* `ExitCodes` - enumerator for standard Linux exit codes. BASH return codes (produced from signal codes) also available. + +%package -n python3-exec-helpers +Summary: Execution helpers for simplified usage of subprocess and ssh. +Provides: python-exec-helpers +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-exec-helpers +Execution helpers for simplified usage of subprocess and ssh. +Why another subprocess wrapper and why no clear `paramiko`? +Historically `paramiko` offers good ssh client, but with specific limitations: +you can call command with timeout, but without receiving return code, +or call command and wait for return code, but without timeout processing. +In the most cases, we are need just simple SSH client with comfortable API for calls, calls via SSH proxy and checking return code/stderr. +This library offers this functionality with deadlock free polling and friendly result objects +(with inline decoding of XML Element tree, YAML, JSON, binary or just strings). +In addition this library offers the same API for subprocess calls, but with specific limitation: no parallel calls +(for protection from race conditions). +Pros: +* STDOUT and STDERR polling during command execution - no deadlocks. +* The same API for subprocess and ssh. +* Free software: Apache license +* Open Source: https://github.com/python-useful-helpers/exec-helpers +* PyPI packaged: https://pypi.python.org/pypi/exec-helpers +* Self-documented code: docstrings with types in comments +* Tested: see badges on top +* Support multiple Python versions: + Python 3.7 + Python 3.8 + Python 3.9 + Python 3.10 + Python 3.11 +This package includes: +* `SSHClient` - historically the first one helper, which used for SSH connections. + Several API calls for sFTP also presents. +* `SSHAuth` - class for credentials storage. `SSHClient` does not store credentials as-is, but uses `SSHAuth` for it. + Objects of this class can be copied between ssh connection objects, also it used for `execute_through_host`. +* `Subprocess` - `subprocess.Popen` wrapper with timeouts, polling and almost the same API, as `SSHClient` + (except specific flags, like `cwd` for subprocess and `get_tty` for ssh). +* `async_api.Subprocess` - the same, as `Subprocess` helper, but works with asyncio. +* `ExecResult` - class for execution results storage. + Contains exit code, stdout, stderr and getters for decoding as JSON, YAML, XML (and LXML) element tree, string, bytearray + and brief strings (up to 7 lines). +* `ExitCodes` - enumerator for standard Linux exit codes. BASH return codes (produced from signal codes) also available. + +%package help +Summary: Development documents and examples for exec-helpers +Provides: python3-exec-helpers-doc +%description help +Execution helpers for simplified usage of subprocess and ssh. +Why another subprocess wrapper and why no clear `paramiko`? +Historically `paramiko` offers good ssh client, but with specific limitations: +you can call command with timeout, but without receiving return code, +or call command and wait for return code, but without timeout processing. +In the most cases, we are need just simple SSH client with comfortable API for calls, calls via SSH proxy and checking return code/stderr. +This library offers this functionality with deadlock free polling and friendly result objects +(with inline decoding of XML Element tree, YAML, JSON, binary or just strings). +In addition this library offers the same API for subprocess calls, but with specific limitation: no parallel calls +(for protection from race conditions). +Pros: +* STDOUT and STDERR polling during command execution - no deadlocks. +* The same API for subprocess and ssh. +* Free software: Apache license +* Open Source: https://github.com/python-useful-helpers/exec-helpers +* PyPI packaged: https://pypi.python.org/pypi/exec-helpers +* Self-documented code: docstrings with types in comments +* Tested: see badges on top +* Support multiple Python versions: + Python 3.7 + Python 3.8 + Python 3.9 + Python 3.10 + Python 3.11 +This package includes: +* `SSHClient` - historically the first one helper, which used for SSH connections. + Several API calls for sFTP also presents. +* `SSHAuth` - class for credentials storage. `SSHClient` does not store credentials as-is, but uses `SSHAuth` for it. + Objects of this class can be copied between ssh connection objects, also it used for `execute_through_host`. +* `Subprocess` - `subprocess.Popen` wrapper with timeouts, polling and almost the same API, as `SSHClient` + (except specific flags, like `cwd` for subprocess and `get_tty` for ssh). +* `async_api.Subprocess` - the same, as `Subprocess` helper, but works with asyncio. +* `ExecResult` - class for execution results storage. + Contains exit code, stdout, stderr and getters for decoding as JSON, YAML, XML (and LXML) element tree, string, bytearray + and brief strings (up to 7 lines). +* `ExitCodes` - enumerator for standard Linux exit codes. BASH return codes (produced from signal codes) also available. + +%prep +%autosetup -n exec-helpers-7.3.6 + +%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-exec-helpers -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 7.3.6-1 +- Package Spec generated |
