@@ -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+
143171def from_dataset (
144172 examples : 'Dataset' ,
145173 immutable_warranty : str = 'pickle' ,
0 commit comments