From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 27 Sep 2024 21:23:16 +0000 (+0200) Subject: [3.13] gh-124520: What's New entry for ctypes metaclass __new__/__init__ change ... X-Git-Tag: v3.13.0rc3~52 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ec4d7b5d22060c8a485876306294196a0e9aeea6;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-124520: What's New entry for ctypes metaclass __new__/__init__ change (GH-124546) (#124708) gh-124520: What's New entry for ctypes metaclass __new__/__init__ change (GH-124546) (cherry picked from commit 3387f76b8f0b9f5ef89f9526c583bcc3dc36f486) Co-authored-by: Petr Viktorin --- diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst index 45817799b542..52fe749697cf 100644 --- a/Doc/whatsnew/3.13.rst +++ b/Doc/whatsnew/3.13.rst @@ -824,6 +824,24 @@ copy (Contributed by Serhiy Storchaka in :gh:`108751`.) +ctypes +------ + +* As a consequence of necessary internal refactoring, initialization of + internal metaclasses now happens in ``__init__`` rather + than in ``__new__``. This affects projects that subclass these internal + metaclasses to provide custom initialization. + Generally: + + - Custom logic that was done in ``__new__`` after calling ``super().__new__`` + should be moved to ``__init__``. + - To create a class, call the metaclass, not only the metaclass's + ``__new__`` method. + + See :gh:`124520` for discussion and links to changes in some affected + projects. + + dbm ---