diff mbox series

[bug#60838,v2,7/7] gnu: Add datasette.

Message ID 0b8c873370cb71654009b5ea1d876d721b4cf02b.1679080713.git.felgru@posteo.net
State New
Headers show
Series Add datasette and python-sqlite-utils. | expand

Commit Message

Felix Gruber March 17, 2023, 7:19 p.m. UTC
* gnu/packages/databases.scm (datasette): New variable.
---
 gnu/packages/databases.scm | 47 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

Comments

Maxim Cournoyer March 22, 2023, 1:26 a.m. UTC | #1
Hello,

Felix Gruber <felgru@posteo.net> writes:

> * gnu/packages/databases.scm (datasette): New variable.
> ---
>  gnu/packages/databases.scm | 47 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 47 insertions(+)
>
> diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
> index d9ea2bba34..72960396fc 100644
> --- a/gnu/packages/databases.scm
> +++ b/gnu/packages/databases.scm
> @@ -59,6 +59,7 @@
>  ;;; Copyright © 2022 muradm <mail@muradm.net>
>  ;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org>
>  ;;; Copyright © 2021, 2022 jgart <jgart@dismail.de>
> +;;; Copyright © 2023 Felix Gruber <felgru@posteo.net>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -5049,3 +5050,49 @@ (define-public python-dogpile.cache
>  provides API hooks which integrate these cache backends with the locking
>  mechanism of @code{dogpile}.")
>      (license license:expat)))
> +
> +(define-public datasette
> +  (package
> +    (name "datasette")
> +    (version "0.64.2")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (pypi-uri "datasette" version))
> +        (sha256
> +         (base32
> +          "1z2qwj7gmyph4dnbr44p332f9ydpv7c4z5jiyai12bmgsgdnxqg9"))))
> +    (build-system pyproject-build-system)
> +    (arguments
> +     (list
> +      #:tests? #f                    ; pypi package contains no tests

That's a lame excuse for disabling the test suite, in my opinion (and I
know it can be tempting to use it!) :-).  Please fetch from git when
there are no tests in the sdist releases (which is increasingly common,
it seems).

> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-after 'unpack 'loosen-requirements

Nitpick: I call these phases 'relax-requirements.

> +            (lambda _
> +              ;; The package needlessly specifies exact versions
> +              ;; of dependencies, when it works fine with others.
> +              (substitute* "setup.py"
> +                (("(black)==[0-9\\.]+" all package)
> +                 package)))))))

The above only affects the 'black' package, right?  Since the 'all'
binding is not used, it can be set to '_' instead.

> +    (propagated-inputs (list python-aiofiles
> +                             python-asgi-csrf
> +                             python-asgiref
> +                             python-click-7
> +                             python-click-default-group-wheel
> +                             python-httpx
> +                             python-hupper
> +                             python-itsdangerous
> +                             python-janus
> +                             python-jinja2
> +                             python-mergedeep
> +                             python-pint
> +                             python-pluggy-next
> +                             python-pyyaml
> +                             python-uvicorn))
> +    (home-page "https://datasette.io/")
> +    (synopsis "Multi-tool for exploring and publishing data")
> +    (description "Datasette is a tool for exploring and publishing data.
> +It helps people take data of any shape or size and publish that as an
> +interactive, explorable website and accompanying API.")
> +    (license license:asl2.0)))

It otherwise looks very good!  Apart from enabling the tests suite where
applicable, my comments are mostly cosmetic, so a v2 and we should be
good!  Thank you for the contribution!
diff mbox series

Patch

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index d9ea2bba34..72960396fc 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -59,6 +59,7 @@ 
 ;;; Copyright © 2022 muradm <mail@muradm.net>
 ;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org>
 ;;; Copyright © 2021, 2022 jgart <jgart@dismail.de>
+;;; Copyright © 2023 Felix Gruber <felgru@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -5049,3 +5050,49 @@  (define-public python-dogpile.cache
 provides API hooks which integrate these cache backends with the locking
 mechanism of @code{dogpile}.")
     (license license:expat)))
+
+(define-public datasette
+  (package
+    (name "datasette")
+    (version "0.64.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "datasette" version))
+        (sha256
+         (base32
+          "1z2qwj7gmyph4dnbr44p332f9ydpv7c4z5jiyai12bmgsgdnxqg9"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:tests? #f                    ; pypi package contains no tests
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'loosen-requirements
+            (lambda _
+              ;; The package needlessly specifies exact versions
+              ;; of dependencies, when it works fine with others.
+              (substitute* "setup.py"
+                (("(black)==[0-9\\.]+" all package)
+                 package)))))))
+    (propagated-inputs (list python-aiofiles
+                             python-asgi-csrf
+                             python-asgiref
+                             python-click-7
+                             python-click-default-group-wheel
+                             python-httpx
+                             python-hupper
+                             python-itsdangerous
+                             python-janus
+                             python-jinja2
+                             python-mergedeep
+                             python-pint
+                             python-pluggy-next
+                             python-pyyaml
+                             python-uvicorn))
+    (home-page "https://datasette.io/")
+    (synopsis "Multi-tool for exploring and publishing data")
+    (description "Datasette is a tool for exploring and publishing data.
+It helps people take data of any shape or size and publish that as an
+interactive, explorable website and accompanying API.")
+    (license license:asl2.0)))