Skip to content

Commit 357b4c6

Browse files
authored
Merge pull request #65 from boeddeker/master
add from_file
2 parents 8754368 + 86404e4 commit 357b4c6

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

lazy_dataset/core.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ def new(
112112
elif isinstance(examples, Dataset):
113113
dataset = from_dataset(
114114
examples, immutable_warranty=immutable_warranty, name=name)
115+
elif isinstance(examples, (str, Path)):
116+
dataset = from_file(
117+
examples, immutable_warranty=immutable_warranty, name=name)
115118
else:
116119
raise TypeError(type(examples), examples)
117120
return dataset
@@ -140,6 +143,31 @@ def from_list(
140143
return ListDataset(examples, name=name).map(deserialize)
141144

142145

146+
def from_file(
147+
examples: [str, Path],
148+
immutable_warranty: str = 'pickle',
149+
name: str = None,
150+
):
151+
assert isinstance(examples, (str, Path)), examples
152+
examples = Path(examples)
153+
if examples.suffix == '.json':
154+
import json
155+
with open(examples) as fd:
156+
examples = json.load(fd)
157+
elif examples.suffix == '.yaml':
158+
import yaml
159+
with open(examples) as fd:
160+
examples = yaml.load(fd)
161+
else:
162+
raise NotImplementedError(examples.suffix, examples)
163+
164+
assert isinstance(examples, (tuple, list, dict)), (type(examples), examples)
165+
166+
if immutable_warranty is None:
167+
return ListDataset(examples, name=name)
168+
return new(examples, immutable_warranty=immutable_warranty, name=name)
169+
170+
143171
def from_dataset(
144172
examples: 'Dataset',
145173
immutable_warranty: str = 'pickle',

0 commit comments

Comments
 (0)