What’s new in Python 3.16¶
- Editor:
TBD
This article explains the new features in Python 3.16, compared to 3.15.
For full details, see the changelog.
Σημείωση
Prerelease users should be aware that this document is currently in draft form. It will be updated substantially as Python 3.16 moves towards release, so it’s worth checking back even after reading earlier versions.
Summary — release highlights¶
New features¶
Other language changes¶
New modules¶
None yet.
Improved modules¶
module_name¶
TODO
Optimizations¶
module_name¶
TODO
Removed¶
annotationlib¶
The
annotationlib.ForwardRef._evaluate()method which has been deprecated since Python 3.14. Useannotationlib.ForwardRef.evaluate()ortyping.evaluate_forward_ref()instead.
asyncio¶
The
asyncio.iscoroutinefunction()which has been deprecated since Python 3.14. Useinspect.iscoroutinefunction()instead.
functools¶
Calling the Python implementation of
functools.reduce()with function or sequence as keyword arguments has been deprecated since Python 3.14.
logging¶
Support for custom logging handlers with the strm argument is deprecated and scheduled for removal in Python 3.16. Define handlers with the stream argument instead.
mimetypes¶
Valid extensions start with a “.” or are empty for
mimetypes.MimeTypes.add_type(). Undotted extensions now raise aValueError.
symtable¶
The
symtable.Class.get_methods()method which has been deprecated since Python 3.14.
sys¶
The
_enablelegacywindowsfsencoding()function which has been deprecated since Python 3.13. Use thePYTHONLEGACYWINDOWSFSENCODINGenvironment variable instead. (Contributed by Stan Ulbrych in gh-149595.)
sysconfig¶
The
sysconfig.expand_makefile_vars()function which has been deprecated since Python 3.14. Use thevarsargument ofsysconfig.get_paths()instead.
tarfile¶
The undocumented and unused
tarfile.TarFile.tarfileattribute has been deprecated since Python 3.13.
Deprecated¶
module_name: TODO
Porting to Python 3.16¶
This section lists previously described changes and other bugfixes that may require changes to your code.
Build changes¶
Remove the bundled copy of the libmpdec decimal library from the CPython source tree to simplify maintenence and updates. The
decimalmodule will now unconditionally use the system’s libmpdec decimal library. Also remove the now unused--with-system-libmpdecconfigure flag. This change has no impact on binary releases of Python, which have been built against a separate copy of libmpdec for the past several releases.(Contributed by Sergey B Kirpichev in gh-115119.)
C API changes¶
New features¶
TODO
Porting to Python 3.16¶
TODO
Deprecated C APIs¶
TODO