summaryrefslogtreecommitdiff
path: root/python-exec-helpers.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-exec-helpers.spec')
-rw-r--r--python-exec-helpers.spec189
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