[PATCH] gnu: Add python-tinydb.

  • Done
  • quality assurance status badge
Details
3 participants
  • jgart
  • Ludovic Courtès
  • Vinicius Monego
Owner
unassigned
Submitted by
jgart
Severity
normal
J
(address . guix-patches@gnu.org)(name . jgart)(address . jgart@dismail.de)
20211012054449.16935-1-jgart@dismail.de
* gnu/packages/databases.scm (python-tinydb): New variable.
---
gnu/packages/databases.scm | 40 ++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (53 lines)
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
V
V
Vinicius Monego wrote on 11 Nov 2021 06:24
e157567b9365be850509834e8f83423ea73c9901.camel@posteo.net
Hi jgart,

Em ter, 2021-10-12 às 01:44 -0400, jgart escreveu:
Toggle quote (4 lines)
> * gnu/packages/databases.scm (python-tinydb): New variable.
> ---
>  gnu/packages/databases.scm | 40

Don't miss your copyright in this file.

Toggle quote (25 lines)
> ++++++++++++++++++++++++++++++++++++++
>  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)

The indentation is off below.

Toggle quote (5 lines)
> +    (arguments
> +       ;; PyPi tarball does not contain tests and github repository
> does not
> +       ;; have a setup.py file (only pyproject).

I recently noticed this pattern of shipping only Poetry in the
repository while at the same time not shipping tests in PyPI. I don't
know why this is happening or what we can do about it in guix, the best
for now is to source from PyPI and skip tests like in this package.

Toggle quote (11 lines)
> +      `(#: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")))

The two lines above are redundant. The second line is the manual way of
doing what the first one does. But if we don't have a way to run the
tests, I'd not override the check phase.

Toggle quote (7 lines)
> +                (invoke "pytest")))))))
> +    (native-inputs
> +      `(("python-pytest" ,python-pytest)
> +        ("python-pytest-cov" ,python-pytest-cov)
> +        ("python-pycodestyle" ,python-pycodestyle)
> +        ("python-pyyaml" ,python-pyyaml)))

Test-related native inputs are also useless if tests can't run.

Toggle quote (6 lines)
> +    (propagated-inputs
> +      `(("python-typing-extensions" ,python-typing-extensions)))
> +    (home-page "https://github.com/msiemens/tinydb")
> +    (synopsis
> +      "TinyDB is a lightweight document oriented database")

Same line for the synopsis.

Toggle quote (7 lines)
> +    (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.")

I'd suggest "TinyDB is a small document oriented database written in
pure Python with no external dependencies. [...]"

Toggle quote (5 lines)
> +    (license license:expat)))
> +
>  (define-public python-pylibmc
>    (package
>      (name "python-pylibmc")
V
V
Vinicius Monego wrote on 11 Nov 2021 06:26
d427d45ecc1b3439925e207efcf2520c5b40c965.camel@posteo.net
Hi jgart,

Em ter, 2021-10-12 às 01:44 -0400, jgart escreveu:
Toggle quote (4 lines)
> * gnu/packages/databases.scm (python-tinydb): New variable.
> ---
>  gnu/packages/databases.scm | 40

Don't miss your copyright in this file.

Toggle quote (25 lines)
> ++++++++++++++++++++++++++++++++++++++
>  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)

The indentation is off below.

Toggle quote (5 lines)
> +    (arguments
> +       ;; PyPi tarball does not contain tests and github repository
> does not
> +       ;; have a setup.py file (only pyproject).

I recently noticed this pattern of shipping only Poetry in the
repository while at the same time not shipping tests in PyPI. I don't
know why this is happening or what we can do about it in guix, the best
for now is to source from PyPI and skip tests like in this package.

Toggle quote (11 lines)
> +      `(#: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")))

The two lines above are redundant. The second line is the manual way of
doing what the first one does. But if we don't have a way to run the
tests, I'd not override the check phase.

Toggle quote (7 lines)
> +                (invoke "pytest")))))))
> +    (native-inputs
> +      `(("python-pytest" ,python-pytest)
> +        ("python-pytest-cov" ,python-pytest-cov)
> +        ("python-pycodestyle" ,python-pycodestyle)
> +        ("python-pyyaml" ,python-pyyaml)))

Test-related native inputs are also useless if tests can't run.

Toggle quote (6 lines)
> +    (propagated-inputs
> +      `(("python-typing-extensions" ,python-typing-extensions)))
> +    (home-page "https://github.com/msiemens/tinydb")
> +    (synopsis
> +      "TinyDB is a lightweight document oriented database")

Same line for the synopsis.

Toggle quote (7 lines)
> +    (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.")

I'd suggest "TinyDB is a small document oriented database written in
pure Python with no external dependencies. [...]".

Toggle quote (5 lines)
> +    (license license:expat)))
> +
>  (define-public python-pylibmc
>    (package
>      (name "python-pylibmc")
J
[PATCH] gnu: Add python-tinydb.
(address . 51148@debbugs.gnu.org)
20211111163151.13310-1-jgart@dismail.de
Hi Vinicius,

Attached are the changes you requested.

Thanks for the code review.

It's much appreciated!

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

Toggle diff (36 lines)
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 92a7aa2761..2495ad8a28 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -4072,6 +4072,29 @@ (define-public freetds
connecting to MS SQL and Sybase servers over TCP/IP.")
(license license:lgpl2.0+)))
+(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)
+ ;; PyPi tarball does not contain tests and github repository does not
+ ;; have a setup.py file (only pyproject).
+ (arguments `(#:tests? #f))
+ (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 small document oriented database written in pure Python
+with 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 sequeler
(package
(name "sequeler")
--
2.33.1
J
[PATCH v3] gnu: Add python-tinydb.
(address . 51148@debbugs.gnu.org)
20211112034501.29311-1-jgart@dismail.de
I forgot to add the copyright at the top.

Attached is version 3 of the patchset.

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

Toggle diff (44 lines)
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 92a7aa2761..87fa1da895 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -53,6 +53,7 @@
;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
;;; Copyright © 2021 Alexandre Hannud Abdo <abdo@member.fsf.org>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2021 Jorge Gomez <jgart@dismail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4072,6 +4073,29 @@ (define-public freetds
connecting to MS SQL and Sybase servers over TCP/IP.")
(license license:lgpl2.0+)))
+(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)
+ ;; PyPi tarball does not contain tests and github repository does not
+ ;; have a setup.py file (only pyproject).
+ (arguments `(#:tests? #f))
+ (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 small document oriented database written in pure Python
+with 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 sequeler
(package
(name "sequeler")
--
2.33.1
L
L
Ludovic Courtès wrote on 23 Nov 2021 09:22
Re: bug#51148: [PATCH] gnu: Add python-tinydb.
(name . jgart)(address . jgart@dismail.de)
87v90jl1rk.fsf_-_@gnu.org
Hi,

jgart <jgart@dismail.de> skribis:

Toggle quote (2 lines)
> I forgot to add the copyright at the top.

In the meantime another line had been added for you. :-)

Toggle quote (4 lines)
> Attached is version 3 of the patchset.
>
> * gnu/packages/databases.scm (python-tinydb): New variable.

I applied and tweaked indentation.

Thanks, and thanks Vinicius for reviewing,
Ludo’.
Closed
J
(name . Ludovic Courtès)(address . ludo@gnu.org)
20211123033725.GF895@gac.attlocal.net
On Tue, 23 Nov 2021 09:22:39 +0100 Ludovic Courtès <ludo@gnu.org> wrote:

Thanks Ludo and Vinicius!

all best,

jgart
Closed
?