python-anyio/python-anyio.spec
Dirk Mueller 5bf63236e0 - update to 4.2.0:
* 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
2024-01-02 20:52:48 +00:00

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