summary refs log tree commit diff
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
parentee4ba5427167aa44fc608557b2e888629c5b3926 (diff)
downloadguix-a64e355ea680bff5f6047011d936e3a3576d62c9.tar.gz
gnu: Add r-ndjson.
* gnu/packages/cran.scm (r-ndjson): New variable.
-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)))