From patchwork Sun Mar 26 19:43:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Gruber X-Patchwork-Id: 48726 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 5C86516934; Sun, 26 Mar 2023 20:45:34 +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 C909A16934 for ; Sun, 26 Mar 2023 20:45:33 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pgWIb-0002zy-7G; Sun, 26 Mar 2023 15:45:05 -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 1pgWIZ-0002zC-Kp for guix-patches@gnu.org; Sun, 26 Mar 2023 15:45:03 -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 1pgWIZ-0007tg-BD for guix-patches@gnu.org; Sun, 26 Mar 2023 15:45:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pgWIZ-0004o4-6S for guix-patches@gnu.org; Sun, 26 Mar 2023 15:45:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#60838] [PATCH v3 3/9] gnu: Add python-sqlite-utils. Resent-From: Felix Gruber Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 26 Mar 2023 19:45:03 +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.167985985418313 (code B ref 60838); Sun, 26 Mar 2023 19:45:03 +0000 Received: (at 60838) by debbugs.gnu.org; 26 Mar 2023 19:44:14 +0000 Received: from localhost ([127.0.0.1]:45879 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgWHl-0004lC-Fx for submit@debbugs.gnu.org; Sun, 26 Mar 2023 15:44:13 -0400 Received: from mout01.posteo.de ([185.67.36.65]:36313) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgWHi-0004kV-99 for 60838@debbugs.gnu.org; Sun, 26 Mar 2023 15:44:10 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id BE7152400CE for <60838@debbugs.gnu.org>; Sun, 26 Mar 2023 21:44:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1679859844; bh=oSj7QQe6vKnsK+wlEX7XDU2KzmTV/izioyv9J5xdZxY=; h=From:To:Cc:Subject:Date:From; b=kNruvQ0b7uhN2Z76pHLV5KXodjpSG1iJgglPq99RrNdKax7o3EXLo545Y0zit6Iun HMCILyAP+rmhkaDKNpcTW4OuzWjApdXpTB2aUgfNQK34UCfKzoynG2rACflKrH033D NYV7m9+x7bW6Ve63x0zjE/eEBvHglgsoJK3ZPuXPbRUClxIiQ7ErxcelJbAMG/YORN x5kT5EF42UmBp91t7Nj7dgbjOEUMIhW9lFLMxT/auD7ly0zgweLP3dcVF+nioi7CDa AMiZuizX9fiph/Cc1hNgnwYi+vPChXOQUxoSiLPPHPdgoXx4zx9Ja1/OgAKq0UhWhQ Brl2gahGpjidg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Pl5x01K46z6tmN; Sun, 26 Mar 2023 21:44:04 +0200 (CEST) From: Felix Gruber Date: Sun, 26 Mar 2023 19:43:29 +0000 Message-Id: <0b2239a7997f185f4cd411d3a5e3b1a7c67fd22a.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 (python-sqlite-utils): New variable. --- gnu/packages/databases.scm | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 7a5f62c0f4..87fa24038f 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -3580,6 +3580,52 @@ (define-public python-sqlite-fts4 text search extension.") (license license:asl2.0))) +(define-public python-sqlite-utils + (package + (name "python-sqlite-utils") + (version "3.30") + (source (origin + (method git-fetch) ; for tests + (uri (git-reference + (url "https://github.com/simonw/sqlite-utils") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1a58syvh5jp40vi5libsxkqy99z75kj4ckxqmylbhd342ppfy1wp")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-click python-click-default-group-wheel + python-dateutil python-sqlite-fts4 + python-tabulate)) + (native-inputs (list python-pytest)) + (home-page "https://github.com/simonw/sqlite-utils") + (synopsis + "CLI tool and Python utility functions for manipulating SQLite databases") + (description + "This package provides a CLI tool and Python utility functions for +manipulating SQLite databases. + +It's main features are: +@itemize +@item +Pipe JSON (or CSV or TSV) directly into a new SQLite database file, +automatically creating a table with the appropriate schema. +@item +Run in-memory SQL queries, including joins, directly against data in +CSV, TSV or JSON files and view the results. +@item +Configure SQLite full-text search against your database tables and run +search queries against them, ordered by relevance. +@item +Run transformations against your tables to make schema changes that +SQLite ALTER TABLE does not directly support, such as changing the type +of a column. +@item +Extract columns into separate tables to better normalize your existing +data. +@end itemize") + (license license:asl2.0))) + (define-public python-pickleshare (package (name "python-pickleshare")