diff --git a/Project.toml b/Project.toml index 3738a83a..91c30a73 100644 --- a/Project.toml +++ b/Project.toml @@ -23,24 +23,14 @@ Requires = "ae029012-a4dd-5104-9daa-d747884805df" StructTypes = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -[weakdeps] -DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" - -[extensions] -StippleDataFramesExt = "DataFrames" -StippleOffsetArraysExt = "OffsetArrays" -StippleJSONExt = "JSON" - [compat] DataFrames = "1" FilePathsBase = "0.9" Genie = "5.18" GenieSession = "1" GenieSessionFileSession = "1" -JSON3 = "1.9" JSON = "0.20, 0.21" +JSON3 = "1.9" MacroTools = "0.5" Mixers = "0.1.2" Observables = "0.3, 0.4, 0.5" @@ -53,6 +43,11 @@ StructTypes = "1.8" Tables = "1" julia = "1.6" +[extensions] +StippleDataFramesExt = "DataFrames" +StippleJSONExt = "JSON" +StippleOffsetArraysExt = "OffsetArrays" + [extras] DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" @@ -61,3 +56,8 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] test = ["Test", "DataFrames", "JSON", "OffsetArrays"] + +[weakdeps] +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" diff --git a/ext/StippleDataFrames.jl b/ext/StippleDataFrames.jl deleted file mode 100644 index ba61dd74..00000000 --- a/ext/StippleDataFrames.jl +++ /dev/null @@ -1,7 +0,0 @@ -function Stipple.stipple_parse(::Type{DF} where DF <: DataFrames.AbstractDataFrame, d::Vector) - isempty(d) ? DF() : reduce(vcat, DataFrames.DataFrame.(d)) -end - -function Stipple.render(df::DataFrames.DataFrame) - OrderedDict(zip(names(df), eachcol(df))) -end \ No newline at end of file diff --git a/ext/StippleDataFramesExt.jl b/ext/StippleDataFramesExt.jl index 12fd0ddb..4f606740 100644 --- a/ext/StippleDataFramesExt.jl +++ b/ext/StippleDataFramesExt.jl @@ -1,9 +1,8 @@ module StippleDataFramesExt -@static if isdefined(Base, :get_extension) - using Stipple - using DataFrames -end +using Stipple + +isdefined(Base, :get_extension) ? using DataFrames : using ..DataFrames function Stipple.stipple_parse(::Type{DF} where DF <: DataFrames.AbstractDataFrame, d::Vector) isempty(d) ? DF() : reduce(vcat, DataFrames.DataFrame.(d)) diff --git a/ext/StippleJSON.jl b/ext/StippleJSON.jl deleted file mode 100644 index 33d74c1e..00000000 --- a/ext/StippleJSON.jl +++ /dev/null @@ -1,10 +0,0 @@ -# garantee interoperability of different JSONTText definitions of JSON3 and JSON - -JSON.JSONText(json::Stipple.JSONText) = JSON.JSONText(json.s) -JSON.show_json(io::JSON.Writer.CompactContext, s::JSON.Writer.CS, json::Stipple.JSONText) = write(io, json.s) -JSON.Writer.lower(json::Stipple.JSONText) = json.s - -Stipple.JSONText(json::JSON.JSONText) = Stipple.JSONText(json.s) -@inline StructTypes.StructType(::Type{JSON.JSONText}) = JSON3.RawType() -@inline StructTypes.construct(::Type{JSON.JSONText}, json::JSON3.RawValue) = JSONText(string(json)) -@inline JSON3.rawbytes(json::JSON.JSONText) = codeunits(json.s) \ No newline at end of file diff --git a/ext/StippleJSONExt.jl b/ext/StippleJSONExt.jl index 6b35ec86..dafc2d37 100644 --- a/ext/StippleJSONExt.jl +++ b/ext/StippleJSONExt.jl @@ -1,7 +1,8 @@ module StippleJSONExt using Stipple -using JSON + +isdefined(Base, :get_extension) ? using JSON : using ..JSON # garantee interoperability of different JSONTText definitions in Stipple and JSON # for both JSON3 and JSON @@ -9,12 +10,12 @@ using JSON # pure proper JSON. For transmissions of bindings, though, we need to allow to pass object names. JSON.JSONText(json::Stipple.JSONText) = JSON.JSONText(json.s) -JSON.show_json(io::JSON.Writer.CompactContext, s::JSON.Writer.CS, json::Stipple.JSONText) = write(io, json.s) +JSON.show_json(io::JSON.Writer.CompactContext, ::JSON.Writer.CS, json::Stipple.JSONText) = write(io, json.s) JSON.Writer.lower(json::Stipple.JSONText) = json.s Stipple.JSONText(json::JSON.JSONText) = Stipple.JSONText(json.s) @inline StructTypes.StructType(::Type{JSON.JSONText}) = JSON3.RawType() -@inline StructTypes.construct(::Type{JSON.JSONText}, json::JSON3.RawValue) = JSONText(string(json)) +@inline StructTypes.construct(::Type{JSON.JSONText}, json::JSON3.RawValue) = JSON.JSONText(string(json)) @inline JSON3.rawbytes(json::JSON.JSONText) = codeunits(json.s) end \ No newline at end of file diff --git a/ext/StippleOffsetArrays.jl b/ext/StippleOffsetArrays.jl deleted file mode 100644 index 60fc4bfd..00000000 --- a/ext/StippleOffsetArrays.jl +++ /dev/null @@ -1,12 +0,0 @@ -function Stipple.convertvalue(targetfield::Union{Ref{T}, Reactive{T}}, value) where T <: OffsetArrays.OffsetArray - a = Stipple.stipple_parse(eltype(targetfield), value) - - # if value is not an OffsetArray use the offset of the current array - if ! isa(value, OffsetArrays.OffsetArray) - o = targetfield[].offsets - OffsetArrays.OffsetArray(a, OffsetArrays.Origin(1 .+ o)) - # otherwise use the existing value - else - a - end -end \ No newline at end of file diff --git a/ext/StippleOffsetArraysExt.jl b/ext/StippleOffsetArraysExt.jl index 0070e3d1..9af9f865 100644 --- a/ext/StippleOffsetArraysExt.jl +++ b/ext/StippleOffsetArraysExt.jl @@ -1,7 +1,8 @@ module StippleOffsetArraysExt using Stipple -using OffsetArrays + +isdefined(Base, :get_extension) ? using OffsetArrays : using ..OffsetArrays function Stipple.convertvalue(targetfield::Union{Ref{T}, Reactive{T}}, value) where T <: OffsetArrays.OffsetArray a = Stipple.stipple_parse(eltype(targetfield), value) diff --git a/ext/StippleTablesExt.jl b/ext/StippleTablesExt.jl deleted file mode 100644 index 097f8624..00000000 --- a/ext/StippleTablesExt.jl +++ /dev/null @@ -1,7 +0,0 @@ -module StippleTablesExt - -using Stipple -import Tables - - -end \ No newline at end of file diff --git a/src/Stipple.jl b/src/Stipple.jl index 548b2067..e5926ce9 100644 --- a/src/Stipple.jl +++ b/src/Stipple.jl @@ -208,21 +208,15 @@ function __init__() @static if !isdefined(Base, :get_extension) @require OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" begin - # evaluate the code of the extension without the surrounding module - include(joinpath(@__DIR__, "..", "ext", "StippleOffsetArrays.jl")) - # Core.eval(@__MODULE__, Meta.parse(join(jl, ';')).args[3]) + include(joinpath(@__DIR__, "..", "ext", "StippleOffsetArraysExt.jl")) end @require DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" begin - # evaluate the code of the extension without the surrounding module - include(joinpath(@__DIR__, "..", "ext", "StippleDataFrames.jl")) - # Core.eval(@__MODULE__, Meta.parse(join(jl, ';')).args[3]) + include(joinpath(@__DIR__, "..", "ext", "StippleDataFramesExt.jl")) end @require JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" begin - # evaluate the code of the extension without the surrounding module - include(joinpath(@__DIR__, "..", "ext", "StippleJSON.jl")) - # Core.eval(@__MODULE__, Meta.parse(join(jl, ';')).args[3]) + include(joinpath(@__DIR__, "..", "ext", "StippleJSONExt.jl")) end end end