Skip to content

Commit

Permalink
renamed and fixed handling of scalar merging
Browse files Browse the repository at this point in the history
  • Loading branch information
racinmat committed Mar 5, 2021
1 parent 7d5ae4d commit 02f9b04
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 13 deletions.
21 changes: 11 additions & 10 deletions src/extractors/extractdict.jl
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
add_metadata2dicts = true

function add_metadata2dicts!(n::Bool)
global add_metadata2dicts = n
end

"""
struct ExtractDict
vec::Dict{String,Any}
Expand Down Expand Up @@ -40,16 +34,23 @@ function (s::ExtractDict{S,V})(v::Dict; store_input=false) where {S<:Dict,V<:Dic
x = vcat([f(get(v,String(k),nothing), store_input=store_input) for (k,f) in s.vec]...)
o = [Symbol(k) => f(get(v,String(k),nothing), store_input=store_input) for (k,f) in s.other]
data = (; :scalars => x,o...)
add_metadata2dicts ? ProductNode(data, [collect(keys(s.vec))]) : ProductNode(data)
add_metadata2dicts() ? ProductNode(data, [collect(keys(s.vec))]) : ProductNode(data)
end

(s::ExtractDict{S,V})(v::Dict; store_input=false) where {S<:Dict,V<:Nothing} =
vcat([f(get(v,String(k),nothing), store_input=store_input) for (k,f) in s.vec]...)
function (s::ExtractDict{S,V})(v::Dict; store_input=false) where {S<:Dict,V<:Nothing}
x = vcat([f(get(v,String(k),nothing), store_input=store_input) for (k,f) in s.vec]...)
if skip_single_key_dict()
x
else
data = (; :scalars => x)
add_metadata2dicts() ? ProductNode(data, [collect(keys(s.vec))]) : ProductNode(data)
end
end

function (s::ExtractDict{S,V})(v::Dict; store_input=false) where {S<:Nothing,V<:Dict}
# o = [f(get(v,k,nothing)) for (k,f) in s.other]
o = [Symbol(k) => f(get(v,String(k),nothing), store_input=store_input) for (k,f) in s.other]
if length(o) == 1 && merge_scalars()
if length(o) == 1 && skip_single_key_dict()
# return(o[1])
return o[1].second
else
Expand Down
11 changes: 8 additions & 3 deletions src/switches.jl
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ const _max_len = Ref(10_000)
updatemaxlen!(n::Int) = _max_len[] = n
max_len() = _max_len[]

_merge_scalars = Ref(true)
merge_scalars!(v::Bool) = _merge_scalars[] = v
merge_scalars() = _merge_scalars[]
_skip_single_key_dict = Ref(true)
skip_single_key_dict!(v::Bool) = _skip_single_key_dict[] = v
skip_single_key_dict() = _skip_single_key_dict[]

_add_metadata2dicts = Ref(true)

add_metadata2dicts!(n::Bool) = _add_metadata2dicts[] = n
add_metadata2dicts() = _add_metadata2dicts[]

2 comments on commit 02f9b04

@racinmat
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator register()

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Error while trying to register: "Tag with name v1.7.5 already exists and points to a different commit"

Please sign in to comment.