
import unittest
import warnings
from dataclasses import dataclass

from transformers.convert_slow_tokenizer import SpmConverter
from transformers.testing_utils import get_tests_dir

@dataclass
class   __snake_case				:






    '''simple docstring'''
    _lowerCAmelCase     =	42


class   __snake_case				(			unittest.TestCase   ):






    '''simple docstring'''





    def 	A		(   self						:		Any							):

      """simple docstring"""





      __lowerCAmelCase			=				get_tests_dir('''fixtures/test_sentencepiece.model'''							)
      __lowerCAmelCase			=				get_tests_dir('''fixtures/test_sentencepiece_with_bytefallback.model'''							)

      __lowerCAmelCase			=				FakeOriginalTokenizer(vocab_file=__lowerCamelCase							)

      with warnings.catch_warnings(record=__lowerCamelCase							) as w:
        __lowerCAmelCase			=				SpmConverter(__lowerCamelCase							)
      self.assertEqual(len(__lowerCamelCase							)			,						0							)

      __lowerCAmelCase			=				FakeOriginalTokenizer(vocab_file=__lowerCamelCase							)

      with warnings.catch_warnings(record=__lowerCamelCase							) as w:
        __lowerCAmelCase			=				SpmConverter(__lowerCamelCase							)
      self.assertEqual(len(__lowerCamelCase							)			,						1							)

      self.assertIn(
          '''The sentencepiece tokenizer that you are converting to a fast tokenizer uses the byte fallback option'''
          ''' which is not implemented in the fast tokenizers.'''			,						str(w[0].message							)			,						)







from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_sentencepiece_available,
    is_speech_available,
    is_torch_available,
)


__lowercase													=			{
    """configuration_speech_to_text_2""": ["""SPEECH_TO_TEXT_2_PRETRAINED_CONFIG_ARCHIVE_MAP""", """Speech2Text2Config"""],
    """processing_speech_to_text_2""": ["""Speech2Text2Processor"""],
    """tokenization_speech_to_text_2""": ["""Speech2Text2Tokenizer"""],
}


try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      __lowercase													=			[
          """SPEECH_TO_TEXT_2_PRETRAINED_MODEL_ARCHIVE_LIST""",
          """Speech2Text2ForCausalLM""",
          """Speech2Text2PreTrainedModel""",
      ]


if TYPE_CHECKING:
      from .configuration_speech_to_text_a import SPEECH_TO_TEXT_2_PRETRAINED_CONFIG_ARCHIVE_MAP, SpeechaTextaConfig
      from .processing_speech_to_text_a import SpeechaTextaProcessor
      from .tokenization_speech_to_text_a import SpeechaTextaTokenizer

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_speech_to_text_a import (
                SPEECH_TO_TEXT_2_PRETRAINED_MODEL_ARCHIVE_LIST,
                SpeechaTextaForCausalLM,
                SpeechaTextaPreTrainedModel,
            )

else:
      import sys

      __lowercase													=			_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)
