From a64e355ea680bff5f6047011d936e3a3576d62c9 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 15 Mar 2021 10:06:08 +0100 Subject: gnu: Add r-ndjson. * gnu/packages/cran.scm (r-ndjson): New variable. --- gnu/packages/cran.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 0ffc90488a..75c11c7af3 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -27568,3 +27568,50 @@ text but not always easily handled by analysis algorithms. The (description "Extracts plain text from @dfn{Rich Text Format} (RTF) file.") (license license:expat))) + +(define-public r-ndjson + (package + (name "r-ndjson") + (version "0.8.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "ndjson" version)) + (sha256 + (base32 + "0lvzbgfi1sg4kya1mvv67z14qk3vz9q57x22qh57xq8ampdkg812")) + (modules '((guix build utils))) + (snippet + '(begin + ;; unvendor gzstream + (for-each delete-file '("src/gzstream.cpp" "src/gzstream.h")) + #t)))) + (properties `((upstream-name . "ndjson"))) + (build-system r-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'use-system-gzstream + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/Makevars" + (("PKG_LIBS = " all) + (string-append all "-lgzstream "))) + #t))))) + (inputs `(("zlib" ,zlib) ("gzstream" ,gzstream))) + (propagated-inputs + `(("r-data-table" ,r-data-table) + ("r-rcpp" ,r-rcpp) + ("r-tibble" ,r-tibble))) + (home-page "https://gitlab.com/hrbrmstr/ndjson") + (synopsis + "Wicked-Fast @dfn{Streaming JSON} (ndjson) Reader") + (description + "@dfn{Streaming JSON} (ndjson) has one JSON record per-line and many +modern ndjson files contain large numbers of records. These constructs may not +be columnar in nature, but it is often useful to read in these files and +\"flatten\" the structure out to enable working with the data in an R +@code{data.frame}-like context. Functions are provided that make it possible +to read in plain ndjson files or compressed (@code{gz}) ndjson files and either +validate the format of the records or create \"flat\" @code{data.table} +structures from them.") + (license license:expat))) -- cgit v1.2.3