guix/gnu/packages/wireservice.scm
Sharlatan Hellseher 2e0990cdb4
gnu: Remove wireservice-package syntax rule.
* gnu/packages/wireservice.scm ((wireservice-package): Delete syntax rule.

Change-Id: I0f0ad62e782b400bd8a8bf2856c1fa3f37cb1a33
2025-01-20 21:37:53 +01:00

289 lines
10 KiB
Scheme

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages wireservice)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages databases)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages time)
#:use-module (gnu packages xml))
(define-public python-leather
(package
(name "python-leather")
(version "0.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wireservice/leather")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "193hchrcrh5zyj0xlfs839h25jwzxvzjpbniqjd18mgnip5mk0zn"))))
(build-system pyproject-build-system)
;; XXX: Documentation requires <https://github.com/pradyunsg/furo> which
;; is not packaged yet and depends on some missing Node.js packages
(native-inputs
(list python-cssselect
python-lxml
python-pytest
python-setuptools
python-sphinx
python-sphinx-design
python-wheel))
(home-page "https://leather.rtfd.org")
(synopsis "Python charting for 80% of humans")
(description
"Leather is a Python charting library for those who need charts now and
don't care if they're perfect.")
(license license:expat)))
(define python-agate-locales
(make-glibc-utf8-locales
glibc
#:locales (list "ko_KR")
#:name "python-agate-locales"))
(define-public python-agate
(package
(name "python-agate")
(version "1.12.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wireservice/agate")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1qvjlcbv42pjphz5i7vvd5p25barqmglhdzksaspg66n83gps8gv"))))
(build-system pyproject-build-system)
;; XXX: Documentation requires <https://github.com/pradyunsg/furo> which
;; is not packaged yet and depends on some missing Node.js packages
(native-inputs
(list (libc-utf8-locales-for-target)
python-agate-locales
python-cssselect
python-lxml
python-pytest
python-setuptools
python-wheel))
(propagated-inputs
(list python-babel
python-isodate
python-leather
python-parsedatetime
python-pytimeparse
python-slugify
python-tzdata))
(home-page "https://agate.rtfd.org")
(synopsis "Data analysis library")
(description
"Agate is a Python data analysis library. It is an alternative to numpy
and pandas that solves real-world problems with readable code. Agate was
previously known as journalism.")
(license license:expat)))
(define-public python-agate-sql
(package
(name "python-agate-sql")
(version "0.7.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wireservice/agate-sql")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "03pvya65jm4s5sxwz0msj5dwjr6mk7dja3wdyh7hmf31dpczkjm8"))))
(build-system pyproject-build-system)
;; XXX: Documentation requires <https://github.com/pradyunsg/furo> which
;; is not packaged yet and depends on some missing Node.js packages
(native-inputs
(list python-pytest
python-setuptools
python-wheel))
(propagated-inputs
(list python-agate
python-crate
python-sqlalchemy))
(home-page "https://agate-sql.rtfd.org")
(synopsis "SQL read/write support to agate")
(description
"@code{agatesql} uses a monkey patching pattern to add SQL support to all
@code{agate.Table} instances.")
(license license:expat)))
(define-public python-agate-dbf
(package
(name "python-agate-dbf")
(version "0.2.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wireservice/agate-dbf")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0z9zmc05sjxw02xl9ygjsdyp32nb3m2qrig0pmvhvf5hj1faigxi"))))
(build-system pyproject-build-system)
;; XXX: Documentation requires <https://github.com/pradyunsg/furo> which
;; is not packaged yet and depends on some missing Node.js packages
(native-inputs
(list python-pytest
python-setuptools
python-wheel))
(propagated-inputs
(list python-agate
python-dbfread))
(home-page "https://agate-dbf.rtfd.org")
(synopsis "Add read support for dbf files to agate")
(description
"@code{agatedbf} uses a monkey patching pattern to add read for dbf files
support to all @code{agate.Table} instances.")
(license license:expat)))
(define-public python-agate-excel
(package
(name "python-agate-excel")
(version "0.4.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wireservice/agate-excel")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0mg5ldnyc72yllwl8x2gpb142l43wss5f4sgp610db1v2w12rzhj"))))
(build-system pyproject-build-system)
;; XXX: Documentation requires <https://github.com/pradyunsg/furo> which
;; is not packaged yet and depends on some missing Node.js packages
(native-inputs
(list python-pytest
python-setuptools
python-wheel))
(propagated-inputs
(list python-agate
python-olefile
python-openpyxl
python-xlrd))
(home-page "https://agate-excel.rtfd.org")
(synopsis "Add read support for Excel files (xls and xlsx) to agate")
(description
"@code{agateexcel} uses a monkey patching pattern to add read for xls and
xlsx files support to all @code{agate.Table} instances.")
(license license:expat)))
(define-public csvkit
(package
(name "csvkit")
(version "2.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "csvkit" version))
(sha256
(base32 "1lbd2khkyr75rdc2fblvv8qkl33fv3nx6kj158qzy4spdlk6155a"))
(patches
(search-patches "csvkit-set-locale-for-tests.patch"))))
(outputs (list "out" "doc"))
(build-system pyproject-build-system)
(arguments
(list
;; AssertionError: '9748.346\n' != '9,748.346\n
#:test-flags #~(list "-k" "not test_decimal_format")
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-docs
(lambda _
(let* ((man1 (string-append #$output:doc "/share/man/man1")))
(with-directory-excursion "docs"
(invoke "make" "man")
(copy-recursively "_build/man" man1))))))))
(native-inputs
(list (libc-utf8-locales-for-target)
python-psycopg2 ; to test PostgreSQL support
python-pytest
python-setuptools
python-sphinx
python-sphinx-rtd-theme
python-wheel))
(inputs
(list python-agate-dbf
python-agate-excel
python-agate-sql
python-text-unidecode))
(home-page "https://csvkit.rtfd.org")
(synopsis "Command-line tools for working with CSV")
(description "csvkit is a suite of command-line tools for converting to
and working with CSV. It provides the following commands:
@itemize
@item Input:
@itemize
@item @command{in2csv}: Convert various formats to CSV.
@item @command{sql2csv}: Execute SQL commands on a database and return the
data as CSV.
@end itemize
@item Processing:
@itemize
@item @command{csvclean}: Remove common syntax errors.
@item @command{csvcut}: Filter and truncate CSV files.
@item @command{csvgrep}: Filter tabular data to only those rows where
certain columns contain a given value or match a regular expression.
@item @command{csvjoin}: Merges two or more CSV tables together using a
method analogous to SQL JOIN operation.
@item @command{csvsort}: Sort CSV files.
@item @command{csvstack}: Stack up the rows from multiple CSV files,
optionally adding a grouping value to each row.
@end itemize
@item Output and analysis:
@itemize
@item @command{csvformat}: Convert a CSV file to a custom output format.
@item @command{csvjson}: Converts a CSV file into JSON or GeoJSON.
@item @command{csvlook}: Renders a CSV to the command line in a
Markdown-compatible, fixed-width format.
@item @command{csvpy}: Loads a CSV file into a @code{agate.csv.Reader}
object and then drops into a Python shell so the user can inspect the data
however they see fit.
@item @command{csvsql}: Generate SQL statements for a CSV file or execute
those statements directly on a database.
@item @command{csvstat}: Prints descriptive statistics for all columns in a
CSV file.
@end itemize
@end itemize")
(license license:expat)))