




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      _a				(						SCREAMING_SNAKE_CASE_							:    Optional[int]				,				SCREAMING_SNAKE_CASE_							:    List[str]				,				SCREAMING_SNAKE_CASE_							:    List[str]					):
					# Construct model
					if openai_config_file == "":
										__lowerCAmelCase           =	OpenAIGPTConfig()
					else:
										__lowerCAmelCase           =	OpenAIGPTConfig.from_json_file(SCREAMING_SNAKE_CASE_					)
					__lowerCAmelCase           =	OpenAIGPTModel(SCREAMING_SNAKE_CASE_					)

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

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


if __name__ == "__main__":
			UpperCamelCase__         =      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."""
			    ),
			)
			UpperCamelCase__         =      parser.parse_args()
			convert_openai_checkpoint_to_pytorch(
			    args.openai_checkpoint_folder_path, args.openai_config_file, args.pytorch_dump_folder_path
			)










def      _a				(						SCREAMING_SNAKE_CASE_							:    List[Any]					):
					__lowerCAmelCase       ,							__lowerCAmelCase           =	[], []
					while len(SCREAMING_SNAKE_CASE_					) > 1:
										__lowerCAmelCase       ,							__lowerCAmelCase           =	min(SCREAMING_SNAKE_CASE_					), max(SCREAMING_SNAKE_CASE_					)
										start.append(SCREAMING_SNAKE_CASE_					)
										end.append(SCREAMING_SNAKE_CASE_					)
										collection.remove(SCREAMING_SNAKE_CASE_					)
										collection.remove(SCREAMING_SNAKE_CASE_					)
					end.reverse()
					return start + collection + end


if __name__ == "__main__":
					UpperCamelCase__         =      input("""Enter numbers separated by a comma:\n""").strip()
					UpperCamelCase__         =      [int(item) for item in user_input.split(""",""")]
					print(*merge_sort(unsorted), sep=""",""")




