@@ -81,6 +81,10 @@ def data(self):
8181 raise NotImplementedError (
8282 f'Override this property in { self .__class__ .__name__ } !' )
8383
84+ @property
85+ def alias (self ):
86+ return self .data .setdefault ('alias' , {})
87+
8488 @property
8589 def dataset_names (self ):
8690 """
@@ -90,7 +94,7 @@ def dataset_names(self):
9094 return tuple (
9195 self .data ['datasets' ].keys ()
9296 ) + tuple (
93- self .data . get ( ' alias' , {}) .keys ()
97+ self .alias .keys ()
9498 )
9599
96100 def get_examples (self , dataset_name ):
@@ -107,8 +111,8 @@ def get_examples(self, dataset_name):
107111
108112 """
109113 try :
110- if dataset_name in self .data . get ( ' alias' , []) :
111- dataset_names = self .data [ ' alias' ] [dataset_name ]
114+ if dataset_name in self .alias :
115+ dataset_names = self .alias [dataset_name ]
112116 examples = {}
113117 for name in dataset_names :
114118 examples_new = self .data ['datasets' ][name ]
@@ -286,8 +290,18 @@ def __reduce__(self):
286290 @property
287291 def data (self ):
288292 if self ._data is None :
293+ def read_text (path ):
294+ try :
295+ path = Path (path )
296+ except TypeError :
297+ if isinstance (path , dict ):
298+ raise TypeError (f'{ self .__class__ .__qualname__ } got a { type (path )} as json_path. Did you mean to use DictDatabase?' )
299+ else :
300+ raise
301+ return path .expanduser ().read_text ()
302+
289303 self ._data = _merge_database_dicts (* [
290- json .loads (Path ( path ). expanduser (). read_text ())
304+ json .loads (read_text (path ))
291305 for path in self ._json_path
292306 ])
293307
0 commit comments