'''simple docstring'''




import argparse
import os

import torch

from transformers import (
    XLNetConfig,
    XLNetForQuestionAnswering,
    XLNetForSequenceClassification,
    XLNetLMHeadModel,
    load_tf_weights_in_xlnet,
)
from transformers.utils import CONFIG_NAME, WEIGHTS_NAME, logging


__lowercase        =    {
    '''cola''': 2,
    '''mnli''': 3,
    '''mrpc''': 2,
    '''sst-2''': 2,
    '''sts-b''': 1,
    '''qqp''': 2,
    '''qnli''': 2,
    '''rte''': 2,
    '''wnli''': 2,
}


logging.set_verbosity_info()






def 							snake_case__				(     _A:   Any ,  _A:   Tuple ,  _A:   Optional[Any] ,  _A:   Optional[Any]=None					)       ->      Optional[int]:

		'''simple docstring'''


		lowerCAmelCase     =    XLNetConfig.from_json_file(_A					)

		lowerCAmelCase     =    finetuning_task.lower() if finetuning_task is not None else """"""
		if finetuning_task in GLUE_TASKS_NUM_LABELS:
				print(f"Building PyTorch XLNetForSequenceClassification model from configuration: {config}"					)
				lowerCAmelCase     =    finetuning_task
				lowerCAmelCase     =    GLUE_TASKS_NUM_LABELS[finetuning_task]
				lowerCAmelCase     =    XLNetForSequenceClassification(_A					)
		elif "squad" in finetuning_task:
				lowerCAmelCase     =    finetuning_task
				lowerCAmelCase     =    XLNetForQuestionAnswering(_A					)
		else:
				lowerCAmelCase     =    XLNetLMHeadModel(_A					)

		# Load weights from tf checkpoint
		load_tf_weights_in_xlnet(_A ,  _A ,  _A					)

		# Save pytorch-model
		lowerCAmelCase     =    os.path.join(_A ,  _A					)
		lowerCAmelCase     =    os.path.join(_A ,  _A					)
		print(f"Save PyTorch model to {os.path.abspath(_A					)}"					)
		torch.save(model.state_dict() ,  _A					)
		print(f"Save configuration file to {os.path.abspath(_A					)}"					)
		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(
						    '''--tf_checkpoint_path''', default=None, type=str, required=True, help='''Path to the TensorFlow checkpoint path.'''
						)
						parser.add_argument(
						    '''--xlnet_config_file''',
						    default=None,
						    type=str,
						    required=True,
						    help=(
						        '''The config json file corresponding to the pre-trained XLNet model. \n'''
						        '''This specifies the model architecture.'''
						    ),
						)
						parser.add_argument(
						    '''--pytorch_dump_folder_path''',
						    default=None,
						    type=str,
						    required=True,
						    help='''Path to the folder to store the PyTorch model or dataset/vocab.''',
						)
						parser.add_argument(
						    '''--finetuning_task''',
						    default=None,
						    type=str,
						    help='''Name of a task on which the XLNet TensorFlow model was fine-tuned''',
						)
						__lowercase        =    parser.parse_args()
						print(args)

						convert_xlnet_checkpoint_to_pytorch(
						    args.tf_checkpoint_path, args.xlnet_config_file, args.pytorch_dump_folder_path, args.finetuning_task
						)





'''simple docstring'''




def 							snake_case__				(     _A:   int					)       ->      list[int]:

		'''simple docstring'''


		if length <= 0 or not isinstance(_A ,  _A					):
				raise ValueError("""Length must be a positive integer."""					)
		return [n * (2 * n - 1) for n in range(_A					)]


if __name__ == "__main__":
						print(hexagonal_numbers(length=5))
						print(hexagonal_numbers(length=1_0))




