
'''simple docstring'''
import argparse

import torch

from transformers import OpenAIGPTConfig, OpenAIGPTModel, load_tf_weights_in_openai_gpt
from transformers.utils import CONFIG_NAME, WEIGHTS_NAME, logging


logging.set_verbosity_info()






def      UpperCamelCase_				(      A__  ,      A__  ,      A__						):
	# Construct model
	if openai_config_file == "":
		a_      				=						OpenAIGPTConfig()
	else:
		a_      				=						OpenAIGPTConfig.from_json_file(A__						)
	a_      				=						OpenAIGPTModel(A__						)

	# Load weights from numpy
	load_tf_weights_in_openai_gpt(A__  ,      A__  ,      A__						)

	# Save pytorch-model
	a_      				=						pytorch_dump_folder_path + """/""" + WEIGHTS_NAME
	a_      				=						pytorch_dump_folder_path + """/""" + CONFIG_NAME
	print(F'''Save PyTorch model to {pytorch_weights_dump_path}'''						)
	torch.save(model.state_dict()  ,      A__						)
	print(F'''Save configuration file to {pytorch_config_dump_path}'''						)
	with open(A__  ,      """w"""  ,      encoding="""utf-8"""						) as f:
		f.write(config.to_json_string()						)


if __name__ == "__main__":
		lowercase__											=argparse.ArgumentParser()
		# Required parameters
		parser.add_argument(
		    '--openai_checkpoint_folder_path',
		    default=None,
		    type=str,
		    required=True,
		    help='Path to the TensorFlow checkpoint path.',
		)
		parser.add_argument(
		    '--pytorch_dump_folder_path', default=None, type=str, required=True, help='Path to the output PyTorch model.'
		)
		parser.add_argument(
		    '--openai_config_file',
		    default='',
		    type=str,
		    help=(
		        'An optional config json file corresponding to the pre-trained OpenAI model. \n'
		        'This specifies the model architecture.'
		    ),
		)
		lowercase__											=parser.parse_args()
		convert_openai_checkpoint_to_pytorch(
		    args.openai_checkpoint_folder_path, args.openai_config_file, args.pytorch_dump_folder_path
		)


'''simple docstring'''
import enum
import shutil
import sys


lowercase__				, lowercase__											=shutil.get_terminal_size()

lowercase__											={'UP': 'A', 'DOWN': 'B', 'RIGHT': 'C', 'LEFT': 'D'}







class   a_ (      enum.Enum					):
			lowerCamelCase__	:			int       =    0
			lowerCamelCase__	:			Union[str, Any]       =    1







def      UpperCamelCase_				(      A__  ,      A__=""						):
	sys.stdout.write(str(A__						) + end						)
	sys.stdout.flush()






def      UpperCamelCase_				(      A__  ,      A__  ,      A__=""						):
	forceWrite(F'''\u001b[{color}m{content}\u001b[0m'''  ,      A__						)






def      UpperCamelCase_				(      ):
	forceWrite("""\r"""						)






def      UpperCamelCase_				(      A__  ,      A__						):
	forceWrite(F'''\033[{num_lines}{CURSOR_TO_CHAR[direction.upper()]}'''						)






def      UpperCamelCase_				(      ):
	forceWrite(""" """ * TERMINAL_WIDTH						)
	reset_cursor()






def      UpperCamelCase_				(      ):
	reset_cursor()
	forceWrite("""-""" * TERMINAL_WIDTH						)
