'''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
  )


from PIL import Image

def 			lowercase_				(			_lowerCamelCase							:       Image		,	_lowerCamelCase							:       int):
    lowercase__ :   List[str]    					=				(259 * (level + 255)) / (255 * (259 - level))

    def contrast(_lowerCamelCase							:       int) -> int:
        return int(128 + factor * (c - 128))

    return img.point(_lowerCamelCase)


if __name__ == "__main__":
      # Load image
      with Image.open('''image_data/lena.jpg''') as img:
            # Change contrast to 170
            UpperCamelCase  							=						change_contrast(img, 170)
            cont_img.save('''image_data/lena_high_contrast.png''', format='''png''')



