'''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(lowercase__      )
						_lowerCAmelCase										=OpenAIGPTModel(lowercase__      )

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

						# 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()			,      lowercase__      )
						print(F'''Save configuration file to {pytorch_config_dump_path}'''      )
						with open(lowercase__			,      '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'''

from __future__ import annotations

lowercase_     		= 10



def 							UpperCamelCase__			(			a__      ):


						'''simple docstring'''






						_lowerCAmelCase										=1
						_lowerCAmelCase										=max(a__      )
						while placement <= max_digit:
												# declare and initialize empty buckets
												_lowerCAmelCase										=[[] for _ in range(a__      )]
												# split list_of_ints between the buckets
												for i in list_of_ints:
																		_lowerCAmelCase										=int((i / placement) % RADIX      )
																		buckets[tmp].append(a__      )
												# put each buckets' contents into list_of_ints
												_lowerCAmelCase										=0
												for b in range(a__      ):
																		for i in buckets[b]:
																								_lowerCAmelCase										=i
																								a += 1
        # move to next
												placement *= RADIX
						return list_of_ints


if __name__ == "__main__":
							import doctest

							doctest.testmod()





