
"""simple docstring"""




import json
import os
from pathlib import Path

import pytest

from datasets.download.download_config import DownloadConfig
from datasets.download.download_manager import DownloadManager
from datasets.utils.file_utils import hash_url_to_filename


UpperCAmelCase__      :    str    							= 'http://www.mocksite.com/file1.txt'
UpperCAmelCase__      :    List[str]    							= '"text": ["foo", "foo"]'
UpperCAmelCase__      :    List[Any]    							= '6d8ce9aa78a471c7477201efbeabd3bb01ac2e7d100a6dc024ba1608361f90a8'



class 	lowerCAmelCase_						:


				"""simple docstring"""



				__UpperCamelCase      :						int					       =   200
				__UpperCamelCase      :						int					       =   {'''Content-Length''': '''100'''}
				__UpperCamelCase      :						Tuple					       =   {}



				def 	__magic_name__    (self   ,       **SCREAMING_SNAKE_CASE__    )					->		Optional[Any]:



											"""simple docstring"""




											return [bytes(SCREAMING_SNAKE_CASE__   ,       """utf-8"""    )]






def lowercase_  (   *_snake_case   ,**_snake_case						):
							return MockResponse()

@pytest.mark.parametrize("""urls_type"""   ,[str, list, dict]						)
def lowercase_  (   _snake_case   ,_snake_case   ,_snake_case						):
							import requests

							monkeypatch.setattr(_snake_case   ,"""request"""   ,_snake_case						)

							SCREAMING_SNAKE_CASE__						:       str           =   URL
							if issubclass(_snake_case   ,_snake_case						):
														SCREAMING_SNAKE_CASE__						:       Optional[int]           =   url
							elif issubclass(_snake_case   ,_snake_case						):
														SCREAMING_SNAKE_CASE__						:       Union[str, Any]           =   [url]
							elif issubclass(_snake_case   ,_snake_case						):
														SCREAMING_SNAKE_CASE__						:       int           =   {"""train""": url}
							SCREAMING_SNAKE_CASE__						:       Tuple           =   """dummy"""
							SCREAMING_SNAKE_CASE__						:       Dict           =   """downloads"""
							SCREAMING_SNAKE_CASE__						:       List[Any]           =   tmp_path
							SCREAMING_SNAKE_CASE__						:       Tuple           =   DownloadConfig(
							    cache_dir=os.path.join(_snake_case   ,_snake_case						)   ,use_etag=_snake_case   ,)
							SCREAMING_SNAKE_CASE__						:       Any           =   DownloadManager(dataset_name=_snake_case   ,download_config=_snake_case						)
							SCREAMING_SNAKE_CASE__						:       Tuple           =   dl_manager.download(_snake_case						)
							SCREAMING_SNAKE_CASE__						:       Optional[Any]           =   urls
							for downloaded_paths in [downloaded_paths]:
														if isinstance(_snake_case   ,_snake_case						):
																					SCREAMING_SNAKE_CASE__						:       Optional[int]           =   [downloaded_paths]
																					SCREAMING_SNAKE_CASE__						:       Union[str, Any]           =   [urls]
														elif isinstance(_snake_case   ,_snake_case						):
																					assert "train" in downloaded_paths.keys()
																					SCREAMING_SNAKE_CASE__						:       Dict           =   downloaded_paths.values()
																					SCREAMING_SNAKE_CASE__						:       Optional[Any]           =   urls.values()
														assert downloaded_paths
														for downloaded_path, input_url in zip(_snake_case   ,_snake_case						):
																					assert downloaded_path == dl_manager.downloaded_paths[input_url]
																					SCREAMING_SNAKE_CASE__						:       Dict           =   Path(_snake_case						)
																					SCREAMING_SNAKE_CASE__						:       int           =   downloaded_path.parts
																					assert parts[-1] == HASH
																					assert parts[-2] == cache_subdir
																					assert downloaded_path.exists()
																					SCREAMING_SNAKE_CASE__						:       List[str]           =   downloaded_path.read_text()
																					assert content == CONTENT
																					SCREAMING_SNAKE_CASE__						:       Optional[int]           =   downloaded_path.with_suffix(""".json"""						)
																					assert metadata_downloaded_path.exists()
																					SCREAMING_SNAKE_CASE__						:       Any           =   json.loads(metadata_downloaded_path.read_text()						)
																					assert metadata_content == {"url": URL, "etag": None}

