




'''simple docstring'''


lowerCAmelCase_			:     int							    =     {
    '0000': '0',
    '0001': '1',
    '0010': '2',
    '0011': '3',
    '0100': '4',
    '0101': '5',
    '0110': '6',
    '0111': '7',
    '1000': '8',
    '1001': '9',
    '1010': 'a',
    '1011': 'b',
    '1100': 'c',
    '1101': 'd',
    '1110': 'e',
    '1111': 'f',
}



def    _SCREAMING_SNAKE_CASE    (			UpperCamelCase__						:				str							):




     """simple docstring"""


     a_    :       Union[str, Any]    	=     str(UpperCamelCase__							).strip()

     # Exceptions
     if not binary_str:
          raise ValueError("""Empty string was passed to the function"""							)
     a_    :       int    	=     binary_str[0] == """-"""
     a_    :       Tuple    	=     binary_str[1:] if is_negative else binary_str
     if not all(char in """01""" for char in binary_str							):
          raise ValueError("""Non-binary value was passed to the function"""							)

     a_    :       List[Any]    	=     (
         """0""" * (4 * (divmod(len(UpperCamelCase__							)   ,						4							)[0] + 1) - len(UpperCamelCase__							)) + binary_str
     )

     a_    :       List[str]    	=     []
     for x in range(0   ,						len(UpperCamelCase__							)   ,						4							):
          hexadecimal.append(BITS_TO_HEX[binary_str[x : x + 4]]							)
     a_    :       Optional[Any]    	=     """0x""" + """""".join(UpperCamelCase__							)

     return "-" + hexadecimal_str if is_negative else hexadecimal_str


if __name__ == "__main__":
 from doctest import testmod

 testmod()






'''simple docstring'''


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_sentencepiece_available, is_tokenizers_available


lowerCAmelCase_			:     str							    =     {}

try:
 if not is_sentencepiece_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCAmelCase_			:     Optional[int]							    =     ['CpmTokenizer']

try:
 if not is_tokenizers_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCAmelCase_			:     Union[str, Any]							    =     ['CpmTokenizerFast']


if TYPE_CHECKING:
 try:
  if not is_sentencepiece_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .tokenization_cpm import CpmTokenizer

 try:
  if not is_tokenizers_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .tokenization_cpm_fast import CpmTokenizerFast

else:
 import sys

 lowerCAmelCase_			:     Any							    =     _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)
