@@ -596,18 +596,19 @@ def parse(attr):
596
596
f .attrs ['Orange_version' ] = ORANGE_VERSION
597
597
f .attrs ['HDF5_Version' ] = h5py .version .hdf5_version
598
598
f .attrs ['h5py_version' ] = h5py .version .version
599
+ str_dtype = h5py .string_dtype ()
599
600
for subdomain in ['attributes' , 'class_vars' , 'metas' ]:
600
601
parsed = [parse (feature ) for feature in getattr (data .domain , subdomain )]
601
- domain = np .array ([[name , header ] for name , header , _ in parsed ], 'S' )
602
- domain_args = np .array ([json .dumps (args ) for * _ , args in parsed ], 'S' )
602
+ domain = np .array ([[name , header ] for name , header , _ in parsed ], dtype = str_dtype )
603
+ domain_args = np .array ([json .dumps (args ) for * _ , args in parsed ], dtype = str_dtype )
603
604
f .create_dataset (f'domain/{ subdomain } ' , data = domain )
604
605
f .create_dataset (f'domain/{ subdomain } _args' , data = domain_args )
605
606
f .create_dataset ("X" , data = data .X )
606
607
if data .Y .size :
607
608
f .create_dataset ("Y" , data = data .Y )
608
609
if data .metas .size :
609
610
for i , attr in enumerate (data .domain .metas ):
610
- col_type = h5py . string_dtype () if isinstance (attr , StringVariable ) else 'f'
611
+ col_type = str_dtype if isinstance (attr , StringVariable ) else 'f'
611
612
col_data = data .metas [:, [i ]].astype (col_type )
612
613
if col_type != 'f' :
613
614
col_data [pd .isnull (col_data )] = ""
0 commit comments