






'''simple docstring'''







import argparse

import torch

from transformers import ElectraConfig, ElectraForMaskedLM, ElectraForPreTraining, load_tf_weights_in_electra
from transformers.utils import logging


logging.set_verbosity_info()





def 					SCREAMING_SNAKE_CASE_			(UpperCamelCase							,     UpperCamelCase							,     UpperCamelCase							,     UpperCamelCase ) ->			int:
							# Initialise PyTorch model
							lowerCamelCase__   :      List[Any]			    =			ElectraConfig.from_json_file(UpperCamelCase )
							print(f'''Building PyTorch model from configuration: {config}''' )

							if discriminator_or_generator == "discriminator":
														lowerCamelCase__   :      Optional[Any]			    =			ElectraForPreTraining(UpperCamelCase )
							elif discriminator_or_generator == "generator":
														lowerCamelCase__   :      List[Any]			    =			ElectraForMaskedLM(UpperCamelCase )
							else:
														raise ValueError("""The discriminator_or_generator argument should be either 'discriminator' or 'generator'""" )

							# Load weights from tf checkpoint
							load_tf_weights_in_electra(
							    UpperCamelCase							,     UpperCamelCase							,     UpperCamelCase							,     discriminator_or_generator=UpperCamelCase )

							# Save pytorch-model
							print(f'''Save PyTorch model to {pytorch_dump_path}''' )
							torch.save(model.state_dict()							,     UpperCamelCase )


if __name__ == "__main__":
			_A      :     List[str]       	=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(
			    '''--config_file''',
			    default=None,
			    type=str,
			    required=True,
			    help='''The config json file corresponding to the pre-trained model. \nThis specifies the model architecture.''',
			)
			parser.add_argument(
			    '''--pytorch_dump_path''', default=None, type=str, required=True, help='''Path to the output PyTorch model.'''
			)
			parser.add_argument(
			    '''--discriminator_or_generator''',
			    default=None,
			    type=str,
			    required=True,
			    help=(
			        '''Whether to export the generator or the discriminator. Should be a string, either \'discriminator\' or '''
			        '''\'generator\'.'''
			    ),
			)
			_A      :     Tuple       	=parser.parse_args()
			convert_tf_checkpoint_to_pytorch(
			    args.tf_checkpoint_path, args.config_file, args.pytorch_dump_path, args.discriminator_or_generator
			)









'''simple docstring'''







from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available


_A      :     Optional[Any]       	={
    '''configuration_realm''': ['''REALM_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''RealmConfig'''],
    '''tokenization_realm''': ['''RealmTokenizer'''],
}

try:
			if not is_tokenizers_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			_A      :     str       	=['''RealmTokenizerFast''']

try:
			if not is_torch_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			_A      :     List[Any]       	=[
			    '''REALM_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''RealmEmbedder''',
			    '''RealmForOpenQA''',
			    '''RealmKnowledgeAugEncoder''',
			    '''RealmPreTrainedModel''',
			    '''RealmReader''',
			    '''RealmScorer''',
			    '''load_tf_weights_in_realm''',
			]
			_A      :     Union[str, Any]       	=['''RealmRetriever''']


if TYPE_CHECKING:
			from .configuration_realm import REALM_PRETRAINED_CONFIG_ARCHIVE_MAP, RealmConfig
			from .tokenization_realm import RealmTokenizer

			try:
						if not is_tokenizers_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .tokenization_realm import RealmTokenizerFast

			try:
						if not is_torch_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_realm import (
						    REALM_PRETRAINED_MODEL_ARCHIVE_LIST,
						    RealmEmbedder,
						    RealmForOpenQA,
						    RealmKnowledgeAugEncoder,
						    RealmPreTrainedModel,
						    RealmReader,
						    RealmScorer,
						    load_tf_weights_in_realm,
						)
						from .retrieval_realm import RealmRetriever


else:
			import sys

			_A      :     int       	=_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)

