'''simple docstring'''




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 							a__(   lowerCAmelCase__      ):


			'''simple docstring'''






			def __init__(  self			,       __lowerCAmelCase = None			,       __lowerCAmelCase = None			,       __lowerCAmelCase = None			,       __lowerCAmelCase = None			,       __lowerCAmelCase = False			,       __lowerCAmelCase = False			,       __lowerCAmelCase = None			,       **__lowerCAmelCase			,       ):




					"""simple docstring"""


					lowerCAmelCase     =    path_or_paths
					lowerCAmelCase     =    split if split or isinstance(__lowerCAmelCase			,       __lowerCAmelCase) else """train"""
					lowerCAmelCase     =    features
					lowerCAmelCase     =    cache_dir
					lowerCAmelCase     =    keep_in_memory
					lowerCAmelCase     =    streaming
					lowerCAmelCase     =    num_proc
					lowerCAmelCase     =    kwargs







			@abstractmethod
			def 				a_			(  self):




					"""simple docstring"""


					pass







class 							a__(   lowerCAmelCase__      ):


			'''simple docstring'''






			def __init__(  self			,       __lowerCAmelCase = None			,       __lowerCAmelCase = None			,       __lowerCAmelCase = False			,       __lowerCAmelCase = False			,       __lowerCAmelCase = None			,       **__lowerCAmelCase			,       ):




					"""simple docstring"""


					lowerCAmelCase     =    features
					lowerCAmelCase     =    cache_dir
					lowerCAmelCase     =    keep_in_memory
					lowerCAmelCase     =    streaming
					lowerCAmelCase     =    num_proc
					lowerCAmelCase     =    kwargs







			@abstractmethod
			def 				a_			(  self):




					"""simple docstring"""


					pass





'''simple docstring'''




def 							snake_case__				(     _A:   int					)       ->      list[int]:

		'''simple docstring'''


		if length <= 0 or not isinstance(_A ,  _A					):
				raise ValueError("""Length must be a positive integer."""					)
		return [n * (2 * n - 1) for n in range(_A					)]


if __name__ == "__main__":
						print(hexagonal_numbers(length=5))
						print(hexagonal_numbers(length=1_0))