@pytest.mark.parametrize("""paths_type"""   ,[str, list, dict]						)
def lowercase_  (   _snake_case   ,_snake_case   ,_snake_case						):
							SCREAMING_SNAKE_CASE__						:       Dict           =   str(_snake_case						)
							if issubclass(_snake_case   ,_snake_case						):
														SCREAMING_SNAKE_CASE__						:       Optional[int]           =   filename
							elif issubclass(_snake_case   ,_snake_case						):
														SCREAMING_SNAKE_CASE__						:       int           =   [filename]
							elif issubclass(_snake_case   ,_snake_case						):
														SCREAMING_SNAKE_CASE__						:       Union[str, Any]           =   {"""train""": filename}
							SCREAMING_SNAKE_CASE__						:       List[Any]           =   """dummy"""
							SCREAMING_SNAKE_CASE__						:       List[str]           =   xz_file.parent
							SCREAMING_SNAKE_CASE__						:       Dict           =   """extracted"""
							SCREAMING_SNAKE_CASE__						:       Optional[int]           =   DownloadConfig(
							    cache_dir=_snake_case   ,use_etag=_snake_case   ,)
							SCREAMING_SNAKE_CASE__						:       Tuple           =   DownloadManager(dataset_name=_snake_case   ,download_config=_snake_case						)
							SCREAMING_SNAKE_CASE__						:       Dict           =   dl_manager.extract(_snake_case						)
							SCREAMING_SNAKE_CASE__						:       List[Any]           =   paths
							for extracted_paths in [extracted_paths]:
														if isinstance(_snake_case   ,_snake_case						):
																					SCREAMING_SNAKE_CASE__						:       int           =   [extracted_paths]
																					SCREAMING_SNAKE_CASE__						:       Optional[Any]           =   [paths]
														elif isinstance(_snake_case   ,_snake_case						):
																					assert "train" in extracted_paths.keys()
																					SCREAMING_SNAKE_CASE__						:       str           =   extracted_paths.values()
																					SCREAMING_SNAKE_CASE__						:       Union[str, Any]           =   paths.values()
														assert extracted_paths
														for extracted_path, input_path in zip(_snake_case   ,_snake_case						):
																					assert extracted_path == dl_manager.extracted_paths[input_path]
																					SCREAMING_SNAKE_CASE__						:       Tuple           =   Path(_snake_case						)
																					SCREAMING_SNAKE_CASE__						:       List[Any]           =   extracted_path.parts
																					assert parts[-1] == hash_url_to_filename(_snake_case   ,etag=_snake_case						)
																					assert parts[-2] == extracted_subdir
																					assert extracted_path.exists()
																					SCREAMING_SNAKE_CASE__						:       Union[str, Any]           =   extracted_path.read_text()
																					SCREAMING_SNAKE_CASE__						:       Union[str, Any]           =   text_file.read_text()
																					assert extracted_file_content == expected_file_content

def lowercase_  (   _snake_case   ,_snake_case						):
							assert path.endswith(""".jsonl"""						)
							for num_items, line in enumerate(_snake_case   ,start=1						):
														SCREAMING_SNAKE_CASE__						:       List[str]           =   json.loads(line.decode("""utf-8"""						)						)
														assert item.keys() == {"col_1", "col_2", "col_3"}
							assert num_items == 4

@pytest.mark.parametrize("""archive_jsonl"""   ,["""tar_jsonl_path""", """zip_jsonl_path"""]						)
def lowercase_  (   _snake_case   ,_snake_case						):
							SCREAMING_SNAKE_CASE__						:       str           =   request.getfixturevalue(_snake_case						)
							SCREAMING_SNAKE_CASE__						:       Union[str, Any]           =   DownloadManager()
							for num_jsonl, (path, file) in enumerate(dl_manager.iter_archive(_snake_case						)   ,start=1						):
														_test_jsonl(_snake_case   ,_snake_case						)
							assert num_jsonl == 2

