[bug#60838,v2,7/7] gnu: Add datasette.
Commit Message
* gnu/packages/databases.scm (datasette): New variable.
---
gnu/packages/databases.scm | 47 ++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
Comments
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!
@@ -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)))