ppx_csv_conv

Generate functions to read/write records in csv format
README

Generate functions to read/write records in csv format.

ppx_csv_conv generates functions to output some records as a csv
file, and read the records back from a list of strings coming from a
csv file or a database query.

Usage

Annotate the type: [@@deriving fields, csv]

type t = {
  field : ...
  ....
} [@@deriving fields, csv]

Csv uses fields so fields is also required. Now the functions listed
in Csvfields.Csv.Csvable are included in the module, including
conversion to and from string lists, dumping to files, and loading
files.

The Csvfields.Csv module provides the Atom functor, which accepts a
Stringable module to produce the necessary functions for recursive
calls:

module Date = struct
  include Date
  include (Csvfields.Csv.Atom (Date) : Csvfields.Csv.Csvable with type t := t)
end

type t = {
  a : float;
  b : string;
  c : int;
  e : Date.t;
} [@@deriving fields, csv]

Generate code/functions with types:

include (Csvfields.Csv.Csvable with type  t :=  t)

(Known) limitations:

  • No option, ref, or lazy_t types allowed.

  • No variant types ... nothing other than primitive types and
    records. You should create your own stringable version of those
    types and use the Atom functor.

  • The name of the type must be t.

Install
Published
21 Mar 2022
Sources
ppx_csv_conv-v0.15.0.tar.gz
sha256=3ab66631f5d794ad05a2e6e4cfc4e06d3674a7802709b77c6709bbb8e3df1eb0
Dependencies
ppxlib
>= "0.23.0"
dune
>= "2.0.0"
ppx_fields_conv
>= "v0.15" & < "v0.16"
ppx_conv_func
>= "v0.15" & < "v0.16"
csvfields
>= "v0.15" & < "v0.16"
base
>= "v0.15" & < "v0.16"
ocaml
>= "4.08.0"
Reverse Dependencies
gemini
>= "0.2.0"