diff --git a/src/Datasets.jl b/src/Datasets.jl index 723741b43813ca244e12b5a6cee4270e6c52d669..5f655c072c36df8790c922bc8bdd85c10409a486 100644 --- a/src/Datasets.jl +++ b/src/Datasets.jl @@ -1221,7 +1221,12 @@ end function pushdependency!(run::Run, datafile::String) if haskey(run.attributes, :dependencies) deps = object_or_array_of_objects(run.attributes[:dependencies]) - push!(deps, as_dependency(datafile)) + dep = as_dependency(datafile) + if (deps isa Vector && dep in deps) || dep == deps + @debug "Dependency already registered" dependency=dep + else + push!(deps, dep) + end run.attributes[:dependencies] = deps else run.attributes[:dependencies] = as_dependency(datafile) diff --git a/src/Formats.jl b/src/Formats.jl index eea33f64179e996e43f4b5970652f3af66412818..1273d6bd8e0326f186ce502ccdb3ef119a056df8 100644 --- a/src/Formats.jl +++ b/src/Formats.jl @@ -520,13 +520,13 @@ function load!(file::FIMTrack) framerate=file.framerate, pixelsize=file.pixelsize, kwargs...)) - metadata = get!(file.run.attributes, :metadata, OrderedDict{Symbol, Any}()) - camera = get!(metadata, :camera, OrderedDict{Symbol, Any}()) + metadata = get!(OrderedDict{Symbol, Any}, file.run.attributes, :metadata) + camera = get!(OrderedDict{Symbol, Any}, metadata, :camera) camera[:framerate] = file.framerate if !isnothing(file.pixelsize) camera[:pixelsize] = file.pixelsize end - units = get!(file.run.attributes, :units, OrderedDict{Symbol, String}()) + units = get!(OrderedDict{Symbol, String}, file.run.attributes, :units) units[:t] = "s" units[:framerate] = "fps" if !isnothing(file.pixelsize) @@ -594,7 +594,7 @@ function labelledfiles(repository::String=".", chunks::Bool=false; push!(files′, file′) if file′ isa JSONLabels for dep in getdependencies(file′) - push!(get!(deps, dep, JSONLabels[]), file′) + push!(get!(()->JSONLabels[], deps, dep), file′) end end end