Show More
@@ -40,6 +40,16 b' asciiupper = charencode.asciiupper' | |||||
40 |
|
40 | |||
41 | unichr = chr |
|
41 | unichr = chr | |
42 |
|
42 | |||
|
43 | if typing.TYPE_CHECKING: | |||
|
44 | # TODO: make a stub file for .cext.charencode, and import here | |||
|
45 | from .pure.charencode import ( | |||
|
46 | asciilower, | |||
|
47 | asciiupper, | |||
|
48 | isasciistr, | |||
|
49 | jsonescapeu8fast as _jsonescapeu8fast, | |||
|
50 | ) | |||
|
51 | ||||
|
52 | ||||
43 | # These unicode characters are ignored by HFS+ (Apple Technote 1150, |
|
53 | # These unicode characters are ignored by HFS+ (Apple Technote 1150, | |
44 | # "Unicode Subtleties"), so we need to ignore them in some places for |
|
54 | # "Unicode Subtleties"), so we need to ignore them in some places for | |
45 | # sanity. |
|
55 | # sanity. | |
@@ -524,7 +534,7 b' class normcasespecs:' | |||||
524 | other = 0 |
|
534 | other = 0 | |
525 |
|
535 | |||
526 |
|
536 | |||
527 |
def jsonescape(s: |
|
537 | def jsonescape(s: bytes, paranoid: bool = False) -> bytes: | |
528 | """returns a string suitable for JSON |
|
538 | """returns a string suitable for JSON | |
529 |
|
539 | |||
530 | JSON is problematic for us because it doesn't support non-Unicode |
|
540 | JSON is problematic for us because it doesn't support non-Unicode |
@@ -11,7 +11,7 b' import array' | |||||
11 | from .. import pycompat |
|
11 | from .. import pycompat | |
12 |
|
12 | |||
13 |
|
13 | |||
14 | def isasciistr(s): |
|
14 | def isasciistr(s: bytes) -> bool: | |
15 | try: |
|
15 | try: | |
16 | s.decode('ascii') |
|
16 | s.decode('ascii') | |
17 | return True |
|
17 | return True | |
@@ -19,7 +19,7 b' def isasciistr(s):' | |||||
19 | return False |
|
19 | return False | |
20 |
|
20 | |||
21 |
|
21 | |||
22 | def asciilower(s): |
|
22 | def asciilower(s: bytes) -> bytes: | |
23 | """convert a string to lowercase if ASCII |
|
23 | """convert a string to lowercase if ASCII | |
24 |
|
24 | |||
25 | Raises UnicodeDecodeError if non-ASCII characters are found.""" |
|
25 | Raises UnicodeDecodeError if non-ASCII characters are found.""" | |
@@ -27,7 +27,7 b' def asciilower(s):' | |||||
27 | return s.lower() |
|
27 | return s.lower() | |
28 |
|
28 | |||
29 |
|
29 | |||
30 | def asciiupper(s): |
|
30 | def asciiupper(s: bytes) -> bytes: | |
31 | """convert a string to uppercase if ASCII |
|
31 | """convert a string to uppercase if ASCII | |
32 |
|
32 | |||
33 | Raises UnicodeDecodeError if non-ASCII characters are found.""" |
|
33 | Raises UnicodeDecodeError if non-ASCII characters are found.""" | |
@@ -52,7 +52,7 b' def asciiupper(s):' | |||||
52 | _jsonmap.extend(pycompat.bytechr(x) for x in range(128, 256)) |
|
52 | _jsonmap.extend(pycompat.bytechr(x) for x in range(128, 256)) | |
53 |
|
53 | |||
54 |
|
54 | |||
55 | def jsonescapeu8fast(u8chars, paranoid): |
|
55 | def jsonescapeu8fast(u8chars: bytes, paranoid: bool) -> bytes: | |
56 | """Convert a UTF-8 byte string to JSON-escaped form (fast path) |
|
56 | """Convert a UTF-8 byte string to JSON-escaped form (fast path) | |
57 |
|
57 | |||
58 | Raises ValueError if non-ASCII characters have to be escaped. |
|
58 | Raises ValueError if non-ASCII characters have to be escaped. | |
@@ -70,7 +70,7 b' def jsonescapeu8fast(u8chars, paranoid):' | |||||
70 | _utf8strict = r'surrogatepass' |
|
70 | _utf8strict = r'surrogatepass' | |
71 |
|
71 | |||
72 |
|
72 | |||
73 | def jsonescapeu8fallback(u8chars, paranoid): |
|
73 | def jsonescapeu8fallback(u8chars: bytes, paranoid: bool) -> bytes: | |
74 | """Convert a UTF-8 byte string to JSON-escaped form (slow path) |
|
74 | """Convert a UTF-8 byte string to JSON-escaped form (slow path) | |
75 |
|
75 | |||
76 | Escapes all non-ASCII characters no matter if paranoid is False. |
|
76 | Escapes all non-ASCII characters no matter if paranoid is False. |
General Comments 0
You need to be logged in to leave comments.
Login now