Subject: [PATCH] gnu: Add python-tinydb.
From: jgart <[email-masked]>
To: [email-masked]
Cc: jgart <[email-masked]>
Date: Tue, 12 Oct 2021 01:44:49 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/databases.scm (python-tinydb): New variable.
---
 gnu/packages/databases.scm | 40 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index b1dd44da1c..60970b9c8e 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -579,6 +579,46 @@ the API, and provides features such as:
 @end itemize")
     (license license:bsd-3)))
 
+(define-public python-tinydb
+  (package
+    (name "python-tinydb")
+    (version "4.5.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "tinydb" version))
+              (sha256
+               (base32
+                "1x9c4s42930wwal3ds0plwb57kg5c3gj7kbpy64c29vq478b463x"))))
+    (build-system python-build-system)
+    (arguments
+       ;; PyPi tarball does not contain tests and github repository does not 
+       ;; have a setup.py file (only pyproject).
+      `(#:tests? #f
+        #:phases
+        (modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+              (when tests?
+                (add-installed-pythonpath inputs outputs)
+                (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH")))
+                (invoke "pytest")))))))
+    (native-inputs
+      `(("python-pytest" ,python-pytest)
+        ("python-pytest-cov" ,python-pytest-cov)
+        ("python-pycodestyle" ,python-pycodestyle)
+        ("python-pyyaml" ,python-pyyaml)))
+    (propagated-inputs
+      `(("python-typing-extensions" ,python-typing-extensions)))
+    (home-page "https://github.com/msiemens/tinydb")
+    (synopsis
+      "TinyDB is a lightweight document oriented database")
+    (description
+"TinyDB is a lightweight document oriented database optimized for
+your happiness.  It's written in pure Python and has no external
+dependencies.  The targets are small apps that would be blown away by a
+SQL-DB or an external database server.")
+    (license license:expat)))
+
 (define-public python-pylibmc
   (package
     (name "python-pylibmc")
-- 
2.33.0