'''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_							(					_UpperCAmelCase  :      int			,	_UpperCAmelCase  :      List[Any]			,	_UpperCAmelCase  :      Tuple    )    ->    Optional[int]:


       """simple docstring"""







       if openai_config_file == "":
              _UpperCAmelCase     :  Tuple							      =    OpenAIGPTConfig()
       else:
              _UpperCAmelCase     :  List[str]							      =    OpenAIGPTConfig.from_json_file(_UpperCAmelCase    )
       _UpperCAmelCase     :  int							      =    OpenAIGPTModel(_UpperCAmelCase    )

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

       # Save pytorch-model
       _UpperCAmelCase     :  Any							      =    pytorch_dump_folder_path + "/" + WEIGHTS_NAME
       _UpperCAmelCase     :  Dict							      =    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       :     Optional[int]     =  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       :     Any     =  parser.parse_args()
  convert_openai_checkpoint_to_pytorch(
      args.openai_checkpoint_folder_path, args.openai_config_file, args.pytorch_dump_folder_path
  )


'''simple docstring'''




__SCREAMING_SNAKE_CASE       :     Dict     =  8.3_1_4_4_6_2  # Unit - J mol-1 K-1

def 	UpperCamelCase_							(					_UpperCAmelCase  :      float			,	_UpperCAmelCase  :      float			,	_UpperCAmelCase  :      float    )    ->    float:


       """simple docstring"""







       if moles < 0 or kelvin < 0 or volume < 0:
              raise ValueError("Invalid inputs. Enter positive value."    )
       return moles * kelvin * UNIVERSAL_GAS_CONSTANT / volume

def 	UpperCamelCase_							(					_UpperCAmelCase  :      float			,	_UpperCAmelCase  :      float			,	_UpperCAmelCase  :      float    )    ->    float:


       """simple docstring"""







       if moles < 0 or kelvin < 0 or pressure < 0:
              raise ValueError("Invalid inputs. Enter positive value."    )
       return moles * kelvin * UNIVERSAL_GAS_CONSTANT / pressure


if __name__ == "__main__":
  from doctest import testmod

  testmod()

