
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


_SCREAMING_SNAKE_CASE    :      int          =			DUMMY_UNKNOWN_IDENTIFIER
# An actual model hosted on huggingface.co

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

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

@contextlib.contextmanager
def 				SCREAMING_SNAKE_CASE     (      ) ->       Tuple:

				"""simple docstring"""







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

@contextlib.contextmanager
def 				SCREAMING_SNAKE_CASE     (      ) ->       int:

				"""simple docstring"""







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







class  UpperCamelCase__		(    unittest.TestCase   ):







	'''simple docstring'''





	def   __snake_case				(			self		):
					# 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  UpperCamelCase__		(    unittest.TestCase   ):







	'''simple docstring'''





	@unittest.mock.patch('''sys.stdout'''				,       new_callable=io.StringIO		)
	def   __snake_case				(			self				,       UpperCamelCase__		):
					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				,       UpperCamelCase__		):
					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				,       UpperCamelCase__		):
					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		):
					self.assertEqual(find_labels(UpperCamelCase__		)				,       ['''labels''']		)
					self.assertEqual(find_labels(UpperCamelCase__		)				,       ['''labels''', '''next_sentence_label''']		)
					self.assertEqual(find_labels(UpperCamelCase__		)				,       ['''start_positions''', '''end_positions''']		)







					class  UpperCamelCase__		(    SCREAMING_SNAKE_CASE_   ):







						'''simple docstring'''
						pass




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





	@require_tf
	def   __snake_case				(			self		):
					self.assertEqual(find_labels(UpperCamelCase__		)				,       ['''labels''']		)
					self.assertEqual(find_labels(UpperCamelCase__		)				,       ['''labels''', '''next_sentence_label''']		)
					self.assertEqual(find_labels(UpperCamelCase__		)				,       ['''start_positions''', '''end_positions''']		)







					class  UpperCamelCase__		(    SCREAMING_SNAKE_CASE_   ):







						'''simple docstring'''
						pass




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





	@require_flax
	def   __snake_case				(			self		):
					# Flax models don't have labels
					self.assertEqual(find_labels(UpperCamelCase__		)				,       []		)
					self.assertEqual(find_labels(UpperCamelCase__		)				,       []		)
					self.assertEqual(find_labels(UpperCamelCase__		)				,       []		)







					class  UpperCamelCase__		(    SCREAMING_SNAKE_CASE_   ):







						'''simple docstring'''
						pass




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

from abc import ABC, abstractmethod
from argparse import ArgumentParser







class  UpperCamelCase__		(    SCREAMING_SNAKE_CASE_   ):







	'''simple docstring'''





	@staticmethod
	@abstractmethod
	def   __snake_case				(			UpperCamelCase__		):
					raise NotImplementedError()





	@abstractmethod
	def   __snake_case				(			self		):
					raise NotImplementedError()