
"""simple docstring"""







import os
from tempfile import TemporaryDirectory
from unittest import TestCase

import pytest
from absl.testing import parameterized

from datasets import config
from datasets.arrow_reader import HF_GCP_BASE_URL
from datasets.builder import DatasetBuilder
from datasets.dataset_dict import IterableDatasetDict
from datasets.iterable_dataset import IterableDataset
from datasets.load import dataset_module_factory, import_main_class
from datasets.utils.file_utils import cached_path


lowerCamelCase__        =		[
    {"""dataset""": """wikipedia""", """config_name""": """20220301.de"""},
    {"""dataset""": """wikipedia""", """config_name""": """20220301.en"""},
    {"""dataset""": """wikipedia""", """config_name""": """20220301.fr"""},
    {"""dataset""": """wikipedia""", """config_name""": """20220301.frr"""},
    {"""dataset""": """wikipedia""", """config_name""": """20220301.it"""},
    {"""dataset""": """wikipedia""", """config_name""": """20220301.simple"""},
    {"""dataset""": """snli""", """config_name""": """plain_text"""},
    {"""dataset""": """eli5""", """config_name""": """LFQA_reddit"""},
    {"""dataset""": """wiki40b""", """config_name""": """en"""},
    {"""dataset""": """wiki_dpr""", """config_name""": """psgs_w100.nq.compressed"""},
    {"""dataset""": """wiki_dpr""", """config_name""": """psgs_w100.nq.no_index"""},
    {"""dataset""": """wiki_dpr""", """config_name""": """psgs_w100.multiset.no_index"""},
    {"""dataset""": """natural_questions""", """config_name""": """default"""},
]
def    __lowerCAmelCase    (_UpperCamelCase=True		):
	if with_config:
		return [
		    {
		        "testcase_name": d["dataset"] + "/" + d["config_name"],
		        "dataset": d["dataset"],
		        "config_name": d["config_name"],
		    }
		    for d in DATASETS_ON_HF_GCP
		]
	else:
		return [
		    {"testcase_name": dataset, "dataset": dataset} for dataset in {d["dataset"] for d in DATASETS_ON_HF_GCP}
		]




@parameterized.named_parameters(list_datasets_on_hf_gcp_parameters(with_config=_lowerCamelCase))
class 			A__	(     _lowerCamelCase):
		A_						:	Optional[int]           =     None
		A_						:	int           =     None

		def 							__lowerCamelCase							(				self	,		_SCREAMING_SNAKE_CASE	,		_SCREAMING_SNAKE_CASE			):
			with TemporaryDirectory() as tmp_dir:
				__lowerCAmelCase      :						List[str]						      =				dataset_module_factory(_SCREAMING_SNAKE_CASE	,		cache_dir=_SCREAMING_SNAKE_CASE			)

				__lowerCAmelCase      :						str						      =				import_main_class(dataset_module.module_path	,		dataset=_SCREAMING_SNAKE_CASE			)

				__lowerCAmelCase      :						DatasetBuilder						      =				builder_cls(
				    cache_dir=_SCREAMING_SNAKE_CASE	,		config_name=_SCREAMING_SNAKE_CASE	,		hash=dataset_module.hash	,		)

				__lowerCAmelCase      :						int						      =				'/'.join(
				    [
				        HF_GCP_BASE_URL,
				        builder_instance._relative_data_dir(with_hash=_SCREAMING_SNAKE_CASE			).replace(os.sep	,		'/'			),
				        config.DATASET_INFO_FILENAME,
				    ]			)
				__lowerCAmelCase      :						Union[str, Any]						      =				cached_path(_SCREAMING_SNAKE_CASE	,		cache_dir=_SCREAMING_SNAKE_CASE			)
				self.assertTrue(os.path.exists(_SCREAMING_SNAKE_CASE			)			)



