Skip to content

v1.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Oct 19:06
de841a5

CSV v1.3.0

Diff since v1.2.1

Added

  • CSV.Rows, CSV.File, and CSV.read accept a Tables.Schema known before reading. They validate header names and order, row width, missing values, and each value's declared type. Invalid input reports a CSV.ParseError with 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.ParseError with 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 schema is omitted or nothing.
  • Custom date formats and generic user-defined tryparse fallbacks work at runtime but cannot yet be trimmed. Julia 1.12 trimmed programs need one thread or parallel=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])