@pytest.mark.parametrize("""archive_nested_jsonl"""   ,["""tar_nested_jsonl_path""", """zip_nested_jsonl_path"""]						)
def lowercase_  (   _snake_case   ,_snake_case						):
							SCREAMING_SNAKE_CASE__						:       Dict           =   request.getfixturevalue(_snake_case						)
							SCREAMING_SNAKE_CASE__						:       Optional[Any]           =   DownloadManager()
							for num_tar, (path, file) in enumerate(dl_manager.iter_archive(_snake_case						)   ,start=1						):
														for num_jsonl, (subpath, subfile) in enumerate(dl_manager.iter_archive(_snake_case						)   ,start=1						):
																					_test_jsonl(_snake_case   ,_snake_case						)
							assert num_tar == 1
							assert num_jsonl == 2

def lowercase_  (   _snake_case						):
							SCREAMING_SNAKE_CASE__						:       List[str]           =   DownloadManager()
							for num_file, file in enumerate(dl_manager.iter_files(_snake_case						)   ,start=1						):
														assert os.path.basename(_snake_case						) == ("test.txt" if num_file == 1 else "train.txt")
							assert num_file == 2






"""simple docstring"""




UpperCAmelCase__      :    List[str]    							= [
    9_9_9,
    8_0_0,
    7_9_9,
    6_0_0,
    5_9_9,
    5_0_0,
    4_0_0,
    3_9_9,
    3_7_7,
    3_5_5,
    3_3_3,
    3_1_1,
    2_8_8,
    2_6_6,
    2_4_4,
    2_2_2,
    2_0_0,
    1_9_9,
    1_7_7,
    1_5_5,
    1_3_3,
    1_1_1,
    8_8,
    6_6,
    4_4,
    2_2,
    0,
]

UpperCAmelCase__      :    int    							= [
    9_9_9,
    9_7_6,
    9_5_2,
    9_2_8,
    9_0_5,
    8_8_2,
    8_5_8,
    8_5_7,
    8_1_0,
    7_6_2,
    7_1_5,
    7_1_4,
    5_7_2,
    4_2_9,
    4_2_8,
    2_8_6,
    2_8_5,
    2_3_8,
    1_9_0,
    1_4_3,
    1_4_2,
    1_1_8,
    9_5,
    7_1,
    4_7,
    2_4,
    0,
]

UpperCAmelCase__      :    int    							= [
    9_9_9,
    9_8_8,
    9_7_7,
    9_6_6,
    9_5_5,
    9_4_4,
    9_3_3,
    9_2_2,
    9_1_1,
    9_0_0,
    8_9_9,
    8_7_9,
    8_5_9,
    8_4_0,
    8_2_0,
    8_0_0,
    7_9_9,
    7_6_6,
    7_3_3,
    7_0_0,
    6_9_9,
    6_5_0,
    6_0_0,
    5_9_9,
    5_0_0,
    4_9_9,
    4_0_0,
    3_9_9,
    3_5_0,
    3_0_0,
    2_9_9,
    2_6_6,
    2_3_3,
    2_0_0,
    1_9_9,
    1_7_9,
    1_5_9,
    1_4_0,
    1_2_0,
    1_0_0,
    9_9,
    8_8,
    7_7,
    6_6,
    5_5,
    4_4,
    3_3,
    2_2,
    1_1,
    0,
]

