# # spec file for package python-curio # # 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/ # %define skip_python36 1 %define skip_python38 1 %define skip_python39 1 %define skip_python311 1 %{?sle15_python_module_pythons} Name: python-curio Version: 1.6 Release: 3.1 Summary: Concurrent I/O library for Python 3 License: BSD-Source-Code URL: https://github.com/dabeaz/curio Source: https://github.com/dabeaz/curio/archive/%{version}.tar.gz#/curio-%{version}.tar.gz Patch0: make-tests-reproducible.patch BuildRequires: %{python_module base >= 3.7} BuildRequires: %{python_module pip} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros BuildArch: noarch %python_subpackages %description Curio is a library for performing concurrent I/O with coroutines in Python 3. %prep %autosetup -p1 -n curio-%{version} %build %pyproject_wheel %install %pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} %check %pytest -m "not internet" %files %{python_files} %license LICENSE %doc CHANGES README.rst %{python_sitelib}/curio %{python_sitelib}/curio-%{version}*-info %changelog * Fri Apr 21 2023 Dirk Müller - add sle15_python_module_pythons (jsc#PED-68) * Thu Apr 13 2023 Matej Cepl - Make calling of %%{sle15modernpython} optional. * Thu Feb 2 2023 Ben Greiner - Clean specfile from obsolete python36 flavor expressions - PEP517 build * Tue Jan 31 2023 Dirk Müller - skip building for 3.6 * Thu Oct 27 2022 Yogalakshmi Arunachalam - Update to 1.6: * **IMPORTANT NOTE*** This is the last release on pypi. Curio will no longer be making package releases. The most recent version can be obtained at https://github.com/dabeaz/curio. Fixed a problem with cancellation and waiting in UniversalEvent. Reported by vytasrgl. Merged a fix for #350 where UniversalEvents couldn't be set more than once. Reported and fixed by Stephen Harding. Fixed Issue #340 related to the handling of daemonic tasks in a TaskGroup. TaskGroups can now be given existing daemonic tasks in the constructor. Daemonic tasks are correctly cancelled if a TaskGroup used as a context manager terminates due to an exception. Changed all cancellation related exceptions to inherit from BaseException instead of Exception. This makes them play slightly better with normal exception handling code: try: await some_operation() except Exception as err: [#] Normal (expected) program related error ... except CancelledError as err: [#] Cancellation of some kind ... This also mirrors a similar change to asyncio.CancelledError which now directly inherits from BaseException. * **POTENTIAL INCOMPATIBILITY*** If you were using try: ... except Exception: to catch cancellation, that code will break. Added ps() and where() commands to the monitor that can be used from the Curio REPL when you run `python -m curio`. These can also be used to monitor the state of the kernel from a different thread. For example: from threading import Thread kern = Kernel() Thread(target=kern.run, args=[main]).start() >>> from curio.monitor import ps >>> ps(kern) ... displays active tasks ... This makes it a bit easier to have some of the monitor capability in an live-environment where Curio is running. * Tue Aug 24 2021 John Paul Adrian Glaubitz - Update to 1.5: * Fixed Issue #340 related to the handling of daemonic tasks in a TaskGroup. * Changed all cancellation related exceptions to inherit from BaseException instead of Exception. * Added ps() and where() commands to the monitor that can be used from the Curio REPL when you run `python -m curio`. * Wed Dec 9 2020 Benjamin Greiner - Reenable python36 build and skip the failing tests. The dependency tree on curio is too large to just define skip_python36 * gh#dabeaz/curio#336 * gh#openSUSE/python-rpm-macros#66 * Thu Dec 3 2020 Benjamin Greiner - Although upstream reduced their requirement to python >= 3.6, we keep python >= 3.7 and skip the upcoming python36 flavor, because the unittests fail. * https://github.com/dabeaz/curio/commit/1ea5653 * gh#dabeaz/curio#336 * gh#openSUSE/python-rpm-macros#66 * Thu Oct 22 2020 Steve Kowalik - Update to 1.4: * Fixed minimum requirement in setup.py * Moved the Pytest plugin to the examples directory. * Refined the detection of coroutines to use collections.abc.Coroutine. * Added a Result object. * Mon Jun 15 2020 Ondřej Súkup - Update to 1.2 * Removed hard dependency on contextvars * Added a default selector timeout of 1 second for Windows. * First crack at a Curio repl. * Added a pytest plugin * Slight refinement to TaskGroup result reporting. * Thu Mar 5 2020 Antonio Larrosa - Add patch to make tests reproducible and not depend on a race condition: * make-tests-reproducible.patch * Thu Mar 5 2020 Ondřej Súkup - update to 1.1 - drop gh_313.patch * Fixed a very subtle edge case involving epoll() and duplicated file descriptors on Linux * Mon Feb 24 2020 Ondřej Súkup - update to 1.0 - minimal python version bump to 3.7 - please see CHANGES file for detailed changelog - add gh_313.patch to fix epool problem * Sun Jun 2 2019 Jan Engelhardt - Avoid name repetition in summary. * Tue May 14 2019 Tomáš Chvátal - Make the tests executed * Sat May 11 2019 Torsten Gruner - Initial release 0.9