520 lines
21 KiB
Scheme
520 lines
21 KiB
Scheme
;;; Copyright © 2020 Collin J. Doering <collin@rekahsoft.ca>
|
|
;;;
|
|
;;; This file is part of the GNU Guix channel rekahsoft-guix
|
|
;;;
|
|
;;; The rekahsoft-guix channel for 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.
|
|
;;;
|
|
;;; The rekahsoft-guix channel for 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 the rekahsoft-guix channel for GNU Guix. If not, see
|
|
;;; <http://www.gnu.org/licenses/>.
|
|
|
|
(define-module (rekahsoft-gnu packages python-xyz)
|
|
#:use-module ((guix licenses)
|
|
#:prefix license:)
|
|
#:use-module (gnu packages)
|
|
#:use-module (gnu packages check)
|
|
#:use-module (gnu packages cmake)
|
|
#:use-module (gnu packages glib)
|
|
#:use-module (gnu packages maths)
|
|
#:use-module (gnu packages python)
|
|
#:use-module (gnu packages python-build)
|
|
#:use-module (gnu packages python-crypto)
|
|
#:use-module (gnu packages python-web)
|
|
#:use-module (gnu packages python-xyz)
|
|
#:use-module (gnu packages serialization)
|
|
#:use-module (gnu packages sphinx)
|
|
#:use-module (gnu packages xml)
|
|
#:use-module (guix packages)
|
|
#:use-module (guix download)
|
|
#:use-module (guix git-download)
|
|
#:use-module (guix build-system python)
|
|
#:use-module (srfi srfi-1))
|
|
|
|
;; TODO: Candidate for upstream
|
|
(define-public python-virtualenv-clone
|
|
(package
|
|
(name "python-virtualenv-clone")
|
|
(version "0.5.7")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "virtualenv-clone" version))
|
|
(sha256
|
|
(base32
|
|
"06jhhf8hndcgyk9k3bjbk3vz1xpajfxj9667agqzhlk1qcsyk3j1"))))
|
|
(build-system python-build-system)
|
|
;; (native-inputs
|
|
;; `(("python-pytest" ,python-pytest)
|
|
;; ("python-tox" ,python-tox)
|
|
;; ("python-virtualenv" ,python-virtualenv)))
|
|
(arguments
|
|
;; FIXME: Tests currently fail
|
|
`(#:tests? #f))
|
|
(home-page "https://github.com/edwardgeorge/virtualenv-clone")
|
|
(synopsis "Script to clone virtualenvs.")
|
|
(description "Script to clone virtualenvs.")
|
|
(license license:expat)))
|
|
|
|
;; TODO: Candidate for upstream
|
|
(define-public python-arpeggio
|
|
(package
|
|
(name "python-arpeggio")
|
|
(version "1.9.2")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "Arpeggio" version))
|
|
(sha256
|
|
(base32
|
|
"0aq2pmhfyq7vhbhyq8jgxiphncy1s79rmrsggz4p52m4cdhy134l"))))
|
|
(build-system python-build-system)
|
|
(native-inputs `(("python-pytest" ,python-pytest)
|
|
("python-pytest-runner" ,python-pytest-runner)))
|
|
(arguments
|
|
;; FIXME: Tests currently fail
|
|
`(#:tests? #f))
|
|
(home-page "https://github.com/textX/Arpeggio")
|
|
(synopsis "Packrat parser interpreter")
|
|
(description "Packrat parser interpreter")
|
|
(license license:expat)))
|
|
|
|
;; TODO: Candidate for upstream
|
|
(define-public python-parver
|
|
(package
|
|
(name "python-parver")
|
|
(version "0.3.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "parver" version))
|
|
(sha256
|
|
(base32
|
|
"0a6jp17c1ag6b9yp5xgy9wvznk3g0v2f8gpwkcwxpyc9ygk98zdm"))))
|
|
(build-system python-build-system)
|
|
(native-inputs `(("python-six" ,python-six)
|
|
("python-attrs" ,python-attrs)
|
|
("python-arpeggio" ,python-arpeggio)
|
|
("python-pytest" ,python-pytest)
|
|
("python-hypothesis" ,python-hypothesis)
|
|
("python-pretend" ,python-pretend)))
|
|
(home-page "https://github.com/RazerM/parver")
|
|
(synopsis "Parse and manipulate version numbers")
|
|
(description "Parse and manipulate version numbers.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-bs4
|
|
(package
|
|
(name "python-bs4")
|
|
(version "0.0.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "bs4" version))
|
|
(sha256
|
|
(base32
|
|
"0fnxhql23ql6q5n64xjknx3sc3fm4vgpbw0z99p0qp6cswgymv1n"))))
|
|
(build-system python-build-system)
|
|
(propagated-inputs (list python-beautifulsoup4))
|
|
(home-page "https://pypi.python.org/pypi/beautifulsoup4")
|
|
(synopsis "Dummy package for Beautiful Soup")
|
|
(description "Dummy package for Beautiful Soup")
|
|
(license #f)))
|
|
|
|
(define-public python-towncrier
|
|
(package
|
|
(name "python-towncrier")
|
|
(version "21.3.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "towncrier" version))
|
|
(sha256
|
|
(base32
|
|
"1znxavwsiy6czirjn0qi1p5yarnm7gg692nb0309hb6p4k4hpvbf"))))
|
|
(build-system python-build-system)
|
|
(propagated-inputs (list python-click python-click-default-group
|
|
python-incremental python-jinja2 python-toml))
|
|
(native-inputs (list python-packaging))
|
|
(home-page "https://github.com/hawkowl/towncrier")
|
|
(synopsis "Building newsfiles for your project.")
|
|
(description "Building newsfiles for your project.")
|
|
(license license:expat)))
|
|
|
|
;; TODO: Candidate for upstream
|
|
(define-public python-pipenv
|
|
(package
|
|
(name "python-pipenv")
|
|
(version "2022.1.8")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "pipenv" version))
|
|
(sha256
|
|
(base32
|
|
"1l4zabd1q5aggjhp4v906l8z8g6q37bcgyxqq8man8lv4ccp2kgq"))))
|
|
(build-system python-build-system)
|
|
(propagated-inputs (list python-certifi python-pip python-setuptools
|
|
python-virtualenv python-virtualenv-clone))
|
|
(native-inputs (list python-black
|
|
python-bs4
|
|
python-flake8
|
|
python-flaky
|
|
python-invoke
|
|
python-mock
|
|
python-parver
|
|
python-pytest
|
|
python-pytest-timeout
|
|
python-pytest-xdist
|
|
python-sphinx
|
|
python-towncrier
|
|
python-twine))
|
|
(arguments
|
|
;; FIXME: Tests fail with: "TypeError: don't know how to make test from: 2022.1.8"
|
|
'(#:tests? #f))
|
|
(home-page "https://github.com/pypa/pipenv")
|
|
(synopsis "Python Development Workflow for Humans.")
|
|
(description "Python Development Workflow for Humans.")
|
|
(license license:expat)))
|
|
|
|
;; TODO: Candidate for upstream; upstream has version 4.0.2;
|
|
(define-public python-ujson
|
|
(package
|
|
(name "python-ujson")
|
|
(version "2.0.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "ujson" version))
|
|
(sha256
|
|
(base32
|
|
"18z9gb9ggy1r464b9q1gqs078mqgrkj6dys5a47529rqk3yfybdx"))
|
|
(modules '((guix build utils)))
|
|
(snippet '(begin
|
|
(delete-file-recursively "deps") #t))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`(#:phases (modify-phases %standard-phases
|
|
(add-after 'unpack 'link-to-system-double-conversion
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
(let ((d-c (assoc-ref inputs "double-conversion")))
|
|
(substitute* "setup.py"
|
|
(("./deps/double-conversion/double-conversion\"")
|
|
(string-append d-c "/include/double-conversion\""))
|
|
(("-lstdc++" stdc)
|
|
(string-append "-L"
|
|
d-c
|
|
"/lib\","
|
|
" \"-ldouble-conversion\","
|
|
" \""
|
|
stdc))) #t)))
|
|
(replace 'check
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(add-installed-pythonpath inputs outputs)
|
|
(invoke "pytest"))))))
|
|
(native-inputs `(("double-conversion" ,double-conversion)
|
|
("python-setuptools-scm" ,python-setuptools-scm)
|
|
("python-pytest" ,python-pytest)))
|
|
(home-page "https://github.com/ultrajson/ultrajson")
|
|
(synopsis "Ultra fast JSON encoder and decoder for Python")
|
|
(description
|
|
"UltraJSON is an ultra fast JSON encoder and decoder written in pure C with
|
|
bindings for Python 3.")
|
|
(license license:bsd-3)))
|
|
|
|
;; python-prompt-toolkit-2 was removed upstream from guix's channel; added here as awscliv2 depends on it
|
|
|
|
;; awscliv2 depends on 'prompt-toolkit<3.0.29,>=3.0.24', however upstream 3.0.29 is packaged
|
|
(define-public python-prompt-toolkit-3.0.28
|
|
(package/inherit python-prompt-toolkit
|
|
(name "python-prompt-toolkit")
|
|
(version "3.0.28")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "prompt_toolkit" version))
|
|
(sha256 (base32
|
|
"0l0nnm9fvs8lklk2qq8mylb9jrlxvlqzpmqr4n7rdhl63rmx274z"))))))
|
|
|
|
(define-public awscliv2
|
|
(package
|
|
(inherit awscli)
|
|
(name "awscliv2")
|
|
(version "2.7.18")
|
|
(source (origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/aws/aws-cli")
|
|
(commit version)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"10p6433spz3lw5jwnw0kflp3fh629chiscp868slld6x2kp80gi4"))))
|
|
(native-inputs `(("python-distro" ,python-distro-1.5)
|
|
("python-docutils" ,python-docutils-0.15)
|
|
("python-s3transfer" ,python-s3transfer)
|
|
("python-awscrt" ,python-awscrt)
|
|
("python-prompt-toolkit" ,python-prompt-toolkit-3.0.28)
|
|
("python-ruamel.yaml" ,python-ruamel.yaml-0.15)
|
|
("python-cryptography" ,python-cryptography-3.3.2)
|
|
("python-botocore" ,python-botocore-2.0.0dev155)))
|
|
(propagated-inputs `(,@(fold alist-delete
|
|
(package-propagated-inputs awscli)
|
|
'("python-botocore"))))
|
|
(arguments
|
|
`(#:phases (modify-phases %standard-phases
|
|
(add-before 'build 'removed-vendored
|
|
(lambda* _
|
|
(for-each delete-file-recursively
|
|
'("awscli/botocore" "awscli/s3transfer"))
|
|
(symlink (string-append (assoc-ref %build-inputs
|
|
"python-botocore")
|
|
"/lib/python"
|
|
(python-version (assoc-ref
|
|
%build-inputs
|
|
"python"))
|
|
"/site-packages/botocore")
|
|
"awscli/botocore")
|
|
(symlink (string-append (assoc-ref %build-inputs
|
|
"python-s3transfer")
|
|
"/lib/python"
|
|
(python-version (assoc-ref
|
|
%build-inputs
|
|
"python"))
|
|
"/site-packages/s3transfer")
|
|
"awscli/s3transfer") #t))
|
|
(add-after 'install 'generate-completions
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
(python-version (python-version (assoc-ref inputs
|
|
"python")))
|
|
(data (string-append out "/lib/python"
|
|
python-version
|
|
"/site-packages/awscli/data"))
|
|
(bash-completion (string-append out
|
|
"/share/bash-completion/completions"))
|
|
(zsh-site-functions (string-append out
|
|
"/share/zsh/site-functions")))
|
|
(mkdir-p data)
|
|
(add-installed-pythonpath inputs outputs)
|
|
|
|
(invoke "python" "scripts/gen-ac-index"
|
|
"--index-location"
|
|
(string-append data "/ac.index"))
|
|
|
|
(mkdir-p bash-completion)
|
|
(call-with-output-file (string-append bash-completion
|
|
"/aws")
|
|
(lambda (port)
|
|
(format port
|
|
(string-join (list "complete" "-C"
|
|
(string-append out
|
|
"/bin/aws_completer")
|
|
"aws")))))
|
|
|
|
(mkdir-p zsh-site-functions)
|
|
(rename-file (string-append out
|
|
"/bin/aws_zsh_completer.sh")
|
|
(string-append zsh-site-functions "/_aws"))
|
|
#t))))
|
|
;; FIXME: Tests currently fail
|
|
#:tests? #f))
|
|
(synopsis "Command line client for AWS v2")
|
|
(description "AWS CLI v2 provides a unified command line interface to the
|
|
Amazon Web Services (AWS) API.")))
|
|
|
|
(define-public python-jmespath-0.10
|
|
(package
|
|
(inherit python-jmespath)
|
|
(version "0.10.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "jmespath" version))
|
|
(sha256
|
|
(base32
|
|
"1yflbqggg1z9ndw9ps771hy36d07j9l2wwbj66lljqb6p1khapdq"))))))
|
|
|
|
(define-public python-distro-1.5
|
|
(package
|
|
(inherit python-distro)
|
|
(version "1.5.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "distro" version))
|
|
(sha256
|
|
(base32
|
|
"14nz51cqlnxmgfqqilxyvjwwa5xfivdvlm0d0b1qzgcgwdm7an0f"))))))
|
|
|
|
(define-public python-ruamel.yaml-0.15
|
|
(package
|
|
(inherit python-ruamel.yaml)
|
|
(name "python-ruamel.yaml")
|
|
(version "0.15.100")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "ruamel.yaml" version))
|
|
(sha256
|
|
(base32
|
|
"1r5j9n2jdq48z0k4bdia1f7krn8f2x3y49i9ba9iks2rg83g6hlf"))))))
|
|
|
|
(define-public python-cryptography-3.3.2
|
|
(package
|
|
(inherit python-cryptography)
|
|
(name "python-cryptography")
|
|
(version "3.3.2")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "cryptography" version))
|
|
(sha256
|
|
(base32
|
|
"1vcvw4lkw1spiq322pm1256kail8nck6bbgpdxx3pqa905wd6q2s"))))))
|
|
|
|
(define-public python-awscrt
|
|
(package
|
|
(name "python-awscrt")
|
|
(version "0.12.4")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "awscrt" version))
|
|
(sha256
|
|
(base32
|
|
"1cmfkcv2zzirxsb989vx1hvna9nv24pghcvypl0zaxsjphv97mka"))))
|
|
(build-system python-build-system)
|
|
(native-inputs `(("cmake" ,cmake)))
|
|
(propagated-inputs `(("python-boto3" ,python-boto3)))
|
|
(home-page "https://github.com/awslabs/aws-crt-python")
|
|
(synopsis "Common runtime for AWS Python projects")
|
|
(description "Common runtime for AWS Python projects")
|
|
(license license:asl2.0)))
|
|
|
|
(define-public python-botocore-2.0.0dev155
|
|
(let ((commit "7083e5c204e139dc41f646e0ad85286b5e7c0c23")
|
|
(revision "2"))
|
|
(package
|
|
(inherit python-botocore)
|
|
(name "python-botocore")
|
|
(version "2.0.0dev155")
|
|
(source (origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/boto/botocore")
|
|
(commit commit)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"0lr98h80fgs6kplv52y92pcf1ba4041zq26wdfsfjkg84py9q83a"))))
|
|
(propagated-inputs `(("python-awscrt" ,python-awscrt)
|
|
("python-jmespath" ,python-jmespath-0.10)
|
|
,@(package-propagated-inputs python-awscrt))))))
|
|
|
|
(define-public python-htmlark
|
|
(package
|
|
(name "python-htmlark")
|
|
(version "1.0.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "HTMLArk" version))
|
|
(sha256
|
|
(base32
|
|
"0qg2vwnlqhdhxxkji3l6ls4ycsrjmhvjizsa7hw08373f69mj68v"))))
|
|
(build-system python-build-system)
|
|
(propagated-inputs `(("python-beautifulsoup4" ,python-beautifulsoup4)
|
|
("python-lxml" ,python-lxml)
|
|
("python-html5lib" ,python-html5lib)
|
|
("python-requests" ,python-requests)))
|
|
(home-page "https://github.com/BitLooter/htmlark")
|
|
(synopsis "Pack a webpage including support files into a single HTML file")
|
|
(description
|
|
"Pack a webpage including support files into a single HTML file.")
|
|
(license license:expat)))
|
|
|
|
(define-public python-ofxhome
|
|
(package
|
|
(name "python-ofxhome")
|
|
(version "0.3.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "ofxhome" version))
|
|
(sha256
|
|
(base32
|
|
"1rpyfqr2q9pnin47rjd4qapl8ngk1m9jx36iqckhdhr8s8gla445"))))
|
|
(build-system python-build-system)
|
|
(arguments
|
|
`( ;TODO: tests currently fail due to missing test file:
|
|
;; FileNotFoundError: [Errno 2] No such file or directory: '/tmp/guix-build-python-ofxhome-0.3.3.drv-0/ofxhome-0.3.3/ofxhome/tests/testfiles/jpmorgan.xml'
|
|
#:tests? #f))
|
|
(home-page "https://github.com/captin411/ofxhome")
|
|
(synopsis "ofxhome.com financial institution lookup REST client")
|
|
(description "ofxhome.com financial institution lookup REST client")
|
|
(license license:expat)))
|
|
|
|
;; Can be removed (only used by python-ofxclient, but is not actually needed
|
|
;; once upstream changes (https://issues.guix.gnu.org/54768) are merged
|
|
(define-public python-argparse
|
|
(package
|
|
(name "python-argparse")
|
|
(version "1.4.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "argparse" version))
|
|
(sha256
|
|
(base32
|
|
"1r6nznp64j68ih1k537wms7h57nvppq0szmwsaf99n71bfjqkc32"))))
|
|
(build-system python-build-system)
|
|
(home-page "https://github.com/ThomasWaldmann/argparse/")
|
|
(synopsis "Python command-line parsing library")
|
|
(description "Python command-line parsing library")
|
|
(license license:psfl)))
|
|
|
|
;; Sent upstream: https://issues.guix.gnu.org/54768
|
|
(define-public python-ofxclient
|
|
(package
|
|
(name "python-ofxclient")
|
|
(version "2.0.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "ofxclient" version))
|
|
(sha256
|
|
(base32
|
|
"0jdhqsbl34yn3n0x6mwsnl58c25v5lp6vr910c2hk7l74l5y7538"))))
|
|
(build-system python-build-system)
|
|
(propagated-inputs `(("python-beautifulsoup4" ,python-beautifulsoup4)
|
|
("python-keyring" ,python-keyring)
|
|
("python-lxml" ,python-lxml)
|
|
("python-ofxhome" ,python-ofxhome)
|
|
("python-ofxparse" ,python-ofxparse)
|
|
("python-argparse" ,python-argparse)))
|
|
(home-page "https://github.com/captin411/ofxclient")
|
|
(synopsis "OFX client for dowloading transactions from banks")
|
|
(description "OFX client for dowloading transactions from banks")
|
|
(license license:expat)))
|
|
|
|
;; Sent upstream: https://issues.guix.gnu.org/54768
|
|
(define-public ledger-autosync
|
|
(package
|
|
(name "ledger-autosync")
|
|
(version "1.0.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "ledger-autosync" version))
|
|
(sha256
|
|
(base32
|
|
"0i4942qbsphq72zx7kd3rgw25rpq4fg4vl43akkl189wzcrgwv6j"))))
|
|
(build-system python-build-system)
|
|
(inputs (list python-ofxclient python-ofxparse))
|
|
(home-page "https://gitlab.com/egh/ledger-autosync")
|
|
(synopsis "Automatically sync your bank's data with ledger")
|
|
(description "Automatically sync your bank's data with ledger")
|
|
(license license:gpl3)))
|
|
|
|
(define-public python-pyyaml-5
|
|
(package
|
|
(inherit python-pyyaml)
|
|
(version "5.4.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (pypi-uri "PyYAML" version))
|
|
(sha256
|
|
(base32
|
|
"0pm440pmpvgv5rbbnm8hk4qga5a292kvlm1bh3x2nwr8pb5p8xv0"))))))
|
|
|