mirror of
https://github.com/python/cpython.git
synced 2026-06-04 16:50:51 +00:00
gh-140924: In locale module, add missing names to __all__ (GH-140925)
This commit is contained in:
parent
56171da341
commit
2d3dec0fbd
3 changed files with 40 additions and 5 deletions
|
|
@ -17,17 +17,14 @@
|
|||
from builtins import str as _builtin_str
|
||||
import functools
|
||||
|
||||
# Try importing the _locale module.
|
||||
#
|
||||
# If this fails, fall back on a basic 'C' locale emulation.
|
||||
|
||||
# Yuck: LC_MESSAGES is non-standard: can't tell whether it exists before
|
||||
# trying the import. So __all__ is also fiddled at the end of the file.
|
||||
__all__ = ["getlocale", "getdefaultlocale", "getpreferredencoding", "Error",
|
||||
"setlocale", "localeconv", "strcoll", "strxfrm",
|
||||
"str", "atof", "atoi", "format_string", "currency",
|
||||
"normalize", "LC_CTYPE", "LC_COLLATE", "LC_TIME", "LC_MONETARY",
|
||||
"LC_NUMERIC", "LC_ALL", "CHAR_MAX", "getencoding"]
|
||||
"LC_NUMERIC", "LC_ALL", "CHAR_MAX", "getencoding", "delocalize",
|
||||
"localize"]
|
||||
|
||||
def _strcoll(a,b):
|
||||
""" strcoll(string,string) -> int.
|
||||
|
|
@ -41,6 +38,9 @@ def _strxfrm(s):
|
|||
"""
|
||||
return s
|
||||
|
||||
# Try importing the _locale module.
|
||||
#
|
||||
# If this fails, fall back on a basic 'C' locale emulation.
|
||||
try:
|
||||
|
||||
from _locale import *
|
||||
|
|
@ -91,6 +91,29 @@ def setlocale(category, value=None):
|
|||
raise Error('_locale emulation only supports "C" locale')
|
||||
return 'C'
|
||||
|
||||
else:
|
||||
_conditional_constants_names = ["ABDAY_1", "ABDAY_2", "ABDAY_3",
|
||||
"ABDAY_4", "ABDAY_5", "ABDAY_6",
|
||||
"ABDAY_7", "ABMON_1", "ABMON_10",
|
||||
"ABMON_11", "ABMON_12", "ABMON_2",
|
||||
"ABMON_3", "ABMON_4", "ABMON_5",
|
||||
"ABMON_6", "ABMON_7", "ABMON_8",
|
||||
"ABMON_9", "ALT_DIGITS", "CODESET",
|
||||
"CRNCYSTR", "DAY_1", "DAY_2", "DAY_3",
|
||||
"DAY_4", "DAY_5", "DAY_6",
|
||||
"DAY_7", "D_FMT", "D_T_FMT",
|
||||
"ERA", "ERA_D_FMT", "ERA_D_T_FMT",
|
||||
"ERA_T_FMT", "MON_1", "MON_10",
|
||||
"MON_11", "MON_12", "MON_2", "MON_3",
|
||||
"MON_4", "MON_5", "MON_6", "MON_7",
|
||||
"MON_8", "MON_9", "NOEXPR",
|
||||
"RADIXCHAR", "THOUSEP", "T_FMT",
|
||||
"T_FMT_AMPM", "YESEXPR", "AM_STR",
|
||||
"PM_STR"]
|
||||
# The constants defined in _locale are platform-dependent,
|
||||
# so we only include those that are available on the current platform.
|
||||
__all__.extend(vars().keys() & _conditional_constants_names)
|
||||
|
||||
# These may or may not exist in _locale, so be sure to set them.
|
||||
if 'strxfrm' not in globals():
|
||||
strxfrm = _strxfrm
|
||||
|
|
|
|||
|
|
@ -9,6 +9,15 @@
|
|||
import sys
|
||||
import codecs
|
||||
|
||||
|
||||
class MiscTestCase(unittest.TestCase):
|
||||
maxDiff = None
|
||||
def test__all__(self):
|
||||
extra = ["localeconv", "strcoll", "strxfrm", "getencoding",
|
||||
"Error"]
|
||||
not_exported = ["locale_encoding_alias", "locale_alias", "windows_locale"]
|
||||
support.check__all__(self, locale, extra=extra, not_exported=not_exported)
|
||||
|
||||
class LazyImportTest(unittest.TestCase):
|
||||
@cpython_only
|
||||
def test_lazy_import(self):
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
Add :func:`locale.localize`, :func:`locale.delocalize`
|
||||
and platform-specific locale constants
|
||||
from the :mod:`!_locale` module to ``locale.__all__``.
|
||||
Loading…
Add table
Add a link
Reference in a new issue