





'''simple docstring'''


import json
import logging
import os
import sys
from time import time
from unittest.mock import patch

from transformers.testing_utils import TestCasePlus, require_torch_tpu


logging.basicConfig(level=logging.DEBUG)

lowerCAmelCase_   :   Optional[int]       =					logging.getLogger()







def    _lowerCamelCase  (__lowerCamelCase  :     Union[str, Any]     )   ->    Optional[int]:
			a__     = {}
			a__     = os.path.join(__lowerCamelCase					,  "all_results.json"     )
			if os.path.exists(__lowerCamelCase     ):
						with open(__lowerCamelCase					,  "r"     ) as f:
									a__     = json.load(__lowerCamelCase     )
			else:
						raise ValueError(f'''can\'t find {path}'''     )
			return results


lowerCAmelCase_   :   List[str]       =					logging.StreamHandler(sys.stdout)
logger.addHandler(stream_handler)






@require_torch_tpu
class       UpperCamelCase__  (		snake_case__     ):







	def 						__a   (				self			:   Optional[Any]		):




				'''simple docstring'''
				import xla_spawn

				a__     = self.get_auto_remove_tmp_dir()
				a__     = F'''
            ./examples/pytorch/text-classification/run_glue.py
            --num_cores=8
            ./examples/pytorch/text-classification/run_glue.py
            --model_name_or_path distilbert-base-uncased
            --output_dir {tmp_dir}
            --overwrite_output_dir
            --train_file ./tests/fixtures/tests_samples/MRPC/train.csv
            --validation_file ./tests/fixtures/tests_samples/MRPC/dev.csv
            --do_train
            --do_eval
            --debug tpu_metrics_debug
            --per_device_train_batch_size=2
            --per_device_eval_batch_size=1
            --learning_rate=1e-4
            --max_steps=10
            --warmup_steps=2
            --seed=42
            --max_seq_length=128
            '''.split()

				with patch.object(_A , "argv" , _A		):
							a__     = time()
							xla_spawn.main()
							a__     = time()

							a__     = get_results(_A		)
							self.assertGreaterEqual(result["eval_accuracy"] , 0.75		)

							# Assert that the script takes less than 500 seconds to make sure it doesn't hang.
							self.assertLess(end - start , 5_0_0		)







	def 						__a   (				self			:   Optional[int]		):




				'''simple docstring'''
				import xla_spawn

				a__     = '\n            ./tests/test_trainer_tpu.py\n            --num_cores=8\n            ./tests/test_trainer_tpu.py\n            '.split()
				with patch.object(_A , "argv" , _A		):
							xla_spawn.main()










'''simple docstring'''


import unittest

from accelerate import debug_launcher
from accelerate.test_utils import require_cpu, test_ops, test_script






@require_cpu
class       UpperCamelCase__  (		unittest.TestCase     ):







	def 						__a   (				self			:   List[str]		):




				'''simple docstring'''
				debug_launcher(test_script.main		)







	def 						__a   (				self			:   Dict		):




				'''simple docstring'''
				debug_launcher(test_ops.main		)



