Changelog
Source:NEWS.md
zutoml 0.1.0
Initial CRAN submission.
toml_read()reads a TOML document from a file, URL or connection, reading at mostmax_size + 1bytes, so an endless source fails at the limit. A URL or file that cannot be opened is azutoml_io_errornaming the cause (HTTP status was '404 Not Found'), with no stray warning.toml_parse()reads a TOML document into ordinary R values: tables as named lists in document order, arrays as vectors where their elements share a type, date-times asPOSIXctandDate, and integers beyond 2^53 astoml_bigint().data_frame = TRUEturns arrays of tables into data frames.toml_emit()andtoml_write()write a named list as TOML: deterministic text, tables as[headers], lists of tables and data frames as arrays of tables, and errors that name the key path of the value at fault. A value that breaks its class’s invariants, such as a data frame whose columns are shorter than its rows or an infinite date, is refused, so the text written is always valid TOML.toml_parse(select = "tool.poetry"), and sotoml_read(), returns only the value at a path, building no R values for the rest of the document; a path the document does not have raiseszutoml_missing_key.toml_parse(positions = TRUE)records where every key and array element is defined (path, type, line, column, offset), so code that checks a configuration can point at the value at fault.toml_inline(),toml_literal()andtoml_multiline()mark how one value is written bytoml_emit().toml_validate()checks that a document is valid TOML, within size, depth, item and string limits, and witherror = TRUEsays why and where (line,column,offsetandkindon a classed condition).zutoml_info()reports the versions zutoml was built against and thetoml-testsuite it passes.Every case of the
toml-testsuite passes, for TOML 1.0.0 and 1.1.0, in both directions. TOML 1.1.0 is read by default;version = "1.0.0"reads strictly; the emitter always writes TOML 1.0.0.A vignette,
vignette("zutoml"), readspyproject.tomlandCargo.tomland writes a configuration.