"""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 				lowerCAmelCase__      (     _UpperCamelCase    :			Optional[Any]	,     _UpperCamelCase    :			Optional[Any]	,     _UpperCamelCase    :			Dict   )   ->			List[Any]:





						"""simple docstring"""






						if openai_config_file == "":
												snake_case        =     OpenAIGPTConfig()
						else:
												snake_case        =     OpenAIGPTConfig.from_json_file(_UpperCamelCase   )
						snake_case        =     OpenAIGPTModel(_UpperCamelCase   )

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

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


if __name__ == "__main__":
					SCREAMING_SNAKE_CASE__   =					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."
					    ),
					)
					SCREAMING_SNAKE_CASE__   =					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 cmath
import math





def 				lowerCAmelCase__      (     _UpperCamelCase    :			float	,     _UpperCamelCase    :			float	,     _UpperCamelCase    :			float	,     _UpperCamelCase    :			float   )   ->			complex:





						"""simple docstring"""






						snake_case        =     math.radians(_UpperCamelCase   )
						snake_case        =     math.radians(_UpperCamelCase   )

						# Convert voltage and current to rectangular form
						snake_case        =     cmath.rect(_UpperCamelCase	,     _UpperCamelCase   )
						snake_case        =     cmath.rect(_UpperCamelCase	,     _UpperCamelCase   )

						# Calculate apparent power
						return voltage_rect * current_rect


if __name__ == "__main__":
					import doctest

					doctest.testmod()


