





"""simple docstring"""





import math
from timeit import timeit




def 		lowerCAmelCase_	(  lowercase_   :							int		):

 '''simple docstring'''






 __SCREAMING_SNAKE_CASE :			Any												=       0
 __SCREAMING_SNAKE_CASE :			Tuple												=       abs(lowercase_		)
 while True:
  __SCREAMING_SNAKE_CASE :			Optional[int]												=       n // 10
  digits += 1
  if n == 0:
   break
 return digits




def 		lowerCAmelCase_	(  lowercase_   :							int		):

 '''simple docstring'''






 return 1 if n == 0 else math.floor(math.log(abs(lowercase_		) ,      10		) + 1		)




def 		lowerCAmelCase_	(  lowercase_   :							int		):

 '''simple docstring'''






 return len(str(abs(lowercase_		)		)		)




def 		lowerCAmelCase_	(  ):

 '''simple docstring'''






 from collections.abc import Callable

 def benchmark_a_function(lowercase_   :							Callable ,      lowercase_   :							int		) -> None:
  __SCREAMING_SNAKE_CASE :			int												=       F'''{func.__name__}({value})'''
  __SCREAMING_SNAKE_CASE :			Optional[Any]												=       timeit(F'''__main__.{call}''' ,      setup='''import __main__'''		)
  print(F'''{call}: {func(lowercase_		)} -- {timing} seconds'''		)

 for value in (26_2144, 1125_8999_0684_2624, 126_7650_6002_2822_9401_4967_0320_5376):
  for func in (num_digits, num_digits_fast, num_digits_faster):
   benchmark_a_function(lowercase_ ,      lowercase_		)
  print()


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    benchmark()








"""simple docstring"""





import argparse

from transformers import TaConfig, TaForConditionalGeneration, load_tf_weights_in_ta
from transformers.utils import logging


logging.set_verbosity_info()




def 		lowerCAmelCase_	(  lowercase_   :							List[str] ,      lowercase_   :							List[str] ,      lowercase_   :							Dict		):

 '''simple docstring'''






 __SCREAMING_SNAKE_CASE :			Tuple												=       TaConfig.from_json_file(lowercase_		)
 print(F'''Building PyTorch model from configuration: {config}'''		)
 __SCREAMING_SNAKE_CASE :			List[str]												=       TaForConditionalGeneration(lowercase_		)

 # Load weights from tf checkpoint
 load_tf_weights_in_ta(lowercase_ ,      lowercase_ ,      lowercase_		)

 # Save pytorch-model
 print(F'''Save PyTorch model to {pytorch_dump_path}'''		)
 model.save_pretrained(lowercase_		)


if __name__ == "__main__":
    _lowerCamelCase       =	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(
        '''--config_file''',
        default=None,
        type=str,
        required=True,
        help=(
            '''The config json file corresponding to the pre-trained T5 model. \nThis specifies the model architecture.'''
        ),
    )
    parser.add_argument(
        '''--pytorch_dump_path''', default=None, type=str, required=True, help='''Path to the output PyTorch model.'''
    )
    _lowerCamelCase       =	parser.parse_args()
    convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.config_file, args.pytorch_dump_path)

