



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       A_   (						__a  :					Union[str, Any]			,		__a  :					Tuple			,		__a  :					Any			,		__a  :					Optional[Any]		):

				"""simple docstring"""
				# Initialise PyTorch model
				a__					   =		ElectraConfig.from_json_file(__a		)
				print(F'''Building PyTorch model from configuration: {config}'''		)

				if discriminator_or_generator == "discriminator":
								a__					   =		ElectraForPreTraining(__a		)
				elif discriminator_or_generator == "generator":
								a__					   =		ElectraForMaskedLM(__a		)
				else:
								raise ValueError("""The discriminator_or_generator argument should be either 'discriminator' or 'generator'"""		)

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

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


if __name__ == "__main__":
	UpperCAmelCase							=       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'."""
	    ),
	)
	UpperCAmelCase							=       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 doctest import testmod
from math import sqrt




def      snake_case    (A_ :int ):







  '''simple docstring'''

  a	:     list[int]							=  []
  if num < 1:
    return facs
  facs.append(1 )
  if num == 1:
    return facs
  facs.append(A_ )
  for i in range(2      ,     int(sqrt(A_ ) ) + 1 ):
    if num % i == 0:  # If i is a factor of num
      facs.append(A_ )
      a	:     Optional[Any]							=  num // i  # num//i is the other factor of num
      if d != i:  # If d and i are distinct
        facs.append(A_ )  # we have found another factor
  facs.sort()
  return facs


if __name__ == "__main__":
   testmod(name='factors_of_a_number', verbose=True)




