



'''simple docstring'''





def 	a_					(							_lowerCAmelCase	,_lowerCAmelCase	)				->				int:
  # The longer word should come first
  if len(_lowerCAmelCase	) < len(_lowerCAmelCase	):
    return levenshtein_distance(_lowerCAmelCase	,_lowerCAmelCase	)

  if len(_lowerCAmelCase	) == 0:
    return len(_lowerCAmelCase	)

  __lowerCamelCase	:	int   	=			list(range(len(_lowerCAmelCase	) + 1	)	)

  for i, ca in enumerate(_lowerCAmelCase	):
    __lowerCamelCase	:	Union[str, Any]   	=			[i + 1]

    for j, ca in enumerate(_lowerCAmelCase	):
      # Calculate insertions, deletions and substitutions
      __lowerCamelCase	:	Any   	=			previous_row[j + 1] + 1
      __lowerCamelCase	:	int   	=			current_row[j] + 1
      __lowerCamelCase	:	Any   	=			previous_row[j] + (ca != ca)

      # Get the minimum to append to the current row
      current_row.append(min(_lowerCAmelCase	,_lowerCAmelCase	,_lowerCAmelCase	)	)

    # Store the previous row
    __lowerCamelCase	:	Optional[int]   	=			current_row

  # Returns the last element (distance)
  return previous_row[-1]


if __name__ == "__main__":
   _UpperCamelCase							    =						input('Enter the first word:\n').strip()
   _UpperCamelCase							    =						input('Enter the second word:\n').strip()

   _UpperCamelCase							    =						levenshtein_distance(first_word, second_word)
   print(f'''Levenshtein distance between {first_word} and {second_word} is {result}''')











'''simple docstring'''





import argparse

from transformers import CanineConfig, CanineModel, CanineTokenizer, load_tf_weights_in_canine
from transformers.utils import logging


logging.set_verbosity_info()

def 	a_					(							_lowerCAmelCase	,_lowerCAmelCase	)				->				List[Any]:
  # Initialize PyTorch model
  __lowerCamelCase	:	Union[str, Any]   	=			CanineConfig()
  __lowerCamelCase	:	Optional[Any]   	=			CanineModel(_lowerCAmelCase	)
  model.eval()

  print(F'Building PyTorch model from configuration: {config}'	)

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

  # Save pytorch-model (weights and configuration)
  print(F'Save PyTorch model to {pytorch_dump_path}'	)
  model.save_pretrained(_lowerCAmelCase	)

  # Save tokenizer files
  __lowerCamelCase	:	str   	=			CanineTokenizer()
  print(F'Save tokenizer files to {pytorch_dump_path}'	)
  tokenizer.save_pretrained(_lowerCAmelCase	)


if __name__ == "__main__":
   _UpperCamelCase							    =						argparse.ArgumentParser()
   # Required parameters
   parser.add_argument(
       '--tf_checkpoint_path',
       default=None,
       type=str,
       required=True,
       help='Path to the TensorFlow checkpoint. Should end with model.ckpt',
   )
   parser.add_argument(
       '--pytorch_dump_path',
       default=None,
       type=str,
       required=True,
       help='Path to a folder where the PyTorch model will be placed.',
   )
   _UpperCamelCase							    =						parser.parse_args()
   convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.pytorch_dump_path)






