summaryrefslogtreecommitdiff
path: root/gnu/packages/python-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r--gnu/packages/python-xyz.scm678
1 files changed, 619 insertions, 59 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2f93e0bda5..86b1cdc2b1 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -42,7 +42,6 @@
;;; Copyright © 2017, 2020, 2021 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
;;; Copyright © 2017, 2019, 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2018 Ethan R. Jones <ethanrjones97@gmail.com
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
@@ -72,9 +71,8 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 sirgazil <sirgazil@zoho.com>
;;; Copyright © 2020 Sebastian Schott <sschott@mailbox.org>
-;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
-;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
;;; Copyright © 2020, 2021 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com>
;;; Copyright © 2020 Matthew James Kraai <kraai@ftbfs.org>
@@ -91,7 +89,7 @@
;;; Copyright © 2020, 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2020 Diego N. Barbato <dnbarbato@posteo.de>
-;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2019 Kristian Trandem <kristian@devup.no>
;;; Copyright © 2020, 2021 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
@@ -108,6 +106,8 @@
;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
+;;; Copyright © 2021 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
+;;; Copyright © 2021 Pradana Aumars <paumars@courrier.dev>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -180,6 +180,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
@@ -3410,16 +3411,7 @@ compare, diff, and patch JSON and JSON-like structures in Python.")
(synopsis "Implementation of JSON Schema for Python")
(description
"Jsonschema is an implementation of JSON Schema for Python.")
- (license license:expat)
- (properties `((python2-variant . ,(delay python2-jsonschema))))))
-
-(define-public python2-jsonschema
- (let ((jsonschema (package-with-python2
- (strip-python2-variant python-jsonschema))))
- (package/inherit jsonschema
- (propagated-inputs
- `(("python2-functools32" ,python2-functools32)
- ,@(package-propagated-inputs jsonschema))))))
+ (license license:expat)))
(define-public python-schema
(package
@@ -5385,7 +5377,7 @@ readable format.")
("texlive" ,(texlive-union (list texlive-fonts-cm-super
texlive-fonts-ec
texlive-generic-ifxetex
- texlive-generic-pdftex
+ texlive-pdftex
texlive-amsfonts/patched
texlive-latex-capt-of
texlive-latex-cmap
@@ -5528,6 +5520,108 @@ algorithm. Patiencediff provides a good balance of performance, nice output for
humans, and implementation simplicity.")
(license license:gpl2)))
+(define-public python-wmctrl
+ (package
+ (name "python-wmctrl")
+ (version "0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "wmctrl" version))
+ (sha256
+ (base32
+ "1q0l1sqnj5wma87k3dsgmsyph464syjc6fl8qcpa41nan1rgzjv6"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((wmctrl (assoc-ref inputs "wmctrl")))
+ (substitute* "wmctrl.py"
+ (("'wmctrl")
+ (string-append "'" wmctrl "/bin/wmctrl")))))))))
+ (inputs `(("wmctrl" ,wmctrl)))
+ (home-page "https://github.com/antocuni/wmctrl")
+ (synopsis "Tool to programmatically control Xorg windows")
+ (description "This package provides a library for programmatically
+controlling Xorg windows using Python. The library relies on the
+@command{wmctrl} to do so.")
+ (license license:expat)))
+
+(define-public python-fancycompleter
+ (package
+ (name "python-fancycompleter")
+ (version "0.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "fancycompleter" version))
+ (sha256
+ (base32 "0wkj4h01pxa8prv59zl09a0i3w26k835bfpjgvyvsai4mswgxq09"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'fix-setup.py
+ (lambda _
+ (substitute* "setup.py"
+ ((".*setupmeta.*")
+ "")
+ (("versioning=.*")
+ (string-append "version='" ,version "',"))
+ ((".*pyrepl.*") ;broken on Python 3
+ "")))))))
+ (home-page "https://github.com/pdbpp/fancycompleter")
+ (synopsis "TAB completion library for Python")
+ (description "@code{fancycompleter} is a module that adds TAB completion
+to the interactive prompt. It is an extension of the @code{rlcompleter}
+module from the standard Python library.")
+ (license license:bsd-3)))
+
+(define-public python-pdbpp
+ (package
+ (name "python-pdbpp")
+ (version "0.10.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pdbpp" version))
+ (sha256
+ (base32
+ "1xb9yvi30rb1cdpvfdk2kg79vh3anvkz91r8bwvfp3iqv97kzr6r"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest"
+ "-k"
+ (string-append
+ ;; These tests seem to require a real TTY.
+ "not interaction_restores_previous_sigint_handler "
+ "and not python_m_pdb_uses_pdbpp"))))))))
+ (propagated-inputs
+ `(("python-fancycompleter" ,python-fancycompleter)
+ ("python-pygments" ,python-pygments)
+ ("python-wmctrl" ,python-wmctrl)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (home-page "https://github.com/pdbpp/pdbpp")
+ (synopsis "Drop-in replacement for pdb")
+ (description "Pdb++ is a drop-in replacement for @code{pdb}. It
+includes the following improvements compared to @code{pdb}:
+@itemize
+@item auto-completion
+@item syntax highlighting of code listings
+@item sticky mode
+@item new commands to be used from the interactive (Pdb++) prompt
+@item smart command parsing
+@item additional convenience functions in the @code{pdb} module.
+@end itemize")
+ (license license:bsd-3)))
+
(define-public python-pdftotext
(package
(name "python-pdftotext")
@@ -5546,6 +5640,83 @@ humans, and implementation simplicity.")
(description "Pdftotext is a Python library of PDF text extraction.")
(license license:expat)))
+(define-public python-pluginbase
+ (package
+ (name "python-pluginbase")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pluginbase" version))
+ (sha256
+ (base32
+ "11z2vvbp13828y0x3w39f29p9r9xcix7h7c4fff2w8yfiylk6v7z"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "test")))))))
+ (native-inputs `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/mitsuhiko/pluginbase")
+ (synopsis "Simple but flexible plugin system for Python")
+ (description "PluginBase is a library useful in the development of
+flexible plugin systems in Python.")
+ (license license:bsd-3)))
+
+(define-public python-node-semver
+ (package
+ (name "python-node-semver")
+ (version "0.8.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "node-semver" version))
+ (sha256
+ (base32
+ "000ypfns5x72b41w5f9pk6k3jnr35scliqfbvmilyvv0178005i8"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/podhmo/python-node-semver")
+ (synopsis "Python port of node-semver")
+ (description "This module provides a Python version of node-semver, a
+semantic version parser for Node.js.")
+ (license license:expat)))
+
+(define-public python-patch-ng
+ (package
+ (name "python-patch-ng")
+ (version "1.17.4")
+ (source
+ (origin
+ (method git-fetch) ;no tests in PyPI archive
+ (uri (git-reference
+ (url "https://github.com/conan-io/python-patch-ng")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0qxn4ss2s54qy87xrpcybz26kp2fwlaq41x4k9jcmp6d7p0w569m"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "tests/run_tests.py" "-v")))))))
+ (home-page "https://github.com/conan-io/python-patch-ng")
+ (synopsis "Python library to parse and apply unified diffs")
+ (description "Patch NG (New Generation) is a command and Python library to
+parse and apply unified diffs. It has features such as:
+@itemize
+@item automatic correction of common patch formatting corruption
+@item patch format detection (SVN, Hg, Git)
+@item nice diffstat histogram.
+@end itemize")
+ (license license:expat)))
+
(define-public python-pyparsing
(package
(name "python-pyparsing")
@@ -5725,6 +5896,43 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
(define-public python2-colorspacious
(package-with-python2 python-colorspacious))
+(define-public python-proto-matcher
+ (package
+ (name "python-proto-matcher")
+ (version "0.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "proto_matcher" version))
+ (sha256
+ (base32 "1644x0hrl398ji3281n44ymfgc3cspzfagjckhqjn4nja5nlikxg"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-protobuf" ,python-protobuf)
+ ("python-pyhamcrest" ,python-pyhamcrest)))
+ (home-page "https://github.com/dayfine/proto-matcher")
+ (synopsis "PyHamcrest test matchers for protocol buffers")
+ (description "This package provides the following PyHamcrest test
+matchers, that enable matching a protocol buffer message:
+@table @code
+@item equals_proto
+Test the argument equals the given protobuf message.
+@item approximately
+Test the argument equals the given protobuf message, while comparing any float
+field using approximation.
+@item ignoring_field_paths
+Test the argument equals the given protobuf message, while ignoring those
+fields specified in the field paths.
+@item ignoring_repeated_field_ordering
+Test the argument equals the given protobuf message, ignoring the ordering of
+any repeated field.
+@item partially
+Test the argument partially equals the given protobuf message, i.e. if a field
+is in the argument but not in the expected message, it's ignored in the
+comparison.
+@end table")
+ (license license:asl2.0)))
+
(define-public python-matplotlib
(package
(name "python-matplotlib")
@@ -5928,7 +6136,7 @@ toolkits.")
texlive-latex-type1cm
texlive-latex-ucs
- texlive-generic-pdftex
+ texlive-pdftex
texlive-fonts-ec
texlive-fonts-adobe-times
@@ -6438,13 +6646,13 @@ the OleFileIO module from PIL, the Python Image Library.")
(define-public python-pikepdf
(package
(name "python-pikepdf")
- (version "3.0.0")
+ (version "2.16.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pikepdf" version))
(sha256
- (base32 "0hw88971b1462c0f5fy7wb8iv4gjkpl314g6fnlsy8hb4dz965rw"))))
+ (base32 "1phdpi9cm2pbvgcxqvwr8ck327sxhdw4dnxmzhrbf7hzydmgykg2"))))
(build-system python-build-system)
(arguments
`(#:tests? #false)) ;require python-xmp-toolkit
@@ -7097,13 +7305,13 @@ PNG, PostScript, PDF, and SVG file output.")
(define-public python-decorator
(package
(name "python-decorator")
- (version "4.3.0")
+ (version "5.0.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "decorator" version))
(sha256
- (base32 "0308djallnh00v112y5b7nadl657ysmkp6vc8xn51d6yzc9zm7n3"))))
+ (base32 "1mcy64hllgm938v8k1x2a4g0q9swsnrfnsvhz59kr28a6ajgpv3j"))))
(build-system python-build-system)
(home-page "https://pypi.org/project/decorator/")
(synopsis "Python module to simplify usage of decorators")
@@ -8263,7 +8471,7 @@ computing.")
("texlive" ,(texlive-union (list texlive-amsfonts/patched
texlive-fonts-ec
texlive-generic-ifxetex
- texlive-generic-pdftex
+ texlive-pdftex
texlive-latex-capt-of
texlive-latex-cmap
texlive-latex-environ
@@ -9313,6 +9521,28 @@ PEP 8.")
(define-public python2-pep8
(package-with-python2 python-pep8))
+(define-public python-pep8-naming
+ (package
+ (name "python-pep8-naming")
+ (version "0.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pep8-naming" version))
+ (sha256
+ (base32
+ "04kyh9hkpyc8jzj16d1kkk29b5n8miqdvbs0zm035n1z5z5kx6hz"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-flake8" ,python-flake8)
+ ("python-flake8-polyfill" ,python-flake8-polyfill)))
+ (home-page "https://github.com/PyCQA/pep8-naming")
+ (synopsis "Check PEP-8 naming conventions")
+ (description
+ "This package provides the @code{pep8-naming} Python module, a
+plugin for flake8 to check PEP-8 naming conventions.")
+ (license license:expat)))
+
(define-public python-pep517
(package
(inherit python-pep517-bootstrap)
@@ -9684,6 +9914,27 @@ lints.")
(description "This package provides a Flake8 lint for quotes.")
(license license:expat)))
+(define-public python-flake8-todo
+ (package
+ (name "python-flake8-todo")
+ (version "0.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "flake8-todo" version))
+ (sha256
+ (base32
+ "05arm0sch3r8248035kilmf01z0mxsahw6vpbbz0d343zy8m8k3f"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pycodestyle" ,python-pycodestyle)))
+ (home-page "https://github.com/schlamar/flake8-todo")
+ (synopsis "TODO notes checker, plugin for flake8")
+ (description
+ "This package provides the @code{flake8-todo} Python module, a
+TODO notes checker plugin for flake8.")
+ (license license:expat)))
+
(define-public python-autoflake
(package
(name "python-autoflake")
@@ -10366,6 +10617,37 @@ Unicode-aware. It is not intended as an end-user tool.")
(define-public python2-xlrd
(package-with-python2 python-xlrd))
+(define-public python-xlwt
+ (package
+ (name "python-xlwt")
+ (version "1.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "xlwt" version))
+ (sha256
+ (base32 "123c2pdamshkq75wwvck8fq0cjq1843xd3x9qaiz2a4vg9qi56f5"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "PYTHONPATH"
+ (string-append (getcwd) "/build/lib:"
+ (getenv "PYTHONPATH")))
+ (invoke "nosetests" "-v")))))))
+ (native-inputs
+ `(("nose" ,python-nose)))
+ (home-page "http://www.python-excel.org/")
+ (synopsis "Library for creating spreadsheet Excel files")
+ (description "@code{xlwt} is a library for writing data and formatting
+information to older Excel files (i.e. .xls). The package itself is pure
+Python with no dependencies on modules or packages outside the standard Python
+distribution. It is not intended as an end-user tool.")
+ (license license:bsd-3)))
+
(define-public python-immutables
(package
(name "python-immutables")
@@ -11786,6 +12068,27 @@ automatically detect a wide range of file encodings.")
(define-public python2-chardet
(package-with-python2 python-chardet))
+(define-public python-charset-normalizer
+ (package
+ (name "python-charset-normalizer")
+ (version "2.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "charset-normalizer" version))
+ (sha256
+ (base32 "0rr3iv2xw4rz5ijnfqk229fw85cq6p6rhqqsilm0ldzncblfg63h"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/ousret/charset_normalizer")
+ (synopsis "Universal Charset Detector, alternative to Chardet")
+ (description "This library helps you read text from an unknown charset
+encoding. Motivated by @code{chardet}, it tries to resolve the issue by
+taking a new approach. All IANA character set names for which the Python core
+library provides codecs are supported.")
+ (license license:expat)))
+
(define-public python-docopt
(package
(name "python-docopt")
@@ -13321,9 +13624,6 @@ also includes support for using Thrift RPC over AMQP in Twisted
applications.")
(license license:asl2.0)))
-(define-public python2-txamqp
- (package-with-python2 python-txamqp))
-
(define-public python-kombu
(package
(name "python-kombu")
@@ -14369,6 +14669,37 @@ multiple processes (imagine multiprocessing, billiard, futures, celery etc).
(define-public python2-tblib
(package-with-python2 python-tblib))
+(define-public python-tftpy
+ (package
+ (name "python-tftpy")
+ (version "0.8.2")
+ (source
+ (origin
+ (method git-fetch) ;no tests in PyPI archive
+ (uri (git-reference
+ (url "https://github.com/msoulier/tftpy")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1gl04ps8h8r7av3h0zbm8gwmkqs9rkk5vf7n8mv2bzrkwvy9hacc"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ ;; The default DEBUG logging level is way too verbose.
+ (substitute* "t/test.py"
+ (("logging\\.DEBUG")
+ "logging.INFO"))
+ (invoke "python" "-m" "unittest" "t/test.py")))))))
+ (home-page "http://tftpy.sourceforge.net/")
+ (synopsis "Python trivial file transfer protocol (TFTP) library")
+ (description "TFTPy is a trivial file transfer protocol (TFTP) Python
+library. It can be used to act both as a TFTP client or TFTP server.")
+ (license license:expat)))
+
(define-public python-greenlet
(package
(name "python-greenlet")
@@ -14589,9 +14920,6 @@ format.")
focus on event-based network programming and multiprotocol integration.")
(license license:expat)))
-(define-public python2-twisted
- (package-with-python2 python-twisted))
-
(define-public python-pika
(package
(name "python-pika")
@@ -15998,13 +16326,13 @@ Python to manipulate OpenDocument 1.2 files.")
(define-public python-natsort
(package
(name "python-natsort")
- (version "7.0.1")
+ (version "7.1.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "natsort" version))
(sha256
(base32
- "1ksqfai72dbcfbwx43pxl658j59mx2rvqypjy1fk0ax2qd6lccx6"))))
+ "00y49bfsi7rrsd1s42gc2w95a6arl9ipdsx2493hr0v54fj07ih0"))))
(build-system python-build-system)
(arguments
`(#:modules ((guix build utils)
@@ -16014,9 +16342,6 @@ Python to manipulate OpenDocument 1.2 files.")
(ice-9 ftw))
#:phases
(modify-phases %standard-phases
- (add-before 'check 'set-cachedir
- ;; Tests require write access to $HOME by default
- (lambda _ (setenv "PYTHON_EGG_CACHE" "/tmp") #t))
(replace 'check
(lambda _
(let ((cwd (getcwd)))
@@ -16046,23 +16371,7 @@ on a list such as @code{[@code{a20}, @code{a9}, @code{a1}, @code{a4},
identifies numbers and sorts them separately from strings. It can also sort
version numbers, real numbers, mixed types and more, and comes with a shell
command @command{natsort} that exposes this functionality in the command line.")
- (license license:expat)
- (properties `((python2-variant . ,(delay python2-natsort))))))
-
-;; Natsort 6.x are the last versions with support for Python 2.
-(define-public python2-natsort
- (let ((base (package-with-python2 (strip-python2-variant python-natsort))))
- (package (inherit base)
- (version "6.2.1")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "natsort" version))
- (sha256
- (base32
- "1mc9hbh6fv76xyz13frm7dgi05cf74f9j5wvcyjiy5234gylz565"))))
- (native-inputs
- `(("python2-pathlib" ,python2-pathlib)
- ,@(package-native-inputs base))))))
+ (license license:expat)))
(define-public glances
(package
@@ -16140,21 +16449,19 @@ to Python.")
(define-public python-graphql-relay
(package
(name "python-graphql-relay")
- (version "0.4.5")
+ (version "3.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "graphql-relay" version))
(sha256
(base32
- "1nv5dxcj59zv31qvl8bd142njmxcmymny2dz3br1l2cpbljbf5i7"))))
+ "1d70vwam9gjhx7fqzsa03x7lc6ivcqki5r9pk8m7rslmb7pagmbh"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; The tests are not distributed
(propagated-inputs
- `(("python-graphql-core" ,python-graphql-core)
- ("python-promise" ,python-promise)
- ("python-six" ,python-six)))
+ `(("python-graphql-core" ,python-graphql-core)))
(home-page "https://github.com/graphql-python/graphql-relay-py")
(synopsis "Relay implementation for Python")
(description
@@ -17963,14 +18270,14 @@ information.")
(define-public python-relatorio
(package
(name "python-relatorio")
- (version "0.8.0")
+ (version "0.10.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "relatorio" version))
(sha256
(base32
- "1na6hlhz1awi1hbjg1gyclq0khz42iz90wvdjw7mmj655788bpxx"))))
+ "09nhrz80dfm60nssbvjgz4czzy4yzfa8gxczcdlzbgcnnvm914vb"))))
(build-system python-build-system)
(propagated-inputs
`(("python-lxml" ,python-lxml)
@@ -18659,9 +18966,6 @@ from your Flask project. It is a fork of Flask-Swagger.")
validating Swagger API specifications.")
(license license:asl2.0)))
-(define-public python2-swagger-spec-validator
- (package-with-python2 python-swagger-spec-validator))
-
(define-public python-apache-libcloud
(package
(name "python-apache-libcloud")
@@ -22433,6 +22737,28 @@ processes may share the same data.")
format.")
(license license:expat)))
+(define-public python-crontab
+ (package
+ (name "python-crontab")
+ (version "2.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri name version))
+ (sha256
+ (base32 "0cccrqc10r8781ba81x8r2frs3pl2m4hkm599k5358ak0xr7xgjb"))))
+ (build-system python-build-system)
+ (arguments
+ ;; Comptability tests fail so they are disabled.
+ `(#:tests? #f))
+ (inputs
+ `(("python-dateutil" ,python-dateutil)))
+ (home-page "https://gitlab.com/doctormo/python-crontab/")
+ (synopsis "Module for reading and writing crontab files")
+ (description "This Python module can read, write crontab files, and
+access the system cron automatically and simply using a direct API.")
+ (license license:lgpl3+)))
+
(define-public python-pylzma
(package
(name "python-pylzma")
@@ -26556,3 +26882,237 @@ files and directories and adds a datestamp in standard ISO 8601+ format
YYYY-MM-DD at the beginning of the file or directory name.")
(home-page "https://github.com/novoid/date2name")
(license license:gpl3+))))
+
+(define-public python-braintree
+ (package
+ (name "python-braintree")
+ (version "4.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "braintree" version))
+ (sha256
+ (base32 "19kli85q18p80nsn8fm4ql6axpr7bllfqg5chv2ywhr8zr8bssll"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-requests" ,python-requests)))
+ (home-page
+ "https://developers.braintreepayments.com/python/sdk/server/overview")
+ (synopsis "Braintree Python Library")
+ (description "The Braintree Python SDK provides integration access to the
+Braintree Gateway. Braintree is a US-based payments service provider.")
+ (license license:expat)))
+
+(define-public python-markuppy
+ (package
+ (name "python-markuppy")
+ (version "1.14")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "MarkupPy" version))
+ (sha256
+ (base32 "0pqdmpxbr8iq22b4css2gz5z6s01ddpzyj25x27kgbs2lp0f5phs"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/tylerbakke/MarkupPy")
+ (synopsis "A pythonic HTML/XML generator")
+ (description "This Python module attempts to make it easier to generate
+HTML/XML from a Python program in an intuitive, lightweight, customizable and
+pythonic way.")
+ (license license:expat)))
+
+(define-public python-tablib
+ (package
+ (name "python-tablib")
+ (version "3.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tablib" version))
+ (sha256
+ (base32 "03f1z6jq6rf67gwhbm9ma4rydm8h447a5nh5lcs5l8jg8l4aqg7q"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "PYTHONPATH"
+ (string-append (getcwd) "/build/lib:"
+ (getenv "PYTHONPATH")))
+ (invoke "pytest")))))))
+ (native-inputs
+ `(("python-pandas" ,python-pandas) ;; required for test-suite
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (propagated-inputs
+ `(("python-markuppy" ,python-markuppy)
+ ("python-odfpy" ,python-odfpy)
+ ("python-openpyxl" ,python-openpyxl)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-tabulate" ,python-tabulate)
+ ("python-xlrd" ,python-xlrd)
+ ("python-xlwt" ,python-xlwt)))
+ (home-page "https://tablib.readthedocs.io")
+ (synopsis "Format agnostic tabular data library")
+ (description "@code{tablib} is a format-agnostic tabular dataset library,
+written in Python. Supported output formats are Excel (Sets + Books),
+JSON (Sets + Books), YAML (Sets + Books), HTML (Sets), Jira (Sets),
+TSV (Sets), ODS (Sets), CSV (Sets), and DBF (Sets).
+
+@code{tablib} also supports Pandas DataFrames (Sets). Anyhow, since pandas is
+quite huge, this Guix package doesn't depend on pandas. In case, just also
+install @code{python-pandas}.")
+ (license license:expat)))
+
+(define-public python-csb43
+ (package
+ (name "python-csb43")
+ (version "0.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "csb43" version))
+ (sha256
+ (base32 "0r0csl9npncnkfafg3rg6xr38d1qr0sxvq7wn7mg9bq41hvvh1si"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-lxml" ,python-lxml)))
+ (propagated-inputs
+ `(("python-pycountry" ,python-pycountry)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-tablib" ,python-tablib)))
+ (home-page "https://bitbucket.org/wmj/csb43")
+ (synopsis "Tools for converting from the Spanish banks' format CSB norm
+43 (CSB43)")
+ (description "This package provides tools to convert files in the format
+used by multiple Spanish banks (standard 43 of the Spanish Banking Council
+[CSB43] / Spanish Banking Association [AEB43]) to other formats.
+
+Supported output formats are: OFX, HomeBank CSV, HTML, JSON, ODS (OpenDocument
+spreadsheet), CSV, TSV, XLS, XLSX (Microsoft Excel spreadsheet), and YAML.")
+ (license license:lgpl3)))
+
+(define-public python-febelfin-coda
+ (package
+ (name "python-febelfin-coda")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "febelfin-coda" version))
+ (sha256
+ (base32 "10nf4hdwldqgdmh4g613vx55sbsw1x1yzpvs3crwlggbp75fjjfi"))))
+ (build-system python-build-system)
+ (home-page "https://coda.b2ck.com/")
+ (synopsis "A module to parse Belgian CODA files")
+ (description "This package provides a module to parse Coded statement of
+account (CODA) files as defined be the Belgian Febelfin bank standard.")
+ (license license:bsd-3)))
+
+(define-public python-ofxparse
+ (package
+ (name "python-ofxparse")
+ (version "0.21")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ofxparse" version))
+ (sha256
+ (base32 "19y4sp5l9jqiqzzlbqdfiab42qx7d84n4xm4s7jfq397666vcyh5"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "nosetests" "-v")))))))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (propagated-inputs
+ `(("python-beautifulsoup4" ,python-beautifulsoup4)
+ ("python-lxml" ,python-lxml)
+ ("python-six" ,python-six)))
+ (home-page "http://sites.google.com/site/ofxparse")
+ (synopsis "Tools for working with the OFX (Open Financial Exchange) file
+format")
+ (description "@code{ofxparse} is a parser for Open Financial
+Exchange (.ofx) format files. OFX files are available from almost any online
+banking site, so they work well if you want to pull together your finances
+from multiple sources. Online trading accounts also often provide account
+statements in OFX files.")
+ (license license:expat)))
+
+(define-public python-stripe
+ (package
+ (name "python-stripe")
+ (version "2.60.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "stripe" version))
+ (sha256
+ (base32 "0258lzh4qikhinfggnlfh5aklcvg7lrvl8giqrh0yf0l61wvfrl9"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:tests? #f)) ;; tests require network
+ (propagated-inputs
+ `(("python-requests" ,python-requests)))
+ (home-page "https://github.com/stripe/stripe-python")
+ (synopsis "Python bindings for the Stripe financial services' API")
+ (description "This package provides access to the Stripe financial
+services' API. It includes a pre-defined set of classes for API resources
+that initialize themselves dynamically from API responses which makes it
+compatible with a wide range of versions of the Stripe API.")
+ (license license:expat)))
+
+(define-public python-platformdirs
+ (package
+ (name "python-platformdirs")
+ (version "2.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "platformdirs" version))
+ (sha256
+ (base32 "07hq5qrp7pqj63iczg01wbf5ii6f0ncd0dq5mzkdhsslmg9slbb3"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-appdirs" ,python-appdirs)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-mock" ,python-pytest-mock)))
+ (home-page "https://github.com/platformdirs/platformdirs")
+ (synopsis "Determine the appropriate platform-specific directories")
+ (description "When writing applications, finding the right location to
+store user data and configuration varies per platform. Even for
+single-platform apps, there may by plenty of nuances in figuring out the right
+location. This small Python module determines the appropriate
+platform-specific directories, e.g. the ``user data dir''.")
+ (license license:expat)))
+
+(define-public python-box
+ (package
+ (name "python-box")
+ (version "5.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-box" version))
+ (sha256
+ (base32
+ "0jhrdif57khx2hsw1q6a9x42knwcvq8ijgqyq1jmll6y6ifyzm2f"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-msgpack" ,python-msgpack)
+ ("python-ruamel.yaml" ,python-ruamel.yaml)
+ ("python-toml" ,python-toml)))
+ (home-page "https://github.com/cdgriffith/Box")
+ (synopsis "Advanced Python dictionaries with dot notation access")
+ (description
+ "This package provides the @code{python-box} Python module.
+It implements advanced Python dictionaries with dot notation access.")
+ (license license:expat)))