Pending removal in Python 3.15¶
- The import system: - Setting - __cached__on a module while failing to set- __spec__.cachedis deprecated. In Python 3.15,- __cached__will cease to be set or take into consideration by the import system or standard library. (gh-97879)
- Setting - __package__on a module while failing to set- __spec__.parentis deprecated. In Python 3.15,- __package__will cease to be set or take into consideration by the import system or standard library. (gh-97879)
 
- 
- The undocumented - ctypes.SetPointerType()function has been deprecated since Python 3.13.
 
- 
- The obsolete and rarely used - CGIHTTPRequestHandlerhas been deprecated since Python 3.13. No direct replacement exists. Anything is better than CGI to interface a web server with a request handler.
- The - --cgiflag to the python -m http.server command-line interface has been deprecated since Python 3.13.
 
- 
- load_module()method: use- exec_module()instead.
 
- 
- The - getdefaultlocale()function has been deprecated since Python 3.11. Its removal was originally planned for Python 3.13 (gh-90817), but has been postponed to Python 3.15. Use- getlocale(),- setlocale(), and- getencoding()instead. (Contributed by Hugo van Kemenade in gh-111187.)
 
- 
- PurePath.is_reserved()has been deprecated since Python 3.13. Use- os.path.isreserved()to detect reserved paths on Windows.
 
- 
- java_ver()has been deprecated since Python 3.13. This function is only useful for Jython support, has a confusing API, and is largely untested.
 
- 
- The check_home argument of - sysconfig.is_python_build()has been deprecated since Python 3.12.
 
- 
- RLock()will take no arguments in Python 3.15. Passing any arguments has been deprecated since Python 3.14, as the Python version does not permit any arguments, but the C version allows any number of positional or keyword arguments, ignoring every argument.
 
- 
- types.CodeType: Accessing- co_lnotabwas deprecated in PEP 626 since 3.10 and was planned to be removed in 3.12, but it only got a proper- DeprecationWarningin 3.12. May be removed in 3.15. (Contributed by Nikita Sobolev in gh-101866.)
 
- 
- The undocumented keyword argument syntax for creating - NamedTupleclasses (for example,- Point = NamedTuple("Point", x=int, y=int)) has been deprecated since Python 3.13. Use the class-based syntax or the functional syntax instead.
- When using the functional syntax of - TypedDicts, failing to pass a value to the fields parameter (- TD = TypedDict("TD")) or passing- None(- TD = TypedDict("TD", None)) has been deprecated since Python 3.13. Use- class TD(TypedDict): passor- TD = TypedDict("TD", {})to create a TypedDict with zero field.
- The - typing.no_type_check_decorator()decorator function has been deprecated since Python 3.13. After eight years in the- typingmodule, it has yet to be supported by any major type checker.
 
- wave:- The - getmark(),- setmark(), and- getmarkers()methods of the- Wave_readand- Wave_writeclasses have been deprecated since Python 3.13.
 
- 
- load_module()has been deprecated since Python 3.10. Use- exec_module()instead. (Contributed by Jiahao Li in gh-125746.)