

import os
import tempfile
import unittest
from typing import List

from transformers.models.esm.tokenization_esm import VOCAB_FILES_NAMES, EsmTokenizer
from transformers.testing_utils import require_tokenizers
from transformers.tokenization_utils import PreTrainedTokenizer
from transformers.tokenization_utils_base import PreTrainedTokenizerBase

@require_tokenizers
class  a     (		unittest.TestCase ):
						_lowercase			  =	EsmTokenizer


						def 				_UpperCAmelCase (				self		):







										'''simple docstring'''


										super().setUp()
										_UpperCAmelCase				:						Union[str, Any]       						=			tempfile.mkdtemp()
										# fmt: off
										_UpperCAmelCase				:						List[str]       						=			["<cls>", "<pad>", "<eos>", "<unk>", "L", "A", "G", "V", "S", "E", "R", "T", "I", "D", "P", "K", "Q", "N", "F", "Y", "M", "H", "W", "C", "X", "B", "U", "Z", "O", ".", "-", "<null_1>", "<mask>"]  # noqa: E501
										# fmt: on
										_UpperCAmelCase				:						Optional[int]       						=			os.path.join(self.tmpdirname  ,    VOCAB_FILES_NAMES["vocab_file"]		)
										with open(self.vocab_file  ,    "w"  ,    encoding="utf-8"		) as vocab_writer:
														vocab_writer.write("".join([x + "\n" for x in vocab_tokens]		)		)


						def 				_UpperCAmelCase (				self  ,    **A_		):







										'''simple docstring'''


										return [self.get_tokenizer(**A_		)]


						def 				_UpperCAmelCase (				self  ,    **A_		):







										'''simple docstring'''


										return self.tokenizer_class.from_pretrained(self.tmpdirname  ,    **A_		)


						def 				_UpperCAmelCase (				self		):







										'''simple docstring'''


										_UpperCAmelCase				:						Dict       						=			self.tokenizer_class(self.vocab_file		)

										_UpperCAmelCase				:						Tuple       						=			tokenizer.tokenize("LAGVS"		)
										self.assertListEqual(A_  ,    ["L", "A", "G", "V", "S"]		)
										self.assertListEqual(tokenizer.convert_tokens_to_ids(A_		)  ,    [4, 5, 6, 7, 8]		)


						def 				_UpperCAmelCase (				self		):







										'''simple docstring'''


										_UpperCAmelCase				:						str       						=			self.tokenizer_class(self.vocab_file		)

										_UpperCAmelCase				:						Union[str, Any]       						=			"LAGVS"
										self.assertListEqual(tokenizer.encode(A_		)  ,    [0, 4, 5, 6, 7, 8, 2]		)


						def 				_UpperCAmelCase (				self		):







										'''simple docstring'''


										_UpperCAmelCase				:						Optional[Any]       						=			self.tokenizer_class(self.vocab_file		)

										_UpperCAmelCase				:						List[str]       						=			["LAGVS", "WCB"]
										_UpperCAmelCase				:						str       						=			tokenizer(A_  ,    padding=A_		)["input_ids"]

										self.assertListEqual(A_  ,    [[0, 4, 5, 6, 7, 8, 2], [0, 22, 23, 25, 2]]		)


						def 				_UpperCAmelCase (				self		):







										'''simple docstring'''


										_UpperCAmelCase				:						str       						=			self.tokenizer_class(self.vocab_file		)

										_UpperCAmelCase				:						Tuple       						=			["LAGVS", "WCB"]
										_UpperCAmelCase				:						Any       						=			tokenizer(A_  ,    padding=A_		)["input_ids"]

										self.assertListEqual(A_  ,    [[0, 4, 5, 6, 7, 8, 2], [0, 22, 23, 25, 2, 1, 1]]		)





						def 				_UpperCAmelCase (				self		):







										'''simple docstring'''


										_UpperCAmelCase				:						Optional[Any]       						=			self.get_tokenizers(fast=A_		)
										for tokenizer in tokenizers:
														with self.subTest(f'{tokenizer.__class__.__name__}'		):
																		_UpperCAmelCase				:						str       						=			"<unk>"
																		_UpperCAmelCase				:						Optional[int]       						=			"<mask>"

																		_UpperCAmelCase				:						Tuple       						=			tokenizer.tokenize(A_		)
																		_UpperCAmelCase				:						Dict       						=			tokenizer.tokenize(A_		)

																		self.assertEqual(len(A_		)  ,    1		)
																		self.assertEqual(len(A_		)  ,    1		)
																		self.assertEqual(token_a[0]  ,    A_		)
																		self.assertEqual(token_a[0]  ,    A_		)






import argparse
import os


