*language code* and *encoding* may be ``None`` if their values cannot be
determined.
- .. deprecated-removed:: 3.11 3.13
+ .. deprecated-removed:: 3.11 3.15
.. function:: getlocale(category=LC_CTYPE)
* :func:`importlib.resources.path`
* The :func:`locale.getdefaultlocale` function is deprecated and will be
- removed in Python 3.13. Use :func:`locale.setlocale`,
+ removed in Python 3.15. Use :func:`locale.setlocale`,
:func:`locale.getpreferredencoding(False) <locale.getpreferredencoding>` and
:func:`locale.getlocale` functions instead.
(Contributed by Victor Stinner in :gh:`90817`.)
APIs:
* :class:`!configparser.LegacyInterpolation` (:gh:`90765`)
-* :func:`locale.getdefaultlocale` (:gh:`90817`)
* ``locale.resetlocale()`` (:gh:`90817`)
* :meth:`!turtle.RawTurtle.settiltangle` (:gh:`50096`)
* :func:`!unittest.findTestCases` (:gh:`50096`)
* The ``co_lnotab`` attribute of code objects.
+Pending Removal in Python 3.15
+------------------------------
+
+The following APIs have been deprecated
+and will be removed in Python 3.15.
+
+APIs:
+
+* :func:`locale.getdefaultlocale` (:gh:`90817`)
+
+
Pending Removal in Future Versions
----------------------------------
rarely used. No direct replacement exists. *Anything* is better than CGI
to interface a web server with a request handler.
+* :class:`locale`: :func:`locale.getdefaultlocale` was deprecated in Python 3.11
+ and originally planned for removal in Python 3.13 (:gh:`90817`),
+ but removal has been postponed to Python 3.15.
+ Use :func:`locale.setlocale()`, :func:`locale.getencoding()` and
+ :func:`locale.getlocale()` instead.
+ (Contributed by Hugo van Kemenade in :gh:`111187`.)
+
* :class:`typing.NamedTuple`:
* The undocumented keyword argument syntax for creating NamedTuple classes
<https://importlib-resources.readthedocs.io/en/latest/using.html#migrating-from-legacy>`_
for migration advice.
-* :func:`locale.getdefaultlocale`: use :func:`locale.setlocale()`,
- :func:`locale.getencoding()` and :func:`locale.getlocale()` instead
- (:gh:`90817`)
-
* :mod:`mailbox`: Use of StringIO input and text mode is deprecated, use
BytesIO and binary mode instead.
"""
import warnings
- warnings.warn(
- "Use setlocale(), getencoding() and getlocale() instead",
- DeprecationWarning, stacklevel=2
- )
+ warnings._deprecated(
+ "locale.getdefaultlocale",
+ "{name!r} is deprecated and slated for removal in Python {remove}. "
+ "Use setlocale(), getencoding() and getlocale() instead.",
+ remove=(3, 15))
return _getdefaultlocale(envvars)
+
def _getdefaultlocale(envvars=('LC_ALL', 'LC_CTYPE', 'LANG', 'LANGUAGE')):
try:
# check if it's supported by the _locale module
--- /dev/null
+Postpone removal version for locale.getdefaultlocale() to Python 3.15.