"""simple docstring"""


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    __UpperCAmelCase						(	datasets.GeneratorBasedBuilder	):
				A__      :   Optional[int]  							=       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')
				A__      :   Optional[Any]  							=       [
				    datasets.BuilderConfig(name='''first_domain'''      ,      version=__lowerCAmelCase      ,      description='''This part of my dataset covers a first domain'''	),
				    datasets.BuilderConfig(name='''second_domain'''      ,      version=__lowerCAmelCase      ,      description='''This part of my dataset covers a second domain'''	),
				]

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

				def 		_a	(      self      ):
										# TODO: This method specifies the datasets.DatasetInfo object which contains informations and typings for the dataset
										if self.config.name == "first_domain":  # This is the name of the configuration selected in BUILDER_CONFIGS above
																lowerCamelCase__					=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"
																lowerCamelCase__					=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=_lowerCamelCase	, homepage=_HOMEPAGE	, license=_LICENSE	, citation=_CITATION	, )

				def 		_a	(      self	, _lowerCamelCase      ):
										# TODO: This method is tasked with downloading/extracting the data and defining the splits depending on the configuration
										# If several configurations are possible (listed in BUILDER_CONFIGS), the configuration selected by the user is in self.config.name

										# dl_manager is a datasets.download.DownloadManager that can be used to download and extract URLS
										# It can accept any type or nested list/dict and will give back the same structure with the url replaced with path to local files.
										# By default the archives will be extracted and a path to a cached folder where they are extracted is returned instead of the archive
										lowerCamelCase__					=_URLS[self.config.name]
										lowerCamelCase__					=dl_manager.download_and_extract(_lowerCamelCase      )
										return [
										    datasets.SplitGenerator(
										        name=datasets.Split.TRAIN	, gen_kwargs={
										            "filepath": os.path.join(_lowerCamelCase	, "train.jsonl"      ),
										            "split": "train",
										        }	, ),
										    datasets.SplitGenerator(
										        name=datasets.Split.VALIDATION	, gen_kwargs={
										            "filepath": os.path.join(_lowerCamelCase	, "dev.jsonl"      ),
										            "split": "dev",
										        }	, ),
										    datasets.SplitGenerator(
										        name=datasets.Split.TEST	, gen_kwargs={
										            "filepath": os.path.join(_lowerCamelCase	, "test.jsonl"      ),
										            "split": "test"
										        }	, ),
										]






				def 		_a	(      self	, _lowerCamelCase	, _lowerCamelCase      ):
										# TODO: This method handles input defined in _split_generators to yield (key, example) tuples from the dataset.
										# The `key` is for legacy reasons (tfds) and is not important in itself, but must be unique for each example.
										with open(_lowerCamelCase	, encoding="utf-8"      ) as f:
																for key, row in enumerate(_lowerCamelCase      ):
																						lowerCamelCase__					=json.loads(_lowerCamelCase      )
																						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"],
																												}



"""simple docstring"""


from ..utils import DummyObject, requires_backends






class    __UpperCAmelCase						(	metaclass=__lowerCAmelCase	):
				A__      :   List[Any]  							=       ['''torch''', '''librosa''']

				def __init__(      self	, *_lowerCamelCase	, **_lowerCamelCase      ):
										requires_backends(self	, ["torch", "librosa"]      )

				@classmethod
				def 		_a	(      cls	, *_lowerCamelCase	, **_lowerCamelCase      ):
										requires_backends(cls	, ["torch", "librosa"]      )






				@classmethod
				def 		_a	(      cls	, *_lowerCamelCase	, **_lowerCamelCase      ):
										requires_backends(cls	, ["torch", "librosa"]      )






class    __UpperCAmelCase						(	metaclass=__lowerCAmelCase	):
				A__      :   List[str]  							=       ['''torch''', '''librosa''']

				def __init__(      self	, *_lowerCamelCase	, **_lowerCamelCase      ):
										requires_backends(self	, ["torch", "librosa"]      )

				@classmethod
				def 		_a	(      cls	, *_lowerCamelCase	, **_lowerCamelCase      ):
										requires_backends(cls	, ["torch", "librosa"]      )






				@classmethod
				def 		_a	(      cls	, *_lowerCamelCase	, **_lowerCamelCase      ):
										requires_backends(cls	, ["torch", "librosa"]      )