UpperCAmelCase			=    {
    """pytorch""": {
        """1.13""": {
            """torch""": """1.13.1""",
            """torchvision""": """0.14.1""",
            """torchaudio""": """0.13.1""",
            """python""": 3.9,
            """cuda""": """cu116""",
            """install""": (
                """python3 -m pip install --no-cache-dir -U torch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1"""
                """ --extra-index-url https://download.pytorch.org/whl/cu116"""
            ),
            """base_image""": """nvidia/cuda:11.6.2-cudnn8-devel-ubuntu20.04""",
        },
        """1.12""": {
            """torch""": """1.12.1""",
            """torchvision""": """0.13.1""",
            """torchaudio""": """0.12.1""",
            """python""": 3.9,
            """cuda""": """cu113""",
            """install""": (
                """python3 -m pip install --no-cache-dir -U torch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1"""
                """ --extra-index-url https://download.pytorch.org/whl/cu113"""
            ),
            """base_image""": """nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04""",
        },
        """1.11""": {
            """torch""": """1.11.0""",
            """torchvision""": """0.12.0""",
            """torchaudio""": """0.11.0""",
            """python""": 3.9,
            """cuda""": """cu113""",
            """install""": (
                """python3 -m pip install --no-cache-dir -U torch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0"""
                """ --extra-index-url https://download.pytorch.org/whl/cu113"""
            ),
            """base_image""": """nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04""",
        },
        """1.10""": {
            """torch""": """1.10.2""",
            """torchvision""": """0.11.3""",
            """torchaudio""": """0.10.2""",
            """python""": 3.9,
            """cuda""": """cu113""",
            """install""": (
                """python3 -m pip install --no-cache-dir -U torch==1.10.2 torchvision==0.11.3 torchaudio==0.10.2"""
                """ --extra-index-url https://download.pytorch.org/whl/cu113"""
            ),
            """base_image""": """nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04""",
        },
        # torchaudio < 0.10 has no CUDA-enabled binary distributions
        """1.9""": {
            """torch""": """1.9.1""",
            """torchvision""": """0.10.1""",
            """torchaudio""": """0.9.1""",
            """python""": 3.9,
            """cuda""": """cu111""",
            """install""": (
                """python3 -m pip install --no-cache-dir -U torch==1.9.1 torchvision==0.10.1 torchaudio==0.9.1"""
                """ --extra-index-url https://download.pytorch.org/whl/cu111"""
            ),
            """base_image""": """nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04""",
        },
    },
    """tensorflow""": {
        """2.11""": {
            """tensorflow""": """2.11.1""",
            """install""": """python3 -m pip install --no-cache-dir -U tensorflow==2.11.1""",
            """base_image""": """nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04""",
        },
        """2.10""": {
            """tensorflow""": """2.10.1""",
            """install""": """python3 -m pip install --no-cache-dir -U tensorflow==2.10.1""",
            """base_image""": """nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04""",
        },
        """2.9""": {
            """tensorflow""": """2.9.3""",
            """install""": """python3 -m pip install --no-cache-dir -U tensorflow==2.9.3""",
            """base_image""": """nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04""",
        },
        """2.8""": {
            """tensorflow""": """2.8.2""",
            """install""": """python3 -m pip install --no-cache-dir -U tensorflow==2.8.2""",
            """base_image""": """nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04""",
        },
        """2.7""": {
            """tensorflow""": """2.7.3""",
            """install""": """python3 -m pip install --no-cache-dir -U tensorflow==2.7.3""",
            """base_image""": """nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04""",
        },
        """2.6""": {
            """tensorflow""": """2.6.5""",
            """install""": """python3 -m pip install --no-cache-dir -U tensorflow==2.6.5""",
            """base_image""": """nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04""",
        },
        """2.5""": {
            """tensorflow""": """2.5.3""",
            """install""": """python3 -m pip install --no-cache-dir -U tensorflow==2.5.3""",
            """base_image""": """nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04""",
        },
    },
}


if __name__ == "__main__":
   UpperCAmelCase			=    argparse.ArgumentParser("""Choose the framework and version to install""")
   parser.add_argument(
       """--framework""", help="""The framework to install. Should be `torch` or `tensorflow`""", type=str, required=True
   )
   parser.add_argument("""--version""", help="""The version of the framework to install.""", type=str, required=True)
   UpperCAmelCase			=    parser.parse_args()

   UpperCAmelCase			=    past_versions_testing[args.framework][args.version]

   os.system(f'''echo "export INSTALL_CMD=\'{info['install']}\'" >> ~/.profile''')
   print(f'''echo "export INSTALL_CMD=\'{info['install']}\'" >> ~/.profile''')

   UpperCAmelCase			=    """"""
   if args.framework == "pytorch":
      UpperCAmelCase			=    info["""cuda"""]
   os.system(f'''echo \"export CUDA=\'{cuda}\'\" >> ~/.profile''')
   print(f'''echo \"export CUDA=\'{cuda}\'\" >> ~/.profile''')