24 error, |
24 error, |
25 policy, |
25 policy, |
26 pycompat, |
26 pycompat, |
27 ) |
27 ) |
28 |
28 |
|
29 from .interfaces import modules as intmod |
29 from .pure import charencode as charencodepure |
30 from .pure import charencode as charencodepure |
30 |
31 |
31 _Tlocalstr = TypeVar('_Tlocalstr', bound='localstr') |
32 _Tlocalstr = TypeVar('_Tlocalstr', bound='localstr') |
32 |
33 |
33 charencode = policy.importmod('charencode') |
34 charencode: intmod.CharEncoding = policy.importmod('charencode') |
34 |
35 |
35 isasciistr = charencode.isasciistr |
36 isasciistr = charencode.isasciistr |
36 asciilower = charencode.asciilower |
37 asciilower = charencode.asciilower |
37 asciiupper = charencode.asciiupper |
38 asciiupper = charencode.asciiupper |
38 _jsonescapeu8fast = charencode.jsonescapeu8fast |
39 _jsonescapeu8fast = charencode.jsonescapeu8fast |
39 |
40 |
40 _sysstr = pycompat.sysstr |
41 _sysstr = pycompat.sysstr |
41 |
42 |
42 unichr = chr |
43 unichr = chr |
43 |
|
44 if typing.TYPE_CHECKING: |
|
45 # TODO: make a stub file for .cext.charencode, and import here |
|
46 from .pure.charencode import ( |
|
47 asciilower, |
|
48 asciiupper, |
|
49 isasciistr, |
|
50 jsonescapeu8fast as _jsonescapeu8fast, |
|
51 ) |
|
52 |
44 |
53 |
45 |
54 # These unicode characters are ignored by HFS+ (Apple Technote 1150, |
46 # These unicode characters are ignored by HFS+ (Apple Technote 1150, |
55 # "Unicode Subtleties"), so we need to ignore them in some places for |
47 # "Unicode Subtleties"), so we need to ignore them in some places for |
56 # sanity. |
48 # sanity. |