rekahsoft-guix/rekahsoft-gnu/packages/python-xyz.scm
Collin J. Doering 24f336250c
python-xyz: Add python-ruamel.yaml.clib@0.2.6
This was taken directly from guix@a852a6d16868d7f28d416d5dbad3fabe31a46aed
2024-05-18 15:21:54 -04:00

596 lines
24 KiB
Scheme
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;; 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 commencement)
#:use-module (gnu packages glib)
#:use-module (gnu packages groff)
#:use-module (gnu packages libffi)
#: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 time)
#:use-module (gnu packages tls)
#:use-module (gnu packages xml)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix hg-download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#: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 python-ruamel.yaml-0.17
(package
(name "python-ruamel.yaml")
(version "0.17.21")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ruamel.yaml" version))
(sha256
(base32
"1bxp4dfkzzsndf9f8fspr4jc85nwf5243b616lm7a4pjlabycz4b"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)))
(arguments
`(;; TODO: Tests require packaging "ruamel.std.pathlib".
#:tests? #f
#:phases (modify-phases %standard-phases
;; sanity-check depends on python-ruamel.yaml
(delete 'sanity-check))))
(home-page "https://bitbucket.org/ruamel/yaml")
(synopsis "YAML 1.2 parser/emitter")
(description
"This package provides YAML parser/emitter that supports roundtrip
preservation of comments, seq/map flow style, and map key order. It
is a derivative of Kirill Simonovs PyYAML 3.11. It supports YAML 1.2
and has round-trip loaders and dumpers. It supports comments. Block
style and key ordering are kept, so you can diff the source.")
(license license:expat)))
(define-public python-ruamel.yaml.clib-0.2.6
(package
(name "python-ruamel.yaml.clib")
(version "0.2.6")
(source
(origin
;; pypi release code has cythonized code without corresponding source.
(method hg-fetch)
(uri (hg-reference
(url "http://hg.code.sf.net/p/ruamel-yaml-clib/code")
(changeset version)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"05m3y7pjfbaarqbbgw1k6gs6cnnmxnwadjipxvw1aaaqk3s236cs"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file "_ruamel_yaml.c")))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; This package is split from python-ruamel.yaml and
; depends on modules from it for the test suite.
#:phases
(modify-phases %standard-phases
(delete 'sanity-check) ; Depends on python-ruamel.yaml
(add-after 'unpack 'cythonize-code
(lambda _
(invoke "cython" "_ruamel_yaml.pyx"))))))
(native-inputs
`(("python-cython" ,python-cython)))
(home-page "https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree")
(synopsis "C version of reader, parser and emitter for ruamel.yaml")
(description
"This package provides a C version of the reader, parser and emitter for
@code{ruamel.yaml} derived from libyaml.")
(license license:expat)))
;; awscliv2 is a little bit of a packaging mess. They vendor multiple modified
;; forks of software also maintained by the same company. Namely:
;;
;; - botocore@2.0.0dev155 and some of its dependencies:
;; - python-six@1.10.0
;; - Fragments (exceptions only) were extracted from:
;; - requests
;; - urllib3
;; - s3transfer@0.5.1
;;
;; botocore@2.0.0dev155 is incompatable with the same upstream version. For example:
;; https://github.com/aws/aws-cli/blob/2.15.4/awscli/botocore/httpchecksum.py
;; does not exist upstream (see: https://github.com/boto/botocore/tree/7083e5c204e139dc41f646e0ad85286b5e7c0c23/botocore)
(define-public awscliv2
(package
(name "awscliv2")
(version "2.15.6")
(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
"02lq4zxnksx1ab8lyzbyl1lay884xbrxp77rbhn5mrfib9mqmvs0"))))
(native-inputs (list python-distro-1.5
python-docutils-0.15
python-awscrt-0.19.18
python-flit-core
python-prompt-toolkit-3.0.28
python-ruamel.yaml-0.17
python-ruamel.yaml.clib-0.2.6
python-cryptography
python-botocore-2.0.0dev155))
(inputs
(list groff
python-colorama-for-awscli
python-docutils-0.15
python-pyyaml
python-rsa))
(build-system pyproject-build-system)
(arguments
`(#:build-backend "backends.pep517"
#:phases (modify-phases %standard-phases
(add-after 'unpack 'use-cryptography-v41
(lambda _
(substitute* '("pyproject.toml")
(("cryptography>=3.3.2,<40.0.2") "cryptography>=3.3.2"))))
(add-after 'unpack 'fix-reference-to-groff
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "awscli/help.py"
(("if not self._exists_on_path\\('groff'\\):") "")
(("raise ExecutableNotFoundError\\('groff'\\)") "")
(("cmdline = \\['groff'")
(string-append "cmdline = ['"
(search-input-file inputs "bin/groff")
"'")))))
(add-after 'install 'install-completions
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bash-completion (string-append out
"/share/bash-completion/completions"))
(zsh-site-functions (string-append out
"/share/zsh/site-functions")))
(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))
(home-page "https://aws.amazon.com/cli/")
(synopsis "Command line client for AWS v2")
(description "AWS CLI provides a unified command line interface to the
Amazon Web Services (AWS) API.")
(license license:asl2.0)))
(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-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)
(arguments
'(#:tests? #f))
(native-inputs `(,cmake ,gcc-toolchain-10))
; (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.19.18
(package
(name "python-awscrt")
(version "0.19.18")
(source (origin
(method url-fetch)
(uri (pypi-uri "awscrt" version))
(sha256
(base32
"17f8j3n9zsywad48pnq1mz6r9i9y7jdcaliy7zm85q5yivynw2rm"))))
(build-system pyproject-build-system)
(arguments
'(#:tests? #f))
(native-inputs `(,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)
("python-urllib3" ,python-urllib3)
("python-dateutil" ,python-dateutil)
,@(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"))))))