Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/numpy/core/_string_helpers.py: 63%
15 statements
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
1"""
2String-handling utilities to avoid locale-dependence.
4Used primarily to generate type name aliases.
5"""
6# "import string" is costly to import!
7# Construct the translation tables directly
8# "A" = chr(65), "a" = chr(97)
9_all_chars = [chr(_m) for _m in range(256)]
10_ascii_upper = _all_chars[65:65+26]
11_ascii_lower = _all_chars[97:97+26]
12LOWER_TABLE = "".join(_all_chars[:65] + _ascii_lower + _all_chars[65+26:])
13UPPER_TABLE = "".join(_all_chars[:97] + _ascii_upper + _all_chars[97+26:])
16def english_lower(s):
17 """ Apply English case rules to convert ASCII strings to all lower case.
19 This is an internal utility function to replace calls to str.lower() such
20 that we can avoid changing behavior with changing locales. In particular,
21 Turkish has distinct dotted and dotless variants of the Latin letter "I" in
22 both lowercase and uppercase. Thus, "I".lower() != "i" in a "tr" locale.
24 Parameters
25 ----------
26 s : str
28 Returns
29 -------
30 lowered : str
32 Examples
33 --------
34 >>> from numpy.core.numerictypes import english_lower
35 >>> english_lower('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_')
36 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789_'
37 >>> english_lower('')
38 ''
39 """
40 lowered = s.translate(LOWER_TABLE)
41 return lowered
44def english_upper(s):
45 """ Apply English case rules to convert ASCII strings to all upper case.
47 This is an internal utility function to replace calls to str.upper() such
48 that we can avoid changing behavior with changing locales. In particular,
49 Turkish has distinct dotted and dotless variants of the Latin letter "I" in
50 both lowercase and uppercase. Thus, "i".upper() != "I" in a "tr" locale.
52 Parameters
53 ----------
54 s : str
56 Returns
57 -------
58 uppered : str
60 Examples
61 --------
62 >>> from numpy.core.numerictypes import english_upper
63 >>> english_upper('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_')
64 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'
65 >>> english_upper('')
66 ''
67 """
68 uppered = s.translate(UPPER_TABLE)
69 return uppered
72def english_capitalize(s):
73 """ Apply English case rules to convert the first character of an ASCII
74 string to upper case.
76 This is an internal utility function to replace calls to str.capitalize()
77 such that we can avoid changing behavior with changing locales.
79 Parameters
80 ----------
81 s : str
83 Returns
84 -------
85 capitalized : str
87 Examples
88 --------
89 >>> from numpy.core.numerictypes import english_capitalize
90 >>> english_capitalize('int8')
91 'Int8'
92 >>> english_capitalize('Int8')
93 'Int8'
94 >>> english_capitalize('')
95 ''
96 """
97 if s:
98 return english_upper(s[0]) + s[1:]
99 else:
100 return s