UpperCAmelCase__      :    int    							= [
    9_9_9,
    9_9_5,
    9_9_2,
    9_8_9,
    9_8_5,
    9_8_1,
    9_7_8,
    9_7_5,
    9_7_1,
    9_6_7,
    9_6_4,
    9_6_1,
    9_5_7,
    9_5_6,
    9_5_1,
    9_4_7,
    9_4_2,
    9_3_7,
    9_3_3,
    9_2_8,
    9_2_3,
    9_1_9,
    9_1_4,
    9_1_3,
    9_0_8,
    9_0_3,
    8_9_7,
    8_9_2,
    8_8_7,
    8_8_1,
    8_7_6,
    8_7_1,
    8_7_0,
    8_6_4,
    8_5_8,
    8_5_2,
    8_4_6,
    8_4_0,
    8_3_4,
    8_2_8,
    8_2_7,
    8_2_0,
    8_1_3,
    8_0_6,
    7_9_9,
    7_9_2,
    7_8_5,
    7_8_4,
    7_7_7,
    7_7_0,
    7_6_3,
    7_5_6,
    7_4_9,
    7_4_2,
    7_4_1,
    7_3_3,
    7_2_4,
    7_1_6,
    7_0_7,
    6_9_9,
    6_9_8,
    6_8_8,
    6_7_7,
    6_6_6,
    6_5_6,
    6_5_5,
    6_4_5,
    6_3_4,
    6_2_3,
    6_1_3,
    6_1_2,
    5_9_8,
    5_8_4,
    5_7_0,
    5_6_9,
    5_5_5,
    5_4_1,
    5_2_7,
    5_2_6,
    5_0_5,
    4_8_4,
    4_8_3,
    4_6_2,
    4_4_0,
    4_3_9,
    3_9_6,
    3_9_5,
    3_5_2,
    3_5_1,
    3_0_8,
    3_0_7,
    2_6_4,
    2_6_3,
    2_2_0,
    2_1_9,
    1_7_6,
    1_3_2,
    8_8,
    4_4,
    0,
]

UpperCAmelCase__      :    Tuple    							= [
    9_9_9,
    9_9_7,
    9_9_5,
    9_9_2,
    9_9_0,
    9_8_8,
    9_8_6,
    9_8_4,
    9_8_1,
    9_7_9,
    9_7_7,
    9_7_5,
    9_7_2,
    9_7_0,
    9_6_8,
    9_6_6,
    9_6_4,
    9_6_1,
    9_5_9,
    9_5_7,
    9_5_6,
    9_5_4,
    9_5_1,
    9_4_9,
    9_4_6,
    9_4_4,
    9_4_1,
    9_3_9,
    9_3_6,
    9_3_4,
    9_3_1,
    9_2_9,
    9_2_6,
    9_2_4,
    9_2_1,
    9_1_9,
    9_1_6,
    9_1_4,
    9_1_3,
    9_1_0,
    9_0_7,
    9_0_5,
    9_0_2,
    8_9_9,
    8_9_6,
    8_9_3,
    8_9_1,
    8_8_8,
    8_8_5,
    8_8_2,
    8_7_9,
    8_7_7,
    8_7_4,
    8_7_1,
    8_7_0,
    8_6_7,
    8_6_4,
    8_6_1,
    8_5_8,
    8_5_5,
    8_5_2,
    8_4_9,
    8_4_6,
    8_4_3,
    8_4_0,
    8_3_7,
    8_3_4,
    8_3_1,
    8_2_8,
    8_2_7,
    8_2_4,
    8_2_1,
    8_1_7,
    8_1_4,
    8_1_1,
    8_0_8,
    8_0_4,
    8_0_1,
    7_9_8,
    7_9_5,
    7_9_1,
    7_8_8,
    7_8_5,
    7_8_4,
    7_8_0,
    7_7_7,
    7_7_4,
    7_7_0,
    7_6_6,
    7_6_3,
    7_6_0,
    7_5_6,
    7_5_2,
    7_4_9,
    7_4_6,
    7_4_2,
    7_4_1,
    7_3_7,
    7_3_3,
    7_3_0,
    7_2_6,
    7_2_2,
    7_1_8,
    7_1_4,
    7_1_0,
    7_0_7,
    7_0_3,
    6_9_9,
    6_9_8,
    6_9_4,
    6_9_0,
    6_8_5,
    6_8_1,
    6_7_7,
    6_7_3,
    6_6_9,
    6_6_4,
    6_6_0,
    6_5_6,
    6_5_5,
    6_5_0,
    6_4_6,
    6_4_1,
    6_3_6,
    6_3_2,
    6_2_7,
    6_2_2,
    6_1_8,
    6_1_3,
    6_1_2,
    6_0_7,
    6_0_2,
    5_9_6,
    5_9_1,
    5_8_6,
    5_8_0,
    5_7_5,
    5_7_0,
    5_6_9,
    5_6_3,
    5_5_7,
    5_5_1,
    5_4_5,
    5_3_9,
    5_3_3,
    5_2_7,
    5_2_6,
    5_1_9,
    5_1_2,
    5_0_5,
    4_9_8,
    4_9_1,
    4_8_4,
    4_8_3,
    4_7_4,
    4_6_6,
    4_5_7,
    4_4_9,
    4_4_0,
    4_3_9,
    4_2_8,
    4_1_8,
    4_0_7,
    3_9_6,
    3_9_5,
    3_8_1,
    3_6_6,
    3_5_2,
    3_5_1,
    3_3_0,
    3_0_8,
    3_0_7,
    2_8_6,
    2_6_4,
    2_6_3,
    2_4_2,
    2_2_0,
    2_1_9,
    1_7_6,
    1_7_5,
    1_3_2,
    1_3_1,
    8_8,
    4_4,
    0,
]

