import re
def 							lowerCAmelCase(	__lowerCamelCase						):
					def docstring_decorator(__lowerCamelCase						):
										__a							=   fn.__doc__
										__a							=   func_doc.split('\n'						)
										__a							=   0
										while i < len(__lowerCamelCase						) and re.search(r'^\s*Examples?:\s*$'      ,				lines[i]						) is None:
															i += 1
										if i < len(__lowerCamelCase						):
															__a							=   example_docstring
															__a							=   '\n'.join(__lowerCamelCase						)
										else:
															raise ValueError(
															    f'''The function {fn} should have an empty \'Examples:\' in its docstring as placeholder, '''
															    f'''current docstring is:\n{func_doc}'''						)
										__a							=   func_doc
										return fn

					return docstring_decorator





from dataclasses import dataclass
from typing import Callable, Optional

import datasets


@dataclass
class 						a__							(   datasets.BuilderConfig		):
			A__				:   Optional[Callable]								=			None
			A__				:   Optional[dict]								=			None
			A__				:   Optional[datasets.Features]								=			None



			def __SCREAMING_SNAKE_CASE							(						self    ) ->    Any:
								assert self.generator is not None, "generator must be specified"

								if self.gen_kwargs is None:
													__a							=   {}






class 						a__							(   datasets.GeneratorBasedBuilder		):
			A__				:   List[Any]								=			GeneratorConfig



			def __SCREAMING_SNAKE_CASE							(						self    ) ->    Tuple:
								return datasets.DatasetInfo(features=self.config.features    )



			def __SCREAMING_SNAKE_CASE							(						self      ,						UpperCAmelCase    ) ->    Optional[int]:
								return [datasets.SplitGenerator(name=datasets.Split.TRAIN      ,						gen_kwargs=self.config.gen_kwargs    )]







			def __SCREAMING_SNAKE_CASE							(						self      ,						**UpperCAmelCase    ) ->    Tuple:
								for idx, ex in enumerate(self.config.generator(**UpperCAmelCase    )    ):
													yield idx, ex




