



"""simple docstring"""





import argparse

import torch

from transformers import RemBertConfig, RemBertModel, load_tf_weights_in_rembert
from transformers.utils import logging


logging.set_verbosity_info()




def 	UpperCAmelCase     (		A	:						Any     ,				A	:						int     ,				A	:						List[Any]       ):

		'''simple docstring'''


		_UpperCAmelCase							 =		RemBertConfig.from_json_file(A       )
		print('Building PyTorch model from configuration: {}'.format(str(A       )       )       )
		_UpperCAmelCase							 =		RemBertModel(A       )

		# Load weights from tf checkpoint
		load_tf_weights_in_rembert(A     ,				A     ,				A       )

		# Save pytorch-model
		print('Save PyTorch model to {}'.format(A       )       )
		torch.save(model.state_dict()     ,				A       )


if __name__ == "__main__":
					lowercase  							=					argparse.ArgumentParser()
					# Required parameters
					parser.add_argument(
					    '''--tf_checkpoint_path''', default=None, type=str, required=True, help='''Path to the TensorFlow checkpoint path.'''
					)
					parser.add_argument(
					    '''--rembert_config_file''',
					    default=None,
					    type=str,
					    required=True,
					    help=(
					        '''The config json file corresponding to the pre-trained RemBERT model. \n'''
					        '''This specifies the model architecture.'''
					    ),
					)
					parser.add_argument(
					    '''--pytorch_dump_path''', default=None, type=str, required=True, help='''Path to the output PyTorch model.'''
					)
					lowercase  							=					parser.parse_args()
					convert_rembert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.rembert_config_file, args.pytorch_dump_path)







"""simple docstring"""





def 	UpperCAmelCase     (		A	:						int       ):

		'''simple docstring'''


		_UpperCAmelCase							 =		abs(A       )
		_UpperCAmelCase							 =		0
		while n > 0:
				res += n % 10
				n //= 10
		return res




def 	UpperCAmelCase     (		A	:						int       ):

		'''simple docstring'''


		_UpperCAmelCase							 =		abs(A       )
		return n if n < 10 else n % 10 + sum_of_digits(n // 10       )




def 	UpperCAmelCase     (		A	:						int       ):

		'''simple docstring'''


		return sum(int(A       ) for c in str(abs(A       )       )       )




def 	UpperCAmelCase     (		):

		'''simple docstring'''


		from collections.abc import Callable
		from timeit import timeit

		def benchmark_a_function(A	:						Callable     ,				A	:						int       ) -> None:
				_UpperCAmelCase							 =		f'{func.__name__}({value})'
				_UpperCAmelCase							 =		timeit(f'__main__.{call}'     ,				setup='import __main__'       )
				print(f'{call:56} = {func(A       )} -- {timing:.4f} seconds'       )

		for value in (26_2144, 1125_8999_0684_2624, 126_7650_6002_2822_9401_4967_0320_5376):
				for func in (sum_of_digits, sum_of_digits_recursion, sum_of_digits_compact):
						benchmark_a_function(A     ,				A       )
				print()


if __name__ == "__main__":
					import doctest

					doctest.testmod()
					benchmark()


