import csv
import json
import os

import datasets


# TODO: Add BibTeX citation
# Find for instance the citation on arxiv or on the dataset repo/website
a_					      = '\\n@InProceedings{huggingface:dataset,\ntitle = {A great new dataset},\nauthor={huggingface, Inc.\n},\nyear={2020}\n}\n'

# TODO: Add description of the dataset here
# You can copy an official description
a_					      = '\\nThis new dataset is designed to solve this great NLP task and is crafted with a lot of care.\n'

# TODO: Add a link to an official homepage for the dataset here
a_					      = ''

# TODO: Add the licence for the dataset here if you can find it
a_					      = ''

# TODO: Add link to the official dataset URLs here
# The HuggingFace Datasets library doesn't host the datasets but only points to the original files.
# This can be an arbitrary nested dict/list of URLs (see below in `_split_generators` method)
a_					      = {
    'first_domain': 'https://huggingface.co/great-new-dataset-first_domain.zip',
    'second_domain': 'https://huggingface.co/great-new-dataset-second_domain.zip',
}





class 	_lowercase		(      datasets.GeneratorBasedBuilder ):
 lowercase         =     datasets.Version('1.1.0' )

 # This is an example of a dataset with multiple configurations.
 # If you don't want/need to define several sub-sets in your dataset,
 # just remove the BUILDER_CONFIG_CLASS and the BUILDER_CONFIGS attributes.

 # If you need to make complex sub-parts in the datasets with configurable options
 # You can create your own builder configuration class to store attribute, inheriting from datasets.BuilderConfig
 # BUILDER_CONFIG_CLASS = MyBuilderConfig

 # You will be able to load one or the other configurations in the following list with
 # data = datasets.load_dataset('my_dataset', 'first_domain')
 # data = datasets.load_dataset('my_dataset', 'second_domain')
 lowercase         =     [
     datasets.BuilderConfig(name='first_domain'		,   version=snake_case_		,   description='This part of my dataset covers a first domain' ),
     datasets.BuilderConfig(name='second_domain'		,   version=snake_case_		,   description='This part of my dataset covers a second domain' ),
 ]

 lowercase         =     'first_domain'  # It's not mandatory to have a default configuration. Just use one if it make sense.

 def 		SCREAMING_SNAKE_CASE__     (				self			:							Dict    )     ->		str:

  """simple docstring"""





  if self.config.name == "first_domain":  # This is the name of the configuration selected in BUILDER_CONFIGS above
   UpperCamelCase_      :		Optional[int]				=      datasets.Features(
       {
           'sentence': datasets.Value('string'    ),
           'option1': datasets.Value('string'    ),
           'answer': datasets.Value('string'    )
           # These are the features of your dataset like images, labels ...
       }    )
  else:  # This is an example to show how to have different features for "first_domain" and "second_domain"
   UpperCamelCase_      :		List[str]				=      datasets.Features(
       {
           'sentence': datasets.Value('string'    ),
           'option2': datasets.Value('string'    ),
           'second_domain_answer': datasets.Value('string'    )
           # These are the features of your dataset like images, labels ...
       }    )
  return datasets.DatasetInfo(
      # This is the description that will appear on the datasets page.
      description=_DESCRIPTION     ,   features=snake_case     ,   homepage=_HOMEPAGE     ,   license=_LICENSE     ,   citation=_CITATION     ,   )

 def 		SCREAMING_SNAKE_CASE__     (				self			:							Optional[int]     ,   snake_case			:							int    )     ->		str:

  """simple docstring"""





  UpperCamelCase_      :		int				=      _URLS[self.config.name]
  UpperCamelCase_      :		Dict				=      dl_manager.download_and_extract(snake_case    )
  return [
      datasets.SplitGenerator(
          name=datasets.Split.TRAIN     ,   gen_kwargs={
              'filepath': os.path.join(snake_case     ,   'train.jsonl'    ),
              'split': 'train',
          }     ,   ),
      datasets.SplitGenerator(
          name=datasets.Split.VALIDATION     ,   gen_kwargs={
              'filepath': os.path.join(snake_case     ,   'dev.jsonl'    ),
              'split': 'dev',
          }     ,   ),
      datasets.SplitGenerator(
          name=datasets.Split.TEST     ,   gen_kwargs={
              'filepath': os.path.join(snake_case     ,   'test.jsonl'    ),
              'split': 'test'
          }     ,   ),
  ]


 def 		SCREAMING_SNAKE_CASE__     (				self			:							int     ,   snake_case			:							Tuple     ,   snake_case			:							Union[str, Any]    )     ->		int:

  """simple docstring"""





  with open(snake_case     ,   encoding='utf-8'    ) as f:
   for key, row in enumerate(snake_case    ):
    UpperCamelCase_      :		List[str]				=      json.loads(snake_case    )
    if self.config.name == "first_domain":
     # Yields examples as (key, example) tuples
     yield key, {
         "sentence": data["sentence"],
         "option1": data["option1"],
         "answer": "" if split == "test" else data["answer"],
     }
    else:
     yield key, {
         "sentence": data["sentence"],
         "option2": data["option2"],
         "second_domain_answer": "" if split == "test" else data["second_domain_answer"],
     }




def      __lowercase  (		lowerCamelCase      :  int = 998001			):
 UpperCamelCase_      :		int				=      0
 for i in range(999						,						99						,						-1			):  # 3 digit numbers range from 999 down to 100
  for j in range(999						,						99						,						-1			):
   UpperCamelCase_      :		str				=      str(i * j			)
   if product_string == product_string[::-1] and i * j < n:
    UpperCamelCase_      :		str				=      max(lowerCamelCase						,						i * j			)
 return answer


if __name__ == "__main__":
   print(F"""{solution() = }""")



