diff --git a/src/IFTPipeline.jl b/src/IFTPipeline.jl index b2fd4630..aeb21d2d 100644 --- a/src/IFTPipeline.jl +++ b/src/IFTPipeline.jl @@ -21,37 +21,6 @@ include("feature-extraction.jl") include("tracker.jl") include("h5.jl") -const iftversion = [] -function __init__() - function getiftversion() - deps = Pkg.dependencies() - iftversion = [] - for (_, dep) in deps - dep.is_direct_dep || continue - dep.version === nothing && continue - dep.name != "IceFloeTracker" && continue - push!(iftversion, dep.version) - break - end - - # For CI tests where IceFloeTracker is not a dependency - try - ift = iftversion[] - catch - return "unknown" - end - - ift = iftversion[] - maj = Int(ift.major) - min = Int(ift.minor) - patch = Int(ift.patch) - return "v$maj.$min.$patch" - end - - push!(iftversion, getiftversion()) - return nothing -end - export cache_vector, sharpen, sharpen_gray, preprocess, @@ -71,8 +40,7 @@ export cache_vector, sharpen, mkclitrack!, mkfilenames, makeh5files, - getlatlon, - iftversion + getlatlon export IceFloeTracker end diff --git a/src/h5.jl b/src/h5.jl index 4533b2ad..cf841af7 100644 --- a/src/h5.jl +++ b/src/h5.jl @@ -1,3 +1,28 @@ +function getiftversion() + deps = Pkg.dependencies() + iftversion = [] + for (_, dep) in deps + dep.is_direct_dep || continue + dep.version === nothing && continue + dep.name != "IceFloeTracker" && continue + push!(iftversion, dep.version) + break + end + + # For CI tests where IceFloeTracker is not a dependency + try + ift = iftversion[1] + catch + return "unknown" + end + + ift = iftversion[1] + maj = Int(ift.major) + min = Int(ift.minor) + patch = Int(ift.patch) + return "v$maj.$min.$patch" +end + """ makeh5filename(imgfname, ts) @@ -100,7 +125,7 @@ The `index` group contains the spatial coordinates in the source image coordinat function makeh5files(; pathtosampleimg::String, resdir::String) latlondata = getlatlon(pathtosampleimg) - iftver = iftversion[] + iftversion = getiftversion() ptpath = joinpath(resdir, "passtimes.jls") passtimes = deserialize(ptpath) @@ -128,7 +153,7 @@ function makeh5files(; pathtosampleimg::String, resdir::String) # Add top-level attributes attrs(file)["fname_reflectance"] = reflectance_refs[i] attrs(file)["fname_truecolor"] = truecolor_refs[i] - attrs(file)["iftversion"] = iftver + attrs(file)["iftversion"] = iftversion attrs(file)["crs"] = latlondata["crs"] attrs(file)["reference"] = "https://doi.org/10.1016/j.rse.2019.111406" attrs(file)["contact"] = "mmwilhelmus@brown.edu" diff --git a/test/test-h5.jl b/test/test-h5.jl index 6387e866..f59de688 100644 --- a/test/test-h5.jl +++ b/test/test-h5.jl @@ -10,7 +10,7 @@ getcorners(m) = [m[1, 1], m[end, end]] latcorners = getcorners(latlondata["latitude"]) loncorners = getcorners(latlondata["longitude"]) -_iftversion = IFTPipeline.iftversion[] +iftversion = IFTPipeline.getiftversion() ptpath = joinpath(resdir, "passtimes.jls") passtimes = deserialize(ptpath) @@ -44,7 +44,7 @@ h5path = joinpath(resdir, "hdf5-files", "20220914T1244.aqua.labeled_image.250m.h @test typeof(fid) == HDF5.File # top level attributes - @test attrs(fid)["iftversion"] == _iftversion + @test attrs(fid)["iftversion"] == iftversion @test attrs(fid)["fname_reflectance"] == reflectance_refs[1] @test attrs(fid)["fname_truecolor"] == truecolor_refs[1] @test attrs(fid)["crs"] == latlondata["crs"]