






__a :    Optional[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      _SCREAMING_SNAKE_CASE  (	__lowercase				:     str      )  -> str:





    """simple docstring"""

    __A             =		str(__lowercase      ).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(__lowercase      )     ,			4      )[0] + 1) - len(__lowercase      )) + binary_str
    )

    __A             =		[]
    for x in range(0     ,			len(__lowercase      )     ,			4      ):
        hexadecimal.append(BITS_TO_HEX[binary_str[x : x + 4]]      )
    __A             =		"""0x""" + """""".join(__lowercase      )

    return "-" + hexadecimal_str if is_negative else hexadecimal_str


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

  testmod()












from ..utils import DummyObject, requires_backends


__a :    int								=				None



def      _SCREAMING_SNAKE_CASE  (	*__lowercase				:     Any     ,			**__lowercase				:     Optional[int]      )  -> Tuple:





    """simple docstring"""

    requires_backends(__lowercase     ,			["""sentencepiece""", """tokenizers"""]      )




