https://github.com/python/cpython/commit/ec4d7b5d22060c8a485876306294196a0e9aeea6
commit: ec4d7b5d22060c8a485876306294196a0e9aeea6
branch: 3.13
author: Miss Islington (bot) <[email protected]>
committer: Yhg1s <[email protected]>
date: 2024-09-27T14:23:16-07:00
summary:

[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 <[email protected]>

files:
M Doc/whatsnew/3.13.rst

diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst
index 45817799b542bc..52fe749697cfa4 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
 ---
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to