me
/
guix
Archived
1
0
Fork 0

gnu: Add datasette.

* gnu/packages/databases.scm (datasette): New variable.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
master
Felix Gruber 2023-03-26 19:43:35 +00:00 committed by Maxim Cournoyer
parent ec628ef1c8
commit cd31437e9c
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
1 changed files with 82 additions and 0 deletions

View File

@ -59,6 +59,7 @@
;;; Copyright © 2022 muradm <mail@muradm.net> ;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org> ;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org>
;;; Copyright © 2021, 2022 jgart <jgart@dismail.de> ;;; Copyright © 2021, 2022 jgart <jgart@dismail.de>
;;; Copyright © 2023 Felix Gruber <felgru@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -5152,3 +5153,84 @@ generic interface to caching backends of any variety, and additionally
provides API hooks which integrate these cache backends with the locking provides API hooks which integrate these cache backends with the locking
mechanism of @code{dogpile}.") mechanism of @code{dogpile}.")
(license license:expat))) (license license:expat)))
(define-public datasette
(package
(name "datasette")
(version "0.64.2")
(source (origin
(method git-fetch) ;for tests
(uri (git-reference
(url "https://github.com/simonw/datasette")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1c8ajdaraynrjvsb8xxxnkb7zgm5fwq60qczaz00n465ki80j4h3"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
;; There are multiple unexplained test failures (see:
;; https://github.com/simonw/datasette/issues/2048).
#~(list "-k" (string-append
"not (test_database_page_for_database_with_dot_in_name"
" or test_row_strange_table_name"
" or test_database_with_space_in_name"
" or test_tilde_encoded_database_names"
" or test_weird_database_names"
" or test_css_classes_on_body"
" or test_templates_considered"
" or test_row_html_compound_primary_key"
" or test_edit_sql_link_on_canned_queries"
" or test_alternate_url_json"
" or test_table_with_slashes_in_name"
" or test_searchable"
" or test_custom_query_with_unicode_characters"
" or test_searchmode)")
"-n" (number->string (parallel-job-count))
"-m" "not serial") ;cannot run in parallel
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
;; The package needlessly specifies exact versions
;; of dependencies, when it works fine with others.
(substitute* "setup.py"
(("(black)==[0-9\\.]+" _ package)
package)
(("click-default-group-wheel")
"click-default-group")))))))
(propagated-inputs
(list python-aiofiles
python-asgi-csrf
python-asgiref
python-click
python-click-default-group
python-httpx
python-hupper
python-itsdangerous
python-janus
python-jinja2
python-mergedeep
python-pint
python-pluggy-next
python-pyyaml
python-uvicorn))
(native-inputs
(list python-beautifulsoup4
python-black
python-cogapp
python-pytest-7.1
python-pytest-asyncio
python-pytest-runner
python-pytest-timeout
python-pytest-xdist-next
python-setuptools
python-trustme))
(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)))