https://github.com/python/cpython/commit/58c6e78c219af352714c8b40d236311e36e8050f
commit: 58c6e78c219af352714c8b40d236311e36e8050f
branch: 3.14
author: Hugo van Kemenade <[email protected]>
committer: hugovk <[email protected]>
date: 2026-06-11T14:34:21+03:00
summary:

[3.14] gh-130796: Undeprecate locale.getdefaultlocale() (GH-143069) (#151317)

Co-authored-by: Victor Stinner <[email protected]>

files:
A Misc/NEWS.d/next/Library/2025-12-23-11-43-05.gh-issue-130796.TkzUGx.rst
M Doc/deprecations/pending-removal-in-3.15.rst
M Doc/library/locale.rst
M Lib/locale.py
M Lib/test/test_locale.py

diff --git a/Doc/deprecations/pending-removal-in-3.15.rst 
b/Doc/deprecations/pending-removal-in-3.15.rst
index 600510cf7f00f8a..814c6904d3e2ab9 100644
--- a/Doc/deprecations/pending-removal-in-3.15.rst
+++ b/Doc/deprecations/pending-removal-in-3.15.rst
@@ -33,16 +33,6 @@ Pending removal in Python 3.15
 
   * ``load_module()`` method: use ``exec_module()`` instead.
 
-* :class:`locale`:
-
-  * The :func:`~locale.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 :func:`~locale.getlocale`, :func:`~locale.setlocale`,
-    and :func:`~locale.getencoding` instead.
-    (Contributed by Hugo van Kemenade in :gh:`111187`.)
-
 * :mod:`pathlib`:
 
   * :meth:`.PurePath.is_reserved`
diff --git a/Doc/library/locale.rst b/Doc/library/locale.rst
index 81ac46eea871b1d..c2c4a0e269de991 100644
--- a/Doc/library/locale.rst
+++ b/Doc/library/locale.rst
@@ -367,8 +367,6 @@ The :mod:`!locale` module defines the following exception 
and functions:
    determined.
    The "C" locale is represented as ``(None, None)``.
 
-   .. deprecated-removed:: 3.11 3.15
-
 
 .. function:: getlocale(category=LC_CTYPE)
 
diff --git a/Lib/locale.py b/Lib/locale.py
index 498af087354c3d2..6984a6a5e2bc187 100644
--- a/Lib/locale.py
+++ b/Lib/locale.py
@@ -545,12 +545,6 @@ def getdefaultlocale(envvars=('LC_ALL', 'LC_CTYPE', 
'LANG', 'LANGUAGE')):
 
     """
 
-    import warnings
-    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)
 
 
diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py
index 8e49aa8954ee0d0..f91843562c30fc5 100644
--- a/Lib/test/test_locale.py
+++ b/Lib/test/test_locale.py
@@ -1,6 +1,5 @@
 from decimal import Decimal
 from test.support import cpython_only, verbose, is_android, linked_to_musl, 
os_helper
-from test.support.warnings_helper import check_warnings
 from test.support.import_helper import ensure_lazy_imports, import_fresh_module
 from unittest import mock
 import unittest
@@ -554,8 +553,7 @@ def test_defaults_UTF8(self):
                 env.unset('LC_ALL', 'LC_CTYPE', 'LANG', 'LANGUAGE')
                 env.set('LC_CTYPE', 'UTF-8')
 
-                with check_warnings(('', DeprecationWarning)):
-                    self.assertEqual(locale.getdefaultlocale(), (None, 
'UTF-8'))
+                self.assertEqual(locale.getdefaultlocale(), (None, 'UTF-8'))
         finally:
             if orig_getlocale is not None:
                 _locale._getdefaultlocale = orig_getlocale
diff --git 
a/Misc/NEWS.d/next/Library/2025-12-23-11-43-05.gh-issue-130796.TkzUGx.rst 
b/Misc/NEWS.d/next/Library/2025-12-23-11-43-05.gh-issue-130796.TkzUGx.rst
new file mode 100644
index 000000000000000..a078561a1014faa
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2025-12-23-11-43-05.gh-issue-130796.TkzUGx.rst
@@ -0,0 +1,2 @@
+Undeprecate the :func:`locale.getdefaultlocale` function.
+Patch by Victor Stinner.

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to