"""simple docstring"""


from typing import TYPE_CHECKING

from ....utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowerCAmelCase_:					List[Any]     =					{
    "configuration_mctct": ["MCTCT_PRETRAINED_CONFIG_ARCHIVE_MAP", "MCTCTConfig"],
    "feature_extraction_mctct": ["MCTCTFeatureExtractor"],
    "processing_mctct": ["MCTCTProcessor"],
}


try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCAmelCase_:					str     =					[
     "MCTCT_PRETRAINED_MODEL_ARCHIVE_LIST",
     "MCTCTForCTC",
     "MCTCTModel",
     "MCTCTPreTrainedModel",
 ]


if TYPE_CHECKING:
 from .configuration_mctct import MCTCT_PRETRAINED_CONFIG_ARCHIVE_MAP, MCTCTConfig
 from .feature_extraction_mctct import MCTCTFeatureExtractor
 from .processing_mctct import MCTCTProcessor

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_mctct import MCTCT_PRETRAINED_MODEL_ARCHIVE_LIST, MCTCTForCTC, MCTCTModel, MCTCTPreTrainedModel

else:
 import sys

 lowerCAmelCase_:					Tuple     =					_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)





"""simple docstring"""


import unittest

from transformers import AutoConfig, AutoTokenizer, BertConfig, TensorType, is_flax_available
from transformers.testing_utils import DUMMY_UNKNOWN_IDENTIFIER, require_flax, slow


if is_flax_available():
 import jax

 from transformers.models.auto.modeling_flax_auto import FlaxAutoModel
 from transformers.models.bert.modeling_flax_bert import FlaxBertModel
 from transformers.models.roberta.modeling_flax_roberta import FlaxRobertaModel






@require_flax
class    a__    (   unittest.TestCase	):


   @slow
   def 	snake_case__	(     self  ):
        '''simple docstring'''



        for model_name in ["bert-base-cased", "bert-large-uncased"]:
             with self.subTest(_UpperCAmelCase  ):
                  lowercase__				 =							AutoConfig.from_pretrained(_UpperCAmelCase  )
                  self.assertIsNotNone(_UpperCAmelCase  )
                  self.assertIsInstance(_UpperCAmelCase,				_UpperCAmelCase  )

                  lowercase__				 =							FlaxAutoModel.from_pretrained(_UpperCAmelCase  )
                  self.assertIsNotNone(_UpperCAmelCase  )
                  self.assertIsInstance(_UpperCAmelCase,				_UpperCAmelCase  )


   @slow
   def 	snake_case__	(     self  ):
        '''simple docstring'''



        for model_name in ["roberta-base", "roberta-large"]:
             with self.subTest(_UpperCAmelCase  ):
                  lowercase__				 =							AutoConfig.from_pretrained(_UpperCAmelCase  )
                  self.assertIsNotNone(_UpperCAmelCase  )
                  self.assertIsInstance(_UpperCAmelCase,				_UpperCAmelCase  )

                  lowercase__				 =							FlaxAutoModel.from_pretrained(_UpperCAmelCase  )
                  self.assertIsNotNone(_UpperCAmelCase  )
                  self.assertIsInstance(_UpperCAmelCase,				_UpperCAmelCase  )


   @slow
   def 	snake_case__	(     self  ):
        '''simple docstring'''



        for model_name in ["bert-base-cased", "bert-large-uncased"]:
             lowercase__				 =							AutoTokenizer.from_pretrained(_UpperCAmelCase  )
             lowercase__				 =							FlaxBertModel.from_pretrained(_UpperCAmelCase  )
             lowercase__				 =							tokenizer("Do you support jax jitted function?",				return_tensors=TensorType.JAX  )

             @jax.jit
             def eval(**_UpperCAmelCase  ):
                  return model(**_UpperCAmelCase  )

             eval(**_UpperCAmelCase  ).block_until_ready()


   @slow
   def 	snake_case__	(     self  ):
        '''simple docstring'''



        for model_name in ["roberta-base", "roberta-large"]:
             lowercase__				 =							AutoTokenizer.from_pretrained(_UpperCAmelCase  )
             lowercase__				 =							FlaxRobertaModel.from_pretrained(_UpperCAmelCase  )
             lowercase__				 =							tokenizer("Do you support jax jitted function?",				return_tensors=TensorType.JAX  )

             @jax.jit
             def eval(**_UpperCAmelCase  ):
                  return model(**_UpperCAmelCase  )

             eval(**_UpperCAmelCase  ).block_until_ready()


   def 	snake_case__	(     self  ):
        '''simple docstring'''



        with self.assertRaisesRegex(
            _UpperCAmelCase,				"bert-base is not a local folder and is not a valid model identifier"  ):
             lowercase__				 =							FlaxAutoModel.from_pretrained("bert-base"  )


   def 	snake_case__	(     self  ):
        '''simple docstring'''



        with self.assertRaisesRegex(
            _UpperCAmelCase,				R"aaaaaa is not a valid git identifier \(branch name, tag name or commit id\)"  ):
             lowercase__				 =							FlaxAutoModel.from_pretrained(_UpperCAmelCase,				revision="aaaaaa"  )


   def 	snake_case__	(     self  ):
        '''simple docstring'''



        with self.assertRaisesRegex(
            _UpperCAmelCase,				"hf-internal-testing/config-no-model does not appear to have a file named flax_model.msgpack",				):
             lowercase__				 =							FlaxAutoModel.from_pretrained("hf-internal-testing/config-no-model"  )


   def 	snake_case__	(     self  ):
        '''simple docstring'''



        with self.assertRaisesRegex(_UpperCAmelCase,				"Use `from_pt=True` to load this model"  ):
             lowercase__				 =							FlaxAutoModel.from_pretrained("hf-internal-testing/tiny-bert-pt-only"  )




