





__A       : Union[str, Any]						    = {
    "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 							__lowerCAmelCase(					_SCREAMING_SNAKE_CASE							)       ->   str:




				"""simple docstring"""




				_A    =       str(_SCREAMING_SNAKE_CASE							).strip()

				# Exceptions
				if not binary_str:
								raise ValueError('Empty string was passed to the function'							)
				_A    =       binary_str[0] == '-'
				_A    =       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    =       (
				    '0' * (4 * (divmod(len(_SCREAMING_SNAKE_CASE							)       ,    4							)[0] + 1) - len(_SCREAMING_SNAKE_CASE							)) + binary_str
				)

				_A    =       []
				for x in range(0       ,    len(_SCREAMING_SNAKE_CASE							)       ,    4							):
								hexadecimal.append(BITS_TO_HEX[binary_str[x : x + 4]]							)
				_A    =       '0x' + ''.join(_SCREAMING_SNAKE_CASE							)

				return "-" + hexadecimal_str if is_negative else hexadecimal_str


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

	testmod()












from ..utils import DummyObject, requires_backends


__A       : str						    = None





def 							__lowerCAmelCase(					*_SCREAMING_SNAKE_CASE       ,    **_SCREAMING_SNAKE_CASE							)       ->   Tuple:




    """simple docstring"""




    requires_backends(_SCREAMING_SNAKE_CASE       ,    ['sentencepiece', 'tokenizers']							)





