






"""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


lowerCamelCase_							      = {
    '''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__      ,A__      ,A__      ,A__=None		):
			# Initialise PyTorch model
			UpperCAmelCase_	:					List[Any]     	=   XLNetConfig.from_json_file(A__		)

			UpperCAmelCase_	:					str     	=   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}"""		)
						UpperCAmelCase_	:					List[Any]     	=   finetuning_task
						UpperCAmelCase_	:					Tuple     	=   GLUE_TASKS_NUM_LABELS[finetuning_task]
						UpperCAmelCase_	:					List[Any]     	=   XLNetForSequenceClassification(A__		)
			elif "squad" in finetuning_task:
						UpperCAmelCase_	:					List[str]     	=   finetuning_task
						UpperCAmelCase_	:					int     	=   XLNetForQuestionAnswering(A__		)
			else:
						UpperCAmelCase_	:					Union[str, Any]     	=   XLNetLMHeadModel(A__		)

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

			# Save pytorch-model
			UpperCAmelCase_	:					Dict     	=   os.path.join(A__      ,A__		)
			UpperCAmelCase_	:					int     	=   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__":
			lowerCamelCase_							      = 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''',
			)
			lowerCamelCase_							      = 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
			)










def 				__lowerCAmelCase(       _SCREAMING_SNAKE_CASE							,     _SCREAMING_SNAKE_CASE				)							-> int:




    """simple docstring"""




    return int((input_a, input_a).count(0				) != 0				)





def 				__lowerCAmelCase(       )							-> None:




    """simple docstring"""




    assert nand_gate(0							,     0				) == 1
    assert nand_gate(0							,     1				) == 1
    assert nand_gate(1							,     0				) == 1
    assert nand_gate(1							,     1				) == 0


if __name__ == "__main__":
 print(nand_gate(0, 0))
 print(nand_gate(0, 1))
 print(nand_gate(1, 0))
 print(nand_gate(1, 1))





