import contextlib
import importlib
import io
import unittest

import transformers

# Try to import everything from transformers to ensure every object can be loaded.
from transformers import *  # noqa F406
from transformers.testing_utils import DUMMY_UNKNOWN_IDENTIFIER, require_flax, require_tf, require_torch
from transformers.utils import ContextManagers, find_labels, is_flax_available, is_tf_available, is_torch_available


if is_torch_available():
  from transformers import BertForPreTraining, BertForQuestionAnswering, BertForSequenceClassification

if is_tf_available():
  from transformers import TFBertForPreTraining, TFBertForQuestionAnswering, TFBertForSequenceClassification

if is_flax_available():
  from transformers import FlaxBertForPreTraining, FlaxBertForQuestionAnswering, FlaxBertForSequenceClassification


UpperCAmelCase_			    =							DUMMY_UNKNOWN_IDENTIFIER
# An actual model hosted on huggingface.co

UpperCAmelCase_			    =							'''main'''
# Default branch name
UpperCAmelCase_			    =							'''f2c752cfc5c0ab6f4bdec59acea69eefbee381c2'''
# One particular commit (not the top of `main`)
UpperCAmelCase_			    =							'''aaaaaaa'''
# This commit does not exist, so we should 404.

UpperCAmelCase_			    =							'''d9e9f15bc825e4b2c9249e9578f884bbcb5e3684'''
# Sha-1 of config.json on the top of `main`, for checking purposes
UpperCAmelCase_			    =							'''4b243c475af8d0a7754e87d7d096c92e5199ec2fe168a2ee7998e3b8e9bcb1d3'''




@contextlib.contextmanager
def       lowerCAmelCase_     (		)    ->				Dict:







 '''simple docstring'''
 print('''Welcome!'''		)
 yield
 print('''Bye!'''		)




@contextlib.contextmanager
def       lowerCAmelCase_     (		)    ->				Dict:







 '''simple docstring'''
 print('''Bonjour!'''		)
 yield
 print('''Au revoir!'''		)




class  __magic_name__  (		unittest.TestCase    ):





   """simple docstring"""




   def   lowerCAmelCase						(	self					:  str							):



    """simple docstring"""



    assert transformers.__spec__ is not None
    assert importlib.util.find_spec('''transformers'''							) is not None




class  __magic_name__  (		unittest.TestCase    ):





   """simple docstring"""




   @unittest.mock.patch('''sys.stdout'''		,  new_callable=io.StringIO							)
   def   lowerCAmelCase						(	self					:  Dict		,  _lowercase					:  Optional[Any]							):



    """simple docstring"""



    with ContextManagers([]							):
     print('''Transformers are awesome!'''							)
    # The print statement adds a new line at the end of the output
    self.assertEqual(mock_stdout.getvalue()		,  '''Transformers are awesome!\n'''							)



   @unittest.mock.patch('''sys.stdout'''		,  new_callable=io.StringIO							)
   def   lowerCAmelCase						(	self					:  Tuple		,  _lowercase					:  Optional[Any]							):



    """simple docstring"""



    with ContextManagers([context_en()]							):
     print('''Transformers are awesome!'''							)
    # The output should be wrapped with an English welcome and goodbye
    self.assertEqual(mock_stdout.getvalue()		,  '''Welcome!\nTransformers are awesome!\nBye!\n'''							)



   @unittest.mock.patch('''sys.stdout'''		,  new_callable=io.StringIO							)
   def   lowerCAmelCase						(	self					:  int		,  _lowercase					:  List[str]							):



    """simple docstring"""



    with ContextManagers([context_fr(), context_en()]							):
     print('''Transformers are awesome!'''							)
    # The output should be wrapped with an English and French welcome and goodbye
    self.assertEqual(mock_stdout.getvalue()		,  '''Bonjour!\nWelcome!\nTransformers are awesome!\nBye!\nAu revoir!\n'''							)



   @require_torch
   def   lowerCAmelCase						(	self					:  List[str]							):



    """simple docstring"""



    self.assertEqual(find_labels(_lowercase							)		,  ['''labels''']							)
    self.assertEqual(find_labels(_lowercase							)		,  ['''labels''', '''next_sentence_label''']							)
    self.assertEqual(find_labels(_lowercase							)		,  ['''start_positions''', '''end_positions''']							)




    class  __magic_name__  (		__a    ):





       """simple docstring"""




       pass




    self.assertEqual(find_labels(_lowercase							)		,  ['''labels''']							)



   @require_tf
   def   lowerCAmelCase						(	self					:  Optional[int]							):



    """simple docstring"""



    self.assertEqual(find_labels(_lowercase							)		,  ['''labels''']							)
    self.assertEqual(find_labels(_lowercase							)		,  ['''labels''', '''next_sentence_label''']							)
    self.assertEqual(find_labels(_lowercase							)		,  ['''start_positions''', '''end_positions''']							)




    class  __magic_name__  (		__a    ):





       """simple docstring"""




       pass




    self.assertEqual(find_labels(_lowercase							)		,  ['''labels''']							)



   @require_flax
   def   lowerCAmelCase						(	self					:  Optional[Any]							):



    """simple docstring"""



    self.assertEqual(find_labels(_lowercase							)		,  []							)
    self.assertEqual(find_labels(_lowercase							)		,  []							)
    self.assertEqual(find_labels(_lowercase							)		,  []							)




    class  __magic_name__  (		__a    ):





       """simple docstring"""




       pass




    self.assertEqual(find_labels(_lowercase							)		,  []							)
