

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


__lowercase     : Tuple       =						DUMMY_UNKNOWN_IDENTIFIER
# An actual model hosted on huggingface.co

__lowercase     : Optional[Any]       =						'''main'''
# Default branch name
__lowercase     : List[str]       =						'''f2c752cfc5c0ab6f4bdec59acea69eefbee381c2'''
# One particular commit (not the top of `main`)
__lowercase     : List[Any]       =						'''aaaaaaa'''
# This commit does not exist, so we should 404.

__lowercase     : Union[str, Any]       =						'''d9e9f15bc825e4b2c9249e9578f884bbcb5e3684'''
# Sha-1 of config.json on the top of `main`, for checking purposes
__lowercase     : Tuple       =						'''4b243c475af8d0a7754e87d7d096c92e5199ec2fe168a2ee7998e3b8e9bcb1d3'''







@contextlib.contextmanager
def       lowercase					(	)				->			str:





    '''simple docstring'''




    print("""Welcome!"""		)
    yield
    print("""Bye!"""		)







@contextlib.contextmanager
def       lowercase					(	)				->			List[str]:





    '''simple docstring'''




    print("""Bonjour!"""		)
    yield
    print("""Au revoir!"""		)



class 						_A     (				unittest.TestCase				):





  '''simple docstring'''



  def    snake_case_       (  self    ):

      '''simple docstring'''
      # If the spec is missing, importlib would not be able to import the module dynamically.
      assert transformers.__spec__ is not None
      assert importlib.util.find_spec("""transformers"""    ) is not None







class 						_A     (				unittest.TestCase				):





  '''simple docstring'''



  @unittest.mock.patch("""sys.stdout"""   ,new_callable=io.StringIO    )
  def    snake_case_       (  self   ,SCREAMING_SNAKE_CASE_    ):

      '''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    snake_case_       (  self   ,SCREAMING_SNAKE_CASE_    ):

      '''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    snake_case_       (  self   ,SCREAMING_SNAKE_CASE_    ):

      '''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    snake_case_       (  self    ):

      '''simple docstring'''
      self.assertEqual(find_labels(SCREAMING_SNAKE_CASE_    )   ,["""labels"""]    )
      self.assertEqual(find_labels(SCREAMING_SNAKE_CASE_    )   ,["""labels""", """next_sentence_label"""]    )
      self.assertEqual(find_labels(SCREAMING_SNAKE_CASE_    )   ,["""start_positions""", """end_positions"""]    )



      class 						_A     (				snake_case				):





        '''simple docstring'''



        pass







      self.assertEqual(find_labels(SCREAMING_SNAKE_CASE_    )   ,["""labels"""]    )





  @require_tf
  def    snake_case_       (  self    ):

      '''simple docstring'''
      self.assertEqual(find_labels(SCREAMING_SNAKE_CASE_    )   ,["""labels"""]    )
      self.assertEqual(find_labels(SCREAMING_SNAKE_CASE_    )   ,["""labels""", """next_sentence_label"""]    )
      self.assertEqual(find_labels(SCREAMING_SNAKE_CASE_    )   ,["""start_positions""", """end_positions"""]    )



      class 						_A     (				snake_case				):





        '''simple docstring'''



        pass







      self.assertEqual(find_labels(SCREAMING_SNAKE_CASE_    )   ,["""labels"""]    )





  @require_flax
  def    snake_case_       (  self    ):

      '''simple docstring'''
      # Flax models don't have labels
      self.assertEqual(find_labels(SCREAMING_SNAKE_CASE_    )   ,[]    )
      self.assertEqual(find_labels(SCREAMING_SNAKE_CASE_    )   ,[]    )
      self.assertEqual(find_labels(SCREAMING_SNAKE_CASE_    )   ,[]    )



      class 						_A     (				snake_case				):





        '''simple docstring'''



        pass







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




"""simple docstring"""


from typing import TYPE_CHECKING

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


UpperCAmelCase__			=    {
    """configuration_gpt_bigcode""": ["""GPT_BIGCODE_PRETRAINED_CONFIG_ARCHIVE_MAP""", """GPTBigCodeConfig"""],
}

try:
    if not is_torch_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    UpperCAmelCase__			=    [
        """GPT_BIGCODE_PRETRAINED_MODEL_ARCHIVE_LIST""",
        """GPTBigCodeForSequenceClassification""",
        """GPTBigCodeForTokenClassification""",
        """GPTBigCodeForCausalLM""",
        """GPTBigCodeModel""",
        """GPTBigCodePreTrainedModel""",
    ]

if TYPE_CHECKING:
    from .configuration_gpt_bigcode import GPT_BIGCODE_PRETRAINED_CONFIG_ARCHIVE_MAP, GPTBigCodeConfig

    try:
        if not is_torch_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .modeling_gpt_bigcode import (
            GPT_BIGCODE_PRETRAINED_MODEL_ARCHIVE_LIST,
            GPTBigCodeForCausalLM,
            GPTBigCodeForSequenceClassification,
            GPTBigCodeForTokenClassification,
            GPTBigCodeModel,
            GPTBigCodePreTrainedModel,
        )


else:
    import sys

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