


'''simple docstring'''



import argparse

import torch

from transformers import GPTaConfig, GPTaModel, load_tf_weights_in_gpta
from transformers.utils import CONFIG_NAME, WEIGHTS_NAME, logging


logging.set_verbosity_info()



def 			UpperCAmelCase__					(	UpperCAmelCase_    :				List[str]      ,    UpperCAmelCase_    :				Tuple      ,    UpperCAmelCase_    :				Any							)     ->		List[Any]:
     # Construct model
     if gpta_config_file == "":
          __lowerCamelCase   :	Any								=		GPTaConfig()
     else:
          __lowerCamelCase   :	List[Any]								=		GPTaConfig.from_json_file(__UpperCAmelCase							)
     __lowerCamelCase   :	int								=		GPTaModel(__UpperCAmelCase							)

     # Load weights from numpy
     load_tf_weights_in_gpta(__UpperCAmelCase      ,    __UpperCAmelCase      ,    __UpperCAmelCase							)

     # Save pytorch-model
     __lowerCamelCase   :	List[Any]								=		pytorch_dump_folder_path + '/' + WEIGHTS_NAME
     __lowerCamelCase   :	List[Any]								=		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__":
      A__		:					Dict												=  argparse.ArgumentParser()
      # Required parameters
      parser.add_argument(
          """--gpt2_checkpoint_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(
          """--gpt2_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__		:					List[str]												=  parser.parse_args()
      convert_gpta_checkpoint_to_pytorch(args.gpta_checkpoint_path, args.gpta_config_file, args.pytorch_dump_folder_path)












def 					UpperCAmelCase_							(      __UpperCAmelCase						:	int			,			__UpperCAmelCase						:	int							)					-> int:
      return number | (1 << position)

def 					UpperCAmelCase_							(      __UpperCAmelCase						:	int			,			__UpperCAmelCase						:	int							)					-> int:
      return number & ~(1 << position)

def 					UpperCAmelCase_							(      __UpperCAmelCase						:	int			,			__UpperCAmelCase						:	int							)					-> int:
      return number ^ (1 << position)

def 					UpperCAmelCase_							(      __UpperCAmelCase						:	int			,			__UpperCAmelCase						:	int							)					-> bool:
      return ((number >> position) & 1) == 1

def 					UpperCAmelCase_							(      __UpperCAmelCase						:	int			,			__UpperCAmelCase						:	int							)					-> int:
      return int((number & (1 << position)) != 0							)


if __name__ == "__main__":
   import doctest

   doctest.testmod()