"""simple docstring"""






from unittest import TestCase

from datasets import Sequence, Value
from datasets.arrow_dataset import Dataset


class     UpperCAmelCase						(UpperCAmelCase__  ):



    """simple docstring"""

    def _snake_case			(   self							):
       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							):
       lowercase__:   Any					=      {'''col_1''': [3, 2, 1, 0], '''col_2''': ['''a''', '''b''', '''c''', '''d''']}
       return Dataset.from_dict(SCREAMING_SNAKE_CASE__							)






    def _snake_case			(   self							):
       lowercase__:   List[str]					=      self._create_example_records()
       lowercase__:   List[Any]					=      Dataset.from_list(SCREAMING_SNAKE_CASE__							)
       self.assertListEqual(dset.column_names    ,			['''col_1''', '''col_2''']							)
       for i, r in enumerate(SCREAMING_SNAKE_CASE__							):
          self.assertDictEqual(SCREAMING_SNAKE_CASE__    ,			example_records[i]							)






    def _snake_case			(   self							):
       lowercase__:   Dict					=      self._create_example_records()
       lowercase__:   List[Any]					=      Dataset.from_list(SCREAMING_SNAKE_CASE__							)
       lowercase__:   Dict					=      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							):  # checks what happens with missing columns
       lowercase__:   List[str]					=      [{'''col_1''': 1}, {'''col_2''': '''x'''}]
       lowercase__:   int					=      Dataset.from_list(SCREAMING_SNAKE_CASE__							)
       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							):  # checks if the type can be inferred from the second record
       lowercase__:   Union[str, Any]					=      [{'''col_1''': []}, {'''col_1''': [1, 2]}]
       lowercase__:   List[Any]					=      Dataset.from_list(SCREAMING_SNAKE_CASE__							)
       self.assertEqual(dset.info.features['''col_1''']    ,			Sequence(Value('''int64'''							)							)							)






    def _snake_case			(   self							):
       lowercase__:   str					=      Dataset.from_list([]							)
       self.assertEqual(len(SCREAMING_SNAKE_CASE__							)    ,			0							)
       self.assertListEqual(dset.column_names    ,			[]							)

'''simple docstring'''

from abc import ABC, abstractmethod
from argparse import ArgumentParser







class 				_lowercase     (				UpperCAmelCase__			):


 '''simple docstring'''






 @staticmethod
 @abstractmethod
 def a					(      SCREAMING_SNAKE_CASE__   :	ArgumentParser							)  ->    Tuple:
  raise NotImplementedError()





 @abstractmethod
 def a					(      self   :	int							)  ->    Union[str, Any]:
  raise NotImplementedError()






