@@ -2228,6 +2228,7 @@ def setDatasetValuesByUuid(self, obj_uuid, data, slices=None, format="json"):
2228
2228
dt = dset .dtype
2229
2229
typeItem = getTypeItem (dt )
2230
2230
itemSize = getItemSize (typeItem )
2231
+
2231
2232
if itemSize == "H5T_VARIABLE" and format == "binary" :
2232
2233
msg = "Only JSON is supported for for this data type"
2233
2234
self .log .info (msg )
@@ -2262,8 +2263,13 @@ def setDatasetValuesByUuid(self, obj_uuid, data, slices=None, format="json"):
2262
2263
arr = np .fromstring (data , dtype = dset .dtype )
2263
2264
arr .reshape (dset .shape )
2264
2265
dset [()] = arr
2265
- else :
2266
- dset [()] = data
2266
+ else :
2267
+ # json data
2268
+ try :
2269
+ dset [()] = data
2270
+ except TypeError as te :
2271
+ raise IOError (errno .EINVAL , str (te ))
2272
+
2267
2273
else :
2268
2274
if type (slices ) != tuple :
2269
2275
msg = "setDatasetValuesByUuid: bad type for dim parameter"
@@ -2300,11 +2306,17 @@ def setDatasetValuesByUuid(self, obj_uuid, data, slices=None, format="json"):
2300
2306
if count == 1 and len (dset .dtype ) > 1 :
2301
2307
# convert to tuple for compound singleton writes
2302
2308
data = tuple (data )
2303
- elif rank == 1 :
2309
+ if rank == 1 :
2304
2310
s = slices [0 ]
2305
- dset [s ] = data
2311
+ try :
2312
+ dset [s ] = data
2313
+ except TypeError as te :
2314
+ raise IOError (errno .EINVAL , str (te ))
2306
2315
else :
2307
- dset [slices ] = data
2316
+ try :
2317
+ dset [slices ] = data
2318
+ except TypeError as te :
2319
+ raise IOError (errno .EINVAL , str (te ))
2308
2320
2309
2321
# update modified time
2310
2322
self .setModifiedTime (obj_uuid )
0 commit comments