{"old": "/home/jenkins/agent/workspace/multiarch/src-openeuler/x86-64/python-anyio/old_rpms/", "new": "/home/jenkins/agent/workspace/multiarch/src-openeuler/x86-64/python-anyio/new_rpms/", "compare_result": "not pass", "compare_details": {"same": {"same_details": {"old": [], "new": []}, "same_num": 0}, "diff": {"diff_details": {"python3-anyio": {"name": {"old": "python3-anyio-4.12.0-1.oe1.noarch.rpm", "new": "python3-anyio-4.14.0-1.oe1.noarch.rpm"}, "RPM Level": "level4", "rpm requires": {}, "rpm provides": {}, "rpm files": {"more": ["/usr/lib/python3.11/site-packages/anyio/itertools.py", "/usr/lib/python3.11/site-packages/anyio/__pycache__/itertools.cpython-311.pyc", "/usr/lib/python3.11/site-packages/anyio/__pycache__/itertools.cpython-311.opt-1.pyc"]}}}, "diff_num": 1}, "less": {"less_details": {}, "less_num": 0}, "more": {"more_details": {}, "more_num": 0}}, "pr_link": "https://gitcode.com/src-openeuler/python-anyio/pull/20", "pr_changelog": "* Tue Jun 16 2026 xiejing <xiejing@kylinos.cn> - 4.14.0-1\n- update version to 4.14.0\n  * Added support for Python 3.15\n  * Added an asynchronous implementation of the itertools module\n  * Added the local_port parameter to connect_tcp() to allow binding to a specific local port before connecting\n  * Added support for custom capacity limiters in async path and file I/O functions and classes\n  * Added the create_task() task group method for easier asyncio migration (returns a TaskHandle)\n  * Changed TaskGroup.start_soon() to return a TaskHandle\n  * Added an option for TaskGroup.start() to return a TaskHandle (which then contains the start value in the start_value property)\n  * Added the cancel() convenience method to TaskGroup as a shortcut for cancelling the task group's cancel scope\n  * Improved the error message when a known backend is not installed to suggest the install command\n  * Improved anyio.Path to preserve subclass types by returning Self in methods that return path objects\n  * Changed the parameter type annotation in anyio.Path.write_bytes() to accept any ReadableBuffer, thus allowing it\n    to accept bytearray and memoryview to match pathlib.Path.write_bytes()\n  * Changed several type annotations to only accept callables returning coroutine-like objects instead of arbitrary awaitables\n  * Changed anyio.run to support callables returning arbitrary awaitables at runtime on all backends\n  * Changed several classes (and their subclasses) to have __slots__ (with __weakref__)\n  * Fixed cancellation exception escaping a cancel scope when triggered via check_cancelled() in a worker thread\n  * Fixed TaskGroup raising AttributeError instead of a clear error when entered more than once\n  * Fixed lost type information when passing arguments to lru_cache\n  * Fixed lost type information when passing arguments to lru_cache\n  * Fixed import of __main__ in to_process workers when entrypoint script doesn't end in .py,such as when using console_script entrypoints\n  * Fixed SocketListener.from_socket() returning a TCP listener for AF_UNIX listening sockets, causing accept() to fail with ENOTSUP\n  * Fixed UDPSocket.aclose() and ConnectedUDPSocket.aclose() on asyncio returning before the underlying socket FD was actually released\n  * Fixed trio backend test runner hanging indefinitely instead of raising an error when dynamically accessing an async\n    fixture via request.getfixturevalue\n  * Fixed cancelling tasks started through a BlockingPortal after the portal has been stopped\n  * Fixed backend_options being ignored when running the Trio backend via anyio.run(); the options are now passed as\n    keyword arguments to trio.run() again, as documented (a regression from AnyIO 3)\n  * Fixed asyncio Lock and Semaphore deadlocks caused by cancelled waiters left queued during release\n"}