





"""simple docstring"""





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


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

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

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




@contextlib.contextmanager
def 						lowerCAmelCase_      (    ):

 '''simple docstring'''






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




@contextlib.contextmanager
def 						lowerCAmelCase_      (    ):

 '''simple docstring'''






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





class      snake_case						(  unittest.TestCase  ):

      def 		SCREAMING_SNAKE_CASE_     (     self  :str		):
       assert transformers.__spec__ is not None
       assert importlib.util.find_spec('''transformers'''		) is not None







class      snake_case						(  unittest.TestCase  ):

      @unittest.mock.patch('''sys.stdout'''		,				new_callable=io.StringIO		)
      def 		SCREAMING_SNAKE_CASE_     (     self  :Union[str, Any]		,				_lowerCamelCase  :Union[str, Any]		):



       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 		SCREAMING_SNAKE_CASE_     (     self  :str		,				_lowerCamelCase  :Dict		):



       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 		SCREAMING_SNAKE_CASE_     (     self  :Union[str, Any]		,				_lowerCamelCase  :Any		):



       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 		SCREAMING_SNAKE_CASE_     (     self  :Optional[int]		):
       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      snake_case						(  __UpperCAmelCase  ):
             pass







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

      @require_tf
      def 		SCREAMING_SNAKE_CASE_     (     self  :List[str]		):
       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      snake_case						(  __UpperCAmelCase  ):
             pass







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



      @require_flax
      def 		SCREAMING_SNAKE_CASE_     (     self  :Tuple		):
       self.assertEqual(find_labels(SCREAMING_SNAKE_CASE__		)		,				[]		)
       self.assertEqual(find_labels(SCREAMING_SNAKE_CASE__		)		,				[]		)
       self.assertEqual(find_labels(SCREAMING_SNAKE_CASE__		)		,				[]		)





       class      snake_case						(  __UpperCAmelCase  ):
             pass







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



# Copyright 2023 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from typing import TYPE_CHECKING

# rely on isort to merge the imports
from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


_snake_case      = {
    '''configuration_efficientnet''': [
        '''EFFICIENTNET_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''EfficientNetConfig''',
        '''EfficientNetOnnxConfig''',
    ]
}

try:
 if not is_vision_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _snake_case      = ['''EfficientNetImageProcessor''']

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _snake_case      = [
     '''EFFICIENTNET_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''EfficientNetForImageClassification''',
     '''EfficientNetModel''',
     '''EfficientNetPreTrainedModel''',
 ]

if TYPE_CHECKING:
 from .configuration_efficientnet import (
     EFFICIENTNET_PRETRAINED_CONFIG_ARCHIVE_MAP,
     EfficientNetConfig,
     EfficientNetOnnxConfig,
 )

 try:
  if not is_vision_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .image_processing_efficientnet import EfficientNetImageProcessor

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_efficientnet import (
      EFFICIENTNET_PRETRAINED_MODEL_ARCHIVE_LIST,
      EfficientNetForImageClassification,
      EfficientNetModel,
      EfficientNetPreTrainedModel,
  )

else:
 import sys

 _snake_case      = _LazyModule(__name__, globals()['''__file__'''], _import_structure)


