




"""simple docstring"""


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

import torch_xla.distributed.xla_multiprocessing as xmp


def 					UpperCAmelCase__       ():
  """simple docstring"""

  _snake_case							:		Union[str, 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=snake_case__		,   default=1		,   help="""Number of TPU cores to use (1 or 8)."""    )

  # positional
  parser.add_argument(
      """training_script"""		,   type=snake_case__		,   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=snake_case__    )

  return parser.parse_args()


def 					UpperCAmelCase__       ():
  """simple docstring"""

  _snake_case							:		Union[str, Any]								=  parse_args()

  # Import training_script as a module.
  _snake_case							:		Dict								=  Path(args.training_script    )
  sys.path.append(str(script_fpath.parent.resolve()    )    )
  _snake_case							:		int								=  script_fpath.stem
  _snake_case							:		int								=  importlib.import_module(snake_case__    )

  # Patch sys.argv
  _snake_case							:		List[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()








"""simple docstring"""


from ..utils import DummyObject, requires_backends






class 					lowercase(     metaclass=__a ):







 '''simple docstring'''





 lowercase__ 					=					["note_seq"]


 def __init__(				self:		Dict,      *a_:		Union[str, Any],      **a_:		List[str]		):




   '''simple docstring'''



   requires_backends(self,      ["""note_seq"""]		)


 @classmethod
 def  UpperCamelCase_   (				cls:		Optional[int],      *a_:		Any,      **a_:		Optional[Any]		):




   '''simple docstring'''



   requires_backends(cls,      ["""note_seq"""]		)


 @classmethod
 def  UpperCamelCase_   (				cls:		Tuple,      *a_:		Optional[Any],      **a_:		List[str]		):




   '''simple docstring'''



   requires_backends(cls,      ["""note_seq"""]		)


