diff options
author | Victor Stinner <vstinner@python.org> | 2022-02-07 23:24:09 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-07 23:24:09 (GMT) |
commit | 7a0486eaa98083e0407ff491872db6d7a0da2635 (patch) | |
tree | 6c8a06ae69a8caac5e4a2717f4f083f97a798dd5 | |
parent | 7ba1cc8049fbcb94ac039ab02522f78177130588 (diff) | |
download | cpython-7a0486eaa98083e0407ff491872db6d7a0da2635.zip cpython-7a0486eaa98083e0407ff491872db6d7a0da2635.tar.gz cpython-7a0486eaa98083e0407ff491872db6d7a0da2635.tar.bz2 |
bpo-46659: calendar uses locale.getlocale() (GH-31166)
The calendar.LocaleTextCalendar and calendar.LocaleHTMLCalendar
classes module now use locale.getlocale(), instead of using
locale.getdefaultlocale(), if no locale is specified.
-rw-r--r-- | Doc/library/calendar.rst | 2 | ||||
-rw-r--r-- | Doc/whatsnew/3.11.rst | 6 | ||||
-rw-r--r-- | Lib/calendar.py | 4 | ||||
-rw-r--r-- | Lib/test/test_calendar.py | 3 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2022-02-06-19-13-02.bpo-46659.q-vNL9.rst | 4 |
5 files changed, 15 insertions, 4 deletions
diff --git a/Doc/library/calendar.rst b/Doc/library/calendar.rst index b667c42..86f5b14 100644 --- a/Doc/library/calendar.rst +++ b/Doc/library/calendar.rst @@ -290,7 +290,7 @@ interpreted as prescribed by the ISO 8601 standard. Year 0 is 1 BC, year -1 is .. note:: The :meth:`formatweekday` and :meth:`formatmonthname` methods of these two - classes temporarily change the current locale to the given *locale*. Because + classes temporarily change the ``LC_TIME`` locale to the given *locale*. Because the current locale is a process-wide setting, they are not thread-safe. diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index c1f267a..5738745 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -591,6 +591,12 @@ Changes in the Python API of sorting simply isn't well-defined in the absence of a total ordering on list elements. +* :mod:`calendar`: The :class:`calendar.LocaleTextCalendar` and + :class:`calendar.LocaleHTMLCalendar` classes now use + :func:`locale.getlocale`, instead of using :func:`locale.getdefaultlocale`, + if no locale is specified. + (Contributed by Victor Stinner in :issue:`46659`.) + Build Changes ============= diff --git a/Lib/calendar.py b/Lib/calendar.py index 06c65a8..361898d 100644 --- a/Lib/calendar.py +++ b/Lib/calendar.py @@ -566,7 +566,7 @@ class LocaleTextCalendar(TextCalendar): def __init__(self, firstweekday=0, locale=None): TextCalendar.__init__(self, firstweekday) if locale is None: - locale = _locale.getdefaultlocale() + locale = _locale.getlocale(_locale.LC_TIME) self.locale = locale def formatweekday(self, day, width): @@ -586,7 +586,7 @@ class LocaleHTMLCalendar(HTMLCalendar): def __init__(self, firstweekday=0, locale=None): HTMLCalendar.__init__(self, firstweekday) if locale is None: - locale = _locale.getdefaultlocale() + locale = _locale.getlocale(_locale.LC_TIME) self.locale = locale def formatweekday(self, day): diff --git a/Lib/test/test_calendar.py b/Lib/test/test_calendar.py index 39094ad..e6bd4d0 100644 --- a/Lib/test/test_calendar.py +++ b/Lib/test/test_calendar.py @@ -859,7 +859,8 @@ class CommandLineTestCase(unittest.TestCase): self.assertFailure('-L') self.assertFailure('--locale') self.assertFailure('-L', 'en') - lang, enc = locale.getdefaultlocale() + + lang, enc = locale.getlocale() lang = lang or 'C' enc = enc or 'UTF-8' try: diff --git a/Misc/NEWS.d/next/Library/2022-02-06-19-13-02.bpo-46659.q-vNL9.rst b/Misc/NEWS.d/next/Library/2022-02-06-19-13-02.bpo-46659.q-vNL9.rst new file mode 100644 index 0000000..2e30de1 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-02-06-19-13-02.bpo-46659.q-vNL9.rst @@ -0,0 +1,4 @@ +The :class:`calendar.LocaleTextCalendar` and +:class:`calendar.LocaleHTMLCalendar` classes now use :func:`locale.getlocale`, +instead of using :func:`locale.getdefaultlocale`, if no locale is specified. +Patch by Victor Stinner. |