UpperCAmelCase__      :    Union[str, Any]    							= [
    9_9_9,
    9_9_1,
    9_8_2,
    9_7_4,
    9_6_6,
    9_5_8,
    9_5_0,
    9_4_1,
    9_3_3,
    9_2_5,
    9_1_6,
    9_0_8,
    9_0_0,
    8_9_9,
    8_7_4,
    8_5_0,
    8_2_5,
    8_0_0,
    7_9_9,
    7_0_0,
    6_0_0,
    5_0_0,
    4_0_0,
    3_0_0,
    2_0_0,
    1_0_0,
    0,
]

UpperCAmelCase__      :    str    							= [
    9_9_9,
    9_9_2,
    9_8_5,
    9_7_8,
    9_7_1,
    9_6_4,
    9_5_7,
    9_4_9,
    9_4_2,
    9_3_5,
    9_2_8,
    9_2_1,
    9_1_4,
    9_0_7,
    9_0_0,
    8_9_9,
    8_7_9,
    8_5_9,
    8_4_0,
    8_2_0,
    8_0_0,
    7_9_9,
    7_6_6,
    7_3_3,
    7_0_0,
    6_9_9,
    6_5_0,
    6_0_0,
    5_9_9,
    5_0_0,
    4_9_9,
    4_0_0,
    3_9_9,
    3_0_0,
    2_9_9,
    2_0_0,
    1_9_9,
    1_0_0,
    9_9,
    0,
]

UpperCAmelCase__      :    str    							= [
    9_9_9,
    9_9_6,
    9_9_2,
    9_8_9,
    9_8_5,
    9_8_2,
    9_7_9,
    9_7_5,
    9_7_2,
    9_6_8,
    9_6_5,
    9_6_1,
    9_5_8,
    9_5_5,
    9_5_1,
    9_4_8,
    9_4_4,
    9_4_1,
    9_3_8,
    9_3_4,
    9_3_1,
    9_2_7,
    9_2_4,
    9_2_0,
    9_1_7,
    9_1_4,
    9_1_0,
    9_0_7,
    9_0_3,
    9_0_0,
    8_9_9,
    8_9_1,
    8_8_4,
    8_7_6,
    8_6_9,
    8_6_1,
    8_5_3,
    8_4_6,
    8_3_8,
    8_3_0,
    8_2_3,
    8_1_5,
    8_0_8,
    8_0_0,
    7_9_9,
    7_8_8,
    7_7_7,
    7_6_6,
    7_5_5,
    7_4_4,
    7_3_3,
    7_2_2,
    7_1_1,
    7_0_0,
    6_9_9,
    6_8_8,
    6_7_7,
    6_6_6,
    6_5_5,
    6_4_4,
    6_3_3,
    6_2_2,
    6_1_1,
    6_0_0,
    5_9_9,
    5_8_5,
    5_7_1,
    5_5_7,
    5_4_2,
    5_2_8,
    5_1_4,
    5_0_0,
    4_9_9,
    4_8_5,
    4_7_1,
    4_5_7,
    4_4_2,
    4_2_8,
    4_1_4,
    4_0_0,
    3_9_9,
    3_7_9,
    3_5_9,
    3_4_0,
    3_2_0,
    3_0_0,
    2_9_9,
    2_7_9,
    2_5_9,
    2_4_0,
    2_2_0,
    2_0_0,
    1_9_9,
    1_6_6,
    1_3_3,
    1_0_0,
    9_9,
    6_6,
    3_3,
    0,
]




