



'''simple docstring'''




from typing import TYPE_CHECKING

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


a   :			Any					  =    {
    """configuration_roberta""": ["""ROBERTA_PRETRAINED_CONFIG_ARCHIVE_MAP""", """RobertaConfig""", """RobertaOnnxConfig"""],
    """tokenization_roberta""": ["""RobertaTokenizer"""],
}

try:
							if not is_tokenizers_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							a   :			Dict					  =    ["""RobertaTokenizerFast"""]

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							a   :			Optional[Any]					  =    [
							    """ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST""",
							    """RobertaForCausalLM""",
							    """RobertaForMaskedLM""",
							    """RobertaForMultipleChoice""",
							    """RobertaForQuestionAnswering""",
							    """RobertaForSequenceClassification""",
							    """RobertaForTokenClassification""",
							    """RobertaModel""",
							    """RobertaPreTrainedModel""",
							]

try:
							if not is_tf_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							a   :			Dict					  =    [
							    """TF_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST""",
							    """TFRobertaForCausalLM""",
							    """TFRobertaForMaskedLM""",
							    """TFRobertaForMultipleChoice""",
							    """TFRobertaForQuestionAnswering""",
							    """TFRobertaForSequenceClassification""",
							    """TFRobertaForTokenClassification""",
							    """TFRobertaMainLayer""",
							    """TFRobertaModel""",
							    """TFRobertaPreTrainedModel""",
							]

try:
							if not is_flax_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							a   :			List[str]					  =    [
							    """FlaxRobertaForCausalLM""",
							    """FlaxRobertaForMaskedLM""",
							    """FlaxRobertaForMultipleChoice""",
							    """FlaxRobertaForQuestionAnswering""",
							    """FlaxRobertaForSequenceClassification""",
							    """FlaxRobertaForTokenClassification""",
							    """FlaxRobertaModel""",
							    """FlaxRobertaPreTrainedModel""",
							]


if TYPE_CHECKING:
							from .configuration_roberta import ROBERTA_PRETRAINED_CONFIG_ARCHIVE_MAP, RobertaConfig, RobertaOnnxConfig
							from .tokenization_roberta import RobertaTokenizer

							try:
														if not is_tokenizers_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .tokenization_roberta_fast import RobertaTokenizerFast

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_roberta import (
														    ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
														    RobertaForCausalLM,
														    RobertaForMaskedLM,
														    RobertaForMultipleChoice,
														    RobertaForQuestionAnswering,
														    RobertaForSequenceClassification,
														    RobertaForTokenClassification,
														    RobertaModel,
														    RobertaPreTrainedModel,
														)

							try:
														if not is_tf_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_tf_roberta import (
														    TF_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
														    TFRobertaForCausalLM,
														    TFRobertaForMaskedLM,
														    TFRobertaForMultipleChoice,
														    TFRobertaForQuestionAnswering,
														    TFRobertaForSequenceClassification,
														    TFRobertaForTokenClassification,
														    TFRobertaMainLayer,
														    TFRobertaModel,
														    TFRobertaPreTrainedModel,
														)

							try:
														if not is_flax_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_flax_roberta import (
														    FlaxRobertaForCausalLM,
														    FlaxRobertaForMaskedLM,
														    FlaxRobertaForMultipleChoice,
														    FlaxRobertaForQuestionAnswering,
														    FlaxRobertaForSequenceClassification,
														    FlaxRobertaForTokenClassification,
														    FlaxRobertaModel,
														    FlaxRobertaPreTrainedModel,
														)

else:
							import sys

							a   :			List[str]					  =    _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)






'''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


a   :			str					  =    DUMMY_UNKNOWN_IDENTIFIER
# An actual model hosted on huggingface.co

a   :			int					  =    """main"""
# Default branch name
a   :			Any					  =    """f2c752cfc5c0ab6f4bdec59acea69eefbee381c2"""
# One particular commit (not the top of `main`)
a   :			str					  =    """aaaaaaa"""
# This commit does not exist, so we should 404.

a   :			int					  =    """d9e9f15bc825e4b2c9249e9578f884bbcb5e3684"""
# Sha-1 of config.json on the top of `main`, for checking purposes
a   :			Any					  =    """4b243c475af8d0a7754e87d7d096c92e5199ec2fe168a2ee7998e3b8e9bcb1d3"""



@contextlib.contextmanager
def       __lowerCamelCase  (					)      ->			List[str]:
							print("""Welcome!"""		)
							yield
							print("""Bye!"""		)



@contextlib.contextmanager
def       __lowerCamelCase  (					)      ->			Optional[int]:
							print("""Bonjour!"""		)
							yield
							print("""Au revoir!"""		)

class 			UpperCamelCase_ (							unittest.TestCase			):





	def  _lowercase(  self    )			->			List[Any]:
								# 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			):





	@unittest.mock.patch("""sys.stdout"""		,		new_callable=io.StringIO    )
	def  _lowercase(  self		,		A    )			->			Tuple:
								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  _lowercase(  self		,		A    )			->			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  _lowercase(  self		,		A    )			->			Union[str, 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  _lowercase(  self    )			->			Optional[int]:
								self.assertEqual(find_labels(A    )		,		["""labels"""]    )
								self.assertEqual(find_labels(A    )		,		["""labels""", """next_sentence_label"""]    )
								self.assertEqual(find_labels(A    )		,		["""start_positions""", """end_positions"""]    )

								class 			UpperCamelCase_ (							__magic_name__			):
									pass




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





	@require_tf
	def  _lowercase(  self    )			->			int:
								self.assertEqual(find_labels(A    )		,		["""labels"""]    )
								self.assertEqual(find_labels(A    )		,		["""labels""", """next_sentence_label"""]    )
								self.assertEqual(find_labels(A    )		,		["""start_positions""", """end_positions"""]    )

								class 			UpperCamelCase_ (							__magic_name__			):
									pass




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






	@require_flax
	def  _lowercase(  self    )			->			Any:
								# Flax models don't have labels
								self.assertEqual(find_labels(A    )		,		[]    )
								self.assertEqual(find_labels(A    )		,		[]    )
								self.assertEqual(find_labels(A    )		,		[]    )

								class 			UpperCamelCase_ (							__magic_name__			):
									pass




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

