Sync from SUSE:SLFO:Main python-sh revision 4d87f3e2dda907960b3be3812f5cdc52

This commit is contained in:
Adrian Schröter 2024-05-03 22:59:49 +02:00
commit 7539025be0
4 changed files with 414 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

321
python-sh.changes Normal file
View File

@ -0,0 +1,321 @@
-------------------------------------------------------------------
Sat May 6 20:58:14 UTC 2023 - Matej Cepl <mcepl@suse.com>
- Upgrade to 2.0.3:
List of changes is too long to enlist here, CHANGELOG.md is
packaged.
-------------------------------------------------------------------
Fri Apr 21 12:34:00 UTC 2023 - Dirk Müller <dmueller@suse.com>
- add sle15_python_module_pythons (jsc#PED-68)
-------------------------------------------------------------------
Wed Apr 19 01:02:26 UTC 2023 - Matej Cepl <mcepl@suse.com>
- Switch to single spec version build for PSP
-------------------------------------------------------------------
Thu Apr 13 22:44:49 UTC 2023 - Matej Cepl <mcepl@suse.com>
- Make calling of %{sle15modernpython} optional.
-------------------------------------------------------------------
Sun Jul 24 07:52:44 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 1.14.3:
* bugfix where `Command` was not aware of default call args when wrapping the
module
-------------------------------------------------------------------
Sun Jun 6 11:40:10 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 1.14.2:
* fix documentation link
-------------------------------------------------------------------
Tue Dec 8 21:25:24 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Update to 1.14.1:
* bugfix where setting _ok_code to not include 0, but 0 was the
exit code #545
- Changes for 1.14.0
* _env now more lenient in accepting dictionary-like objects #527
* None and False arguments now do not pass through to underlying
command #525
* Implemented find_spec on the fancy importer, which fixes some
Python3.4+ issues #536
- Drop all patches: they are no longer applicable
* fix-sleep-path-in-test.patch
* fix-test_general_signal.diff
* fix-test_signal_group.diff
* no-coverage.patch
-------------------------------------------------------------------
Wed Jun 17 08:14:24 UTC 2020 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 1.13.1:
* regression fix if `_fg=False` [#520](https://github.com/amoffat/sh/issues/520)
* minor Travis CI fixes [#492](https://github.com/amoffat/sh/pull/492)
* bugfix for boolean long options not respecting `_long_prefix` [#488](https://github.com/amoffat/sh/pull/488)
* fix deprecation warning on Python 3.6 regexes [#482](https://github.com/amoffat/sh/pull/482)
* `_pass_fds` and `_close_fds` special kwargs for controlling file descriptor inheritance in child.
* more efficiently closing inherited fds [#406](https://github.com/amoffat/sh/issues/406)
* bugfix where passing invalid dictionary to `_env` will cause a mysterious child 255 exit code. [#497](https://github.com/amoffat/sh/pull/497)
* bugfix where `_in` using 0 or `sys.stdin` wasn't behaving like a TTY, if it was in fact a TTY. [#514](https://github.com/amoffat/sh/issues/514)
* bugfix where `help(sh)` raised an exception [#455](https://github.com/amoffat/sh/issues/455)
* bugfix fixing broken interactive ssh tutorial from docs
* change to automatic tty merging into a single pty if `_tty_in=True` and `_tty_out=True`
* introducing `_unify_ttys`, default False, which allows explicit tty merging into single pty
* contrib command for `ssh` connections requiring passwords
* performance fix for polling output too fast when using `_iter` [#462](https://github.com/amoffat/sh/issues/462)
* execution contexts can now be used in python shell [#466](https://github.com/amoffat/sh/pull/466)
* bugfix `ErrorReturnCode` instances can now be pickled
* bugfix passing empty string or `None` for `_in` hanged [#427](https://github.com/amoffat/sh/pull/427)
* bugfix where passing a filename or file-like object to `_out` wasn't using os.dup2 [#449](https://github.com/amoffat/sh/issues/449)
* regression make `_fg` work with `_cwd` again [#330](https://github.com/amoffat/sh/issues/330)
* an invalid `_cwd` now raises a `ForkException` not an `OSError`.
* AIX support [#477](https://github.com/amoffat/sh/issues/477)
* added a `timeout=None` param to `RunningCommand.wait()` [#515](https://github.com/amoffat/sh/issues/515)
- Re-enable tests.
- Refresh no-coverage.patch, fix-test_general_signal.diff and
fix-test_signal_group.diff
- Add fix-sleep-path-in-test.patch to fix a test failure.
- Drop no longer required patches,
0001-Fix-tests-for-the-drop-the-unversion-python.patch,
always-use-fully-versioned-python-command-in-tests.patch and
pep-0538-test-fix.patch
-------------------------------------------------------------------
Mon Apr 20 17:27:27 UTC 2020 - Matej Cepl <mcepl@suse.com>
- Switch off tests, upstream is dead
-------------------------------------------------------------------
Mon May 27 11:59:53 UTC 2019 - Alberto Planas Dominguez <aplanas@suse.com>
- Add patches to fix some tests:
* fix-test_signal_group.diff
* fix-test_general_signal.diff (bsc#1120329)
-------------------------------------------------------------------
Fri Feb 1 13:16:33 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
- Add patches from Fedora:
* always-use-fully-versioned-python-command-in-tests.patch
* no-coverage.patch
* 0001-Fix-tests-for-the-drop-the-unversion-python.patch
* pep-0538-test-fix.patch
-------------------------------------------------------------------
Tue Dec 4 12:54:15 UTC 2018 - Matej Cepl <mcepl@suse.com>
- Remove superfluous devel dependency for noarch package
-------------------------------------------------------------------
Thu Jul 13 15:29:32 UTC 2017 - toddrme2178@gmail.com
- Implement single-spec version.
-------------------------------------------------------------------
Mon Jun 12 15:34:12 UTC 2017 - aplanas@suse.com
- Remove test-huge-piped-data-fix.patch
- Remove test-coding-fix.patch
- Remove test-multiple-pipes-fix.patch
- Update 1.12.14
* bugfix for poor sleep performance
[#378](https://github.com/amoffat/sh/issues/378)
* allow passing raw integer file descriptors for `_out` and `_err`
handlers
* bugfix for when `_tee` and `_out` are used, and the `_out` is a
tty or pipe [#384](https://github.com/amoffat/sh/issues/384)
* bugfix where python 3.3+ detected different arg counts for bound
method output callbacks
[#380](https://github.com/amoffat/sh/issues/380)
- Update 1.12.12, 1.12.13
* pypi readme doc bugfix
[PR#377](https://github.com/amoffat/sh/pull/377)
- Update 1.12.11
* bugfix for relative paths to `sh.Command` not expanding to
absolute paths [#372](https://github.com/amoffat/sh/issues/372)
* updated for python 3.6
* bugfix for SIGPIPE not being handled correctly on pipelined
processes [#373](https://github.com/amoffat/sh/issues/373)
- Update 1.12.10
* bugfix for file descriptors over 1024
[#356](https://github.com/amoffat/sh/issues/356)
* bugfix when `_err_to_out` is True and `_out` is pipe or tty
[#365](https://github.com/amoffat/sh/issues/365)
- Update 1.12.9
* added `_bg_exc` for silencing exceptions in background threads
[#350](https://github.com/amoffat/sh/pull/350)
- Update 1.12.8
* bugfix for patched glob.glob on python3.5
[#341](https://github.com/amoffat/sh/issues/341)
- Update 1.12.7
* added `_out` and `_out_bufsize` validator
[#346](https://github.com/amoffat/sh/issues/346)
* bugfix for internal stdout thread running when it shouldn't
[#346](https://github.com/amoffat/sh/issues/346)
- Update 1.12.6
* regression bugfix on timeout
[#344](https://github.com/amoffat/sh/issues/344)
* regression bugfix on `_ok_code=None`
- Update 1.12.5
* further improvements on cpu usage
- Update 1.12.4
* regression in cpu usage
[#339](https://github.com/amoffat/sh/issues/339)
- Update 1.12.3
* fd leak regression and fix for flawed fd leak detection test
[#337](https://github.com/amoffat/sh/pull/337)
- Update 1.12.2
* support for `io.StringIO` in python2
- Update 1.12.1
* added support for using raw file descriptors for `_in`, `_out`,
and `_err`
* removed `.close()`ing `_out` handler if FIFO detected
- Update 1.12.0
* composed commands no longer propagate `_bg`
* better support for using `sys.stdin` and `sys.stdout` for `_in`
and `_out`
* bugfix where `which()` would not stop searching at the first valid
executable found in PATH
* added `_long_prefix` for programs whose long arguments start with
something other than `--`
[#278](https://github.com/amoffat/sh/pull/278)
* added `_log_msg` for advanced configuration of log message
[#311](https://github.com/amoffat/sh/pull/311)
* added `sh.contrib.sudo`
* added `_arg_preprocess` for advanced command wrapping
* alter callable `_in` arguments to signify completion with falsy
chunk
* bugfix where pipes passed into `_out` or `_err` were not flushed
on process end [#252](https://github.com/amoffat/sh/pull/252)
* deprecated `with sh.args(**kwargs)` in favor of `sh2 =
sh(**kwargs)`
* made `sh.pushd` thread safe
* added `.kill_group()` and `.signal_group()` methods for better
process control [#237](https://github.com/amoffat/sh/pull/237)
* added `new_session` special keyword argument for controlling
spawned process session
[#266](https://github.com/amoffat/sh/issues/266)
* bugfix better handling for EINTR on system calls
[#292](https://github.com/amoffat/sh/pull/292)
* bugfix where with-contexts were not threadsafe
[#247](https://github.com/amoffat/sh/issues/195)
* `_uid` new special keyword param for specifying the user id of the
process [#133](https://github.com/amoffat/sh/issues/133)
* bugfix where exceptions were swallowed by processes that weren't
waited on [#309](https://github.com/amoffat/sh/issues/309)
* bugfix where processes that dupd their stdout/stderr to a long
running child process would cause sh to hang
[#310](https://github.com/amoffat/sh/issues/310)
* improved logging output
[#323](https://github.com/amoffat/sh/issues/323)
* bugfix for python3+ where binary data was passed into a process's
stdin [#325](https://github.com/amoffat/sh/issues/325)
* Introduced execution contexts which allow baking of common special
keyword arguments into all commands
[#269](https://github.com/amoffat/sh/issues/269)
* `Command` and `which` now can take an optional `paths` parameter
which specifies the search paths
[#226](https://github.com/amoffat/sh/issues/226)
* `_preexec_fn` option for executing a function after the child
process forks but before it execs
[#260](https://github.com/amoffat/sh/issues/260)
* `_fg` reintroduced, with limited functionality. hurrah!
[#92](https://github.com/amoffat/sh/issues/92)
* bugfix where a command would block if passed a fd for stdin that
wasn't yet ready to read
[#253](https://github.com/amoffat/sh/issues/253)
* `_long_sep` can now take `None` which splits the long form
arguments into individual arguments
[#258](https://github.com/amoffat/sh/issues/258)
* making `_piped` perform "direct" piping by default (linking fds
together). this fixes memory problems
[#270](https://github.com/amoffat/sh/issues/270)
* bugfix where calling `next()` on an iterable process that has
raised `StopIteration`, hangs
[#273](https://github.com/amoffat/sh/issues/273)
* `sh.cd` called with no arguments no changes into the user's home
directory, like native `cd`
[#275](https://github.com/amoffat/sh/issues/275)
* `sh.glob` removed entirely. the rationale is correctness over
hand-holding. [#279](https://github.com/amoffat/sh/issues/279)
* added `_truncate_exc`, defaulting to `True`, which tells our
exceptions to truncate output.
* bugfix for exceptions whose messages contained unicode
* `_done` callback no longer assumes you want your command put in
the background.
* `_done` callback is now called asynchronously in a separate
thread.
* `_done` callback is called regardless of exception, which is
necessary in order to release held resources, for example a
process pool
-------------------------------------------------------------------
Fri Apr 10 10:05:57 UTC 2015 - aplanas@suse.com
- PATCH test-huge-piped-data-fix.patch
Partially disable test case
-------------------------------------------------------------------
Wed Jan 28 08:57:03 UTC 2015 - aplanas@suse.com
- Fix %defattr, fixing SLE11SP3 building
-------------------------------------------------------------------
Fri Jan 2 10:58:53 UTC 2015 - aplanas@suse.com
- Fix source URL
- Fix setup directory name
- PATCH test-coding-fix.patch
Use utf-8 enconding in the header
- PATCH test-multiple-pipes-fix.patch
Partially disable test case
- Remove BuildRequires python-devel
- Update to 1.11
* partially applied functions with functools.partial have been fixed for _out and _err callbacks #160
* _out or _err being callables no longer puts the running command in the background. to achieve the previous behavior, pass _bg=True to your command.
* deprecated _with contexts #195
* _timeout_signal allows you to specify your own signal to kill a timed-out process with. use a constant from the signal stdlib module. #171
* signal exceptions can now be caught by number or name. SignalException_9 == SignalException_SIGKILL
* child processes that timeout via _timeout raise sh.TimeoutException instead of sh.SignalExeception_9 #172
* fixed help(sh) from the python shell and pydoc sh from the command line. #173
* program names can no longer be shadowed by names that sh.py defines internally. removed the requirement of trailing underscores for programs that could have their names shadowed, like id.
* memory optimization when a child process's stdin is a newline-delimted string and our bufsize is newlines
* feature, _done special keyword argument that accepts a callback to be called when the command completes successfully #185
* bugfix for being unable to print a baked command in python3+ #176
* bugfix for cwd not existing and causing the child process to continue running parent process code #202
* child process is now guaranteed to exit on exception between fork and exec.
* fix python2 deprecation warning when running with -3 PR #165
* bugfix where sh.py was attempting to execute directories #196, PR #189
* only backgrounded processes will ignore SIGHUP
* allowed ok_code to take a range object. #PR 210
* added sh.args with context which allows overriding of all command defaults for the duration of that context.
* added sh.pushd with context which takes a directory name and changes to that directory for the duration of that with context. PR #206
* tests now include python 3.4 if available. tests also stop on the first python that suite that fails.
* SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGPIPE, SIGSYS have been added to the list of signals that throw an exception PR #201
* "callable" builtin has been faked for python3.1, which lacks it.
* "direct" option added to _piped special keyword argument, which allows sh to hand off a process's stdout fd directly to another process, instead of buffering its stdout internally, then handing it off. #119
-------------------------------------------------------------------
Fri May 2 12:37:53 UTC 2014 - multyrealm@gmail.com
- update to 1.09
* Fixed encoding errors related to a system encoding "ascii". GH #123.
* Added exit_code attribute to SignalException and ErrorReturnCode exception
classes. GH #127.
* Making the default behavior of spawned processes to not be explicitly
killed when the parent python process ends. Also making the spawned process
ignore SIGHUP. GH #139.
* Made OSX sleep hack to apply to PY2 as well as PY3.
-------------------------------------------------------------------
Mon Jan 20 08:51:22 UTC 2014 - mvyskocil@opensuse.org
- package python-sh 1.08 for openSUSE

67
python-sh.spec Normal file
View File

@ -0,0 +1,67 @@
#
# spec file for package python-sh
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?sle15_python_module_pythons}
Name: python-sh
Version: 2.0.3
Release: 0
Summary: Python subprocess interface
License: MIT
URL: https://github.com/amoffat/sh
Source: https://files.pythonhosted.org/packages/source/s/sh/sh-%{version}.tar.gz
BuildRequires: %{python_module pip}
BuildRequires: %{python_module poetry-core}
BuildRequires: %{python_module testsuite}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildArch: noarch
%{?sle15_python_module_pythons}
%python_subpackages
%description
sh is a full-fledged subprocess replacement for Python 2.6 - 3.6, PyPy
and PyPy3 that allows you to call any program as if it were a
function:
from sh import ifconfig
print ifconfig("eth0")
sh is not a collection of system commands implemented in Python.
%prep
%autosetup -p1 -n sh-%{version}
%build
%pyproject_wheel
%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
%pyunittest -v test
%files %{python_files}
%license LICENSE.txt
%doc CHANGELOG.md README.rst
%{python_sitelib}/sh.py
%pycache_only %{python_sitelib}/__pycache__/sh.*pyc
%{python_sitelib}/sh-%{version}*-info
%changelog

BIN
sh-2.0.3.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.