@@ -1614,7 +1614,7 @@ for (privatesym, fsym, ptype) in
16141614 end
16151615 # Scalar types
16161616 ($ fsym)(parent:: $ptype , name:: String , data:: Union{T, AbstractArray{T}} , plists... ) where {T<: ScalarOrString } =
1617- ($ privatesym)(parent, name, data, plists... )
1617+ ($ privatesym)(parent, name, isa (data,AbstractArray) ? collect (data) : data, plists... )
16181618 # VLEN types
16191619 ($ fsym)(parent:: $ptype , name:: String , data:: HDF5Vlen{T} , plists... ) where {T<: Union{HDF5Scalar,CharType} } =
16201620 ($ privatesym)(parent, name, data, plists... )
@@ -1637,7 +1637,7 @@ for (privatesym, fsym, ptype, crsym) in
16371637 end
16381638 # Scalar types
16391639 ($ fsym)(parent:: $ptype , name:: String , data:: Union{T, AbstractArray{T}} , plists... ) where {T<: ScalarOrString } =
1640- ($ privatesym)(parent, name, data, plists... )
1640+ ($ privatesym)(parent, name, isa (data,AbstractArray) ? collect (data) : data, plists... )
16411641 # VLEN types
16421642 ($ fsym)(parent:: $ptype , name:: String , data:: HDF5Vlen{T} , plists... ) where {T<: Union{HDF5Scalar,CharType} } =
16431643 ($ privatesym)(parent, name, data, plists... )
@@ -1664,9 +1664,10 @@ function write(obj::DatasetOrAttribute, data::HDF5Vlen{T}) where {T<:Union{HDF5S
16641664end
16651665# For plain files and groups, let "write(obj, name, val)" mean "d_write"
16661666write (parent:: Union{HDF5File, HDF5Group} , name:: String , data:: Union{T, AbstractArray{T}} , plists... ) where {T<: ScalarOrString } =
1667- d_write (parent, name, data, plists... )
1667+ d_write (parent, name, isa (data,AbstractArray) ? collect (data) : data, plists... )
16681668# For datasets, "write(dset, name, val)" means "a_write"
1669- write (parent:: HDF5Dataset , name:: String , data:: Union{T, AbstractArray{T}} , plists... ) where {T<: ScalarOrString } = a_write (parent, name, data, plists... )
1669+ write (parent:: HDF5Dataset , name:: String , data:: Union{T, AbstractArray{T}} , plists... ) where {T<: ScalarOrString } =
1670+ a_write (parent, name, data, plists... )
16701671
16711672# Reading arrays using getindex: data = dset[:,:,10]
16721673function getindex (dset:: HDF5Dataset , indices:: Union{AbstractRange{Int},Int} ...)
@@ -1928,12 +1929,16 @@ function h5a_write(attr_id::Hid, memtype_id::Hid, v::HDF5Vlen{T}) where {T<:Unio
19281929 vp = vlenpack (v)
19291930 h5a_write (attr_id, memtype_id, vp)
19301931end
1931- h5a_create (loc_id:: Hid , name:: String , type_id:: Hid , space_id:: Hid ) = h5a_create (loc_id, name, type_id, space_id, _attr_properties (name), H5P_DEFAULT)
1932+ h5a_create (loc_id:: Hid , name:: String , type_id:: Hid , space_id:: Hid ) =
1933+ h5a_create (loc_id, name, type_id, space_id, _attr_properties (name), H5P_DEFAULT)
19321934h5a_open (obj_id:: Hid , name:: String ) = h5a_open (obj_id, name, H5P_DEFAULT)
1933- h5d_create (loc_id:: Hid , name:: String , type_id:: Hid , space_id:: Hid ) = h5d_create (loc_id, name, type_id, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)
1935+ h5d_create (loc_id:: Hid , name:: String , type_id:: Hid , space_id:: Hid ) =
1936+ h5d_create (loc_id, name, type_id, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)
19341937h5d_open (obj_id:: Hid , name:: String ) = h5d_open (obj_id, name, H5P_DEFAULT)
1935- h5d_read (dataset_id:: Hid , memtype_id:: Hid , buf:: AbstractArray ) = h5d_read (dataset_id, memtype_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf)
1936- h5d_write (dataset_id:: Hid , memtype_id:: Hid , buf:: AbstractArray ) = h5d_write (dataset_id, memtype_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf)
1938+ h5d_read (dataset_id:: Hid , memtype_id:: Hid , buf:: AbstractArray ) =
1939+ h5d_read (dataset_id, memtype_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf)
1940+ h5d_write (dataset_id:: Hid , memtype_id:: Hid , buf:: AbstractArray ) =
1941+ h5d_write (dataset_id, memtype_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf)
19371942function h5d_write (dataset_id:: Hid , memtype_id:: Hid , str:: String )
19381943 ccall ((:H5Dwrite , libhdf5), Herr, (Hid, Hid, Hid, Hid, Hid, Cstring), dataset_id, memtype_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, str)
19391944end
0 commit comments