From 5f22ff81201482a9183e52ad9b3fa01fb6a7ffa2 Mon Sep 17 00:00:00 2001 From: PharmCat <13901158+PharmCat@users.noreply.github.com> Date: Thu, 16 Jan 2025 22:02:21 +0300 Subject: [PATCH] metadata --- Project.toml | 2 +- src/dataset.jl | 7 +++++++ src/utils.jl | 12 ++++++++++++ test/runtests.jl | 8 ++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index d9a0204..643c6c2 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "MetidaBase" uuid = "075456b7-4006-432f-9324-2f8453996c49" authors = ["PharmCat and contributors"] -version = "0.13.0" +version = "0.14.0" [deps] CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" diff --git a/src/dataset.jl b/src/dataset.jl index 1466e2c..26ae3d4 100644 --- a/src/dataset.jl +++ b/src/dataset.jl @@ -3,6 +3,13 @@ ################################################################################ struct DataSet{T <: AbstractData} <: AbstractDataSet{AbstractData} ds::Vector{T} + metadata::Dict + function DataSet(ds::AbstractVector{T}, metadata::Dict) where T <: AbstractData + new{T}(ds, metadata)::DataSet + end + function DataSet(ds) + DataSet(ds, Dict{Symbol, Any}()) + end end function getdata(d::DataSet) diff --git a/src/utils.jl b/src/utils.jl index 815257c..7a8237b 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -67,6 +67,18 @@ ispositive(::Nothing) = false ispositive(x::AbstractFloat) = isnan(x) ? false : x > zero(x) ispositive(x) = x > zero(x) + + +################################################################################ +# Group keyword parsing +################################################################################ + +parse_gkw(s::String) = [Symbol(s)] +parse_gkw(s::Symbol) = [s] +parse_gkw(s::AbstractVector{<:AbstractString}) = Symbol.(s) +parse_gkw(s::AbstractVector{Symbol}) = s + + ################################################################################ ################################################################################ diff --git a/test/runtests.jl b/test/runtests.jl index 904eb62..5970787 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -121,6 +121,9 @@ using Test, Tables, TypedTables, DataFrames, CSV end exrsds = MetidaBase.DataSet(exrsdsv) + # metadata + dsmeta = MetidaBase.DataSet(exrsdsv, Dict(:name => "SomeName")) + # Index @test exrsds[:, :r1][1] == 3 @test exrsds[1, :r1] == 3 @@ -235,4 +238,9 @@ using Test, Tables, TypedTables, DataFrames, CSV MetidaBase.cvfromvar(0.4) ≈ 0.7013021443295824 MetidaBase.cvfromsd(0.4) ≈ 0.41654636115540644 + + @test MetidaBase.parse_gkw("s") == [:s] + @test MetidaBase.parse_gkw(:s) == [:s] + @test MetidaBase.parse_gkw([:s]) == [:s] + @test MetidaBase.parse_gkw(["s"]) == [:s] end