tecosaur / DataToolkit.jl

Reproducible, flexible, and convenient data management
https://tecosaur.github.io/DataToolkit.jl
78 stars 4 forks source link

MD5 fails to get checksum with TypeError #31

Closed apraga closed 5 months ago

apraga commented 6 months ago

Hi,

With the following Data.toml file

data_config_version = 0
uuid = "b5a98bdc-8e4d-450d-bbf7-0f38255133d1"
name = "data"
plugins = ["store", "defaults", "memorise"]

[config.defaults.storage._]
checksum = "md5"

[[test]]
uuid = "3413c2c9-738c-4b92-a089-db554a96531b"

    [[test.storage]]
    driver = "web"
    url = "https://www.random.org/integers/?num=10&min=1&max=6&col=1&base=10&format=plain&rnd=new"

    [[test.loader]]
    driver = "passthrough"

I've got the following error

ERROR: TypeError: in typeassert, expected Vector{UInt8}, got a value of type Base.ReinterpretArray{UInt8, 1, UInt32, Vector{UInt32}, false}
Stacktrace:
  [1] getchecksum(file::String, method::Symbol)
    @ DataToolkitCommon.Store ~/.julia/packages/DataToolkitCommon/SuyzS/src/store/storage.jl:195
  [2] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base ./essentials.jl:819
  [3] invokelatest(::Any, ::Any, ::Vararg{Any})
    @ Base ./essentials.jl:816
  [4] invokepkglatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/usepkg.jl:83
  [5] invokepkglatest(::Any, ::Any, ::Vararg{Any})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/usepkg.jl:82
  [6] invokepkglatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/usepkg.jl:85
  [7] invokepkglatest(::Any, ::Any, ::Vararg{Any})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/usepkg.jl:82
  [8] invokepkglatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/usepkg.jl:85
  [9] invokepkglatest
    @ ~/.julia/packages/DataToolkitBase/JUjFu/src/model/usepkg.jl:82 [inlined]
 [10] getchecksum(storage::DataToolkitBase.DataStorage, file::String)
    @ DataToolkitCommon.Store ~/.julia/packages/DataToolkitCommon/SuyzS/src/store/storage.jl:228
 [11] storesave(inventory::DataToolkitCommon.Store.Inventory, storage::DataToolkitBase.DataStorage, #unused#::Type{DataToolkitBase.FilePath}, file::DataToolkitBase.FilePath)
    @ DataToolkitCommon.Store ~/.julia/packages/DataToolkitCommon/SuyzS/src/store/storage.jl:287
 [12] (::DataToolkitCommon.Store.var"#55#61")(f::typeof(DataToolkitBase.storage), storer::DataToolkitBase.DataStorage, as::Type; write::Bool)
    @ DataToolkitCommon.Store ~/.julia/packages/DataToolkitCommon/SuyzS/src/store/plugins.jl:184
 [13] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:write,), Tuple{Bool}}})
    @ Base ./essentials.jl:821
 [14] invokepkglatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:write,), Tuple{Bool}}})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/usepkg.jl:83
 [15] (::DataToolkitBase.Advice{typeof(DataToolkitBase.storage), Tuple{DataToolkitBase.DataStorage, Type}})(callform::Tuple{Function, Function, Tuple, NamedTuple})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/advice.jl:18
 [16] call_composed (repeats 8 times)
    @ ./operators.jl:1034 [inlined]
 [17] #_#97
    @ ./operators.jl:1031 [inlined]
 [18] (::ComposedFunction{ComposedFunction{ComposedFunction{ComposedFunction{ComposedFunction{ComposedFunction{ComposedFunction{ComposedFunction{DataToolkitBase.Advice{typeof(DataToolkitBase.tospec), Tuple{DataToolkitBase.AbstractDataTransformer}}, DataToolkitBase.Advice{typeof(DataToolkitBase.tospec), Tuple{DataToolkitBase.DataSet}}}, DataToolkitBase.Advice{typeof(DataToolkitBase.fromspec), Tuple{Type{<:DataToolkitBase.AbstractDataTransformer}, DataToolkitBase.DataSet, Dict{String, Any}}}}, DataToolkitBase.Advice{typeof(DataToolkitBase.fromspec), Tuple{Type{DataToolkitBase.DataSet}, DataToolkitBase.DataCollection, String, Dict{String, Any}}}}, DataToolkitBase.Advice{typeof(DataToolkitCommon.show_extra), Tuple{IO, DataToolkitBase.DataSet}}}, DataToolkitBase.Advice{typeof(DataToolkitBase.init), Tuple{DataToolkitBase.DataCollection}}}, DataToolkitBase.Advice{typeof(DataToolkitCommon.Store.rhash), Tuple{DataToolkitBase.DataStorage, DataToolkitBase.SmallDict, UInt64}}}, DataToolkitBase.Advice{typeof(DataToolkitBase.storage), Tuple{DataToolkitBase.DataStorage, Type}}}, DataToolkitBase.Advice{typeof(DataToolkitBase._read), Tuple{DataToolkitBase.DataSet, Type}}})(x::Tuple{typeof(identity), typeof(DataToolkitBase.storage), Tuple{DataToolkitBase.DataStorage{:web, DataToolkitBase.DataSet}, DataType}, NamedTuple{(:write,), Tuple{Bool}}})
    @ Base ./operators.jl:1031
 [19] (::DataToolkitBase.AdviceAmalgamation)(annotated_func_call::Tuple{Function, Function, Tuple, NamedTuple})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/advice.jl:95
 [20] (::DataToolkitBase.AdviceAmalgamation)(::Function, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T<:Tuple{Vararg{Any, N}}})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/advice.jl:100
 [21] open(data::DataToolkitBase.DataSet, as::Type; write::Bool)
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/interaction/externals.jl:311
 [22] open
    @ ~/.julia/packages/DataToolkitBase/JUjFu/src/interaction/externals.jl:308 [inlined]
 [23] _read(dataset::DataToolkitBase.DataSet, as::Type)
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/interaction/externals.jl:218
 [24] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base ./essentials.jl:819
 [25] invokelatest(::Any, ::Any, ::Vararg{Any})
    @ Base ./essentials.jl:816
 [26] invokepkglatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/usepkg.jl:83
 [27] invokepkglatest(::Any, ::Any, ::Vararg{Any})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/usepkg.jl:82
 [28] (::DataToolkitBase.AdviceAmalgamation)(::Function, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T<:Tuple{Vararg{Any, N}}})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/advice.jl:102
 [29] (::DataToolkitBase.AdviceAmalgamation)(::Function, ::Any, ::Vararg{Any})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/advice.jl:98
 [30] macro expansion
    @ ~/.julia/packages/DataToolkitBase/JUjFu/src/model/advice.jl:131 [inlined]
 [31] _dataadvisecall(::typeof(DataToolkitBase._read), ::DataToolkitBase.DataSet, ::Type{IO}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/advice.jl:131
 [32] _dataadvisecall(::Function, ::DataToolkitBase.DataSet, ::Vararg{Any})
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/model/advice.jl:131
 [33] read(dataset::DataToolkitBase.DataSet)
    @ DataToolkitBase ~/.julia/packages/DataToolkitBase/JUjFu/src/interaction/externals.jl:160
 [34] top-level scope
    @ ~/.julia/packages/DataToolkit/QoiqL/src/DataToolkit.jl:48

Configuration : julia 1.9.4 with

[dc83c90b] DataToolkit v0.8.0 [9e6fccbf] DataToolkitCommon v0.8.0 [6ac74813] MD5 v0.2.2

Thanks !

tecosaur commented 5 months ago

Sorry for the delay, the notification for this issue slipped past me - I'll give this a look :)

tecosaur commented 5 months ago

Fixed in bb8b625e03603a60e13d5832587e545ba632cd1e, thanks for the report and don't hesitate to bring up any other issues you run into!