





from __future__ import annotations


def 					A__	(       SCREAMING_SNAKE_CASE_		)   ->     bool:
		return len(set(SCREAMING_SNAKE_CASE_		)		) == len(SCREAMING_SNAKE_CASE_		)


if __name__ == "__main__":
				import doctest

				doctest.testmod()








from abc import ABC, abstractmethod
from typing import Optional, Union

from .. import Dataset, DatasetDict, Features, IterableDataset, IterableDatasetDict, NamedSplit
from ..utils.typing import NestedDataStructureLike, PathLike
class        snake_case_		(			_A):







		def __init__(		self			,     __lowercase = None			,     __lowercase = None			,     __lowercase = None			,     __lowercase = None			,     __lowercase = False			,     __lowercase = False			,     __lowercase = None			,     **__lowercase			,     )				->   List[Any]:
				lowerCamelCase   : Dict								=path_or_paths
				lowerCamelCase   : Optional[int]								=split if split or isinstance(__lowercase			,     __lowercase   ) else '''train'''
				lowerCamelCase   : Tuple								=features
				lowerCamelCase   : Tuple								=cache_dir
				lowerCamelCase   : Optional[Any]								=keep_in_memory
				lowerCamelCase   : Any								=streaming
				lowerCamelCase   : Dict								=num_proc
				lowerCamelCase   : List[Any]								=kwargs







		@abstractmethod
		def 			__lowercase   (		self   )				->   Union[Dataset, DatasetDict, IterableDataset, IterableDatasetDict]:
				pass

class        snake_case_		(			_A):







		def __init__(		self			,     __lowercase = None			,     __lowercase = None			,     __lowercase = False			,     __lowercase = False			,     __lowercase = None			,     **__lowercase			,     )				->   List[str]:
				lowerCamelCase   : Tuple								=features
				lowerCamelCase   : Union[str, Any]								=cache_dir
				lowerCamelCase   : Optional[int]								=keep_in_memory
				lowerCamelCase   : List[str]								=streaming
				lowerCamelCase   : List[str]								=num_proc
				lowerCamelCase   : List[str]								=kwargs







		@abstractmethod
		def 			__lowercase   (		self   )				->   Union[Dataset, IterableDataset]:
				pass

