Fix NamedTuple integration

This commit is contained in:
Pietro Vertechi 2018-08-21 18:17:47 +01:00
parent 0684102511
commit fcaae346a7

View File

@ -1086,16 +1086,13 @@ function extractGroupArgs(vs::Tuple, args...)
end end
# allow passing NamedTuples for a named legend entry # allow passing NamedTuples for a named legend entry
@require NamedTuples = "73a701b4-84e1-5df0-88ff-1968ee2ee8dc" begin legendEntryFromTuple(ns::NamedTuple) =
legendEntryFromTuple(ns::NamedTuples.NamedTuple) = join(["$k = $v" for (k, v) in pairs(ns)], ", ")
join(["$k = $v" for (k, v) in zip(keys(ns), values(ns))], ", ")
function extractGroupArgs(vs::NamedTuples.NamedTuple, args...) function extractGroupArgs(vs::NamedTuple, args...)
isempty(vs) && return GroupBy([""], [1:size(args[1],1)]) isempty(vs) && return GroupBy([""], [1:size(args[1],1)])
NT = eval(:(NamedTuples.@NT($(keys(vs)...)))){map(eltype, vs)...} v = map(NamedTuple{keys(vs)}tuple, values(vs)...)
v = map(NT, vs...) extractGroupArgs(v, args...; legendEntry = legendEntryFromTuple)
extractGroupArgs(v, args...; legendEntry = legendEntryFromTuple)
end
end end
# expecting a mapping of "group label" to "group indices" # expecting a mapping of "group label" to "group indices"