Dirk Mueller
5bf63236e0
* Add support for byte-based paths in connect_unix, create_unix_listeners, create_unix_datagram_socket, and create_connected_unix_datagram_socket. (PR by Lura Skye) * Enabled the Event and CapacityLimiter classes to be instantiated outside an event loop thread * Broadly improved/fixed the type annotations. Among other things, many functions and methods that take variadic positional arguments now make use of PEP 646 TypeVarTuple to allow the positional arguments to be validated by static type checkers. These changes affected numerous methods and functions, including: * anyio.run() * TaskGroup.start_soon() * anyio.from_thread.run() * anyio.from_thread.run_sync() * anyio.to_thread.run_sync() * anyio.to_process.run_sync() * BlockingPortal.call() * BlockingPortal.start_task_soon() * BlockingPortal.start_task() (also resolves #560) * Fixed various type annotations of anyio.Path to match Typeshed: * anyio.Path.__lt__() * anyio.Path.__le__() * anyio.Path.__gt__() * anyio.Path.__ge__() * anyio.Path.__truediv__() * anyio.Path.__rtruediv__() * anyio.Path.hardlink_to() * anyio.Path.samefile() * anyio.Path.symlink_to() * anyio.Path.with_segments() (PR by Ganden Schaffner) * Fixed adjusting the total number of tokens in a CapacityLimiter on asyncio failing to wake up tasks waiting to acquire the limiter in certain edge cases (fixed with help from Egor Blagov) * Fixed loop_factory and use_uvloop options not being used on the asyncio backend * Fixed cancellation propagating on asyncio from a task group OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=37
101 lines
3.6 KiB
RPMSpec
101 lines
3.6 KiB
RPMSpec
#
|
|
# spec file for package python-anyio
|
|
#
|
|
# Copyright (c) 2024 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: 4.2.0
|
|
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
|
|
BuildRequires: %{python_module contextlib2 if %python-base < 3.7}
|
|
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}
|
|
BuildRequires: %{python_module setuptools_scm}
|
|
BuildRequires: %{python_module sniffio >= 1.1}
|
|
BuildRequires: %{python_module toml}
|
|
BuildRequires: %{python_module typing_extensions if %python-base < 3.11}
|
|
BuildRequires: %{python_module wheel}
|
|
BuildRequires: python-rpm-macros >= 20210127.3a18043
|
|
# SECTION test requirements
|
|
BuildRequires: %{python_module hypothesis >= 4.0}
|
|
BuildRequires: %{python_module mock >= 4.0 if %python-base < 3.8}
|
|
BuildRequires: %{python_module pytest >= 7.0}
|
|
BuildRequires: %{python_module pytest-mock >= 3.6.1}
|
|
BuildRequires: %{python_module trio >= 0.23}
|
|
BuildRequires: %{python_module trustme}
|
|
# /SECTION
|
|
BuildRequires: fdupes
|
|
Requires: python-idna >= 2.8
|
|
Requires: python-sniffio >= 1.1
|
|
Requires: (python-typing_extensions if python-base < 3.11)
|
|
%if 0%{?python_version_nodots} < 37
|
|
Requires: python-contextvars
|
|
Requires: python-dataclasses
|
|
%endif
|
|
Suggests: python-trio >= 0.23
|
|
BuildArch: noarch
|
|
%python_subpackages
|
|
|
|
%description
|
|
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
|
|
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)"
|
|
%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
|