



from unittest import TestCase

from datasets import Sequence, Value
from datasets.arrow_dataset import Dataset
class 			_lowerCAmelCase   ( _UpperCAmelCase			):






			"""simple docstring"""





			def 		snake_case__			(				self	:       int   )						->					int:
									"""simple docstring"""







									return [
									    {"col_1": 3, "col_2": "a"},
									    {"col_1": 2, "col_2": "b"},
									    {"col_1": 1, "col_2": "c"},
									    {"col_1": 0, "col_2": "d"},
									]





			def 		snake_case__			(				self	:       Dict   )						->					Tuple:
									"""simple docstring"""







									__lowercase					=				{"""col_1""": [3, 2, 1, 0], """col_2""": ["""a""", """b""", """c""", """d"""]}
									return Dataset.from_dict(lowercase   )





			def 		snake_case__			(				self	:       Optional[int]   )						->					Any:
									"""simple docstring"""







									__lowercase					=				self._create_example_records()
									__lowercase					=				Dataset.from_list(lowercase   )
									self.assertListEqual(dset.column_names			,     ["""col_1""", """col_2"""]   )
									for i, r in enumerate(lowercase   ):
															self.assertDictEqual(lowercase			,     example_records[i]   )





			def 		snake_case__			(				self	:       List[str]   )						->					Optional[int]:
									"""simple docstring"""







									__lowercase					=				self._create_example_records()
									__lowercase					=				Dataset.from_list(lowercase   )
									__lowercase					=				Dataset.from_dict({k: [r[k] for r in example_records] for k in example_records[0]}   )
									self.assertEqual(dset.info			,     dset_from_dict.info   )





			def 		snake_case__			(				self	:       Tuple   )						->					str:  # checks what happens with missing columns
									"""simple docstring"""







									__lowercase					=				[{"""col_1""": 1}, {"""col_2""": """x"""}]
									__lowercase					=				Dataset.from_list(lowercase   )
									self.assertDictEqual(dset[0]			,     {"""col_1""": 1}   )
									self.assertDictEqual(dset[1]			,     {"""col_1""": None}   )  # NB: first record is used for columns





			def 		snake_case__			(				self	:       int   )						->					List[str]:  # checks if the type can be inferred from the second record
									"""simple docstring"""







									__lowercase					=				[{"""col_1""": []}, {"""col_1""": [1, 2]}]
									__lowercase					=				Dataset.from_list(lowercase   )
									self.assertEqual(dset.info.features["""col_1"""]			,     Sequence(Value("""int64"""   )   )   )







			def 		snake_case__			(				self	:       Tuple   )						->					Dict:
									"""simple docstring"""







									__lowercase					=				Dataset.from_list([]   )
									self.assertEqual(len(lowercase   )			,     0   )
									self.assertListEqual(dset.column_names			,     []   )










from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


UpperCamelCase__ =						{
    "configuration_luke": ["LUKE_PRETRAINED_CONFIG_ARCHIVE_MAP", "LukeConfig"],
    "tokenization_luke": ["LukeTokenizer"],
}

try:
			if not is_torch_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			UpperCamelCase__ =						[
			    "LUKE_PRETRAINED_MODEL_ARCHIVE_LIST",
			    "LukeForEntityClassification",
			    "LukeForEntityPairClassification",
			    "LukeForEntitySpanClassification",
			    "LukeForMultipleChoice",
			    "LukeForQuestionAnswering",
			    "LukeForSequenceClassification",
			    "LukeForTokenClassification",
			    "LukeForMaskedLM",
			    "LukeModel",
			    "LukePreTrainedModel",
			]


if TYPE_CHECKING:
			from .configuration_luke import LUKE_PRETRAINED_CONFIG_ARCHIVE_MAP, LukeConfig
			from .tokenization_luke import LukeTokenizer

			try:
						if not is_torch_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_luke import (
						    LUKE_PRETRAINED_MODEL_ARCHIVE_LIST,
						    LukeForEntityClassification,
						    LukeForEntityPairClassification,
						    LukeForEntitySpanClassification,
						    LukeForMaskedLM,
						    LukeForMultipleChoice,
						    LukeForQuestionAnswering,
						    LukeForSequenceClassification,
						    LukeForTokenClassification,
						    LukeModel,
						    LukePreTrainedModel,
						)

else:
			import sys

			UpperCamelCase__ =						_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)





