


import importlib
import sys
from argparse import REMAINDER, ArgumentParser
from pathlib import Path

import torch_xla.distributed.xla_multiprocessing as xmp


def 				lowerCamelCase__	(      )    ->	str:





			"""simple docstring"""
			a__ :List[Any]						  =    ArgumentParser(
			    description=(
			        "PyTorch TPU distributed training launch "
			        "helper utility that will spawn up "
			        "multiple distributed processes"
			    )				)

			# Optional arguments for the launch helper
			parser.add_argument("--num_cores"	,  type=a	,  default=1	,  help="Number of TPU cores to use (1 or 8)."				)

			# positional
			parser.add_argument(
			    "training_script"	,  type=a	,  help=(
			        "The full path to the single TPU training "
			        "program/script to be launched in parallel, "
			        "followed by all the arguments for the "
			        "training script"
			    )	,  )

			# rest from the training program
			parser.add_argument("training_script_args"	,  nargs=a				)

			return parser.parse_args()


def 				lowerCamelCase__	(      )    ->	List[str]:





			"""simple docstring"""
			a__ :int						  =    parse_args()

			# Import training_script as a module.
			a__ :List[Any]						  =    Path(args.training_script				)
			sys.path.append(str(script_fpath.parent.resolve()				)				)
			a__ :List[str]						  =    script_fpath.stem
			a__ :Dict						  =    importlib.import_module(a				)

			# Patch sys.argv
			a__ :str						  =    [args.training_script] + args.training_script_args + ["--tpu_num_cores", str(args.num_cores				)]
			xmp.spawn(mod._mp_fn	,  args=()	,  nprocs=args.num_cores				)


if __name__ == "__main__":
		main()






from .configuration_bert_masked import MaskedBertConfig
from .modeling_bert_masked import (
    MaskedBertForMultipleChoice,
    MaskedBertForQuestionAnswering,
    MaskedBertForSequenceClassification,
    MaskedBertForTokenClassification,
    MaskedBertModel,
)
from .modules import *


