






a    =       {
    '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       a__						(  A					):
   lowercase__						:	Union[str, Any]         = str(A					).strip()

   # Exceptions
   if not binary_str:
      raise ValueError("""Empty string was passed to the function"""					)
   lowercase__						:	Optional[int]         = binary_str[0] == """-"""
   lowercase__						:	str         = 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"""					)

   lowercase__						:	Dict         = (
       """0""" * (4 * (divmod(len(A					)		,				4					)[0] + 1) - len(A					)) + binary_str
   )

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

   return "-" + hexadecimal_str if is_negative else hexadecimal_str


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

 testmod()










import os
import sys
import time

from . import transposition_cipher as trans_cipher
def       a__						(  ):
   lowercase__						:	Union[str, Any]         = """Prehistoric Men.txt"""
   lowercase__						:	Optional[Any]         = """Output.txt"""
   lowercase__						:	List[str]         = int(input("""Enter key: """					)					)
   lowercase__						:	Tuple         = input("""Encrypt/Decrypt [e/d]: """					)

   if not os.path.exists(A					):
      print(F'''File {input_file} does not exist. Quitting...'''					)
      sys.exit()
   if os.path.exists(A					):
      print(F'''Overwrite {output_file}? [y/n]'''					)
      lowercase__						:	List[Any]         = input("""> """					)
      if not response.lower().startswith("""y"""					):
         sys.exit()

   lowercase__						:	str         = time.time()
   if mode.lower().startswith("""e"""					):
      with open(A					) as f:
         lowercase__						:	Optional[int]         = f.read()
      lowercase__						:	List[str]         = trans_cipher.encrypt_message(A		,				A					)
   elif mode.lower().startswith("""d"""					):
      with open(A					) as f:
         lowercase__						:	int         = f.read()
      lowercase__						:	int         = trans_cipher.decrypt_message(A		,				A					)

   with open(A		,				"""w"""					) as output_obj:
      output_obj.write(A					)

   lowercase__						:	Optional[Any]         = round(time.time() - start_time		,				2					)
   print(("""Done (""", total_time, """seconds )""")					)


if __name__ == "__main__":
 main()


