





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)

_SCREAMING_SNAKE_CASE 		=						logging.getLogger()


def 							SCREAMING_SNAKE_CASE__  (      __a				):
	snake_case_						:     List[str]     =		{}
	snake_case_						:     Optional[Any]     =		os.path.join(__a				,	'all_results.json'				)
	if os.path.exists(__a				):
		with open(__a				,	'r'				) as f:
			snake_case_						:     Tuple     =		json.load(__a				)
	else:
		raise ValueError(f"""can't find {path}"""				)
	return results


_SCREAMING_SNAKE_CASE 		=						logging.StreamHandler(sys.stdout)
logger.addHandler(stream_handler)


@require_torch_tpu
class SCREAMING_SNAKE_CASE_  (   snake_case_   ):






						def UpperCAmelCase_			( self : Dict		)							->      List[Any]:







							"""simple docstring"""


							import xla_spawn

							snake_case_						:     Tuple     =		self.get_auto_remove_tmp_dir()
							snake_case_						:     Optional[Any]     =		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		):
								snake_case_						:     str     =		time()
								xla_spawn.main()
								snake_case_						:     Tuple     =		time()

								snake_case_						:     Any     =		get_results(_A		)
								self.assertGreaterEqual(result['eval_accuracy']						,				0.7_5		)

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






						def UpperCAmelCase_			( self : Optional[int]		)							->      str:







							"""simple docstring"""


							import xla_spawn

							snake_case_						:     Optional[Any]     =		'\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()








import warnings

from ..trainer import Trainer
from ..utils import logging


_SCREAMING_SNAKE_CASE 		=						logging.get_logger(__name__)
class SCREAMING_SNAKE_CASE_  (   snake_case_   ):






						def __init__( self : Any						,				_A : str=None						,				**_A : Union[str, Any]		)							->      Any:







							"""simple docstring"""


							warnings.warn(
							    '`SageMakerTrainer` is deprecated and will be removed in v5 of Transformers. You can use `Trainer` '
							    'instead.'						,				_A						,				)
							super().__init__(args=_A						,				**_A		)

