





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_		(							)						->		Any:






				"""simple docstring"""


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






@contextlib.contextmanager
def 	lowerCamelCase_		(							)						->		Any:






				"""simple docstring"""


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



class    __lowerCAmelCase			(     unittest.TestCase	):






			def      lowerCamelCase    (self       )	->  Tuple:


							'''simple docstring'''



							assert transformers.__spec__ is not None
							assert importlib.util.find_spec('''transformers'''       ) is not None




class    __lowerCAmelCase			(     unittest.TestCase	):






			@unittest.mock.patch('''sys.stdout'''   ,				new_callable=io.StringIO       )
			def      lowerCamelCase    (self   ,				__magic_name__       )	->  Any:


							'''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   ,				__magic_name__       )	->  List[str]:


							'''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   ,				__magic_name__       )	->  Tuple:


							'''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       )	->  Union[str, Any]:


							'''simple docstring'''



							self.assertEqual(find_labels(__magic_name__       )   ,				['''labels''']       )
							self.assertEqual(find_labels(__magic_name__       )   ,				['''labels''', '''next_sentence_label''']       )
							self.assertEqual(find_labels(__magic_name__       )   ,				['''start_positions''', '''end_positions''']       )



							class    __lowerCAmelCase			(     _a	):
										pass




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






			@require_tf
			def      lowerCamelCase    (self       )	->  str:


							'''simple docstring'''



							self.assertEqual(find_labels(__magic_name__       )   ,				['''labels''']       )
							self.assertEqual(find_labels(__magic_name__       )   ,				['''labels''', '''next_sentence_label''']       )
							self.assertEqual(find_labels(__magic_name__       )   ,				['''start_positions''', '''end_positions''']       )



							class    __lowerCAmelCase			(     _a	):
										pass




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






			@require_flax
			def      lowerCamelCase    (self       )	->  str:


							'''simple docstring'''



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



							class    __lowerCAmelCase			(     _a	):
										pass




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






from __future__ import annotations

from collections.abc import Iterator





class 			lowerCamelCase_				:


 '''simple docstring'''







 def __init__(				self    :						Union[str, Any]							,							_lowerCAmelCase    :						int		):
       SCREAMING_SNAKE_CASE_      		=     value
       SCREAMING_SNAKE_CASE_      		=     None
       SCREAMING_SNAKE_CASE_      		=     None





class 			lowerCamelCase_				:


 '''simple docstring'''







 def __init__(				self    :						int							,							_lowerCAmelCase    :						Node		):
       SCREAMING_SNAKE_CASE_      		=     tree



 def  lowerCAmelCase_    (				self    :						Union[str, Any]							,							_lowerCAmelCase    :						Node | None		):
       if node is None:
             return 0
       return node.value + (
           self.depth_first_search(node.left		) + self.depth_first_search(node.right		)
       )




 def __iter__(				self    :						Dict		):
       yield self.depth_first_search(self.tree		)


if __name__ == "__main__":
   import doctest

   doctest.testmod()