diff options
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r-- | gnu/packages/python-xyz.scm | 678 |
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))) |