




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  __lowerCamelCase       (    unittest.TestCase    ):




    """simple docstring"""

    snake_case__					=      EsmTokenizer


    def    a      (       self     :     str   )      ->       Tuple:
         super().setUp()
         lowerCAmelCase__		= tempfile.mkdtemp()
         # fmt: off
         lowerCAmelCase__		= ["<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
         lowerCAmelCase__		= 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    a      (       self     :     Dict   ,	**SCREAMING_SNAKE_CASE__     :     Optional[Any]   )      ->       List[PreTrainedTokenizerBase]:
         return [self.get_tokenizer(**SCREAMING_SNAKE_CASE__   )]


    def    a      (       self     :     List[str]   ,	**SCREAMING_SNAKE_CASE__     :     str   )      ->       PreTrainedTokenizer:
         return self.tokenizer_class.from_pretrained(self.tmpdirname   ,	**SCREAMING_SNAKE_CASE__   )


    def    a      (       self     :     str   )      ->       Tuple:
         lowerCAmelCase__		= self.tokenizer_class(self.vocab_file   )

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


    def    a      (       self     :     int   )      ->       Union[str, Any]:
         lowerCAmelCase__		= self.tokenizer_class(self.vocab_file   )

         lowerCAmelCase__		= "LAGVS"
         self.assertListEqual(tokenizer.encode(SCREAMING_SNAKE_CASE__   )   ,	[0, 4, 5, 6, 7, 8, 2]   )


    def    a      (       self     :     Union[str, Any]   )      ->       str:
         lowerCAmelCase__		= self.tokenizer_class(self.vocab_file   )

         lowerCAmelCase__		= ["LAGVS", "WCB"]
         lowerCAmelCase__		= tokenizer(SCREAMING_SNAKE_CASE__   ,	padding=SCREAMING_SNAKE_CASE__   )["input_ids"]

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


    def    a      (       self     :     Any   )      ->       Union[str, Any]:
         lowerCAmelCase__		= self.tokenizer_class(self.vocab_file   )

         lowerCAmelCase__		= ["LAGVS", "WCB"]
         lowerCAmelCase__		= tokenizer(SCREAMING_SNAKE_CASE__   ,	padding=SCREAMING_SNAKE_CASE__   )["input_ids"]

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


    def    a      (       self     :     str   )      ->       Optional[Any]:
         lowerCAmelCase__		= self.get_tokenizers(fast=SCREAMING_SNAKE_CASE__   )
         for tokenizer in tokenizers:
              with self.subTest(f'{tokenizer.__class__.__name__}'   ):
                   lowerCAmelCase__		= "<unk>"
                   lowerCAmelCase__		= "<mask>"

                   lowerCAmelCase__		= tokenizer.tokenize(SCREAMING_SNAKE_CASE__   )
                   lowerCAmelCase__		= tokenizer.tokenize(SCREAMING_SNAKE_CASE__   )

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






from ..utils import (
    OptionalDependencyNotAvailable,
    is_flax_available,
    is_invisible_watermark_available,
    is_k_diffusion_available,
    is_librosa_available,
    is_note_seq_available,
    is_onnx_available,
    is_torch_available,
    is_transformers_available,
)


try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ..utils.dummy_pt_objects import *  # noqa F403
else:
     from .consistency_models import ConsistencyModelPipeline
     from .dance_diffusion import DanceDiffusionPipeline
     from .ddim import DDIMPipeline
     from .ddpm import DDPMPipeline
     from .dit import DiTPipeline
     from .latent_diffusion import LDMSuperResolutionPipeline
     from .latent_diffusion_uncond import LDMPipeline
     from .pipeline_utils import AudioPipelineOutput, DiffusionPipeline, ImagePipelineOutput
     from .pndm import PNDMPipeline
     from .repaint import RePaintPipeline
     from .score_sde_ve import ScoreSdeVePipeline
     from .stochastic_karras_ve import KarrasVePipeline

try:
     if not (is_torch_available() and is_librosa_available()):
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ..utils.dummy_torch_and_librosa_objects import *  # noqa F403
else:
     from .audio_diffusion import AudioDiffusionPipeline, Mel

try:
     if not (is_torch_available() and is_transformers_available()):
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ..utils.dummy_torch_and_transformers_objects import *  # noqa F403
else:
     from .alt_diffusion import AltDiffusionImgaImgPipeline, AltDiffusionPipeline
     from .audioldm import AudioLDMPipeline
     from .controlnet import (
         StableDiffusionControlNetImgaImgPipeline,
         StableDiffusionControlNetInpaintPipeline,
         StableDiffusionControlNetPipeline,
     )
     from .deepfloyd_if import (
         IFImgaImgPipeline,
         IFImgaImgSuperResolutionPipeline,
         IFInpaintingPipeline,
         IFInpaintingSuperResolutionPipeline,
         IFPipeline,
         IFSuperResolutionPipeline,
     )
     from .kandinsky import (
         KandinskyImgaImgPipeline,
         KandinskyInpaintPipeline,
         KandinskyPipeline,
         KandinskyPriorPipeline,
     )
     from .kandinskya_a import (
         KandinskyVaaControlnetImgaImgPipeline,
         KandinskyVaaControlnetPipeline,
         KandinskyVaaImgaImgPipeline,
         KandinskyVaaInpaintPipeline,
         KandinskyVaaPipeline,
         KandinskyVaaPriorEmbaEmbPipeline,
         KandinskyVaaPriorPipeline,
     )
     from .latent_diffusion import LDMTextToImagePipeline
     from .paint_by_example import PaintByExamplePipeline
     from .semantic_stable_diffusion import SemanticStableDiffusionPipeline
     from .shap_e import ShapEImgaImgPipeline, ShapEPipeline
     from .stable_diffusion import (
         CycleDiffusionPipeline,
         StableDiffusionAttendAndExcitePipeline,
         StableDiffusionDepthaImgPipeline,
         StableDiffusionDiffEditPipeline,
         StableDiffusionImageVariationPipeline,
         StableDiffusionImgaImgPipeline,
         StableDiffusionInpaintPipeline,
         StableDiffusionInpaintPipelineLegacy,
         StableDiffusionInstructPixaPixPipeline,
         StableDiffusionLatentUpscalePipeline,
         StableDiffusionLDMaDPipeline,
         StableDiffusionModelEditingPipeline,
         StableDiffusionPanoramaPipeline,
         StableDiffusionParadigmsPipeline,
         StableDiffusionPipeline,
         StableDiffusionPixaPixZeroPipeline,
         StableDiffusionSAGPipeline,
         StableDiffusionUpscalePipeline,
         StableUnCLIPImgaImgPipeline,
         StableUnCLIPPipeline,
     )
     from .stable_diffusion_safe import StableDiffusionPipelineSafe
     from .text_to_video_synthesis import TextToVideoSDPipeline, TextToVideoZeroPipeline, VideoToVideoSDPipeline
     from .unclip import UnCLIPImageVariationPipeline, UnCLIPPipeline
     from .unidiffuser import ImageTextPipelineOutput, UniDiffuserModel, UniDiffuserPipeline, UniDiffuserTextDecoder
     from .versatile_diffusion import (
         VersatileDiffusionDualGuidedPipeline,
         VersatileDiffusionImageVariationPipeline,
         VersatileDiffusionPipeline,
         VersatileDiffusionTextToImagePipeline,
     )
     from .vq_diffusion import VQDiffusionPipeline


try:
     if not (is_torch_available() and is_transformers_available() and is_invisible_watermark_available()):
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ..utils.dummy_torch_and_transformers_and_invisible_watermark_objects import *  # noqa F403
else:
     from .stable_diffusion_xl import StableDiffusionXLImgaImgPipeline, StableDiffusionXLPipeline

try:
     if not is_onnx_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ..utils.dummy_onnx_objects import *  # noqa F403
else:
     from .onnx_utils import OnnxRuntimeModel

try:
     if not (is_torch_available() and is_transformers_available() and is_onnx_available()):
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ..utils.dummy_torch_and_transformers_and_onnx_objects import *  # noqa F403
else:
     from .stable_diffusion import (
         OnnxStableDiffusionImgaImgPipeline,
         OnnxStableDiffusionInpaintPipeline,
         OnnxStableDiffusionInpaintPipelineLegacy,
         OnnxStableDiffusionPipeline,
         OnnxStableDiffusionUpscalePipeline,
         StableDiffusionOnnxPipeline,
     )

try:
     if not (is_torch_available() and is_transformers_available() and is_k_diffusion_available()):
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ..utils.dummy_torch_and_transformers_and_k_diffusion_objects import *  # noqa F403
else:
     from .stable_diffusion import StableDiffusionKDiffusionPipeline

try:
     if not is_flax_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ..utils.dummy_flax_objects import *  # noqa F403
else:
     from .pipeline_flax_utils import FlaxDiffusionPipeline


try:
     if not (is_flax_available() and is_transformers_available()):
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ..utils.dummy_flax_and_transformers_objects import *  # noqa F403
else:
     from .controlnet import FlaxStableDiffusionControlNetPipeline
     from .stable_diffusion import (
         FlaxStableDiffusionImgaImgPipeline,
         FlaxStableDiffusionInpaintPipeline,
         FlaxStableDiffusionPipeline,
     )
try:
     if not (is_transformers_available() and is_torch_available() and is_note_seq_available()):
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ..utils.dummy_transformers_and_torch_and_note_seq_objects import *  # noqa F403
else:
     from .spectrogram_diffusion import MidiProcessor, SpectrogramDiffusionPipeline
