'''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__			(			a__			,      a__			,      a__      ):


						'''simple docstring'''






						if openai_config_file == "":
												_lowerCAmelCase										=OpenAIGPTConfig()
						else:
												_lowerCAmelCase										=OpenAIGPTConfig.from_json_file(a__      )
						_lowerCAmelCase										=OpenAIGPTModel(a__      )

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

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


if __name__ == "__main__":
							lowercase_     		= 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.'''
							    ),
							)
							lowercase_     		= 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 unittest

from knapsack import knapsack as k
class   SCREAMING_SNAKE_CASE			(						unittest.TestCase):







		"""simple docstring"""






		def 		UpperCamelCase__       (   self				) ->     Optional[Any]:
								_lowerCAmelCase										=0
								_lowerCAmelCase										=[0]
								_lowerCAmelCase										=[0]
								_lowerCAmelCase										=len(__A				)
								self.assertEqual(k.knapsack(__A		,						__A		,						__A		,						__A				)		,						0				)

								_lowerCAmelCase										=[60]
								_lowerCAmelCase										=[10]
								_lowerCAmelCase										=len(__A				)
								self.assertEqual(k.knapsack(__A		,						__A		,						__A		,						__A				)		,						0				)






		def 		UpperCamelCase__       (   self				) ->     Tuple:
								_lowerCAmelCase										=3
								_lowerCAmelCase										=[1, 2, 3]
								_lowerCAmelCase										=[3, 2, 1]
								_lowerCAmelCase										=len(__A				)
								self.assertEqual(k.knapsack(__A		,						__A		,						__A		,						__A				)		,						5				)






		def 		UpperCamelCase__       (   self				) ->     Union[str, Any]:
								_lowerCAmelCase										=50
								_lowerCAmelCase										=[60, 100, 120]
								_lowerCAmelCase										=[10, 20, 30]
								_lowerCAmelCase										=len(__A				)
								self.assertEqual(k.knapsack(__A		,						__A		,						__A		,						__A				)		,						220				)


if __name__ == "__main__":
							unittest.main()





