Skip to content

Commit ac9bca6

Browse files
author
Shashi Gowda
committed
Don't fail if column in an option doesn't exist
1 parent bd2f05e commit ac9bca6

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/csv.jl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,14 @@ function optionsiter(opts::Associative, header)
2222
isempty(header) && return opts
2323
iter = Dict{Int,Any}()
2424
for (k, v) in opts
25-
iter[getbyheader(1:length(header), header, k)] = v
25+
i = try
26+
getbyheader(1:length(header), header, k)
27+
catch err
28+
if isa(err, ArgumentError)
29+
continue
30+
end
31+
end
32+
iter[i] = v
2633
end
2734
iter
2835
end

test/runtests.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,9 @@ import TextParse: _csvread
410410
DataValue{Int64}[nothing, nothing, nothing, 2, 1]), String["x", "y", "z"], [2, 3]))
411411
@test isequal(csvread(["data/a.csv", "data/b.csv"], samecols=[("y","z")]),
412412
(([1.0, 2.0, 1.0, 2.0, 3.0], DataValue{Int64}[2, 2, nothing, 2, 1]), String["x", "y"], [2,3]))
413+
414+
# shouldn't fail because y doesn't exist
415+
@test _csvread("x\n1", colparsers=Dict("y"=>String)) == (([1],), ["x"])
413416
end
414417

415418
@testset "skiplines_begin" begin

0 commit comments

Comments
 (0)