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 				UpperCamelCase						(       ):
		'''simple docstring'''




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




@contextlib.contextmanager
def 				UpperCamelCase						(       ):
		'''simple docstring'''




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





class UpperCAmelCase						(					unittest.TestCase  ):


				'''simple docstring'''






				def   lowerCAmelCase_   (						self					):



						"""simple docstring"""





						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   lowerCAmelCase_   (						self		,	lowercase					):



						"""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		,	lowercase					):



						"""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		,	lowercase					):



						"""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					):



						"""simple docstring"""





						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						(					__a  ):


										'''simple docstring'''






										pass

						self.assertEqual(find_labels(_UpperCamelCase					)		,	['labels']					)
				@require_tf
				def   lowerCAmelCase_   (						self					):



						"""simple docstring"""





						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						(					__a  ):


										'''simple docstring'''






										pass

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







				@require_flax
				def   lowerCAmelCase_   (						self					):



						"""simple docstring"""





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





						class UpperCAmelCase						(					__a  ):


										'''simple docstring'''






										pass

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








from typing import TYPE_CHECKING

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


_A   =     {}

try:
			if not is_sentencepiece_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			_A   =     ["NllbTokenizer"]

try:
			if not is_tokenizers_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			_A   =     ["NllbTokenizerFast"]


if TYPE_CHECKING:
			try:
						if not is_sentencepiece_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .tokenization_nllb import NllbTokenizer

			try:
						if not is_tokenizers_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .tokenization_nllb_fast import NllbTokenizerFast

else:
			import sys

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



