Skip to content

Commit 545ae34

Browse files
authored
Merge pull request #62 from boeddeker/master
Database: Improve one exception and add alias property
2 parents 332d6d5 + f27fbbd commit 545ae34

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

lazy_dataset/database.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)