From patchwork Sun Mar 26 19:43:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Felix Gruber X-Patchwork-Id: 48727 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 4FE761700B; Sun, 26 Mar 2023 20:45:46 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 2D0A416934 for ; Sun, 26 Mar 2023 20:45:45 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pgWIe-000339-PD; Sun, 26 Mar 2023 15:45:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pgWIc-00030p-FN for guix-patches@gnu.org; Sun, 26 Mar 2023 15:45:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pgWIc-000842-2N for guix-patches@gnu.org; Sun, 26 Mar 2023 15:45:06 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pgWIb-0004op-T1 for guix-patches@gnu.org; Sun, 26 Mar 2023 15:45:05 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#60838] [PATCH v3 9/9] gnu: Add datasette. Resent-From: Felix Gruber Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 26 Mar 2023 19:45:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 60838 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 60838@debbugs.gnu.org, Maxim Cournoyer Cc: Felix Gruber Received: via spool by 60838-submit@debbugs.gnu.org id=B60838.167985988218416 (code B ref 60838); Sun, 26 Mar 2023 19:45:05 +0000 Received: (at 60838) by debbugs.gnu.org; 26 Mar 2023 19:44:42 +0000 Received: from localhost ([127.0.0.1]:45896 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgWID-0004mx-Kt for submit@debbugs.gnu.org; Sun, 26 Mar 2023 15:44:42 -0400 Received: from mout02.posteo.de ([185.67.36.66]:38545) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgWHu-0004lg-Dq for 60838@debbugs.gnu.org; Sun, 26 Mar 2023 15:44:23 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id E2E0C240112 for <60838@debbugs.gnu.org>; Sun, 26 Mar 2023 21:44:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1679859856; bh=kvYhQ3rTTkc4kmSMxHlW2XfWesFmkEoVaee3gTOld0A=; h=From:To:Cc:Subject:Date:From; b=euK6D3J9pDE2ETbC3bAdBkdpWrT9RM6gWXaDqrCaJRh0IjTgT7lxENXcw1zxqyazJ 9+BxxqYuX8KBDia+oSPJ6HQdYerlRlDxQMDaMQlCB9n3bFomyS6L2Qs2TKMMFaDYlJ bO0WswFtJ3ufHAUARgffAv16wUagZgeSdqvP43n+5BTKLDwswoJPa6V1m6qLuii3Pi 4b9M1coAbMV05ffU/OCeu3ThDiH8BAonFRvVIV54KjqJpO5yymlzResW+/W/RsJ6Qd daFRMqMnSIHTDFaodDyjz/9KmxVDnbkdbOd546CNW2M2bG/+H87M4JgumQO0KE9H8a s6AWhQva6YmVQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Pl5xD1vpfz6trg; Sun, 26 Mar 2023 21:44:16 +0200 (CEST) From: Felix Gruber Date: Sun, 26 Mar 2023 19:43:35 +0000 Message-Id: <312ccbf1d00faea30c2245385e557094ee68f1ad.1679859198.git.felgru@posteo.net> In-Reply-To: References: <87lejplhxd.fsf@gmail.com> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/databases.scm (datasette): New variable. --- gnu/packages/databases.scm | 93 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 87fa24038f..86e45d8a1e 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -59,6 +59,7 @@ ;;; Copyright © 2022 muradm ;;; Copyright © 2022 Thomas Albers Raviola ;;; Copyright © 2021, 2022 jgart +;;; Copyright © 2023 Felix Gruber ;;; ;;; This file is part of GNU Guix. ;;; @@ -5084,3 +5085,95 @@ (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 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 + ;; disable failing tests + '(list + "--deselect" + "tests/test_api.py::test_database_page_for_database_with_dot_in_name" + "--deselect" + "tests/test_api.py::test_row_strange_table_name" + "--deselect" + "tests/test_api.py::test_database_with_space_in_name" + "--deselect" + "tests/test_api.py::test_tilde_encoded_database_names[fo%o]" + "--deselect" + "tests/test_api.py::test_tilde_encoded_database_names[f~/c.d]" + "--deselect" + "tests/test_cli.py::test_weird_database_names" + "--deselect" + "tests/test_html.py::test_css_classes_on_body[/fixtures/table~2Fwith~2Fslashes~2Ecsv-expected_classes5]" + "--deselect" + "tests/test_html.py::test_templates_considered[/fixtures/table~2Fwith~2Fslashes~2Ecsv-table-fixtures-tablewithslashescsv-fa7563.html, *table.html]" + "--deselect" + "tests/test_html.py::test_row_html_compound_primary_key[/fixtures/compound_primary_key/a~2Fb,~2Ec~2Dd-expected1]" + "--deselect" + "tests/test_html.py::test_edit_sql_link_on_canned_queries[/fixtures/~F0~9D~90~9C~F0~9D~90~A2~F0~9D~90~AD~F0~9D~90~A2~F0~9D~90~9E~F0~9D~90~AC-/fixtures?sql=select+id%2C+name+from+facet_cities+order+by+id+limit+1%3B]" + "--deselect" + "tests/test_html.py::test_alternate_url_json[/fixtures/table~2Fwith~2Fslashes~2Ecsv-http://localhost/fixtures/table~2Fwith~2Fslashes~2Ecsv.json]" + "--deselect" + "tests/test_table_api.py::test_table_with_slashes_in_name" + "--deselect" + "tests/test_table_api.py::test_searchable[/fixtures/searchable.json?_search=te*+AND+do*&_searchmode=raw-expected_rows3]" + "--deselect" + "tests/test_table_api.py::test_searchmode[table_metadata1-_search=te*+AND+do*-expected_rows1]" + "--deselect" + "tests/test_table_api.py::test_searchmode[table_metadata2-_search=te*+AND+do*&_searchmode=raw-expected_rows2]" + "--deselect" + "tests/test_table_api.py::test_custom_query_with_unicode_characters") + #: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))))))) + (propagated-inputs (list python-aiofiles + python-asgi-csrf + python-asgiref + python-click + 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)) + (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-next)) + (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)))