


from .dependency_versions_table import deps
from .utils.versions import require_version, require_version_core


# define which module versions we always want to check at run time
# (usually the ones defined in `install_requires` in setup.py)
#
# order specific notes:
# - tqdm must be checked before tokenizers

A				:       Dict      =  [
    'python',
    'tqdm',
    'regex',
    'requests',
    'packaging',
    'filelock',
    'numpy',
    'tokenizers',
    'huggingface-hub',
    'safetensors',
    'accelerate',
    'pyyaml',
]

for pkg in pkgs_to_check_at_runtime:
	if pkg in deps:
		if pkg == "tokenizers":
			# must be loaded here, or else tqdm check may fail
			from .utils import is_tokenizers_available

			if not is_tokenizers_available():
				continue  # not required, check version only if installed
		elif pkg == "accelerate":
			# must be loaded here, or else tqdm check may fail
			from .utils import is_accelerate_available

			# Maybe switch to is_torch_available in the future here so that Accelerate is hard dep of
			# Transformers with PyTorch
			if not is_accelerate_available():
				continue  # not required, check version only if installed

		require_version_core(deps[pkg])
	else:
		raise ValueError(f'''can\'t find {pkg} in {deps.keys()}, check dependency_versions_table.py''')





def 						_lowerCAmelCase							(     _lowerCAmelCase   ,						_lowerCAmelCase=None			)    ->						Tuple:


						'''simple docstring'''






						require_version(deps[pkg]   ,						UpperCamelCase__			)












import unittest
from dataclasses import dataclass

import pytest

from accelerate.commands.config.config_args import SageMakerConfig
from accelerate.utils import ComputeEnvironment
from accelerate.utils.launch import _convert_nargs_to_dict




@dataclass
class        SCREAMING_SNAKE_CASE__					(		UpperCamelCase__ ):
 __SCREAMING_SNAKE_CASE							=      ComputeEnvironment.AMAZON_SAGEMAKER
 __SCREAMING_SNAKE_CASE							=      True
 __SCREAMING_SNAKE_CASE							=      '''ml.p3.2xlarge'''
 __SCREAMING_SNAKE_CASE							=      '''accelerate_sagemaker_execution_role'''
 __SCREAMING_SNAKE_CASE							=      '''hf-sm'''
 __SCREAMING_SNAKE_CASE							=      '''us-east-1'''
 __SCREAMING_SNAKE_CASE							=      1
 __SCREAMING_SNAKE_CASE							=      '''accelerate-sagemaker-1'''
 __SCREAMING_SNAKE_CASE							=      '''1.6'''
 __SCREAMING_SNAKE_CASE							=      '''4.4'''
 __SCREAMING_SNAKE_CASE							=      '''train.py'''
 __SCREAMING_SNAKE_CASE							=      [
     '''--model_name_or_path''',
     '''bert''',
     '''--do_train''',
     '''False''',
     '''--epochs''',
     '''3''',
     '''--learning_rate''',
     '''5e-5''',
     '''--max_steps''',
     '''50.5''',
 ]
 __SCREAMING_SNAKE_CASE							=      [
     '''--model_name_or_path''',
     '''bert''',
     '''--do_train''',
     '''--do_test''',
     '''False''',
     '''--do_predict''',
     '''--epochs''',
     '''3''',
     '''--learning_rate''',
     '''5e-5''',
     '''--max_steps''',
     '''50.5''',
 ]




class        SCREAMING_SNAKE_CASE__					(		unittest.TestCase ):



 def 							UpperCamelCase     (				self					):
        # If no defaults are changed, `to_kwargs` returns an empty dict.
        A__		   =		_convert_nargs_to_dict(MockLaunchConfig.success_training_script_args					)
        assert isinstance(converted_args['''model_name_or_path'''],__lowerCamelCase					)
        assert isinstance(converted_args['''do_train'''],__lowerCamelCase					)
        assert isinstance(converted_args['''epochs'''],__lowerCamelCase					)
        assert isinstance(converted_args['''learning_rate'''],__lowerCamelCase					)
        assert isinstance(converted_args['''max_steps'''],__lowerCamelCase					)

        with pytest.raises(__lowerCamelCase					):
               _convert_nargs_to_dict(MockLaunchConfig.fail_training_script_args					)





