Skip to content

Scheduled weekly dependency update for week 22 - #541

Closed
pyup-bot wants to merge 3 commits into
masterfrom
pyup-scheduled-update-2026-06-01
Closed

Scheduled weekly dependency update for week 22#541
pyup-bot wants to merge 3 commits into
masterfrom
pyup-scheduled-update-2026-06-01

Conversation

@pyup-bot

@pyup-bot pyup-bot commented Jun 1, 2026

Copy link
Copy Markdown
Collaborator

Update pytest-asyncio from 1.3.0 to 1.4.0.

Changelog

1.4.0

[1.4.0](https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0) - 2026-05-26

Deprecated

-   Overriding the *event_loop_policy* fixture is deprecated. Use the `pytest_asyncio_loop_factories` hook instead. ([1419](https://github.com/pytest-dev/pytest-asyncio/issues/1419))

Added

-   Added the `pytest_asyncio_loop_factories` hook to parametrize asyncio tests with custom event loop factories.

 The hook returns a mapping of factory names to loop factories, and `pytest.mark.asyncio(loop_factories=[...])` selects a subset of configured factories per test. When a single factory is configured, test names are unchanged.

 Synchronous `pytest_asyncio.fixture` functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via `asyncio.run()` or `asyncio.set_event_loop(None)`). ([1164](https://github.com/pytest-dev/pytest-asyncio/issues/1164))

Changed

-   Improved the readability of the warning message that is displayed when `asyncio_default_fixture_loop_scope` is unset ([1298](https://github.com/pytest-dev/pytest-asyncio/issues/1298))
-   Only import `asyncio.AbstractEventLoopPolicy` for type checking to avoid raising
 a DeprecationWarning. ([1394](https://github.com/pytest-dev/pytest-asyncio/issues/1394))
-   Updated minimum supported pytest version to v8.4.0. ([1397](https://github.com/pytest-dev/pytest-asyncio/issues/1397))

Fixed

-   Fixed a `ResourceWarning: unclosed event loop` warning that could occur when a synchronous test called `asyncio.run()` or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. ([724](https://github.com/pytest-dev/pytest-asyncio/issues/724))

Notes for Downstream Packagers

-   Added dependency on `sphinx-tabs >= 3.5` to organize documentation examples into tabs. ([1395](https://github.com/pytest-dev/pytest-asyncio/issues/1395))

1.4.0a2

[1.4.0a2](https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a2) - 2026-05-02

Deprecated

-   Overriding the *event_loop_policy* fixture is deprecated. Use the `pytest_asyncio_loop_factories` hook instead. ([1419](https://github.com/pytest-dev/pytest-asyncio/issues/1419))

Added

-   Added the `pytest_asyncio_loop_factories` hook to parametrize asyncio tests with custom event loop factories.

 The hook returns a mapping of factory names to loop factories, and `pytest.mark.asyncio(loop_factories=[...])` selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.

 Synchronous `pytest_asyncio.fixture` functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via `asyncio.run()` or `asyncio.set_event_loop(None)`). ([1164](https://github.com/pytest-dev/pytest-asyncio/issues/1164))

Changed

-   Improved the readability of the warning message that is displayed when `asyncio_default_fixture_loop_scope` is unset ([1298](https://github.com/pytest-dev/pytest-asyncio/issues/1298))
-   Only import `asyncio.AbstractEventLoopPolicy` for type checking to avoid raising
 a DeprecationWarning. ([1394](https://github.com/pytest-dev/pytest-asyncio/issues/1394))
-   Updated minimum supported pytest version to v8.4.0. ([1397](https://github.com/pytest-dev/pytest-asyncio/issues/1397))

Fixed

-   Fixed a `ResourceWarning: unclosed event loop` warning that could occur when a synchronous test called `asyncio.run()` or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. ([724](https://github.com/pytest-dev/pytest-asyncio/issues/724))

Notes for Downstream Packagers

-   Added dependency on `sphinx-tabs >= 3.5` to organize documentation examples into tabs. ([1395](https://github.com/pytest-dev/pytest-asyncio/issues/1395))

1.4.0a1

[1.4.0a1](https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a1) - 2026-04-15

Added

-   Added the `pytest_asyncio_loop_factories` hook to parametrize asyncio tests with custom event loop factories.

 The hook returns a mapping of factory names to loop factories, and `pytest.mark.asyncio(loop_factories=[...])` selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.

 Synchronous `pytest_asyncio.fixture` functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via `asyncio.run()` or `asyncio.set_event_loop(None)`). ([1164](https://github.com/pytest-dev/pytest-asyncio/issues/1164))

Changed

-   Improved the readability of the warning message that is displayed when `asyncio_default_fixture_loop_scope` is unset ([1298](https://github.com/pytest-dev/pytest-asyncio/issues/1298))
-   Only import `asyncio.AbstractEventLoopPolicy` for type checking to avoid raising
 a DeprecationWarning. ([1394](https://github.com/pytest-dev/pytest-asyncio/issues/1394))
-   Updated minimum supported pytest version to v8.4.0. ([1397](https://github.com/pytest-dev/pytest-asyncio/issues/1397))

Notes for Downstream Packagers

-   Added dependency on `sphinx-tabs >= 3.5` to organize documentation examples into tabs. ([1395](https://github.com/pytest-dev/pytest-asyncio/issues/1395))

1.4.0a0

[1.4.0a0](https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a0) - 2026-03-25

Added

-   Added the `pytest_asyncio_loop_factories` hook to parametrize asyncio tests with custom event loop factories.

 The hook now returns a mapping of factory names to loop factories, and `pytest.mark.asyncio(loop_factories=[...])` can be used to select a subset of configured factories per test. ([1164](https://github.com/pytest-dev/pytest-asyncio/issues/1164))

Changed

-   Improved the readability of the warning message that is displayed when `asyncio_default_fixture_loop_scope` is unset ([1298](https://github.com/pytest-dev/pytest-asyncio/issues/1298))
Links

Update pyobjc from 12.1 to 12.2.

Changelog

12.2

------------

* Update framework bindings for macOS 26.5 SDK

* The following code failed at the last line in previous versions:

.. sourcecode:: python

  class MyObject(NSObject):
      pass

  obj = MyObject()
  obj.alloc = MyObject.alloc
  print(obj.alloc)  Raised AttributeError

* Backward incompatible changes:

``CFBagCreate`` and ``CFBagCreateMutable`` now match the API in Objective-C, that
is, a value for the ``callbacks`` argument must be passed (must be ``kCFTypeBagCallBacks``).

* :issue:`663`: Fix retain count management for the callbacks registered
with :func:`DARegisterDiskEjectApprovalCallback <DiskArbitration.DARegisterDiskEjectApprovalCallback>`,
:func:`DARegisterDiskMountApprovalCallback <DiskArbitration.DARegisterDiskMountApprovalCallback>`, and
:func:`DARegisterDiskUnmountApprovalCallback <DiskArbitration.DARegisterDiskUnmountApprovalCallback>` in
:doc:`DiskArbitration </apinotes/DiskArbitration>` bindings.

* "Hidden" instance methods were not hidden when looking them
up as an attribute on the class, but found an unbound method
as if the method was not hidden.

* "Hidden" instance methods were visible in ``dir(SomeClass)``.

* :issue:`664`: Fix ``anObject.methodForSelector_(some_selector)`` resolving
to a class method IMP when a bound selector object for ``some_selector``
is a class attribute.

* Fixed some memory leaks on unlikely error paths.

* :issue:`637`: ``numbers.Number`` values are proxies as an ``NSNumber`` value.

* :issue:`665`: the ``__new__`` of Objective-C classes now also support keyword
arguments derived from class selectors of the form ``valueWithKey1:key2:`` (with
an arbitrary prefix instead of ``value``).

The following calls are now possible (as examples):

- ``Foundation.NSHost(address="www.python.org")``, returns ``Foundation.NSHost.hostWithAddress_("www.python.org")``.

- ``AppKit.NSImage(systemSymbolName="multiply.circle.fill", accessibilityDescription="multiply icon")``, returns
 ``AppKit.NSColor.colorWithSystemSymbolName_accessibilityDescription_("multiply.circle.fill", "multiply icon")``.

* Add ``NSMutableData.take_bytes`` on Python 3.15 to mirror the new :class:`bytearray` method
of the same name.

* Rewrite the construction of objects representing method and function metadata, this should result in
(slightly) less memory usage.

* This release gets the testsuite for pyobjc-core to a point where there is
comprehensive test coverage for the entire bridge. All extension modules now
have 100% test coverage according to lcov, although with use for exclusion comments
to ignore code blocks that cannot be reached for various reasons (e.g. ``PyDict_New``
can fail, but that only happens when running out of memory and it not preproducable
during testing).

This enables refactoring the code in pyobjc-core with more confidence that this won't
result in unexpected changes in behaviour.

* Fix error message for invalid argument to a callable with a variable length output buffer argument.

* Fix error handlign for incomplete struct encodings.

* Raise better error when specifying a negative array size for (Objective-)C arguments
where the size of a buffer is passed as one of the arguments to a method or function.

A side effect of this is that a number of manual bindings no longer support passing
-1 as the size of a buffer to derive the size from the Python sequence.

* A Python implementation for a method that returns ``void`` and has a single output
parameter used to leak a reference to the return value.

* Fix crash when a Python implementation with a pass-by-reference output argument
or return value returns an Objective-C instance that is no longer referenced in
Python when the function returns, e.g.:

.. sourcecode:: python

  objc.objc_method(signature=b":o^")
  def myOutput_(self, a):
      return (1, NSObject.alloc().init())

* The bridge could pass a null pointer for a function pointer argument
in some (unlikely) edge cases instead of raising an error.

* Fix various crashes related to edge cases in pass-by-reference
argument handling (none of which happen are used in bindings for
Cocoa frameworks)

* Metadata with a tuple as the value for ``c_array_length_in_arg`` for
an output argument is now honored for methods implemented in Python.

* Fix crash when ``c_array_length_in_arg`` metadata refers to
an non-existing argument.

* Fix handling of transient proxy value, such as when Objective-C
calls a Python method when the object is kept alive from Objective-C
(no active reference in Python).

Edge case found while debugging an unexpected crash in the
free-threaded build which uncovered a bug that also affected
the regular build (but was not triggered there in the test suite).

* ``aValue.methodForSelector_`` now works when the selector is implemented
in Python, the result will be the Python callable (not wrapped in an
:type:`objc.IMP` value).

* A small milestone over the last couple of releases is that test coverage
of the C extension in ``pyobjc-core`` is now at 100%, although with a
liberal sprinkling of coverage exclusions for conditions that cannot
be triggered during testing (such as memory errors).

This makes it possible to refactor parts of this extension module with
more confidence, and has fixed a number of issues in edge conditions.

* :issue:`644`: A number of constants in the CoreAudio bindings evaluated
to byte strings, while the framework expects regular strings.

* :class:`Foundation.NSDecimalNumber` can no longer be subclassed in Python.

Subclasses was possible in older versions, but this is something that
isn't supported in Objective-C and has unexpected behaviour.

* The ``cobject`` and ``c_void_p`` arguments for opaque pointer types
and :class:`objc.objc_object` are now keyword only.

This should not affect user code because passing these values by
value isn't useful (esp. because the ``c_void_p`` argument is the only
one that's useful for interop with 3th-party code).

* :issue:`668`: "frozendict" is supported with Python 3.15a7 and later.

- Instances roundtrip to Objective-C objects similarly as the ``dict`` type,
 including for keyed archiving. For non-keyed archiving a ``frozendict`` value
 is read back as a plain ``dict``.

- The ``__metadata__`` method on :class:`objc.function`, :class:`objc.selector`,
 and :class:`objc.IMP` now returns a ``frozendict`` instead of a regular dict
 to indicate that changing the value has no effect.

* :issue:`674`: Drop GIL when sending KVO notifications

PR by github user `Tim Clem <https://github.com/misterfifths>`_.

* :issue:`669`: Drop dependency on :func:`dis.dis`

PR by github user `Max Bélanger <https://github.com/maxbelanger>`_.
Links

Update ufo2ft from 3.7.3 to 3.8.1.

Changelog

3.8.1

Fixed `Lib/ufo2ft/_version.py` file missing which caused `ufo2ft.__version__`
to be incorrectly reported as "0.0.0+unknown". This has been broken at least
since ufo2ft v3.6.7 (October 2025) when we first moved setuptools-scm config
to pyproject.toml.

3.8.0

- [instantiator] Fixed assertion error when instancing fonts with multiple sparse/virtual masters but only a single default info master (981, 983).
- [propagateAnchors] Ported the anchor propagation algorithm from glyphsLib and fontc, matching the original one from Glyphs.app (985).   
Added support for `public.openTypeCategories` in the designspace lib (now prioritized over per-UFO lib.plist).  
Allow caller (e.g. fontmake) to pass optional `preliminaryOpenTypeCategories` with a set of mark and ligature glyphs to be used by the new `propagateAnchors` when explicit `public.openTypeCategories` are not present in the source (802, 985).
Links

@pyup-bot

pyup-bot commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator Author

Closing this in favor of #542

@pyup-bot pyup-bot closed this Jun 8, 2026
@justvanrossum
justvanrossum deleted the pyup-scheduled-update-2026-06-01 branch June 8, 2026 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant