UpperCAmelCase      		=					{
    '''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					):
       _UpperCamelCase  :							List[str]	    =	str(lowercase_					).strip()

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

       _UpperCamelCase  :							List[Any]	    =	(
           '0' * (4 * (divmod(len(lowercase_					)		,    4					)[0] + 1) - len(lowercase_					)) + binary_str
       )

       _UpperCamelCase  :							List[Any]	    =	[]
       for x in range(0		,    len(lowercase_					)		,    4					):
              hexadecimal.append(BITS_TO_HEX[binary_str[x : x + 4]]					)
       _UpperCamelCase  :							Tuple	    =	'0x' + ''.join(lowercase_					)

       return "-" + hexadecimal_str if is_negative else hexadecimal_str


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

 testmod()




import os
import shutil
import unittest
from unittest.mock import patch

from transformers.testing_utils import CaptureStd, is_pt_tf_cross_test, require_torch





class   lowerCAmelCase    (       unittest.TestCase      ):



     @patch('sys.argv'					,   ['fakeprogrampath', 'env']							)
     def       a__	(       self							):
            # test transformers-cli env
            import transformers.commands.transformers_cli

            with CaptureStd() as cs:
                   transformers.commands.transformers_cli.main()
            self.assertIn('Python version'					,   cs.out							)
            self.assertIn('Platform'					,   cs.out							)
            self.assertIn('Using distributed or parallel set-up in script?'					,   cs.out							)



     @is_pt_tf_cross_test
     @patch(
         'sys.argv'					,   ['fakeprogrampath', 'pt-to-tf', '--model-name', 'hf-internal-testing/tiny-random-gptj', '--no-pr']							)
     def       a__	(       self							):
            import transformers.commands.transformers_cli

            shutil.rmtree('/tmp/hf-internal-testing/tiny-random-gptj'					,   ignore_errors=lowerCAmelCase__							)  # cleans potential past runs
            transformers.commands.transformers_cli.main()

            # The original repo has no TF weights -- if they exist, they were created by the CLI
            self.assertTrue(os.path.exists('/tmp/hf-internal-testing/tiny-random-gptj/tf_model.h5'							)							)



     @require_torch
     @patch('sys.argv'					,   ['fakeprogrampath', 'download', 'hf-internal-testing/tiny-random-gptj', '--cache-dir', '/tmp']							)
     def       a__	(       self							):
            import transformers.commands.transformers_cli

            # # remove any previously downloaded model to start clean
            shutil.rmtree('/tmp/models--hf-internal-testing--tiny-random-gptj'					,   ignore_errors=lowerCAmelCase__							)

            # run the command
            transformers.commands.transformers_cli.main()

            # check if the model files are downloaded correctly on /tmp/models--hf-internal-testing--tiny-random-gptj
            self.assertTrue(os.path.exists('/tmp/models--hf-internal-testing--tiny-random-gptj/blobs'							)							)
            self.assertTrue(os.path.exists('/tmp/models--hf-internal-testing--tiny-random-gptj/refs'							)							)
            self.assertTrue(os.path.exists('/tmp/models--hf-internal-testing--tiny-random-gptj/snapshots'							)							)





     @require_torch
     @patch(
         'sys.argv'					,   [
             'fakeprogrampath',
             'download',
             'hf-internal-testing/test_dynamic_model_with_tokenizer',
             '--trust-remote-code',
             '--cache-dir',
             '/tmp',
         ]					,   )
     def       a__	(       self							):
            import transformers.commands.transformers_cli

            # # remove any previously downloaded model to start clean
            shutil.rmtree('/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer'					,   ignore_errors=lowerCAmelCase__							)

            # run the command
            transformers.commands.transformers_cli.main()

            # check if the model files are downloaded correctly on /tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer
            self.assertTrue(os.path.exists('/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/blobs'							)							)
            self.assertTrue(os.path.exists('/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/refs'							)							)
            self.assertTrue(
                os.path.exists('/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/snapshots'							)							)