
import unittest

from transformers import is_tf_available
from transformers.testing_utils import require_tf


if is_tf_available():
							import tensorflow as tf
							from tensorflow.python.eager import context
							from tensorflow.python.framework import ops

							from transformers import GradientAccumulator, create_optimizer

@require_tf
class        _UpperCamelCase				(					unittest.TestCase  ):






			'''simple docstring'''

			def       lowerCAmelCase__	(       self :       Any						,	snake_case_ :       Optional[Any]						,	snake_case_ :       Any						,	snake_case_ :       int      ):
							self.assertEqual(len(snake_case_      )						,	len(snake_case_      )      )
							for a, b in zip(snake_case_						,	snake_case_      ):
											self.assertAlmostEqual(snake_case_						,	snake_case_						,	delta=snake_case_      )

			def       lowerCAmelCase__	(       self :       List[str]      ):
							UpperCamelCase_:							Tuple	=						GradientAccumulator()
							accumulator([tf.constant([1.0, 2.0]      )]      )
							accumulator([tf.constant([-2.0, 1.0]      )]      )
							accumulator([tf.constant([-1.0, 2.0]      )]      )
							with self.assertRaises(snake_case_      ):
											accumulator([tf.constant([1.0, 1.0]      ), tf.constant([2.0, 2.0]      )]      )
							self.assertEqual(accumulator.step						,	3      )
							self.assertEqual(len(accumulator.gradients      )						,	1      )
							self.assertListAlmostEqual(accumulator.gradients[0].numpy().tolist()						,	[-2.0, 5.0]						,	tol=1e-2      )
							accumulator.reset()
							self.assertEqual(accumulator.step						,	0      )
							self.assertListAlmostEqual(accumulator.gradients[0].numpy().tolist()						,	[0.0, 0.0]						,	tol=1e-2      )




			def       lowerCAmelCase__	(       self :       int      ):
							UpperCamelCase_:							List[Any]	=						None
							ops.enable_eager_execution_internal()
							UpperCamelCase_:							Union[str, Any]	=						tf.config.list_physical_devices("""CPU"""      )
							if len(snake_case_      ) == 1:
											tf.config.set_logical_device_configuration(
											    physical_devices[0]						,	[tf.config.LogicalDeviceConfiguration(), tf.config.LogicalDeviceConfiguration()]      )
							UpperCamelCase_:							Optional[Any]	=						tf.config.list_logical_devices(device_type="""CPU"""      )
							UpperCamelCase_:							Dict	=						tf.distribute.MirroredStrategy(devices=devices[:2]      )

							with strategy.scope():
											UpperCamelCase_:							Dict	=						GradientAccumulator()
											UpperCamelCase_:							List[Any]	=						tf.Variable([4.0, 3.0]      )
											UpperCamelCase_,   UpperCamelCase_:							Any	=						create_optimizer(5e-5						,	10						,	5      )
											UpperCamelCase_:							Any	=						tf.Variable([0.0, 0.0]						,	trainable=snake_case_      )

							def accumulate_on_replica(snake_case_ :       Optional[int]      ):
											accumulator([gradient]      )

							def apply_on_replica():
											optimizer.apply_gradients(list(zip(accumulator.gradients						,	[variable]      )      )      )

							@tf.function
							def accumulate(snake_case_ :       Optional[Any]						,	snake_case_ :       Any      ):
											with strategy.scope():
															UpperCamelCase_:							Union[str, Any]	=						strategy.experimental_local_results(snake_case_      )
															local_variables[0].assign(snake_case_      )
															local_variables[1].assign(snake_case_      )
															strategy.run(snake_case_						,	args=(gradient_placeholder,)      )

							@tf.function
							def apply_grad():
											with strategy.scope():
															strategy.run(snake_case_      )

							def _check_local_values(snake_case_ :       Union[str, Any]						,	snake_case_ :       str      ):
											UpperCamelCase_:							str	=						strategy.experimental_local_results(accumulator._gradients[0]      )
											self.assertListAlmostEqual(values[0].value()						,	snake_case_						,	tol=1e-2      )
											self.assertListAlmostEqual(values[1].value()						,	snake_case_						,	tol=1e-2      )

							accumulate([1.0, 2.0]						,	[-1.0, 1.0]      )
							accumulate([3.0, -1.0]						,	[-1.0, -1.0]      )
							accumulate([-2.0, 2.0]						,	[3.0, -2.0]      )
							self.assertEqual(accumulator.step						,	3      )
							_check_local_values([2.0, 3.0]						,	[1.0, -2.0]      )
							apply_grad()
							self.assertListAlmostEqual(variable.value()						,	[4.0, 3.0]						,	tol=1e-2      )
							accumulator.reset()
							self.assertEqual(accumulator.step						,	0      )
							_check_local_values([0.0, 0.0]						,	[0.0, 0.0]      )








import os
import unittest

from huggingface_hub.utils import are_progress_bars_disabled

import transformers.models.bart.tokenization_bart
from transformers import logging
from transformers.testing_utils import CaptureLogger, mockenv, mockenv_context
from transformers.utils.logging import disable_progress_bar, enable_progress_bar

