mercurial/encoding.py
changeset 51936 54d9f496f07a
parent 51859 f4733654f144
child 52639 9db77d46de79
equal deleted inserted replaced
51935:8d9767bf4adb 51936:54d9f496f07a
    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.