From bc74aa0db432f56fb3956ff000aa2b2d1fad9d0e Mon Sep 17 00:00:00 2001 From: Giorgio Calderone Date: Sat, 2 Jan 2021 00:15:39 +0100 Subject: [PATCH] Accept AbstractArrays which can be `converted` to actual arrays --- src/Gnuplot.jl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Gnuplot.jl b/src/Gnuplot.jl index ca3845a..8650d59 100644 --- a/src/Gnuplot.jl +++ b/src/Gnuplot.jl @@ -1114,6 +1114,9 @@ function parseArguments(_args...) elseif isa(arg, AbstractArray) && # ==> a dataset column ((valtype(arg) <: Real) || (valtype(arg) <: AbstractString)) ; + elseif isa(arg, AbstractArray) && # ==> a dataset column (to be `convert`ed) + ((typeof(arg[1]) <: Real) || + (typeof(arg[1]) <: AbstractString)) elseif isa(arg, Real) # ==> a dataset column with only one row args[pos] = [arg] elseif isa(arg, Dataset) ; # ==> a Dataset object @@ -1139,6 +1142,21 @@ function parseArguments(_args...) pos = 1 while pos <= length(args) arg = args[pos] + + if isa(arg, AbstractArray) && + !(valtype(arg) <: Real) && + !(valtype(arg) <: AbstractString) + + # Try with `convert` + if typeof(arg[1]) <: Integer + arg = convert(Array{Int}, arg) + elseif typeof(arg[1]) <: Real + arg = convert(Array{Float64}, arg) + elseif typeof(arg[1]) <: AbstractString + arg = convert(Array{String}, arg) + end + end + if isa(arg, AbstractArray) && # ==> beginning of a dataset ((valtype(arg) <: Real) || (valtype(arg) <: AbstractString))