Subject: [PATCH 2/2] gnu: Add python-glom.

From: jgart <[email-masked]>
Date: Sat, 25 Sep 2021 03:49:06 -0400

* gnu/packages/python-xyz.scm (python-glom): New variable.
---
 gnu/packages/python-xyz.scm | 46 +++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 9e3a1144f6..ed033df0ad 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -27007,6 +27007,52 @@ applications:
 @item Themeable help display
 @end itemize")
     (license license:bsd-3)))
+
+(define-public python-glom
+  (package
+    (name "python-glom")
+    (version "20.11.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "glom" version))
+        (sha256
+          (base32 "04pba09vdr3qjvqvy14g60fscdsi35chbbyqpczdp76cpir101al"))))
+    (build-system python-build-system)
+    (arguments
+         '(#:phases
+            (modify-phases %standard-phases
+              (replace 'check
+                (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+                 (when tests?
+                   (add-installed-pythonpath inputs outputs)
+                   (setenv "PYTHONPATH"
+                     (string-append ".:" (getenv "PYTHONPATH")))
+                     (setenv "PATH"
+                       (string-append (assoc-ref outputs "out") "/bin"
+                                      ":" (getenv "PATH")))
+                   (invoke "pytest" "-v" "glom/test")))))))
+    (native-inputs
+      `(("python-pytest" ,python-pytest)
+        ("python-pyyaml" ,python-pyyaml)))
+    (propagated-inputs
+      `(("python-attrs" ,python-attrs)
+        ("python-boltons" ,python-boltons)
+        ("python-face" ,python-face)))
+    (home-page "https://github.com/mahmoud/glom")
+    (synopsis "Restructuring data, the Python way")
+    (description
+"Real applications have real data, and real data nests.
+Objects inside of objects inside of lists of objects.
+glom is a new and powerful way to handle real-world data, featuring:
+@itemize
+@item Path-based access for nested data structures
+@item Readable, meaningful error messages
+@item Declarative data transformation, using lightweight, Pythonic specifications
+@item Built-in data exploration and debugging features
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public python-box
   (package
     (name "python-box")
-- 
2.33.0