aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLars-Dominik Braun <ldb@leibniz-psychology.org>2021-03-15 10:06:08 +0100
committerLars-Dominik Braun <ldb@leibniz-psychology.org>2021-03-15 10:53:07 +0100
commita64e355ea680bff5f6047011d936e3a3576d62c9 (patch)
tree4adb5a20680593cdb4f58b13a694be9c53d76ce2 /gnu
parentee4ba5427167aa44fc608557b2e888629c5b3926 (diff)
downloadguix-a64e355ea680bff5f6047011d936e3a3576d62c9.tar.gz
guix-a64e355ea680bff5f6047011d936e3a3576d62c9.zip
gnu: Add r-ndjson.
* gnu/packages/cran.scm (r-ndjson): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/cran.scm47
1 files changed, 47 insertions, 0 deletions
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)))