python-anyio/python-anyio.spec

105 lines
3.7 KiB
RPMSpec
Raw Normal View History

#
# spec file for package python-anyio
#
# 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-anyio
Version: 3.7.1
Release: 0
Summary: High level compatibility layer for asynchronous event loop implementations
License: MIT
URL: https://github.com/agronholm/anyio
Source: https://files.pythonhosted.org/packages/source/a/anyio/anyio-%{version}.tar.gz
# PATCH-FIX-UPSTREAM see gh#agronholm/anyio#626
Patch2: tests-test_fileio.py-don-t-follow-symlinks-in-dev.patch
BuildRequires: %{python_module contextlib2 if %python-base < 3.7}
- Update to 2.2.0: * Added the ``maybe_async()`` and ``maybe_async_cm()`` functions to facilitate forward compatibility with AnyIO 3 * Fixed socket stream bug on asyncio where receiving a half-close from the peer would shut down the entire connection * Fixed native task names not being set on asyncio on Python 3.8+ * Fixed ``TLSStream.send_eof()`` raising ``ValueError`` instead of the expected ``NotImplementedError`` * Fixed ``open_signal_receiver()`` on asyncio and curio hanging if the cancel scope was cancelled before the function could run * Fixed Trio test runner causing unwarranted test errors on ``BaseException``s * Fixed formatted output of ``ExceptionGroup`` containing too many newlines * Added the ``spawn_task()`` and ``wrap_async_context_manager()`` methods to ``BlockingPortal`` * Added the ``handshake_timeout`` and ``error_handler`` parameters to ``TLSListener`` * Fixed ``Event`` objects on the trio backend not inheriting from ``anyio.abc.Event`` * Fixed ``run_sync_in_worker_thread()`` raising ``UnboundLocalError`` on asyncio when cancelled * Fixed ``send()`` on socket streams not raising any exception on asyncio, and an unwrapped * ``BrokenPipeError`` on trio and curio when the peer has disconnected * Fixed ``MemoryObjectSendStream.send()`` raising ``BrokenResourceError`` when the last receiver is closed right after receiving the item * Fixed ``ValueError: Invalid file descriptor: -1`` when closing a ``SocketListener`` on asyncio OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=3
2021-03-15 06:59:35 +01:00
BuildRequires: %{python_module dataclasses if %python-base < 3.7}
BuildRequires: %{python_module idna >= 2.8}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module psutil >= 5.9}
- Update to 2.2.0: * Added the ``maybe_async()`` and ``maybe_async_cm()`` functions to facilitate forward compatibility with AnyIO 3 * Fixed socket stream bug on asyncio where receiving a half-close from the peer would shut down the entire connection * Fixed native task names not being set on asyncio on Python 3.8+ * Fixed ``TLSStream.send_eof()`` raising ``ValueError`` instead of the expected ``NotImplementedError`` * Fixed ``open_signal_receiver()`` on asyncio and curio hanging if the cancel scope was cancelled before the function could run * Fixed Trio test runner causing unwarranted test errors on ``BaseException``s * Fixed formatted output of ``ExceptionGroup`` containing too many newlines * Added the ``spawn_task()`` and ``wrap_async_context_manager()`` methods to ``BlockingPortal`` * Added the ``handshake_timeout`` and ``error_handler`` parameters to ``TLSListener`` * Fixed ``Event`` objects on the trio backend not inheriting from ``anyio.abc.Event`` * Fixed ``run_sync_in_worker_thread()`` raising ``UnboundLocalError`` on asyncio when cancelled * Fixed ``send()`` on socket streams not raising any exception on asyncio, and an unwrapped * ``BrokenPipeError`` on trio and curio when the peer has disconnected * Fixed ``MemoryObjectSendStream.send()`` raising ``BrokenResourceError`` when the last receiver is closed right after receiving the item * Fixed ``ValueError: Invalid file descriptor: -1`` when closing a ``SocketListener`` on asyncio OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=3
2021-03-15 06:59:35 +01:00
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module sniffio >= 1.1}
- Update to 2.2.0: * Added the ``maybe_async()`` and ``maybe_async_cm()`` functions to facilitate forward compatibility with AnyIO 3 * Fixed socket stream bug on asyncio where receiving a half-close from the peer would shut down the entire connection * Fixed native task names not being set on asyncio on Python 3.8+ * Fixed ``TLSStream.send_eof()`` raising ``ValueError`` instead of the expected ``NotImplementedError`` * Fixed ``open_signal_receiver()`` on asyncio and curio hanging if the cancel scope was cancelled before the function could run * Fixed Trio test runner causing unwarranted test errors on ``BaseException``s * Fixed formatted output of ``ExceptionGroup`` containing too many newlines * Added the ``spawn_task()`` and ``wrap_async_context_manager()`` methods to ``BlockingPortal`` * Added the ``handshake_timeout`` and ``error_handler`` parameters to ``TLSListener`` * Fixed ``Event`` objects on the trio backend not inheriting from ``anyio.abc.Event`` * Fixed ``run_sync_in_worker_thread()`` raising ``UnboundLocalError`` on asyncio when cancelled * Fixed ``send()`` on socket streams not raising any exception on asyncio, and an unwrapped * ``BrokenPipeError`` on trio and curio when the peer has disconnected * Fixed ``MemoryObjectSendStream.send()`` raising ``BrokenResourceError`` when the last receiver is closed right after receiving the item * Fixed ``ValueError: Invalid file descriptor: -1`` when closing a ``SocketListener`` on asyncio OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=3
2021-03-15 06:59:35 +01:00
BuildRequires: %{python_module toml}
BuildRequires: %{python_module typing_extensions if %python-base < 3.8}
BuildRequires: %{python_module wheel}
- Update to 2.2.0: * Added the ``maybe_async()`` and ``maybe_async_cm()`` functions to facilitate forward compatibility with AnyIO 3 * Fixed socket stream bug on asyncio where receiving a half-close from the peer would shut down the entire connection * Fixed native task names not being set on asyncio on Python 3.8+ * Fixed ``TLSStream.send_eof()`` raising ``ValueError`` instead of the expected ``NotImplementedError`` * Fixed ``open_signal_receiver()`` on asyncio and curio hanging if the cancel scope was cancelled before the function could run * Fixed Trio test runner causing unwarranted test errors on ``BaseException``s * Fixed formatted output of ``ExceptionGroup`` containing too many newlines * Added the ``spawn_task()`` and ``wrap_async_context_manager()`` methods to ``BlockingPortal`` * Added the ``handshake_timeout`` and ``error_handler`` parameters to ``TLSListener`` * Fixed ``Event`` objects on the trio backend not inheriting from ``anyio.abc.Event`` * Fixed ``run_sync_in_worker_thread()`` raising ``UnboundLocalError`` on asyncio when cancelled * Fixed ``send()`` on socket streams not raising any exception on asyncio, and an unwrapped * ``BrokenPipeError`` on trio and curio when the peer has disconnected * Fixed ``MemoryObjectSendStream.send()`` raising ``BrokenResourceError`` when the last receiver is closed right after receiving the item * Fixed ``ValueError: Invalid file descriptor: -1`` when closing a ``SocketListener`` on asyncio OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=3
2021-03-15 06:59:35 +01:00
BuildRequires: python-rpm-macros >= 20210127.3a18043
# SECTION test requirements
BuildRequires: %{python_module hypothesis >= 4.0}
Accepting request 919874 from home:bnavigator:branches:devel:languages:python - Update to v3.3.1 * Added missing documentation for the ExceptionGroup.exceptions attribute * Changed the asyncio test runner not to use uvloop by default (to match the behavior of anyio.run()) * Fixed RuntimeError on asyncio when a CancelledError is raised from a task spawned through a BlockingPortal (#357) * Fixed asyncio warning about a Future with an exception that was never retrieved which happened when a socket was already written to but the peer abruptly closed the connection - Release 3.3.0 * Added asynchronous Path class * Added the wrap_file() function for wrapping existing files as asynchronous file objects * Relaxed the type of the path initializer argument to FileReadStream and FileWriteStream so they accept any path-like object (including the new asynchronous Path class) * Dropped unnecessary dependency on the async_generator library * Changed the generics in AsyncFile so that the methods correctly return either str or bytes based on the argument to open_file() * Fixed an asyncio bug where under certain circumstances, a stopping worker thread would still accept new assignments, leading to a hang - Release 3.2.1 * Fixed idle thread pruning on asyncio sometimes causing an expired worker thread to be assigned a task - Release 3.2.0 * Added Python 3.10 compatibility * Added the ability to close memory object streams synchronously OBS-URL: https://build.opensuse.org/request/show/919874 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=7
2021-09-17 22:42:57 +02:00
BuildRequires: %{python_module mock >= 4.0 if %python-base < 3.8}
BuildRequires: %{python_module pytest >= 7.0}
Accepting request 897158 from home:alarrosa:branches:devel:languages:python - Update to 3.1.0: * Added env and cwd keyword arguments to run_process() and open_process. * Added support for mutation of CancelScope.shield (PR by John Belmonte) * Added the sleep_forever() and sleep_until() functions * Changed asyncio task groups so that if the host and child tasks have only raised CancelledErrors, just one CancelledError will now be raised instead of an ExceptionGroup, allowing asyncio to ignore it when it propagates out of the task * Changed task names to be converted to str early on asyncio (PR by Thomas Grainger) * Fixed sniffio._impl.AsyncLibraryNotFoundError: unknown async library, or not in async context on asyncio and Python 3.6 when to_thread.run_sync() is used from loop.run_until_complete() * Fixed odd ExceptionGroup: 0 exceptions were raised in the task group appearing under certain circumstances on asyncio * Fixed wait_all_tasks_blocked() returning prematurely on asyncio when a previously blocked task is cancelled (PR by Thomas Grainger) * Fixed declared return type of TaskGroup.start() (it was declared as None, but anything can be returned from it) * Fixed TextStream.extra_attributes raising AttributeError (PR by Thomas Grainger) * Fixed await maybe_async(current_task()) returning None (PR by Thomas Grainger) * Fixed: pickle.dumps(current_task()) now correctly raises TypeError instead of pickling to None (PR by Thomas Grainger) * Fixed return type annotation of Event.wait() (bool → None) (PR by Thomas Grainger) OBS-URL: https://build.opensuse.org/request/show/897158 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=5
2021-06-03 14:46:02 +02:00
BuildRequires: %{python_module pytest-mock >= 3.6.1}
- Update to 2.2.0: * Added the ``maybe_async()`` and ``maybe_async_cm()`` functions to facilitate forward compatibility with AnyIO 3 * Fixed socket stream bug on asyncio where receiving a half-close from the peer would shut down the entire connection * Fixed native task names not being set on asyncio on Python 3.8+ * Fixed ``TLSStream.send_eof()`` raising ``ValueError`` instead of the expected ``NotImplementedError`` * Fixed ``open_signal_receiver()`` on asyncio and curio hanging if the cancel scope was cancelled before the function could run * Fixed Trio test runner causing unwarranted test errors on ``BaseException``s * Fixed formatted output of ``ExceptionGroup`` containing too many newlines * Added the ``spawn_task()`` and ``wrap_async_context_manager()`` methods to ``BlockingPortal`` * Added the ``handshake_timeout`` and ``error_handler`` parameters to ``TLSListener`` * Fixed ``Event`` objects on the trio backend not inheriting from ``anyio.abc.Event`` * Fixed ``run_sync_in_worker_thread()`` raising ``UnboundLocalError`` on asyncio when cancelled * Fixed ``send()`` on socket streams not raising any exception on asyncio, and an unwrapped * ``BrokenPipeError`` on trio and curio when the peer has disconnected * Fixed ``MemoryObjectSendStream.send()`` raising ``BrokenResourceError`` when the last receiver is closed right after receiving the item * Fixed ``ValueError: Invalid file descriptor: -1`` when closing a ``SocketListener`` on asyncio OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=3
2021-03-15 06:59:35 +01:00
BuildRequires: %{python_module trio >= 0.16}
BuildRequires: %{python_module trustme}
# /SECTION
BuildRequires: fdupes
Requires: python-idna >= 2.8
Requires: python-sniffio >= 1.1
%if 0%{?python_version_nodots} < 38
Requires: python-typing_extensions
%endif
%if 0%{?python_version_nodots} < 37
Requires: python-contextvars
Requires: python-dataclasses
%endif
Accepting request 919874 from home:bnavigator:branches:devel:languages:python - Update to v3.3.1 * Added missing documentation for the ExceptionGroup.exceptions attribute * Changed the asyncio test runner not to use uvloop by default (to match the behavior of anyio.run()) * Fixed RuntimeError on asyncio when a CancelledError is raised from a task spawned through a BlockingPortal (#357) * Fixed asyncio warning about a Future with an exception that was never retrieved which happened when a socket was already written to but the peer abruptly closed the connection - Release 3.3.0 * Added asynchronous Path class * Added the wrap_file() function for wrapping existing files as asynchronous file objects * Relaxed the type of the path initializer argument to FileReadStream and FileWriteStream so they accept any path-like object (including the new asynchronous Path class) * Dropped unnecessary dependency on the async_generator library * Changed the generics in AsyncFile so that the methods correctly return either str or bytes based on the argument to open_file() * Fixed an asyncio bug where under certain circumstances, a stopping worker thread would still accept new assignments, leading to a hang - Release 3.2.1 * Fixed idle thread pruning on asyncio sometimes causing an expired worker thread to be assigned a task - Release 3.2.0 * Added Python 3.10 compatibility * Added the ability to close memory object streams synchronously OBS-URL: https://build.opensuse.org/request/show/919874 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=7
2021-09-17 22:42:57 +02:00
Suggests: python-trio >= 0.16
BuildArch: noarch
%python_subpackages
%description
Accepting request 897158 from home:alarrosa:branches:devel:languages:python - Update to 3.1.0: * Added env and cwd keyword arguments to run_process() and open_process. * Added support for mutation of CancelScope.shield (PR by John Belmonte) * Added the sleep_forever() and sleep_until() functions * Changed asyncio task groups so that if the host and child tasks have only raised CancelledErrors, just one CancelledError will now be raised instead of an ExceptionGroup, allowing asyncio to ignore it when it propagates out of the task * Changed task names to be converted to str early on asyncio (PR by Thomas Grainger) * Fixed sniffio._impl.AsyncLibraryNotFoundError: unknown async library, or not in async context on asyncio and Python 3.6 when to_thread.run_sync() is used from loop.run_until_complete() * Fixed odd ExceptionGroup: 0 exceptions were raised in the task group appearing under certain circumstances on asyncio * Fixed wait_all_tasks_blocked() returning prematurely on asyncio when a previously blocked task is cancelled (PR by Thomas Grainger) * Fixed declared return type of TaskGroup.start() (it was declared as None, but anything can be returned from it) * Fixed TextStream.extra_attributes raising AttributeError (PR by Thomas Grainger) * Fixed await maybe_async(current_task()) returning None (PR by Thomas Grainger) * Fixed: pickle.dumps(current_task()) now correctly raises TypeError instead of pickling to None (PR by Thomas Grainger) * Fixed return type annotation of Event.wait() (bool → None) (PR by Thomas Grainger) OBS-URL: https://build.opensuse.org/request/show/897158 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=5
2021-06-03 14:46:02 +02:00
Asynchronous compatibility API that allows applications and libraries written
against it to run unmodified on asyncio, curio and trio.
%prep
%autosetup -p1 -n anyio-%{version}
%build
%pyproject_wheel
%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
Accepting request 919874 from home:bnavigator:branches:devel:languages:python - Update to v3.3.1 * Added missing documentation for the ExceptionGroup.exceptions attribute * Changed the asyncio test runner not to use uvloop by default (to match the behavior of anyio.run()) * Fixed RuntimeError on asyncio when a CancelledError is raised from a task spawned through a BlockingPortal (#357) * Fixed asyncio warning about a Future with an exception that was never retrieved which happened when a socket was already written to but the peer abruptly closed the connection - Release 3.3.0 * Added asynchronous Path class * Added the wrap_file() function for wrapping existing files as asynchronous file objects * Relaxed the type of the path initializer argument to FileReadStream and FileWriteStream so they accept any path-like object (including the new asynchronous Path class) * Dropped unnecessary dependency on the async_generator library * Changed the generics in AsyncFile so that the methods correctly return either str or bytes based on the argument to open_file() * Fixed an asyncio bug where under certain circumstances, a stopping worker thread would still accept new assignments, leading to a hang - Release 3.2.1 * Fixed idle thread pruning on asyncio sometimes causing an expired worker thread to be assigned a task - Release 3.2.0 * Added Python 3.10 compatibility * Added the ability to close memory object streams synchronously OBS-URL: https://build.opensuse.org/request/show/919874 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=7
2021-09-17 22:42:57 +02:00
sed -i '/filterwarnings/,/^]/ { /"error"/ d}' pyproject.toml
# bind and resolution failures inside OBS
donttest+=" or (TestTCPStream and (ipv4 or ipv6))"
donttest+=" or (TestTCPListener and (ipv4 or ipv6))"
donttest+=" or (TestConnectedUDPSocket and (ipv4 or ipv6))"
donttest+=" or (TestUDPSocket and (ipv4 or ipv6))"
# wrong localhost address
donttest+=" or (TestTCPStream and test_happy_eyeballs)"
donttest+=" or (TestTCPStream and test_connection_refused)"
donttest+=" or test_bind_link_local"
# does not raise an exception
donttest+=" or (TestTLSStream and test_ragged_eofs)"
%if 0%{?suse_version} < 1550
donttest+=" or (test_send_eof_not_implemented)"
%endif
donttest+=" or (test_exception_group and trio)"
# Fail with python 3.12
donttest+=" or (test_properties and trio)"
donttest+=" or (test_properties and asyncio)"
Accepting request 919874 from home:bnavigator:branches:devel:languages:python - Update to v3.3.1 * Added missing documentation for the ExceptionGroup.exceptions attribute * Changed the asyncio test runner not to use uvloop by default (to match the behavior of anyio.run()) * Fixed RuntimeError on asyncio when a CancelledError is raised from a task spawned through a BlockingPortal (#357) * Fixed asyncio warning about a Future with an exception that was never retrieved which happened when a socket was already written to but the peer abruptly closed the connection - Release 3.3.0 * Added asynchronous Path class * Added the wrap_file() function for wrapping existing files as asynchronous file objects * Relaxed the type of the path initializer argument to FileReadStream and FileWriteStream so they accept any path-like object (including the new asynchronous Path class) * Dropped unnecessary dependency on the async_generator library * Changed the generics in AsyncFile so that the methods correctly return either str or bytes based on the argument to open_file() * Fixed an asyncio bug where under certain circumstances, a stopping worker thread would still accept new assignments, leading to a hang - Release 3.2.1 * Fixed idle thread pruning on asyncio sometimes causing an expired worker thread to be assigned a task - Release 3.2.0 * Added Python 3.10 compatibility * Added the ability to close memory object streams synchronously OBS-URL: https://build.opensuse.org/request/show/919874 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=7
2021-09-17 22:42:57 +02:00
%pytest -m "not network" -k "not (${donttest:4})" -ra
%files %{python_files}
%doc README.rst
%license LICENSE
%{python_sitelib}/anyio
%{python_sitelib}/anyio-%{version}*-info
%changelog