Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scheduled weekly dependency update for week 24 #3570

Closed
wants to merge 3 commits into from

Conversation

pyup-bot
Copy link
Collaborator

Update ufo2ft from 3.2.3 to 3.2.5.

Changelog

3.2.5

- Removed unnecessary assertions that may sometime trigger an AssertionError while setting a glyph's right margin in dottedCircle filter (849).

3.2.4

- Fix variable anchors when DesignSpace source specifies a layer (842).
- Update the old kernFeatureWriter2.py to be able to output variable FEA for use when compiling features once per VF (841, 845).
Links

Update pyobjc from 10.2 to 10.3.1.

Changelog

10.3.1

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

* :issue:`610`: Ensure ``__init__`` can be used when user implements ``__new__``.

Version 10.3 dropped support for calling ``__init__``, but that breaks
a number of popular projects. Reintroduce the ability to use ``__init__``
when a class or one of its super classes contains a user implemenentation
of ``__new__``.

Code relying on the ``__new__`` provided by PyObjC still cannot use
``__init__`` for the reason explained in the 10.3 release notes.

10.3

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

* The release contains binary wheels for Python 3.13

PyObjC does at this time not support the experimental free threading
support in Python 3.13.

* :issue:`569`: Removed the workaround for a bug in Xcode 15.0

The workaround is no longer necessary, and caused problems when
building with the Command Line Tools development tools from Apple.

* Updated SDK bindings for macOS 14.5

* A minor change in the (currently private) tooling I use for
collecting the raw metadata resulted in minor fixes to the framework
bindings, in particular for metadata for a number of block and function
typed arguments and return values.

* :issue:`275`: It is now possible to create instances of Objective-C
classes by calling the class, e.g. ``NSObject()`` instead of
``NSObject.alloc().init()``.

The implementation of ``__new__`` forwards calls to the underlying
``SomeClass.alloc().init...()`` pattern. In particular, all public init
methods are translated into sets of keyword arguments:

- Remove `init` or `initWith` from the start of the selector name
- Lowercase the first character of what's left over
- The strings before colons are acceptable keywords, in that order

For example, given a selector ``initWithX:y:`` the ``__new__`` method
will accept ``x, y`` as keyword arguments, in that order.

Framework bindings have been updated with additional metadata to support
this pattern, and the sets of keyword arguments are automatically calculated
for subclasses in written in Python.

The limitation on the order of keyword arguments may be lifted in a future
version, it is currently present to keep the code closer to the Objective-C
spelling which should make it easier to look up documentation on Apple's
website.

* For some Objective-C classes some of the `init` and `new` methods are not
available even if they are available in super classes. Those methods are
marked with ``NS_UNAVAILABLE`` in Apple's headers.

As of this version these methods are also not available in Python code,
trying to call them will result in an exception.

To make methods unavailable in Python classes set these methods to ``None``,
e.g.:

python

class MyObject(NSObject):
  init = None  NS_UNAVAILABLE


* Added :func:`objc.registerUnavailableMethod`,
:func:`objc.registerNewKeywordsFromSelector` and
:func:`objc.registerNewKeywords` to support the generic ``__new__``
in framework bindings.

A limitation for ``registerUnavailableMethod`` is that it is currently
not supported to reintroduce the method in a subclass, primarily because
that functionality is not needed for framework bindings.

* Instantiating an Objective-C class by calling the class (e.g. invoking
``__new__``) will not call ``__init__`` even if one is defined.

The implementation of a subclass of ``NSObject`` should always follow
the Objective-C convention for initializing using one or more
methods with a name starting with ``init``.

This can affect code that manually defines a ``__new__`` method for
an Objective-C class, in previous versions that was the only way
to create instances in a Pythontic way.

The primairy reason for this change is that the new default ``__new__``
implementation resulted in calling ``__init__`` for some code paths and
not others due to the python semantics for creating instances, e.g.:

.. sourcecode:: python3

  class MyDocument(NSDocument):
      def __init__(self, *args, **kwds): pass

  document = MyDocument()    __init__ gets called
  document, error = MyDocument(type="mytype", error=None).  __init__ does not get called

In the last statement ``__init__`` does not get called because
``__new__`` does not return an instance of ``MyDocument``.

* ``NSArray``, ``NSMutableArray``, ``NSSet`` and ``NSMutableSet`` accepted
a ``sequence`` keyword argument in previous versions. This is no longer supported.

It is still supported to create instances using a positional argument
for a sequence, e.g.  ``NSArray([1, 2, 3])``.

* ``NSData``, ``NSMutableData``, ``NSDecimal``, ``NSString`` and ``NSMutableString``
accepted a ``value`` keyword argument in previous versions. This is no longer supported.

It is still supported to create instances using a positional argument,
e.g.  ``NSData(b"hello")``.

* ``NSDictionary`` and ``NSMutableDictionary`` do *not* support the
generic new interface because this conflicts with having a similar
interface to ``dict`` for creating instances.

That is, ``NSDictionary(a=4, b=5)`` is the same as ``NSDictionary({"a":4, "b":5})``,
and not like ``NSDictionary.alloc().initWithA_b_(4, 5)``.

10.2.1

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

* Fix possible memory corruption in the implementation of ``forwardInvocation:``
for Python classes.

* Fix build error when building with a python configured with ``--with-pydebug``.

* Don't override ``tp_dealloc`` slot in :class:`objc.super` but use the one
inherited from :class:`super`. This makes sure construction and deallocation
are consistent with each other (found while testing with ``--with-pydebug``).

* Fix deprecation warning while compiling ``pyobjc-framework-Quartz``.
Links

Update sympy from 1.12 to 1.12.1.

Changelog

1.12.1

See https://github.com/sympy/sympy/wiki/release-notes-for-1.12.1 for release notes

1.12.1rc1

See https://github.com/sympy/sympy/wiki/release-notes-for-1.12.1 for release notes
Links

@pyup-bot
Copy link
Collaborator Author

Closing this in favor of #3575

@pyup-bot pyup-bot closed this Jun 24, 2024
@anthrotype anthrotype deleted the pyup-scheduled-update-2024-06-17 branch June 24, 2024 15:50
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.

None yet

1 participant