


"""simple docstring"""






import functools
def       A_   (   _lowerCAmelCase     :					Union[str, Any],     _lowerCAmelCase     :					Optional[int]       ):






					"""simple docstring"""

					_a    	=				len(__snake_case       )
					_a    	=				len(__snake_case       )

					@functools.cache
					def min_distance(_lowerCAmelCase     :					Tuple,     _lowerCAmelCase     :					Optional[int]       ) -> int:
										# if first word index is overflow - delete all from the second word
										if indexa >= len_worda:
															return len_worda - indexa
										# if second word index is overflow - delete all from the first word
										if indexa >= len_worda:
															return len_worda - indexa
										_a    	=				int(worda[indexa] != worda[indexa]       )  # current letters not identical
										return min(
										    1 + min_distance(indexa + 1,     __snake_case       ),     1 + min_distance(__snake_case,     indexa + 1       ),     diff + min_distance(indexa + 1,     indexa + 1       ),     )

					return min_distance(0,     0       )


if __name__ == "__main__":
			import doctest

			doctest.testmod()



"""simple docstring"""






import argparse

import torch

from transformers import BertConfig, BertForPreTraining, load_tf_weights_in_bert
from transformers.utils import logging


logging.set_verbosity_info()
def       A_   (   _lowerCAmelCase     :					Dict,     _lowerCAmelCase     :					List[Any],     _lowerCAmelCase     :					Union[str, Any]       ):






     """simple docstring"""

     _a    	=				BertConfig.from_json_file(_lowerCAmelCase       )
     print(f'Building PyTorch model from configuration: {config}'       )
     _a    	=				BertForPreTraining(_lowerCAmelCase       )

     # Load weights from tf checkpoint
     load_tf_weights_in_bert(_lowerCAmelCase,     _lowerCAmelCase,     _lowerCAmelCase       )

     # Save pytorch-model
     print(f'Save PyTorch model to {pytorch_dump_path}'       )
     torch.save(model.state_dict(),     _lowerCAmelCase       )


if __name__ == "__main__":
   __snake_case		=       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(
       '''--bert_config_file''',
       default=None,
       type=str,
       required=True,
       help=(
           '''The config json file corresponding to the pre-trained BERT 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.'''
   )
   __snake_case		=       parser.parse_args()
   convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.bert_config_file, args.pytorch_dump_path)