






'''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_				: Dict    	=							{
    '''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 	__magic_name__( _A						,      _A						,      _A						,      _A=None					):
						'''simple docstring'''





						UpperCamelCase__         = XLNetConfig.from_json_file(_A					)

						UpperCamelCase__         = 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__         = finetuning_task
												UpperCamelCase__         = GLUE_TASKS_NUM_LABELS[finetuning_task]
												UpperCamelCase__         = XLNetForSequenceClassification(_A					)
						elif "squad" in finetuning_task:
												UpperCamelCase__         = finetuning_task
												UpperCamelCase__         = XLNetForQuestionAnswering(_A					)
						else:
												UpperCamelCase__         = XLNetLMHeadModel(_A					)

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

						# Save pytorch-model
						UpperCamelCase__         = os.path.join(_A						,      _A					)
						UpperCamelCase__         = 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_				: Optional[int]    	=							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_				: Dict    	=							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'''


import inspect
import unittest
class    _SCREAMING_SNAKE_CASE							(		unittest.TestCase	):


			'''simple docstring'''





			def 				A      (   self							:						Tuple			)							->    Any:

									'''simple docstring'''







									try:
															import diffusers  # noqa: F401
									except ImportError:
															assert False







			def 				A      (   self							:						Optional[int]			)							->    Union[str, Any]:

									'''simple docstring'''







									import diffusers
									from diffusers.dependency_versions_table import deps

									UpperCamelCase__         = inspect.getmembers(lowercase ,      inspect.isclass			)

									for cls_name, cls_module in all_classes:
															if "dummy_" in cls_module.__module__:
																					for backend in cls_module._backends:
																											if backend == "k_diffusion":
																																	UpperCamelCase__         = """k-diffusion"""
																											elif backend == "invisible_watermark":
																																	UpperCamelCase__         = """invisible-watermark"""
																											assert backend in deps, f"{backend} is not in the deps table!"
