bpo-46659: Deprecate locale.getdefaultlocale() (GH-31206)

The locale.getdefaultlocale() function is deprecated and will be
removed in Python 3.13. Use locale.setlocale(),
locale.getpreferredencoding(False) and locale.getlocale() functions
instead.
This commit is contained in:
Victor Stinner 2022-02-22 22:06:43 +01:00 committed by GitHub
parent ccbe8045fa
commit b899126094
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 20 additions and 1 deletions

View File

@ -301,6 +301,8 @@ The :mod:`locale` module defines the following exception and functions:
*language code* and *encoding* may be ``None`` if their values cannot be
determined.
.. deprecated:: 3.11 3.13
.. function:: getlocale(category=LC_CTYPE)

View File

@ -486,6 +486,12 @@ Deprecated
(Contributed by Hugo van Kemenade in :issue:`45173`.)
* The :func:`locale.getdefaultlocale` function is deprecated and will be
removed in Python 3.13. Use :func:`locale.setlocale`,
:func:`locale.getpreferredencoding(False) <locale.getpreferredencoding>` and
:func:`locale.getlocale` functions instead.
(Contributed by Victor Stinner in :issue:`46659`.)
Removed
=======

View File

@ -555,6 +555,12 @@ def getdefaultlocale(envvars=('LC_ALL', 'LC_CTYPE', 'LANG', 'LANGUAGE')):
"""
import warnings
warnings.warn(
"Use setlocale(), getpreferredencoding(False) and getlocale() instead",
DeprecationWarning, stacklevel=2
)
try:
# check if it's supported by the _locale module
import _locale

View File

@ -518,7 +518,8 @@ class TestMiscellaneous(unittest.TestCase):
os.environ['LC_CTYPE'] = 'UTF-8'
self.assertEqual(locale.getdefaultlocale(), (None, 'UTF-8'))
with check_warnings(('', DeprecationWarning)):
self.assertEqual(locale.getdefaultlocale(), (None, 'UTF-8'))
finally:
for k in orig_env:

View File

@ -0,0 +1,4 @@
The :func:`locale.getdefaultlocale` function is deprecated and will be removed
in Python 3.13. Use :func:`locale.setlocale`,
:func:`locale.getpreferredencoding(False) <locale.getpreferredencoding>` and
:func:`locale.getlocale` functions instead. Patch by Victor Stinner.