summaryrefslogtreecommitdiff
path: root/python-exec-helpers.spec
blob: 86a3be320747576ac0b18ba9d3f28e4d2c53ce79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
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