STINNER Victor <vstin...@python.org> added the comment:
Guido: > Sorry for making this a deferred blocker. I recall that we had a brief > discussion somewhere about an accidental change to the array.array type -- > this is now a heap type (Py_TPFLAGS_HEAPTYPE is set), and as a consequence it > is no longer immutable. *Many* static types have been converted to heap types in Python 3.9 and Python 3.10. Is there a rule to decide which types should be mutable or not? All types implemented in Python are mutable, unless the very few which use slots. By the way, some cases can be inherited or not. Do we care about that? Example: $ python3 Python 3.9.2 (default, Feb 20 2021, 00:00:00) >>> def f(): pass ... >>> class MyFuncType(type(f)): pass ... Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: type 'function' is not an acceptable base type ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue43908> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com