gh-111276: Clarify docs and comments about the role of LC_CTYPE (#111319)

Fix locale.LC_CTYPE documentation to no longer mention string.lower() et al. Those functions were removed in Python 3.0:
https://docs.python.org/2/library/string.html#deprecated-string-functions

Also, fix a comment in logging about locale-specific behavior of `str.lower()`.

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
This commit is contained in:
Łukasz Langa 2023-10-27 11:43:01 +02:00 committed by GitHub
parent 74f0772892
commit 6d42759c5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 8 deletions

View File

@ -454,11 +454,16 @@ The :mod:`locale` module defines the following exception and functions:
.. data:: LC_CTYPE
.. index:: pair: module; string
Locale category for the character type functions. Most importantly, this
category defines the text encoding, i.e. how bytes are interpreted as
Unicode codepoints. See :pep:`538` and :pep:`540` for how this variable
might be automatically coerced to ``C.UTF-8`` to avoid issues created by
invalid settings in containers or incompatible settings passed over remote
SSH connections.
Locale category for the character type functions. Depending on the settings of
this category, the functions of module :mod:`string` dealing with case change
their behaviour.
Python doesn't internally use locale-dependent character transformation functions
from ``ctype.h``. Instead, an internal ``pyctype.h`` provides locale-independent
equivalents like :c:macro:`!Py_TOLOWER`.
.. data:: LC_COLLATE

View File

@ -830,10 +830,8 @@ class SysLogHandler(logging.Handler):
"local7": LOG_LOCAL7,
}
#The map below appears to be trivially lowercasing the key. However,
#there's more to it than meets the eye - in some locales, lowercasing
#gives unexpected results. See SF #1524081: in the Turkish locale,
#"INFO".lower() != "info"
# Originally added to work around GH-43683. Unnecessary since GH-50043 but kept
# for backwards compatibility.
priority_map = {
"DEBUG" : "debug",
"INFO" : "info",