;;; Copyright © 2020 Collin J. Doering ;;; ;;; 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 ;;; . (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-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages serialization) #: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-ordereddict (package (name "python-ordereddict") (version "1.1") (source (origin (method url-fetch) (uri (pypi-uri "ordereddict" version)) (sha256 (base32 "07qvy11nvgxpzarrni3wrww3vpc9yafgi2bch4j2vvvc42nb8d8w")))) (build-system python-build-system) (home-page "https://pypi.org/project/ordereddict") (synopsis "Drop-in substitute for Py2.7's new collections.OrderedDict for Python 2.4-2.6") (description "A drop-in substitute for Py2.7's new collections.OrderedDict that works in Python 2.4-2.6.") (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))) ;; TODO: Candidate for upstream (define-public python-pipenv (package (name "python-pipenv") (version "2018.11.26") (source (origin (method url-fetch) (uri (pypi-uri "pipenv" version)) (sha256 (base32 "0ip8zsrwmhrankrix0shig9g8q2knmr7b63sh7lqa8a5x03fcwx6")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest) ("python-arpeggio" ,python-arpeggio))) (propagated-inputs `(("python-certifi" ,python-certifi) ("python-invoke" ,python-invoke) ("python-parver" ,python-parver) ("python-ordereddict" ,python-ordereddict) ("python-requests" ,python-requests) ("python-virtualenv" ,python-virtualenv) ("python-virtualenv-clone" ,python-virtualenv-clone))) (arguments ;; FIXME: Tests currently fail due to an issue with python-typing and the ;; built in typing in pythong 3.7 '(#: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))) (define-public awscliv2 (package (inherit awscli) (name "awscliv2") (version "2.2.37") (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 "1z9gwf4rgn52h4l0ik258raswyh7i06f4k3d5616jcm6c3mh9jc9")))) (native-inputs `(("python-distro" ,python-distro-1.5))) (propagated-inputs `(,@(fold alist-delete (package-propagated-inputs awscli) '("python-s3transfer" "python-colorama" "python-botocore" "python-docutils")) ("python-awscrt" ,python-awscrt-0.11-awscliv2) ("python-prompt-toolkit" ,python-prompt-toolkit-2) ("python-ruamel.yaml" ,python-ruamel.yaml) ("python-s3transfer" ,python-s3transfer-0.4-awscliv2) ("python-cryptography" ,python-cryptography) ("python-docutils" ,python-docutils-0.15) ("python-colorama" ,python-colorama-0.4.3) ("python-botocore" ,python-botocore-2.0.0dev145))) (arguments `(#:phases (modify-phases %standard-phases (delete 'fix-reference-to-groff) (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) (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH"))) (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-awscrt (package (name "python-awscrt") (version "0.12.1") (source (origin (method url-fetch) (uri (pypi-uri "awscrt" version)) (sha256 (base32 "1z6hyazw5zz0xjx7wjfxi7i2blg4535a1zq70c356d46kqhbyhc0")))) (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-awscrt-0.11 (package (inherit python-awscrt) (version "0.11.24") (source (origin (method url-fetch) (uri (pypi-uri "awscrt" version)) (sha256 (base32 "1zv2043mxzmbb449n3rwirz1zl22npsyyw05ps2h1gq4ljy6iamq")))))) (define-public python-awscrt-0.11-awscliv2 (package (inherit python-awscrt-0.11) (version "0.11.24-awscliv2") ;; FIXME: Remove python-s3transfer from propagated inputs because awscliv2 ;; requires >=0.4.2,<0.5.0 but boto3 requires <0.4.0 (native-inputs `(,@(package-native-inputs python-awscrt-0.11) ("python-s3transfer" ,python-s3transfer) ("python-boto3" ,python-boto3))) (propagated-inputs `(,@(alist-delete "python-boto3" (package-propagated-inputs python-awscrt-0.11)))))) (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-s3transfer-0.4 (package (inherit python-s3transfer) (version "0.4.2") (source (origin (method url-fetch) (uri (pypi-uri "s3transfer" version)) (sha256 (base32 "1cp169vz9rvng7dwbn33fgdbl3b014zpsdqsnfxxw7jm2r5jy0nb")))))) (define-public python-s3transfer-0.4-awscliv2 (package (inherit python-s3transfer-0.4) (version "0.4.2-awscliv2") (propagated-inputs `(,@(alist-delete "python-botocore" (package-propagated-inputs python-s3transfer-0.4)) ("python-botocore" ,python-botocore-2.0.0dev145) ("python-awscrt" ,python-awscrt-0.11-awscliv2))))) (define-public python-docutils-0.15 (package (inherit python-docutils) (version "0.15.2") (source (origin (method url-fetch) (uri (pypi-uri "docutils" version)) (sha256 (base32 "168s5v7bff5ar9jspr6wn823q1sbn0jhnbp9clk41nl8j09fmbm2")))) (arguments `(,@(package-arguments python-docutils) ;; TODO: fixme #:tests? #f)))) (define-public python-colorama-0.4.3 (package (inherit python-colorama) (version "0.4.3") (source (origin (method url-fetch) (uri (pypi-uri "colorama" version)) (sha256 (base32 "189n8hpijy14jfan4ha9f5n06mnl33cxz7ay92wjqgkr639s0vg9")))))) (define-public python-botocore-2.0.0dev145 (let ((commit "981292a6fe9826c0675ae61c025dd93039e30aa6") (revision "1")) (package (inherit python-botocore) (name "python-botocore") (version "2.0.0dev145") (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 "161blyxa7cg3k7f9hk6bs8hdmchg6gd1wjn1gnw21sxpch5b3wzi")))))))