class        _UpperCamelCase				(					unittest.TestCase  ):






			'''simple docstring'''

			def       lowerCAmelCase__	(       self :       str      ):
							UpperCamelCase_:							Optional[int]	=						logging.get_logger()

							# the current default level is logging.WARNING
							UpperCamelCase_:							Dict	=						logging.get_verbosity()

							logging.set_verbosity_error()
							self.assertEqual(logger.getEffectiveLevel()						,	logging.get_verbosity()      )

							logging.set_verbosity_warning()
							self.assertEqual(logger.getEffectiveLevel()						,	logging.get_verbosity()      )

							logging.set_verbosity_info()
							self.assertEqual(logger.getEffectiveLevel()						,	logging.get_verbosity()      )

							logging.set_verbosity_debug()
							self.assertEqual(logger.getEffectiveLevel()						,	logging.get_verbosity()      )

							# restore to the original level
							logging.set_verbosity(snake_case_      )

			def       lowerCAmelCase__	(       self :       Optional[int]      ):
							UpperCamelCase_:							Union[str, Any]	=						logging.get_verbosity()

							UpperCamelCase_:							int	=						logging.get_logger("""transformers.models.bart.tokenization_bart"""      )
							UpperCamelCase_:							Union[str, Any]	=						"""Testing 1, 2, 3"""

							# should be able to log warnings (if default settings weren't overridden by `pytest --log-level-all`)
							if level_origin <= logging.WARNING:
											with CaptureLogger(snake_case_      ) as cl:
															logger.warning(snake_case_      )
											self.assertEqual(cl.out						,	msg + """\n"""      )

							# this is setting the level for all of `transformers.*` loggers
							logging.set_verbosity_error()

							# should not be able to log warnings
							with CaptureLogger(snake_case_      ) as cl:
											logger.warning(snake_case_      )
							self.assertEqual(cl.out						,	""""""      )

							# should be able to log warnings again
							logging.set_verbosity_warning()
							with CaptureLogger(snake_case_      ) as cl:
											logger.warning(snake_case_      )
							self.assertEqual(cl.out						,	msg + """\n"""      )

							# restore to the original level
							logging.set_verbosity(snake_case_      )

			@mockenv(TRANSFORMERS_VERBOSITY="""error"""      )
			def       lowerCAmelCase__	(       self :       Optional[int]      ):
							# reset for the env var to take effect, next time some logger call is made
							transformers.utils.logging._reset_library_root_logger()
							# this action activates the env var
							UpperCamelCase_:							List[str]	=						logging.get_logger("""transformers.models.bart.tokenization_bart"""      )

							UpperCamelCase_:							str	=						os.getenv("""TRANSFORMERS_VERBOSITY"""						,	snake_case_      )
							UpperCamelCase_:							Any	=						logging.log_levels[env_level_str]

							UpperCamelCase_:							Dict	=						logging.get_verbosity()
							self.assertEqual(
							    snake_case_						,	snake_case_						,	f'''TRANSFORMERS_VERBOSITY={env_level_str}/{env_level}, but internal verbosity is {current_level}'''						,	)

							# restore to the original level
							UpperCamelCase_:							str	=						""""""
							transformers.utils.logging._reset_library_root_logger()

			@mockenv(TRANSFORMERS_VERBOSITY="""super-error"""      )
			def       lowerCAmelCase__	(       self :       List[Any]      ):
							# reset for the env var to take effect, next time some logger call is made
							transformers.utils.logging._reset_library_root_logger()
							UpperCamelCase_:							str	=						logging.logging.getLogger()
							with CaptureLogger(snake_case_      ) as cl:
											# this action activates the env var
											logging.get_logger("""transformers.models.bart.tokenization_bart"""      )
							self.assertIn("""Unknown option TRANSFORMERS_VERBOSITY=super-error"""						,	cl.out      )

							# no need to restore as nothing was changed




			def       lowerCAmelCase__	(       self :       List[Any]      ):
							# testing `logger.warning_advice()`
							transformers.utils.logging._reset_library_root_logger()

							UpperCamelCase_:							List[str]	=						logging.get_logger("""transformers.models.bart.tokenization_bart"""      )
							UpperCamelCase_:							Any	=						"""Testing 1, 2, 3"""

							with mockenv_context(TRANSFORMERS_NO_ADVISORY_WARNINGS="""1"""      ):
											# nothing should be logged as env var disables this method
											with CaptureLogger(snake_case_      ) as cl:
															logger.warning_advice(snake_case_      )
											self.assertEqual(cl.out						,	""""""      )

							with mockenv_context(TRANSFORMERS_NO_ADVISORY_WARNINGS=""""""      ):
											# should log normally as TRANSFORMERS_NO_ADVISORY_WARNINGS is unset
											with CaptureLogger(snake_case_      ) as cl:
															logger.warning_advice(snake_case_      )
											self.assertEqual(cl.out						,	msg + """\n"""      )







def        A__					(						)  ->	Union[str, Any]:
				disable_progress_bar()
				assert are_progress_bars_disabled()

				enable_progress_bar()
				assert not are_progress_bars_disabled()






