Recursive `readdict` does not work for JLD2 but does for HDF5
I haven't come up with a minimal example yet, but, basically, reading entries from an HDF5 file that were originally written from a nested Dict lead to the expected output for HDF5 files
Dict{String, Any} with 7 entries:
"lookup5" => Dict{String, Any}("key"=>2, "value"=>Dict{String, Any}("μ"=>12.3, "σ"=>3.3, "_type"=>"ColonyGrowthModels.InverseNormal{Float64}"))
"lookup1" => Dict{String, Any}("key"=>0, "value"=>Dict{String, Any}("μ"=>10.0, "σ"=>0.5, "_type"=>"ColonyGrowthModels.InverseNormal{Float64}"))
"lookup6" => Dict{String, Any}("key"=>3, "value"=>Dict{String, Any}("μ"=>15.7, "σ"=>3.4, "_type"=>"ColonyGrowthModels.InverseNormal{Float64}"))
"lookup2" => Dict{String, Any}("key"=>4, "value"=>Dict{String, Any}("μ"=>21.0, "σ"=>2.1, "_type"=>"ColonyGrowthModels.InverseNormal{Float64}"))
"lookup4" => Dict{String, Any}("key"=>6, "value"=>Dict{String, Any}("μ"=>30.0, "σ"=>8.2, "_type"=>"ColonyGrowthModels.InverseNormal{Float64}"))
"lookup3" => Dict{String, Any}("key"=>5, "value"=>Dict{String, Any}("μ"=>21.1, "σ"=>3.7, "_type"=>"ColonyGrowthModels.InverseNormal{Float64}"))
"lookup7" => Dict{String, Any}("key"=>1, "value"=>Dict{String, Any}("μ"=>11.0, "σ"=>1.7, "_type"=>"ColonyGrowthModels.InverseNormal{Float64}"))
whereas the same thing written to and read via readdict
from a JLD2 file leads to a flattened hierarchy:
Dict{String, Any} with 28 entries:
"lookup2/value/σ" => 2.1
"lookup6/value/μ" => 15.7
"lookup1/value/σ" => 0.5
"lookup5/value/μ" => 12.3
"lookup4/value/_type" => "ColonyGrowthModels.InverseNormal{Float64}"
"lookup6/value/σ" => 3.4
"lookup7/value/σ" => 1.7
"lookup2/value/μ" => 21.0
"lookup7/value/_type" => "ColonyGrowthModels.InverseNormal{Float64}"
"lookup3/value/_type" => "ColonyGrowthModels.InverseNormal{Float64}"
"lookup3/key" => 5
"lookup5/value/_type" => "ColonyGrowthModels.InverseNormal{Float64}"
"lookup2/value/_type" => "ColonyGrowthModels.InverseNormal{Float64}"
"lookup7/key" => 1
"lookup4/value/μ" => 30.0
"lookup1/value/μ" => 10.0
"lookup3/value/σ" => 3.7
"lookup6/key" => 3
"lookup5/key" => 2
"lookup6/value/_type" => "ColonyGrowthModels.InverseNormal{Float64}"
"lookup7/value/μ" => 11.0
⋮ => ⋮