@@ -156,6 +156,17 @@ class Language:
156
156
name = jsonld .ib (default = None , kw_only = True , context = 'schema:name' )
157
157
158
158
159
+ def _convert_dataset_files_creators (value ):
160
+ """Convert dataset files creators."""
161
+ coll = value
162
+
163
+ if isinstance (coll , dict ):
164
+ return [Creator .from_jsonld (coll )]
165
+
166
+ if isinstance (coll , list ):
167
+ return [Creator .from_jsonld (c ) for c in coll ]
168
+
169
+
159
170
@jsonld .s (
160
171
type = 'schema:DigitalDocument' ,
161
172
slots = True ,
@@ -165,7 +176,10 @@ class DatasetFile(CreatorsMixin):
165
176
"""Represent a file in a dataset."""
166
177
167
178
creator = jsonld .container .list (
168
- Creator , kw_only = True , context = 'schema:creator'
179
+ Creator ,
180
+ converter = _convert_dataset_files_creators ,
181
+ kw_only = True ,
182
+ context = 'schema:creator'
169
183
)
170
184
171
185
added = jsonld .ib (context = 'schema:dateCreated' , kw_only = True )
@@ -229,7 +243,7 @@ def _convert_dataset_files(value):
229
243
def _convert_dataset_creator (value ):
230
244
"""Convert dataset creators."""
231
245
if isinstance (value , dict ): # compatibility with previous versions
232
- return Creator .from_jsonld (value )
246
+ return [ Creator .from_jsonld (value )]
233
247
234
248
if isinstance (value , list ):
235
249
return [Creator .from_jsonld (v ) for v in value ]
0 commit comments