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.
"""
return s
+# Try importing the _locale module.
+#
+# If this fails, fall back on a basic 'C' locale emulation.
try:
from _locale import *
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