2019-05-14 22:35:45 +02:00
|
|
|
#
|
2024-03-22 11:52:06 +01:00
|
|
|
# spec file for package python-trio
|
2019-05-14 22:35:45 +02:00
|
|
|
#
|
2024-01-03 11:36:30 +01:00
|
|
|
# Copyright (c) 2024 SUSE LLC
|
2019-05-14 22:35:45 +02:00
|
|
|
#
|
|
|
|
# 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.
|
|
|
|
|
2019-05-14 23:28:18 +02:00
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
|
|
#
|
2019-05-14 22:35:45 +02:00
|
|
|
|
|
|
|
|
2023-10-31 17:23:38 +01:00
|
|
|
%global flavor @BUILD_FLAVOR@%{nil}
|
|
|
|
%if "%{flavor}" == "test"
|
|
|
|
%define psuffix -test
|
|
|
|
%bcond_without test
|
|
|
|
%else
|
|
|
|
%define psuffix %{nil}
|
|
|
|
%bcond_with test
|
|
|
|
%endif
|
- update to 0.23.1:
* Don't crash on import in Anaconda interpreters.
* Add type hints.
* When exiting a nursery block, the parent task always waits
for child tasks to exit. This wait cannot be cancelled. However,
previously, if you tried to cancel it, it *would* inject a
`Cancelled` exception, even though it wasn't cancelled.
Most users probably never noticed either way, but injecting a
`Cancelled` here is not really useful, and in some rare cases
caused confusion or problems, so Trio no longer does that.
* If called from a thread spawned by `trio.to_thread.run_sync`,
`trio.from_thread.run` and `trio.from_thread.run_sync` now
reuse the task and cancellation status of the host task;
* this means that context variables and cancel scopes naturally
propagate 'through' threads spawned by Trio. You can also use
`trio.from_thread.check_cancelled`
to efficiently check for cancellation without reentering the
Trio thread.
* :func:`trio.lowlevel.start_guest_run` now does a bit more
setup of the guest run before it returns to its caller,
so that the caller can immediately make calls to
:func:`trio.current_time`,
:func:`trio.lowlevel.spawn_system_task`,
:func:`trio.lowlevel.current_trio_token`, etc.
* When a starting function raises before calling
:func:`trio.TaskStatus.started`,
:func:`trio.Nursery.start` will no longer wrap the exception
in an undocumented :exc:`ExceptionGroup`.
* To better reflect the underlying thread handling semantics,
the keyword argument for `trio.to_thread.run_sync` that was
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-trio?expand=0&rev=39
2023-11-07 16:09:46 +01:00
|
|
|
%{?sle15_python_module_pythons}
|
2023-10-31 17:23:38 +01:00
|
|
|
Name: python-trio%{psuffix}
|
2024-03-22 11:52:06 +01:00
|
|
|
Version: 0.25.0
|
2019-05-14 22:35:45 +02:00
|
|
|
Release: 0
|
2020-10-12 08:49:07 +02:00
|
|
|
Summary: Python async/await-native I/O library
|
2021-12-14 19:13:45 +01:00
|
|
|
License: Apache-2.0 OR MIT
|
2019-05-14 23:28:18 +02:00
|
|
|
URL: https://github.com/python-trio/trio
|
2022-12-19 22:02:27 +01:00
|
|
|
Source: https://files.pythonhosted.org/packages/source/t/trio/trio-%{version}.tar.gz
|
2024-01-12 07:04:25 +01:00
|
|
|
BuildRequires: %{python_module base >= 3.8}
|
2023-10-31 17:23:38 +01:00
|
|
|
BuildRequires: %{python_module pip}
|
2024-01-03 11:36:30 +01:00
|
|
|
BuildRequires: %{python_module setuptools}
|
2023-10-31 17:23:38 +01:00
|
|
|
BuildRequires: %{python_module wheel}
|
- update to 0.23.1:
* Don't crash on import in Anaconda interpreters.
* Add type hints.
* When exiting a nursery block, the parent task always waits
for child tasks to exit. This wait cannot be cancelled. However,
previously, if you tried to cancel it, it *would* inject a
`Cancelled` exception, even though it wasn't cancelled.
Most users probably never noticed either way, but injecting a
`Cancelled` here is not really useful, and in some rare cases
caused confusion or problems, so Trio no longer does that.
* If called from a thread spawned by `trio.to_thread.run_sync`,
`trio.from_thread.run` and `trio.from_thread.run_sync` now
reuse the task and cancellation status of the host task;
* this means that context variables and cancel scopes naturally
propagate 'through' threads spawned by Trio. You can also use
`trio.from_thread.check_cancelled`
to efficiently check for cancellation without reentering the
Trio thread.
* :func:`trio.lowlevel.start_guest_run` now does a bit more
setup of the guest run before it returns to its caller,
so that the caller can immediately make calls to
:func:`trio.current_time`,
:func:`trio.lowlevel.spawn_system_task`,
:func:`trio.lowlevel.current_trio_token`, etc.
* When a starting function raises before calling
:func:`trio.TaskStatus.started`,
:func:`trio.Nursery.start` will no longer wrap the exception
in an undocumented :exc:`ExceptionGroup`.
* To better reflect the underlying thread handling semantics,
the keyword argument for `trio.to_thread.run_sync` that was
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-trio?expand=0&rev=39
2023-11-07 16:09:46 +01:00
|
|
|
BuildRequires: fdupes
|
|
|
|
BuildRequires: netcfg
|
|
|
|
BuildRequires: python-rpm-macros
|
2024-01-12 07:04:25 +01:00
|
|
|
Requires: python-attrs >= 20.1.0
|
- update to 0.23.1:
* Don't crash on import in Anaconda interpreters.
* Add type hints.
* When exiting a nursery block, the parent task always waits
for child tasks to exit. This wait cannot be cancelled. However,
previously, if you tried to cancel it, it *would* inject a
`Cancelled` exception, even though it wasn't cancelled.
Most users probably never noticed either way, but injecting a
`Cancelled` here is not really useful, and in some rare cases
caused confusion or problems, so Trio no longer does that.
* If called from a thread spawned by `trio.to_thread.run_sync`,
`trio.from_thread.run` and `trio.from_thread.run_sync` now
reuse the task and cancellation status of the host task;
* this means that context variables and cancel scopes naturally
propagate 'through' threads spawned by Trio. You can also use
`trio.from_thread.check_cancelled`
to efficiently check for cancellation without reentering the
Trio thread.
* :func:`trio.lowlevel.start_guest_run` now does a bit more
setup of the guest run before it returns to its caller,
so that the caller can immediately make calls to
:func:`trio.current_time`,
:func:`trio.lowlevel.spawn_system_task`,
:func:`trio.lowlevel.current_trio_token`, etc.
* When a starting function raises before calling
:func:`trio.TaskStatus.started`,
:func:`trio.Nursery.start` will no longer wrap the exception
in an undocumented :exc:`ExceptionGroup`.
* To better reflect the underlying thread handling semantics,
the keyword argument for `trio.to_thread.run_sync` that was
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-trio?expand=0&rev=39
2023-11-07 16:09:46 +01:00
|
|
|
Requires: python-idna
|
|
|
|
Requires: python-outcome
|
|
|
|
Requires: python-sniffio >= 1.3.0
|
|
|
|
Requires: python-sortedcontainers
|
|
|
|
BuildArch: noarch
|
2024-01-12 07:04:25 +01:00
|
|
|
%if 0%{?python_version_nodots} < 311
|
|
|
|
Requires: python-exceptiongroup
|
2023-11-07 16:19:42 +01:00
|
|
|
%endif
|
2023-10-31 17:23:38 +01:00
|
|
|
%if %{with test}
|
Accepting request 721060 from home:pgajdos
- version update to 0.12.1
Features
* If you have a `~trio.abc.ReceiveStream` object, you can now use
``async for data in stream: ...`` instead of calling
`~trio.abc.ReceiveStream.receive_some`. Each iteration gives an
arbitrary sized chunk of bytes. And the best part is, the loop
automatically exits when you reach EOF, so you don't have to check for
it yourself anymore. Relatedly, you no longer need to pick a magic
buffer size value before calling
`~trio.abc.ReceiveStream.receive_some`; you can ``await
stream.receive_some()`` with no arguments, and the stream will
automatically pick a reasonable size for you. (`#959 <https://github.com/python-trio/trio/issues/959>`__)
* Threading interfaces have been reworked:
``run_sync_in_worker_thread`` is now `trio.to_thread.run_sync`, and
instead of ``BlockingTrioPortal``, use `trio.from_thread.run` and
`trio.from_thread.run_sync`. What's neat about this is that these
cooperate, so if you're in a thread created by `to_thread.run_sync`,
it remembers which Trio created it, and you can call
``trio.from_thread.*`` directly without having to pass around a
``BlockingTrioPortal`` object everywhere. (`#810 <https://github.com/python-trio/trio/issues/810>`__)
* We cleaned up the distinction between the "abstract channel interface"
and the "memory channel" concrete implementation.
`trio.abc.SendChannel` and `trio.abc.ReceiveChannel` have been slimmed
down, `trio.MemorySendChannel` and `trio.MemoryReceiveChannel` are now
public types that can be used in type hints, and there's a new
`trio.abc.Channel` interface for future bidirectional channels. (`#719 <https://github.com/python-trio/trio/issues/719>`__)
* Add :func:`trio.run_process` as a high-level helper for running a process
and waiting for it to finish, like the standard :func:`subprocess.run` does. (`#822 <https://github.com/python-trio/trio/issues/822>`__)
* On Linux, when wrapping a bare file descriptor in a Trio socket object,
Trio now auto-detects the correct ``family``, ``type``, and ``protocol``.
OBS-URL: https://build.opensuse.org/request/show/721060
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-trio?expand=0&rev=8
2019-08-05 20:07:36 +02:00
|
|
|
BuildRequires: %{python_module astor >= 0.8}
|
2019-05-14 22:35:45 +02:00
|
|
|
BuildRequires: %{python_module async_generator >= 1.9}
|
2019-05-14 23:28:18 +02:00
|
|
|
BuildRequires: %{python_module pyOpenSSL}
|
- Update to 0.15.1:
* Added a helpful error message if an async function is passed to
trio.from_thread.run_sync or a sync function to trio.from_thread.run. (#1244)
* Previously, when trio.run_process was cancelled, it always killed the subprocess immediately. Now, on Unix, it first gives the process a chance to clean up by sending SIGTERM, and only escalates to SIGKILL if the process is still running after 5 seconds. But if you prefer the old behavior, or want to adjust the timeout, then don't worry: you can now pass a custom deliver_cancel= argument to define your own process killing policy. (#1104)
* It turns out that creating a subprocess can block the parent process for a surprisingly long time. So trio.open_process now uses a worker thread to avoid blocking the event loop. (#1109)
* On Linux kernels v5.3 or newer, trio.Process.wait now uses the pidfd API to track child processes. This shouldn't have any user-visible change, but it makes working with subprocesses faster and use less memory. (#1241)
* The trio.Process.returncode attribute is now automatically updated as needed, instead of only when you call ~trio.Process.poll or ~trio.Process.wait. Also, repr(process_object) now always contains up-to-date information about the process status. (#1315)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-trio?expand=0&rev=12
2020-06-09 09:38:21 +02:00
|
|
|
BuildRequires: %{python_module pytest >= 5.0}
|
- update to 0.23.1:
* Don't crash on import in Anaconda interpreters.
* Add type hints.
* When exiting a nursery block, the parent task always waits
for child tasks to exit. This wait cannot be cancelled. However,
previously, if you tried to cancel it, it *would* inject a
`Cancelled` exception, even though it wasn't cancelled.
Most users probably never noticed either way, but injecting a
`Cancelled` here is not really useful, and in some rare cases
caused confusion or problems, so Trio no longer does that.
* If called from a thread spawned by `trio.to_thread.run_sync`,
`trio.from_thread.run` and `trio.from_thread.run_sync` now
reuse the task and cancellation status of the host task;
* this means that context variables and cancel scopes naturally
propagate 'through' threads spawned by Trio. You can also use
`trio.from_thread.check_cancelled`
to efficiently check for cancellation without reentering the
Trio thread.
* :func:`trio.lowlevel.start_guest_run` now does a bit more
setup of the guest run before it returns to its caller,
so that the caller can immediately make calls to
:func:`trio.current_time`,
:func:`trio.lowlevel.spawn_system_task`,
:func:`trio.lowlevel.current_trio_token`, etc.
* When a starting function raises before calling
:func:`trio.TaskStatus.started`,
:func:`trio.Nursery.start` will no longer wrap the exception
in an undocumented :exc:`ExceptionGroup`.
* To better reflect the underlying thread handling semantics,
the keyword argument for `trio.to_thread.run_sync` that was
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-trio?expand=0&rev=39
2023-11-07 16:09:46 +01:00
|
|
|
BuildRequires: %{python_module trio = %{version}}
|
2019-05-14 23:28:18 +02:00
|
|
|
BuildRequires: %{python_module trustme}
|
- Update to 0.15.1:
* Added a helpful error message if an async function is passed to
trio.from_thread.run_sync or a sync function to trio.from_thread.run. (#1244)
* Previously, when trio.run_process was cancelled, it always killed the subprocess immediately. Now, on Unix, it first gives the process a chance to clean up by sending SIGTERM, and only escalates to SIGKILL if the process is still running after 5 seconds. But if you prefer the old behavior, or want to adjust the timeout, then don't worry: you can now pass a custom deliver_cancel= argument to define your own process killing policy. (#1104)
* It turns out that creating a subprocess can block the parent process for a surprisingly long time. So trio.open_process now uses a worker thread to avoid blocking the event loop. (#1109)
* On Linux kernels v5.3 or newer, trio.Process.wait now uses the pidfd API to track child processes. This shouldn't have any user-visible change, but it makes working with subprocesses faster and use less memory. (#1241)
* The trio.Process.returncode attribute is now automatically updated as needed, instead of only when you call ~trio.Process.poll or ~trio.Process.wait. Also, repr(process_object) now always contains up-to-date information about the process status. (#1315)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-trio?expand=0&rev=12
2020-06-09 09:38:21 +02:00
|
|
|
BuildRequires: %{python_module yapf >= 0.27.0}
|
2023-10-31 17:23:38 +01:00
|
|
|
%endif
|
2019-05-14 22:35:45 +02:00
|
|
|
%python_subpackages
|
|
|
|
|
|
|
|
%description
|
2019-06-03 10:05:03 +02:00
|
|
|
The Trio project produces an async/await-native I/O library for
|
|
|
|
Python. Like all async libraries, its main purpose is to help write
|
|
|
|
programs that do multiple things at the same time with parallelized
|
|
|
|
I/O, such as a web spider that wants to fetch lots of pages in
|
|
|
|
parallel, a web server that needs to juggle lots of downloads and
|
|
|
|
websocket connections at the same time, a process supervisor
|
|
|
|
monitoring multiple subprocesses. Compared to other libraries, Trio
|
|
|
|
has an obsessive focus on usability and correctness.
|
2019-05-14 22:35:45 +02:00
|
|
|
|
|
|
|
%prep
|
2021-12-14 19:13:45 +01:00
|
|
|
%autosetup -p1 -n trio-%{version}
|
2019-05-14 22:35:45 +02:00
|
|
|
|
|
|
|
%build
|
2023-10-31 17:23:38 +01:00
|
|
|
%pyproject_wheel
|
2019-05-14 22:35:45 +02:00
|
|
|
|
|
|
|
%install
|
2023-10-31 17:23:38 +01:00
|
|
|
%if %{without test}
|
|
|
|
%pyproject_install
|
|
|
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
|
|
|
%endif
|
2019-05-14 22:35:45 +02:00
|
|
|
|
|
|
|
%check
|
2023-10-31 17:23:38 +01:00
|
|
|
%if %{with test}
|
2019-05-14 23:28:18 +02:00
|
|
|
# test_static_tool_sees_all_symbols uses jedi/pylint for static analysis,
|
|
|
|
# pointless for us.
|
2024-01-10 10:41:23 +01:00
|
|
|
donttest="test_static_tool_sees_all_symbols"
|
2019-05-22 15:02:57 +02:00
|
|
|
# test_SSLStream_generic deadlocks in OBS
|
2024-01-10 10:41:23 +01:00
|
|
|
donttest+=" or test_SSLStream_generic"
|
2020-10-12 08:49:07 +02:00
|
|
|
# test_close_at_bad_time_for_send_all fails on PPC https://github.com/python-trio/trio/issues/1753
|
2024-01-10 10:41:23 +01:00
|
|
|
donttest+=" or test_close_at_bad_time_for_send_all"
|
2022-09-25 21:16:05 +02:00
|
|
|
# test_local_address_real fails on qemu_linux_user targets
|
2024-01-10 10:41:23 +01:00
|
|
|
donttest+=" or test_local_address_real"
|
|
|
|
# Don't run lint tests
|
|
|
|
donttest+=" or run_black or run_ruff or lint_failure or test_process"
|
2024-01-12 07:04:25 +01:00
|
|
|
%pytest -m 'not redistributors_should_skip' -k "not ($donttest)" --pyargs trio -p trio._tests.pytest_plugin --skip-optional-imports
|
2023-10-31 17:23:38 +01:00
|
|
|
%endif
|
2019-05-14 22:35:45 +02:00
|
|
|
|
2023-10-31 17:23:38 +01:00
|
|
|
%if %{without test}
|
2019-05-14 22:35:45 +02:00
|
|
|
%files %{python_files}
|
|
|
|
%doc README.rst
|
|
|
|
%license LICENSE LICENSE.APACHE2 LICENSE.MIT
|
2021-12-14 19:13:45 +01:00
|
|
|
%{python_sitelib}/trio
|
|
|
|
%{python_sitelib}/trio-%{version}*-info
|
2023-10-31 17:23:38 +01:00
|
|
|
%endif
|
2019-05-14 22:35:45 +02:00
|
|
|
|
|
|
|
%changelog
|