
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 		UpperCAmelCase(self      :    Optional[Any]   )						->						Dict:
         # 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 		UpperCAmelCase(self      :    Any   )						->						int:
         import transformers.commands.transformers_cli

         shutil.rmtree("/tmp/hf-internal-testing/tiny-random-gptj"				,    ignore_errors=_A   )  # 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 		UpperCAmelCase(self      :    Dict   )						->						List[Any]:
         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=_A   )

         # 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 		UpperCAmelCase(self      :    Any   )						->						List[str]:
         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=_A   )

         # 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"   )   )



import json
import os
import tempfile

import datasets
from utils import generate_example_dataset, get_duration


_A  					= 50_00_00

_A					,  _A  					= os.path.split(__file__)
_A  					= os.path.join(RESULTS_BASEPATH, "results", RESULTS_FILENAME.replace(".py", ".json"))



@get_duration
def 						lowercase_			(   A__		)							->							str:
    """simple docstring"""

    snake_case      =					dataset.select(range(0 ,		len(A__		) ,		2		)		)



@get_duration
def 						lowercase_			(   A__		)							->							int:
    """simple docstring"""

    snake_case      =					dataset.sort("numbers"		)



@get_duration
def 						lowercase_			(   A__		)							->							Optional[int]:
    """simple docstring"""

    snake_case      =					dataset.shuffle()



@get_duration
def 						lowercase_			(   A__		)							->							int:
    """simple docstring"""

    snake_case      =					dataset.train_test_split(0.1		)



@get_duration
def 						lowercase_			(   A__ ,		A__=10		)							->							List[Any]:
    """simple docstring"""

    for shard_id in range(A__		):
        snake_case      =					dataset.shard(A__ ,		A__		)



def 						lowercase_			(   )							->							List[str]:
    """simple docstring"""

    snake_case      =					{"num examples": SPEED_TEST_N_EXAMPLES}
    snake_case      =					(select, sort, shuffle, train_test_split, shard)
    with tempfile.TemporaryDirectory() as tmp_dir:
        print("generating dataset"		)
        snake_case      =					datasets.Features({"text": datasets.Value("string"		), "numbers": datasets.Value("float32"		)}		)
        snake_case      =					generate_example_dataset(
            os.path.join(A__ ,		"dataset.arrow"		) ,		A__ ,		num_examples=A__		)
        print("Functions"		)
        for func in functions:
            print(func.__name__		)
            snake_case      =					func(A__		)

    with open(A__ ,		"wb"		) as f:
        f.write(json.dumps(A__		).encode("utf-8"		)		)


if __name__ == "__main__":  # useful to run the profiler
   benchmark_indices_mapping()

