Repository navigation
CSV v1.3.0
Added
CSV.Rows,CSV.File, andCSV.readaccept aTables.Schemaknown before reading. They validate header names and order, row width, missing values, and each value's declared type. Invalid input reports aCSV.ParseErrorwith its row, column, byte position, and problem kind. (#1226)- Schema rows are typed
NamedTuples. Eager schema reads produce typed columns and own their text bytes, including when the source buffer or file changes afterward. - Schema readers support programs compiled with
juliac --trim=safe, using local paths, IO, or byte buffers.
Fixed
- Strict reads of fixed-width strings report oversized text as
CSV.ParseErrorwith its location, including escaped and multibyte text. Parallel schema reads preserve the first invalid row when a later chunk also contains oversized text.
Compatibility
- Requires Julia 1.10 or later. Schema validation is opt-in; existing reads keep their behavior when
schemais omitted ornothing. - Custom date formats and generic user-defined
tryparsefallbacks work at runtime but cannot yet be trimmed. Julia 1.12 trimmed programs need one thread orparallel=false, prefetch=false; Julia 1.13 supports multiple threads.
Co-authored by Codex
Merged pull requests:
- Add schema-checked, trimmable reads to CSV.Rows and CSV.File (#1226) (@quinnj-bot[bot])