






import gc
import unittest

from transformers import MODEL_FOR_MASKED_LM_MAPPING, TF_MODEL_FOR_MASKED_LM_MAPPING, FillMaskPipeline, pipeline
from transformers.pipelines import PipelineException
from transformers.testing_utils import (
    is_pipeline_test,
    is_torch_available,
    nested_simplify,
    require_tf,
    require_torch,
    require_torch_gpu,
    slow,
)

from .test_pipelines_common import ANY


@is_pipeline_test
class 						_a       (  unittest.TestCase    ):






  """simple docstring"""





  A_						=   MODEL_FOR_MASKED_LM_MAPPING
  A_						=   TF_MODEL_FOR_MASKED_LM_MAPPING




  def    _UpperCAmelCase     (     self )			-> List[Any]:
     super().tearDown()
     # clean-up as much as possible GPU memory occupied by PyTorch
     gc.collect()
     if is_torch_available():
        import torch

        torch.cuda.empty_cache()




  @require_tf
  def    _UpperCAmelCase     (     self )			-> int:
     UpperCamelCase_									=     pipeline(task='fill-mask'		,		model='sshleifer/tiny-distilroberta-base'		,		top_k=2		,		framework='tf' )
     UpperCamelCase_									=     unmasker('My name is <mask>' )
     self.assertEqual(
         nested_simplify(_UpperCAmelCase		,		decimals=6 )		,		[
             {'sequence': 'My name is grouped', 'score': 2.1e-05, 'token': 38015, 'token_str': ' grouped'},
             {'sequence': 'My name is accuser', 'score': 2.1e-05, 'token': 25506, 'token_str': ' accuser'},
         ]		,		)

     UpperCamelCase_									=     unmasker('The largest city in France is <mask>' )
     self.assertEqual(
         nested_simplify(_UpperCAmelCase		,		decimals=6 )		,		[
             {
                 'sequence': 'The largest city in France is grouped',
                 'score': 2.1e-05,
                 'token': 38015,
                 'token_str': ' grouped',
             },
             {
                 'sequence': 'The largest city in France is accuser',
                 'score': 2.1e-05,
                 'token': 25506,
                 'token_str': ' accuser',
             },
         ]		,		)

     UpperCamelCase_									=     unmasker('My name is <mask>'		,		targets=[' Patrick', ' Clara', ' Teven']		,		top_k=3 )
     self.assertEqual(
         nested_simplify(_UpperCAmelCase		,		decimals=6 )		,		[
             {'sequence': 'My name is Clara', 'score': 2e-05, 'token': 13606, 'token_str': ' Clara'},
             {'sequence': 'My name is Patrick', 'score': 2e-05, 'token': 3499, 'token_str': ' Patrick'},
             {'sequence': 'My name is Te', 'score': 1.9e-05, 'token': 2941, 'token_str': ' Te'},
         ]		,		)




  @require_torch
  def    _UpperCAmelCase     (     self )			-> Dict:
     UpperCamelCase_									=     pipeline(task='fill-mask'		,		model='sshleifer/tiny-distilroberta-base'		,		top_k=2		,		framework='pt' )

     UpperCamelCase_									=     unmasker('My name is <mask>' )
     self.assertEqual(
         nested_simplify(_UpperCAmelCase		,		decimals=6 )		,		[
             {'sequence': 'My name is Maul', 'score': 2.2e-05, 'token': 35676, 'token_str': ' Maul'},
             {'sequence': 'My name isELS', 'score': 2.2e-05, 'token': 16416, 'token_str': 'ELS'},
         ]		,		)

     UpperCamelCase_									=     unmasker('The largest city in France is <mask>' )
     self.assertEqual(
         nested_simplify(_UpperCAmelCase		,		decimals=6 )		,		[
             {
                 'sequence': 'The largest city in France is Maul',
                 'score': 2.2e-05,
                 'token': 35676,
                 'token_str': ' Maul',
             },
             {'sequence': 'The largest city in France isELS', 'score': 2.2e-05, 'token': 16416, 'token_str': 'ELS'},
         ]		,		)

     UpperCamelCase_									=     unmasker('My name is <mask>'		,		targets=[' Patrick', ' Clara', ' Teven']		,		top_k=3 )
     self.assertEqual(
         nested_simplify(_UpperCAmelCase		,		decimals=6 )		,		[
             {'sequence': 'My name is Patrick', 'score': 2.1e-05, 'token': 3499, 'token_str': ' Patrick'},
             {'sequence': 'My name is Te', 'score': 2e-05, 'token': 2941, 'token_str': ' Te'},
             {'sequence': 'My name is Clara', 'score': 2e-05, 'token': 13606, 'token_str': ' Clara'},
         ]		,		)

     UpperCamelCase_									=     unmasker('My name is <mask> <mask>'		,		top_k=2 )

     self.assertEqual(
         nested_simplify(_UpperCAmelCase		,		decimals=6 )		,		[
             [
                 {
                     'score': 2.2e-05,
                     'token': 35676,
                     'token_str': ' Maul',
                     'sequence': '<s>My name is Maul<mask></s>',
                 },
                 {'score': 2.2e-05, 'token': 16416, 'token_str': 'ELS', 'sequence': '<s>My name isELS<mask></s>'},
             ],
             [
                 {
                     'score': 2.2e-05,
                     'token': 35676,
                     'token_str': ' Maul',
                     'sequence': '<s>My name is<mask> Maul</s>',
                 },
                 {'score': 2.2e-05, 'token': 16416, 'token_str': 'ELS', 'sequence': '<s>My name is<mask>ELS</s>'},
             ],
         ]		,		)




  @require_torch_gpu
  def    _UpperCAmelCase     (     self )			-> Tuple:
     UpperCamelCase_									=     pipeline('fill-mask'		,		model='hf-internal-testing/tiny-random-distilbert'		,		device=0		,		framework='pt' )

     # convert model to fp16
     pipe.model.half()

     UpperCamelCase_									=     pipe('Paris is the [MASK] of France.' )
     # We actually don't care about the result, we just want to make sure
     # it works, meaning the float16 tensor got casted back to float32
     # for postprocessing.
     self.assertIsInstance(_UpperCAmelCase		,		_UpperCAmelCase )




  @slow
  @require_torch
  def    _UpperCAmelCase     (     self )			-> str:
     UpperCamelCase_									=     pipeline(task='fill-mask'		,		model='distilroberta-base'		,		top_k=2		,		framework='pt' )
     self.run_large_test(_UpperCAmelCase )




  @slow
  @require_tf
  def    _UpperCAmelCase     (     self )			-> str:
     UpperCamelCase_									=     pipeline(task='fill-mask'		,		model='distilroberta-base'		,		top_k=2		,		framework='tf' )
     self.run_large_test(_UpperCAmelCase )




  def    _UpperCAmelCase     (     self		,		_UpperCAmelCase )			-> Optional[int]:
     UpperCamelCase_									=     unmasker('My name is <mask>' )
     self.assertEqual(
         nested_simplify(_UpperCAmelCase )		,		[
             {'sequence': 'My name is John', 'score': 0.0_0_8, 'token': 610, 'token_str': ' John'},
             {'sequence': 'My name is Chris', 'score': 0.0_0_7, 'token': 1573, 'token_str': ' Chris'},
         ]		,		)
     UpperCamelCase_									=     unmasker('The largest city in France is <mask>' )
     self.assertEqual(
         nested_simplify(_UpperCAmelCase )		,		[
             {
                 'sequence': 'The largest city in France is Paris',
                 'score': 0.2_5_1,
                 'token': 2201,
                 'token_str': ' Paris',
             },
             {
                 'sequence': 'The largest city in France is Lyon',
                 'score': 0.2_1_4,
                 'token': 12790,
                 'token_str': ' Lyon',
             },
         ]		,		)

     UpperCamelCase_									=     unmasker('My name is <mask>'		,		targets=[' Patrick', ' Clara', ' Teven']		,		top_k=3 )
     self.assertEqual(
         nested_simplify(_UpperCAmelCase )		,		[
             {'sequence': 'My name is Patrick', 'score': 0.0_0_5, 'token': 3499, 'token_str': ' Patrick'},
             {'sequence': 'My name is Clara', 'score': 0.0_0_0, 'token': 13606, 'token_str': ' Clara'},
             {'sequence': 'My name is Te', 'score': 0.0_0_0, 'token': 2941, 'token_str': ' Te'},
         ]		,		)




  @require_torch
  def    _UpperCAmelCase     (     self )			-> int:
     UpperCamelCase_									=     pipeline(task='fill-mask'		,		model='sshleifer/tiny-distilroberta-base'		,		framework='pt' )
     UpperCamelCase_									=     None
     UpperCamelCase_									=     None
     self.run_pipeline_test(_UpperCAmelCase		,		[] )




  @require_tf
  def    _UpperCAmelCase     (     self )			-> Tuple:
     UpperCamelCase_									=     pipeline(task='fill-mask'		,		model='sshleifer/tiny-distilroberta-base'		,		framework='tf' )
     UpperCamelCase_									=     None
     UpperCamelCase_									=     None
     self.run_pipeline_test(_UpperCAmelCase		,		[] )




  def    _UpperCAmelCase     (     self		,		_UpperCAmelCase		,		_UpperCAmelCase		,		_UpperCAmelCase )			-> Tuple:
     if tokenizer is None or tokenizer.mask_token_id is None:
        self.skipTest('The provided tokenizer has no mask token, (probably reformer or wav2vec2)' )

     UpperCamelCase_									=     FillMaskPipeline(model=_UpperCAmelCase		,		tokenizer=_UpperCAmelCase )
     UpperCamelCase_									=     [
         f"""This is another {tokenizer.mask_token} test""",
     ]
     return fill_masker, examples




  def    _UpperCAmelCase     (     self		,		_UpperCAmelCase		,		_UpperCAmelCase )			-> List[Any]:
     UpperCamelCase_									=     fill_masker.tokenizer
     UpperCamelCase_									=     fill_masker.model

     UpperCamelCase_									=     fill_masker(
         f"""This is a {tokenizer.mask_token}"""		,		)
     self.assertEqual(
         _UpperCAmelCase		,		[
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
         ]		,		)

     UpperCamelCase_									=     fill_masker([f"""This is a {tokenizer.mask_token}"""] )
     self.assertEqual(
         _UpperCAmelCase		,		[
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
         ]		,		)

     UpperCamelCase_									=     fill_masker([f"""This is a {tokenizer.mask_token}""", f"""Another {tokenizer.mask_token} great test."""] )
     self.assertEqual(
         _UpperCAmelCase		,		[
             [
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             ],
             [
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             ],
         ]		,		)

     with self.assertRaises(_UpperCAmelCase ):
        fill_masker([None] )
     # No mask_token is not supported
     with self.assertRaises(_UpperCAmelCase ):
        fill_masker('This is' )

     self.run_test_top_k(_UpperCAmelCase		,		_UpperCAmelCase )
     self.run_test_targets(_UpperCAmelCase		,		_UpperCAmelCase )
     self.run_test_top_k_targets(_UpperCAmelCase		,		_UpperCAmelCase )
     self.fill_mask_with_duplicate_targets_and_top_k(_UpperCAmelCase		,		_UpperCAmelCase )
     self.fill_mask_with_multiple_masks(_UpperCAmelCase		,		_UpperCAmelCase )




  def    _UpperCAmelCase     (     self		,		_UpperCAmelCase		,		_UpperCAmelCase )			-> Union[str, Any]:
     UpperCamelCase_									=     tokenizer.get_vocab()
     UpperCamelCase_									=     sorted(vocab.keys() )[:2]
     # Pipeline argument
     UpperCamelCase_									=     FillMaskPipeline(model=_UpperCAmelCase		,		tokenizer=_UpperCAmelCase		,		targets=_UpperCAmelCase )
     UpperCamelCase_									=     fill_masker(f"""This is a {tokenizer.mask_token}""" )
     self.assertEqual(
         _UpperCAmelCase		,		[
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
         ]		,		)
     UpperCamelCase_									=     {vocab[el] for el in targets}
     self.assertEqual({el['token'] for el in outputs}		,		_UpperCAmelCase )
     UpperCamelCase_									=     [tokenizer.decode([x] ) for x in target_ids]
     self.assertEqual({el['token_str'] for el in outputs}		,		set(_UpperCAmelCase ) )

     # Call argument
     UpperCamelCase_									=     FillMaskPipeline(model=_UpperCAmelCase		,		tokenizer=_UpperCAmelCase )
     UpperCamelCase_									=     fill_masker(f"""This is a {tokenizer.mask_token}"""		,		targets=_UpperCAmelCase )
     self.assertEqual(
         _UpperCAmelCase		,		[
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
         ]		,		)
     UpperCamelCase_									=     {vocab[el] for el in targets}
     self.assertEqual({el['token'] for el in outputs}		,		_UpperCAmelCase )
     UpperCamelCase_									=     [tokenizer.decode([x] ) for x in target_ids]
     self.assertEqual({el['token_str'] for el in outputs}		,		set(_UpperCAmelCase ) )

     # Score equivalence
     UpperCamelCase_									=     fill_masker(f"""This is a {tokenizer.mask_token}"""		,		targets=_UpperCAmelCase )
     UpperCamelCase_									=     [top_mask['token_str'] for top_mask in outputs]
     UpperCamelCase_									=     [top_mask['score'] for top_mask in outputs]

     # For some BPE tokenizers, `</w>` is removed during decoding, so `token_str` won't be the same as in `targets`.
     if set(_UpperCAmelCase ) == set(_UpperCAmelCase ):
        UpperCamelCase_									=     fill_masker(f"""This is a {tokenizer.mask_token}"""		,		targets=_UpperCAmelCase )
        UpperCamelCase_									=     [top_mask['score'] for top_mask in unmasked_targets]
        self.assertEqual(nested_simplify(_UpperCAmelCase )		,		nested_simplify(_UpperCAmelCase ) )

     # Raises with invalid
     with self.assertRaises(_UpperCAmelCase ):
        UpperCamelCase_									=     fill_masker(f"""This is a {tokenizer.mask_token}"""		,		targets=[] )
     # For some tokenizers, `""` is actually in the vocabulary and the expected error won't raised
     if "" not in tokenizer.get_vocab():
        with self.assertRaises(_UpperCAmelCase ):
           UpperCamelCase_									=     fill_masker(f"""This is a {tokenizer.mask_token}"""		,		targets=[''] )
        with self.assertRaises(_UpperCAmelCase ):
           UpperCamelCase_									=     fill_masker(f"""This is a {tokenizer.mask_token}"""		,		targets='' )




  def    _UpperCAmelCase     (     self		,		_UpperCAmelCase		,		_UpperCAmelCase )			-> str:
     UpperCamelCase_									=     FillMaskPipeline(model=_UpperCAmelCase		,		tokenizer=_UpperCAmelCase		,		top_k=2 )
     UpperCamelCase_									=     fill_masker(f"""This is a {tokenizer.mask_token}""" )
     self.assertEqual(
         _UpperCAmelCase		,		[
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
         ]		,		)

     UpperCamelCase_									=     FillMaskPipeline(model=_UpperCAmelCase		,		tokenizer=_UpperCAmelCase )
     UpperCamelCase_									=     fill_masker(f"""This is a {tokenizer.mask_token}"""		,		top_k=2 )
     self.assertEqual(
         _UpperCAmelCase		,		[
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
         ]		,		)
     self.assertEqual(nested_simplify(_UpperCAmelCase )		,		nested_simplify(_UpperCAmelCase ) )




  def    _UpperCAmelCase     (     self		,		_UpperCAmelCase		,		_UpperCAmelCase )			-> List[str]:
     UpperCamelCase_									=     tokenizer.get_vocab()
     UpperCamelCase_									=     FillMaskPipeline(model=_UpperCAmelCase		,		tokenizer=_UpperCAmelCase )

     # top_k=2, ntargets=3
     UpperCamelCase_									=     sorted(vocab.keys() )[:3]
     UpperCamelCase_									=     fill_masker(f"""This is a {tokenizer.mask_token}"""		,		top_k=2		,		targets=_UpperCAmelCase )

     # If we use the most probably targets, and filter differently, we should still
     # have the same results
     UpperCamelCase_									=     [el['token_str'] for el in sorted(_UpperCAmelCase		,		key=lambda _UpperCAmelCase : x["score"]		,		reverse=_UpperCAmelCase )]
     # For some BPE tokenizers, `</w>` is removed during decoding, so `token_str` won't be the same as in `targets`.
     if set(_UpperCAmelCase ).issubset(_UpperCAmelCase ):
        UpperCamelCase_									=     fill_masker(f"""This is a {tokenizer.mask_token}"""		,		top_k=3		,		targets=_UpperCAmelCase )
        # They should yield exactly the same result
        self.assertEqual(nested_simplify(_UpperCAmelCase )		,		nested_simplify(_UpperCAmelCase ) )




  def    _UpperCAmelCase     (     self		,		_UpperCAmelCase		,		_UpperCAmelCase )			-> Any:
     UpperCamelCase_									=     FillMaskPipeline(model=_UpperCAmelCase		,		tokenizer=_UpperCAmelCase )
     UpperCamelCase_									=     tokenizer.get_vocab()
     # String duplicates + id duplicates
     UpperCamelCase_									=     sorted(vocab.keys() )[:3]
     UpperCamelCase_									=     [targets[0], targets[1], targets[0], targets[2], targets[1]]
     UpperCamelCase_									=     fill_masker(f"""My name is {tokenizer.mask_token}"""		,		targets=_UpperCAmelCase		,		top_k=10 )

     # The target list contains duplicates, so we can't output more
     # than them
     self.assertEqual(len(_UpperCAmelCase )		,		3 )




  def    _UpperCAmelCase     (     self		,		_UpperCAmelCase		,		_UpperCAmelCase )			-> str:
     UpperCamelCase_									=     FillMaskPipeline(model=_UpperCAmelCase		,		tokenizer=_UpperCAmelCase )

     UpperCamelCase_									=     fill_masker(
         f"""This is a {tokenizer.mask_token} {tokenizer.mask_token} {tokenizer.mask_token}"""		,		top_k=2 )
     self.assertEqual(
         _UpperCAmelCase		,		[
             [
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             ],
             [
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             ],
             [
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
                 {'sequence': ANY(_UpperCAmelCase ), 'score': ANY(_UpperCAmelCase ), 'token': ANY(_UpperCAmelCase ), 'token_str': ANY(_UpperCAmelCase )},
             ],
         ]		,		)













from ...utils import (
    OptionalDependencyNotAvailable,
    is_torch_available,
    is_transformers_available,
    is_transformers_version,
)


try:
 if not (is_transformers_available() and is_torch_available()):
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 from ...utils.dummy_torch_and_transformers_objects import (
     ImageTextPipelineOutput,
     UniDiffuserPipeline,
 )
else:
 from .modeling_text_decoder import UniDiffuserTextDecoder
 from .modeling_uvit import UniDiffuserModel, UTransformeraDModel
 from .pipeline_unidiffuser import ImageTextPipelineOutput, UniDiffuserPipeline





