from typing import Optional

from .. import Features, NamedSplit
from ..packaged_modules.text.text import Text
from ..utils.typing import NestedDataStructureLike, PathLike
from .abc import AbstractDatasetReader

class 					_lowercase    (     UpperCAmelCase__			):






    '''simple docstring'''




    def __init__(    self       ,						lowerCamelCase__       ,						lowerCamelCase__ = None       ,						lowerCamelCase__ = None       ,						lowerCamelCase__ = None       ,						lowerCamelCase__ = False       ,						lowerCamelCase__ = False       ,						lowerCamelCase__ = None       ,						**lowerCamelCase__       ,						):
       super().__init__(
           lowerCamelCase__       ,						split=lowerCamelCase__       ,						features=lowerCamelCase__       ,						cache_dir=lowerCamelCase__       ,						keep_in_memory=lowerCamelCase__       ,						streaming=lowerCamelCase__       ,						num_proc=lowerCamelCase__       ,						**lowerCamelCase__       ,						)
       lowerCAmelCase_:							Dict       =	path_or_paths if isinstance(lowerCamelCase__       ,						lowerCamelCase__ ) else {self.split: path_or_paths}
       lowerCAmelCase_:							str       =	Text(
           cache_dir=lowerCamelCase__       ,						data_files=lowerCamelCase__       ,						features=lowerCamelCase__       ,						**lowerCamelCase__       ,						)




    def      _a    (    self ):
       # Build iterable dataset
       if self.streaming:
          lowerCAmelCase_:							str       =	self.builder.as_streaming_dataset(split=self.split )
       # Build regular (map-style) dataset
       else:
          lowerCAmelCase_:							Dict       =	None
          lowerCAmelCase_:							List[str]       =	None
          lowerCAmelCase_:							int       =	None
          lowerCAmelCase_:							Optional[int]       =	None

          self.builder.download_and_prepare(
              download_config=lowerCamelCase__       ,						download_mode=lowerCamelCase__       ,						verification_mode=lowerCamelCase__       ,						base_path=lowerCamelCase__       ,						num_proc=self.num_proc       ,						)
          lowerCAmelCase_:							Tuple       =	self.builder.as_dataset(
              split=self.split       ,						verification_mode=lowerCamelCase__       ,						in_memory=self.keep_in_memory )
       return dataset
def 		snake_case__	(		lowercase					):
   lowerCAmelCase_:							Union[str, Any]       =	[1]

   lowerCAmelCase_  ,	lowerCAmelCase_  ,	lowerCAmelCase_:							int       =	0, 0, 0
   lowerCAmelCase_:							Union[str, Any]       =	ugly_nums[ia] * 2
   lowerCAmelCase_:							str       =	ugly_nums[ia] * 3
   lowerCAmelCase_:							Dict       =	ugly_nums[ia] * 5

   for _ in range(1							,				lowercase					):
      lowerCAmelCase_:							Any       =	min(lowercase							,				lowercase							,				lowercase					)
      ugly_nums.append(lowercase					)
      if next_num == next_a:
         ia += 1
         lowerCAmelCase_:							str       =	ugly_nums[ia] * 2
      if next_num == next_a:
         ia += 1
         lowerCAmelCase_:							Optional[int]       =	ugly_nums[ia] * 3
      if next_num == next_a:
         ia += 1
         lowerCAmelCase_:							int       =	ugly_nums[ia] * 5
   return ugly_nums[-1]


if __name__ == "__main__":
 from doctest import testmod

 testmod(verbose=True)
 print(f'''{ugly_numbers(2_0_0) = }''')