Skip to content

Commit

Permalink
pythongh-111187: Postpone removal version for locale.getdefaultlocale…
Browse files Browse the repository at this point in the history
…() to 3.15 (python#111188)
  • Loading branch information
hugovk committed Oct 25, 2023
1 parent f630494 commit 81ed80d
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 11 deletions.
2 changes: 1 addition & 1 deletion Doc/library/locale.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion Doc/whatsnew/3.11.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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`.)
Expand Down
12 changes: 11 additions & 1 deletion Doc/whatsnew/3.12.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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`)
Expand Down Expand Up @@ -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
----------------------------------

Expand Down
11 changes: 7 additions & 4 deletions Doc/whatsnew/3.13.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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.

Expand Down
10 changes: 6 additions & 4 deletions Lib/locale.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Postpone removal version for locale.getdefaultlocale() to Python 3.15.

0 comments on commit 81ed80d

Please sign in to comment.