





import argparse

import torch

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


logging.set_verbosity_info()






def 					SCREAMING_SNAKE_CASE__				(							UpperCamelCase__:				List[Any]       , UpperCamelCase__:				List[Any]       , UpperCamelCase__:				Dict     ):
		# Initialise PyTorch model
		SCREAMING_SNAKE_CASE__								=   BertConfig.from_json_file(UpperCamelCase__     )
		print(f'''Building PyTorch model from configuration: {config}'''     )
		SCREAMING_SNAKE_CASE__								=   BertForPreTraining(UpperCamelCase__     )

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

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


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(
	    '--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.'
	)
	_lowerCamelCase 					=      parser.parse_args()
	convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.bert_config_file, args.pytorch_dump_path)






def 					SCREAMING_SNAKE_CASE__				(							UpperCamelCase__:				float       , UpperCamelCase__:				float     ):
		if mass < 0:
				raise ValueError("""The mass of a body cannot be negative"""     )
		return 0.5 * mass * abs(UpperCamelCase__     ) * abs(UpperCamelCase__     )


if __name__ == "__main__":
	import doctest

	doctest.testmod(verbose=True)