From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id mA41KemgIGSdeQAASxT56A (envelope-from ) for ; Sun, 26 Mar 2023 21:45:45 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id oHZhKOmgIGQM0AAAG6o9tA (envelope-from ) for ; Sun, 26 Mar 2023 21:45:45 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 2E0CD1FBF9 for ; Sun, 26 Mar 2023 21:45:45 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=posteo.net header.s=2017 header.b=euK6D3J9; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (strict)" header.from=posteo.net (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1679859945; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=KW5nz5GyNKot4PxJc3laLc/VbGM426t2pylRPGdb0Ws=; b=SvOaPwGYQhAjd8FeFx2w6QZiVqeuQ97MscaIToYokenCo14TZFmlcQbkJy7y7BXcPaFaBx vtk+6pCPCaCY9OZEdV7edrjiuY0l7/Upe/TQuL3tYWxPbDjpMdtjCdkbW1pwelVWxJMucp ixFRSb3LKaMwa8LKOXRbqvS9XR2+JTYlt9rzbYaMBP2dXHfINewuDcEqxS/zXc81IpR8aL RoHk8QDM5ip081SODHqM+zq0I8Bo1o/O1jugN+3Ug5lTS7u01bxCINB3zu5nn/gJjVnAGE nMnkLqQhcCYnPd6inLQGmrrNCaipuvtz/2IST38nrXL++F/EJ3mRW+zrdBC2zw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1679859945; a=rsa-sha256; cv=none; b=TpyIiHghFsI0ttlR+aoOorfrVv2dYsLjzIIhjT2YjxlTH24zuYZTI70nm0bPg24ps18rem pR8euEkV8dkBtBS+Ay0SnzVKT1VTO/h66eSJXz7qLz9cKHGjNLWEzSqeTm5Qlm5T7GER7f Qx5Z0h6pMt5Yz+pEX9v1pekxS4wky2jitjgoYcLb++kGOMb1hDgL3vhnVsv0SXT+L3Vt3n BfJzYAFoFQlebinbIEJGkXIv4sSZSGryWZ5zf3e5fTBFeLjZUp+4fz0c4m9VfOlXGmJdb5 lHYtwSbe//Bz8XhzrQm5esX/ww1WEKq3u+H1hNRp+TiB74FTMiIbYi/Ac7PbJQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=posteo.net header.s=2017 header.b=euK6D3J9; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (strict)" header.from=posteo.net (policy=none) 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 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: X-Migadu-Queue-Id: 2E0CD1FBF9 X-Spam-Score: -0.93 X-Migadu-Spam-Score: -0.93 X-Migadu-Scanner: scn0.migadu.com List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-TUID: LTAWS35r/6yu * 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))) -- 2.39.2