Module Delimited_kernel__Read
exceptionBad_csv_formatting of string list * stringRow up to the error, and the field with the error up to the point of failure. Same as
Expert.Parse_state.Bad_csv_formatting.
type 'a tThis provides an applicative interface for constructing values from a csv file.
An
'a tdescribes how to build an OCaml model'afor each row.Simple example:
type t = { foo : int ; bar : string } (* Describes how to generate a [t] from a row of a csv file *) let parse : t Delimited_kernel.Parse.t = let open Delimited_kernel.Parse.Let_syntax in let%map_open foo = at_header "foo" ~f:Int.of_string and bar = at_header "bar" ~f:String.of_string in { foo; bar } ;; let _ = Delimited_kernel.Parse.list_of_string ~header:`Yes parse "foo,bar\n2,\"hello, world\"\n" ;;
include Core_kernel.Applicative.S with type 'a t := 'a t
val apply : ('a -> 'b) t -> 'a t -> 'b tval map2 : 'a t -> 'b t -> f:('a -> 'b -> 'c) -> 'c tval map3 : 'a t -> 'b t -> 'c t -> f:('a -> 'b -> 'c -> 'd) -> 'd tval all : 'a t list -> 'a list tval all_unit : unit t list -> unit t
module Applicative_infix : Base__.Applicative_intf.Applicative_infix with type 'a t := 'a tmodule Open_on_rhs_intf : sig ... endinclude Core_kernel.Applicative.Let_syntax with type 'a t := 'a t with module Open_on_rhs_intf := Open_on_rhs_intf
module Open_on_rhs_intf : sig ... endmodule Let_syntax : sig ... endval at_index : int -> f:(string -> 'a) -> 'a tRead a field at the given index. Use
fto convert the field from string.
val at_header : string -> f:(string -> 'a) -> 'a tRead a field at the given header. Use
fto convert the field from string.Note that if the given header is not provided through either the file or the
~headerargument to the parsers, this will fail at runtime.
val at_header_opt : string -> f:(string option -> 'a) -> 'a tRead a field at the given header, if it exists. Use
fto convert the field from string.
module Header = Delimited_kernel__.HeaderHeader parsing control
module Row : sig ... endWhole-row parsing.
val fold_string : ?strip:bool -> ?sep:char -> ?quote:[ `No_quoting | `Using of char ] -> ?header:Header.t -> ?on_invalid_row:'a On_invalid_row.t -> 'a t -> init:'b -> f:('b -> 'a -> 'b) -> string -> 'bFold the CSV rows contained in the given string.
val list_of_string : ?strip:bool -> ?sep:char -> ?quote:[ `No_quoting | `Using of char ] -> ?header:Header.t -> ?on_invalid_row:'a On_invalid_row.t -> 'a t -> string -> 'a listLoad the CSV as a list
module Expert : Delimited_kernel__.Read_intf.Expert with module On_invalid_row := On_invalid_row and type 'a t := 'a tExperts only. If you really think you need a function in this module, please talk to a delimited dev first.