

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   __lowercase    (			UpperCAmelCase_     ):




			"""simple docstring"""







			def __init__(			self  :					List[str]       ,						lowerCAmelCase__  :					Optional[NestedDataStructureLike[PathLike]] = None       ,						lowerCAmelCase__  :					Optional[NamedSplit] = None       ,						lowerCAmelCase__  :					Optional[Features] = None       ,						lowerCAmelCase__  :					str = None       ,						lowerCAmelCase__  :					bool = False       ,						lowerCAmelCase__  :					bool = False       ,						lowerCAmelCase__  :					Optional[int] = None       ,						**lowerCAmelCase__  :					str       ,						):
									SCREAMING_SNAKE_CASE_:			Tuple  		=	path_or_paths
									SCREAMING_SNAKE_CASE_:			List[str]  		=	split if split or isinstance(lowerCAmelCase__       ,						lowerCAmelCase__) else "train"
									SCREAMING_SNAKE_CASE_:			Dict  		=	features
									SCREAMING_SNAKE_CASE_:			str  		=	cache_dir
									SCREAMING_SNAKE_CASE_:			Tuple  		=	keep_in_memory
									SCREAMING_SNAKE_CASE_:			Optional[Any]  		=	streaming
									SCREAMING_SNAKE_CASE_:			Optional[int]  		=	num_proc
									SCREAMING_SNAKE_CASE_:			Tuple  		=	kwargs




			@abstractmethod
			def 	_SCREAMING_SNAKE_CASE      (			self  :					Union[str, Any]):
									pass







class   __lowercase    (			UpperCAmelCase_     ):




			"""simple docstring"""







			def __init__(			self  :					Dict       ,						lowerCAmelCase__  :					Optional[Features] = None       ,						lowerCAmelCase__  :					str = None       ,						lowerCAmelCase__  :					bool = False       ,						lowerCAmelCase__  :					bool = False       ,						lowerCAmelCase__  :					Optional[int] = None       ,						**lowerCAmelCase__  :					Optional[int]       ,						):
									SCREAMING_SNAKE_CASE_:			Optional[int]  		=	features
									SCREAMING_SNAKE_CASE_:			Any  		=	cache_dir
									SCREAMING_SNAKE_CASE_:			Optional[Any]  		=	keep_in_memory
									SCREAMING_SNAKE_CASE_:			Union[str, Any]  		=	streaming
									SCREAMING_SNAKE_CASE_:			Optional[Any]  		=	num_proc
									SCREAMING_SNAKE_CASE_:			Optional[int]  		=	kwargs




			@abstractmethod
			def 	_SCREAMING_SNAKE_CASE      (			self  :					Tuple):
									pass









def       A_				(   _UpperCAmelCase    ,     _UpperCAmelCase   ):

						if density <= 0:
												raise ValueError("Impossible fluid density"   )
						if bulk_modulus <= 0:
												raise ValueError("Impossible bulk modulus"   )

						return (bulk_modulus / density) ** 0.5


if __name__ == "__main__":
						import doctest

						doctest.testmod()