from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


UpperCAmelCase_			    =							{
    '''configuration_blenderbot''': [
        '''BLENDERBOT_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''BlenderbotConfig''',
        '''BlenderbotOnnxConfig''',
    ],
    '''tokenization_blenderbot''': ['''BlenderbotTokenizer'''],
}

try:
  if not is_tokenizers_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_			    =							['''BlenderbotTokenizerFast''']

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_			    =							[
      '''BLENDERBOT_PRETRAINED_MODEL_ARCHIVE_LIST''',
      '''BlenderbotForCausalLM''',
      '''BlenderbotForConditionalGeneration''',
      '''BlenderbotModel''',
      '''BlenderbotPreTrainedModel''',
  ]


try:
  if not is_tf_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_			    =							[
      '''TFBlenderbotForConditionalGeneration''',
      '''TFBlenderbotModel''',
      '''TFBlenderbotPreTrainedModel''',
  ]


try:
  if not is_flax_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_			    =							[
      '''FlaxBlenderbotForConditionalGeneration''',
      '''FlaxBlenderbotModel''',
      '''FlaxBlenderbotPreTrainedModel''',
  ]


if TYPE_CHECKING:
  from .configuration_blenderbot import (
      BLENDERBOT_PRETRAINED_CONFIG_ARCHIVE_MAP,
      BlenderbotConfig,
      BlenderbotOnnxConfig,
  )
  from .tokenization_blenderbot import BlenderbotTokenizer

  try:
    if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_blenderbot_fast import BlenderbotTokenizerFast

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_blenderbot import (
        BLENDERBOT_PRETRAINED_MODEL_ARCHIVE_LIST,
        BlenderbotForCausalLM,
        BlenderbotForConditionalGeneration,
        BlenderbotModel,
        BlenderbotPreTrainedModel,
    )

  try:
    if not is_tf_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_tf_blenderbot import (
        TFBlenderbotForConditionalGeneration,
        TFBlenderbotModel,
        TFBlenderbotPreTrainedModel,
    )

  try:
    if not is_flax_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_flax_blenderbot import (
        FlaxBlenderbotForConditionalGeneration,
        FlaxBlenderbotModel,
        FlaxBlenderbotPreTrainedModel,
    )

else:
  import sys

  UpperCAmelCase_			    =							_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)