@pytest.mark.integration
def    __lowerCAmelCase    (_UpperCamelCase		):
	__lowerCAmelCase      :						Optional[int]						      =				tmp_path_factory.mktemp('test_hf_gcp'		) / 'test_wikipedia_simple'
	__lowerCAmelCase      :						Tuple						      =				dataset_module_factory('wikipedia'	,  cache_dir=_UpperCamelCase		)
	__lowerCAmelCase      :						Any						      =				import_main_class(dataset_module.module_path		)
	__lowerCAmelCase      :						DatasetBuilder						      =				builder_cls(
	    cache_dir=_UpperCamelCase	,  config_name='20220301.frr'	,  hash=dataset_module.hash	,  )
	# use the HF cloud storage, not the original download_and_prepare that uses apache-beam
	__lowerCAmelCase      :						Any						      =				None
	builder_instance.download_and_prepare()
	__lowerCAmelCase      :						Union[str, Any]						      =				builder_instance.as_dataset()
	assert ds
@pytest.mark.integration
def    __lowerCAmelCase    (_UpperCamelCase		):
	__lowerCAmelCase      :						Optional[int]						      =				dataset_module_factory('wikipedia'	,  cache_dir=_UpperCamelCase		)
	__lowerCAmelCase      :						int						      =				import_main_class(dataset_module.module_path	,  dataset=_UpperCamelCase		)
	__lowerCAmelCase      :						DatasetBuilder						      =				builder_cls(
	    cache_dir=_UpperCamelCase	,  config_name='20220301.frr'	,  hash=dataset_module.hash	,  )
	__lowerCAmelCase      :						Union[str, Any]						      =				builder_instance.as_streaming_dataset()
	assert ds
	assert isinstance(_UpperCamelCase	,  _UpperCamelCase		)
	assert "train" in ds
	assert isinstance(ds['train']	,  _UpperCamelCase		)
	assert next(iter(ds['train']		)		)

"""simple docstring"""







import argparse
import datetime
def    __lowerCAmelCase    (_UpperCamelCase		):
	__lowerCAmelCase      :						Optional[Any]						      =				{
	    '0': 'Sunday',
	    '1': 'Monday',
	    '2': 'Tuesday',
	    '3': 'Wednesday',
	    '4': 'Thursday',
	    '5': 'Friday',
	    '6': 'Saturday',
	}

	__lowerCAmelCase      :						Optional[Any]						      =				{0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 0}

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

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

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

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

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

	# Get year
	__lowerCAmelCase      :						int						      =				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
	__lowerCAmelCase      :						Tuple						      =				datetime.date(int(_UpperCamelCase		)	,  int(_UpperCamelCase		)	,  int(_UpperCamelCase		)		)

	# Start math
	if m <= 2:
		__lowerCAmelCase      :						int						      =				y - 1
		__lowerCAmelCase      :						Tuple						      =				m + 12
	# maths var
	__lowerCAmelCase      :						int						      =				int(str(_UpperCamelCase		)[:2]		)
	__lowerCAmelCase      :						int						      =				int(str(_UpperCamelCase		)[2:]		)
	__lowerCAmelCase      :						int						      =				int(2.6 * m - 5.39		)
	__lowerCAmelCase      :						int						      =				int(c / 4		)
	__lowerCAmelCase      :						int						      =				int(k / 4		)
	__lowerCAmelCase      :						int						      =				int(d + k		)
	__lowerCAmelCase      :						int						      =				int(t + u + v + x		)
	__lowerCAmelCase      :						int						      =				int(z - (2 * c)		)
	__lowerCAmelCase      :						int						      =				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
	__lowerCAmelCase      :						str						      =				F"Your date {date_input}, is a {days[str(_UpperCamelCase		)]}!"
	return response


if __name__ == "__main__":
							import doctest

							doctest.testmod()
							lowerCamelCase__        =		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)"""
							)
							lowerCamelCase__        =		parser.parse_args()
							zeller(args.date_input)