
import argparse
import datetime






def 				UpperCAmelCase_						(				__SCREAMING_SNAKE_CASE				):
	lowercase	    =       {
	    '0': 'Sunday',
	    '1': 'Monday',
	    '2': 'Tuesday',
	    '3': 'Wednesday',
	    '4': 'Thursday',
	    '5': 'Friday',
	    '6': 'Saturday',
	}

	lowercase	    =       {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 0}

	# Validate
	if not 0 < len(__SCREAMING_SNAKE_CASE				) < 11:
		raise ValueError('Must be 10 characters long'				)

	# Get month
	lowercase	    =       int(date_input[0] + date_input[1]				)
	# Validate
	if not 0 < m < 13:
		raise ValueError('Month must be between 1 - 12'				)

	lowercase	    =       date_input[2]
	# Validate
	if sep_a not in ["-", "/"]:
		raise ValueError('Date separator must be \'-\' or \'/\''				)

	# Get day
	lowercase	    =       int(date_input[3] + date_input[4]				)
	# Validate
	if not 0 < d < 32:
		raise ValueError('Date must be between 1 - 31'				)

	# Get second separator
	lowercase	    =       date_input[5]
	# Validate
	if sep_a not in ["-", "/"]:
		raise ValueError('Date separator must be \'-\' or \'/\''				)

	# Get year
	lowercase	    =       int(date_input[6] + date_input[7] + date_input[8] + date_input[9]				)
	# Arbitrary year range
	if not 45 < y < 8500:
		raise ValueError(
		    'Year out of range. There has to be some sort of limit...right?'				)

	# Get datetime obj for validation
	lowercase	    =       datetime.date(int(__SCREAMING_SNAKE_CASE				)					,				int(__SCREAMING_SNAKE_CASE				)					,				int(__SCREAMING_SNAKE_CASE				)				)

	# Start math
	if m <= 2:
		lowercase	    =       y - 1
		lowercase	    =       m + 12
	# maths var
	lowercase	    =       int(str(__SCREAMING_SNAKE_CASE				)[:2]				)
	lowercase	    =       int(str(__SCREAMING_SNAKE_CASE				)[2:]				)
	lowercase	    =       int(2.6 * m - 5.39				)
	lowercase	    =       int(c / 4				)
	lowercase	    =       int(k / 4				)
	lowercase	    =       int(d + k				)
	lowercase	    =       int(t + u + v + x				)
	lowercase	    =       int(z - (2 * c)				)
	lowercase	    =       round(w % 7				)
	# End math

	# Validate math
	if f != convert_datetime_days[dt_ck.weekday()]:
		raise AssertionError('The date was evaluated incorrectly. Contact developer.'				)

	# Response
	lowercase	    =       F'''Your date {date_input}, is a {days[str(__SCREAMING_SNAKE_CASE				)]}!'''
	return response


if __name__ == "__main__":
	import doctest

	doctest.testmod()
	UpperCAmelCase       =					argparse.ArgumentParser(
	    description=(
	        '''Find out what day of the week nearly any date is or was. Enter '''
	        '''date as a string in the mm-dd-yyyy or mm/dd/yyyy format'''
	    )
	)
	parser.add_argument(
	    '''date_input''', type=str, help='''Date as a string (mm-dd-yyyy or mm/dd/yyyy)'''
	)
	UpperCAmelCase       =					parser.parse_args()
	zeller(args.date_input)



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

import torch_xla.distributed.xla_multiprocessing as xmp

def  __snake_case							(	):







				'''simple docstring'''


				lowercase         =      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=__magic_name__		,    default=1		,    help="Number of TPU cores to use (1 or 8)."						)

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

				return parser.parse_args()

def  __snake_case							(	):







				'''simple docstring'''


				lowercase         =      parse_args()

				# Import training_script as a module.
				lowercase         =      Path(args.training_script						)
				sys.path.append(str(script_fpath.parent.resolve()						)						)
				lowercase         =      script_fpath.stem
				lowercase         =      importlib.import_module(__magic_name__						)

				# Patch sys.argv
				lowercase         =      [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()
