gh-111187: Postpone removal version for locale.getdefaultlocale() to 3.15 (#111188)

This commit is contained in:
Hugo van Kemenade 2023-10-25 16:47:41 +03:00 committed by GitHub
parent f6304949bb
commit 81ed80d843
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 27 additions and 11 deletions

View file

@ -303,7 +303,7 @@ The :mod:`locale` module defines the following exception and functions:
*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)

View file

@ -1798,7 +1798,7 @@ Standard Library
* :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`.)

View file

@ -1360,7 +1360,6 @@ Other modules:
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`)
@ -1430,6 +1429,17 @@ and will be removed in Python 3.14.
* 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
----------------------------------

View file

@ -500,6 +500,13 @@ Pending Removal in Python 3.15
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
@ -612,10 +619,6 @@ although there is currently no date scheduled for their removal.
<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.

View file

@ -541,12 +541,14 @@ def getdefaultlocale(envvars=('LC_ALL', 'LC_CTYPE', 'LANG', 'LANGUAGE')):
"""
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

View file

@ -0,0 +1 @@
Postpone removal version for locale.getdefaultlocale() to Python 3.15.