"""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 							SCREAMING_SNAKE_CASE  (    _lowerCamelCase		: str    ,_lowerCamelCase		: List[Any]    ,_lowerCamelCase		: int			) ->   str:



  if openai_config_file == "":
    _lowerCAmelCase		: Any						    =  OpenAIGPTConfig()
  else:
    _lowerCAmelCase		: List[Any]						    =  OpenAIGPTConfig.from_json_file(_lowerCamelCase			)
  _lowerCAmelCase		: Optional[int]						    =  OpenAIGPTModel(_lowerCamelCase			)

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

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


if __name__ == "__main__":
     _a   :	List[str] 					=     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.'
         ),
     )
     _a   :	Union[str, 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"""




from ...utils import (
    OptionalDependencyNotAvailable,
    is_torch_available,
    is_transformers_available,
    is_transformers_version,
)


try:
     if not (is_transformers_available() and is_torch_available() and is_transformers_version('>=', '4.25.0')):
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ...utils.dummy_torch_and_transformers_objects import UnCLIPImageVariationPipeline, UnCLIPPipeline
else:
     from .pipeline_unclip import UnCLIPPipeline
     from .pipeline_unclip_image_variation import UnCLIPImageVariationPipeline
     from .text_proj import UnCLIPTextProjModel




