;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015 Omar Radwan <toxemicsquire4@gmail.com>
;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2018, 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com>
;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2019 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
+;;; Copyright © 2020 Riku Viitanen <riku.viitanen@protonmail.com>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 sirgazil <sirgazil@zoho.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages dbm)
+ #:use-module (gnu packages enchant)
#:use-module (gnu packages file)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
(propagated-inputs `(("numpy" ,python-numpy)))
(inputs
`(("hdf4" ,hdf4)
- ("libjpeg" ,libjpeg)
+ ("libjpeg" ,libjpeg-turbo)
("zlib" ,zlib)))
(arguments
`(#:phases
(define-public python-h5py
(package
(name "python-h5py")
- (version "2.8.0")
+ (version "2.10.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "h5py" version))
(sha256
(base32
- "0mdr6wrq02ac93m1aqx9kad0ppfzmm4imlxqgyy1x4l7hmdcc9p6"))))
+ "0baipzv8n93m0dq0riyi8rfhzrjrfrfh8zqhszzp1j2xjac2fhc4"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no test target
`(("python-six" ,python-six)
("python-numpy" ,python-numpy)))
(inputs
- `(("hdf5" ,hdf5)))
+ `(("hdf5" ,hdf5-1.10)))
(native-inputs
`(("python-cython" ,python-cython)
- ("python-pkgconfig" ,python-pkgconfig)))
- (home-page "http://www.h5py.org/")
+ ("python-pkgconfig" ,python-pkgconfig)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://www.h5py.org/")
(synopsis "Read and write HDF5 files from Python")
(description
"The h5py package provides both a high- and low-level interface to the
(define-public python2-lockfile
(package-with-python2 python-lockfile))
+(define-public python-filelock
+ (package
+ (name "python-filelock")
+ (version "3.0.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "filelock" version))
+ (sha256
+ (base32
+ "0ngzlvb5j8gqs2nxlp2b0jhzii792h66wsn694qm8kqixr225n0q"))))
+ (build-system python-build-system)
+ (home-page
+ "https://github.com/benediktschmitt/py-filelock")
+ (synopsis "Platform independent file lock")
+ (description "@code{filelock} contains a single module implementing
+a platform independent file lock in Python, which provides a simple way of
+inter-process communication.")
+ (license license:unlicense)))
+
(define-public python-semantic-version
(package
(name "python-semantic-version")
;; One could bootstrap with an internal untested setuptools.
(arguments
`(#:tests? #f))
- (home-page "https://pypi.python.org/pypi/setuptools")
+ (home-page "https://pypi.org/project/setuptools/")
(synopsis
"Library designed to facilitate packaging Python projects")
(description
(define-public python-six
(package
(name "python-six")
- (version "1.12.0")
+ (version "1.14.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "six" version))
(sha256
(base32
- "0wxs1q74v07ssjywbbm7x6h5v9qx209ld2yfsif4060sxi0h2sni"))))
+ "02lw67hprv57hyg3cfy02y3ixjk3nzwc0dx3c4ynlvkfwkfdnsr3"))))
(build-system python-build-system)
(arguments
`(#:phases
(lambda _
(invoke "py.test" "-v"))))))
(native-inputs
- `(("python-py" ,python-py)
- ("python-pytest" ,python-pytest-bootstrap)))
- (home-page "https://pypi.python.org/pypi/six/")
+ `(("python-pytest" ,python-pytest-bootstrap)))
+ (home-page "https://pypi.org/project/six/")
(synopsis "Python 2 and 3 compatibility utilities")
(description
"Six is a Python 2 and 3 compatibility library. It provides utility
(arguments `(#:python ,python-2
#:tests? #f)) ; invalid command "test"
;; Currently no offical homepage.
- (home-page "https://pypi.python.org/pypi/dogtail/")
+ (home-page "https://pypi.org/project/dogtail/")
(synopsis "GUI test tool and automation framework written in Python")
(description
"Dogtail is a GUI test tool and automation framework written in Python.
(build-system python-build-system)
(arguments
`(#:python ,python-2))
- (home-page "http://pypi.python.org/pypi/enum/")
+ (home-page "https://pypi.org/project/enum/")
(synopsis "Robust enumerated type support in Python")
(description
"This provides a module for robust enumerations in Python. It has
(base32
"1cgm5ng2gcfrkrm3hc22brl6chdmv67b9zvva9sfs7gn7dwc9n4a"))))
(build-system python-build-system)
- (home-page "https://pypi.python.org/pypi/enum34")
+ (home-page "https://pypi.org/project/enum34/")
(synopsis "Backported Python 3.4 Enum")
(description
"Enum34 is the new Python stdlib enum module available in Python 3.4
(invoke "python" "bootstrap.py" "build/scons" "DEVELOPER=guix")
(chdir "build/scons")
#t)))))
- (home-page "http://scons.org/")
+ (home-page "https://scons.org/")
(synopsis "Software construction tool written in Python")
(description
"SCons is a software construction tool. Think of SCons as an improved,
(define-public python-py
(package
(name "python-py")
- (version "1.8.0")
+ (version "1.8.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "py" version))
(sha256
(base32
- "0lsy1gajva083pzc7csj1cvbmminb7b4l6a0prdzyb3fd829nqyw"))))
+ "1ajjazg3913n0sp3vjyva9c2qh5anx8ziryng935f89604a0h9sy"))))
(build-system python-build-system)
(arguments
;; FIXME: "ImportError: 'test' module incorrectly imported from
(build-system python-build-system)
(arguments
`(#:tests? #f))
- (home-page "http://docs.openstack.org/developer/pbr/")
+ (home-page "https://docs.openstack.org/pbr/latest/")
(synopsis "Minimal build of python-pbr used for bootstrapping")
(description
"Used only for bootstrapping python2-pbr, you should not need this.")
(define-public python2-jdcal
(package-with-python2 python-jdcal))
+(define-public python-jsondiff
+ (package
+ (name "python-jsondiff")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jsondiff" version))
+ (sha256
+ (base32
+ "00v3689175aqzdscrxpffm712ylp8jvcpqdg51ca22ni6721p51l"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-nose" ,python-nose)
+ ("python-nose-random" ,python-nose-random)))
+ (home-page
+ "https://github.com/fzumstein/jsondiff")
+ (synopsis "Compare JSON and JSON-like structures in Python")
+ (description "@code{jsondiff} is a Python library which lets you
+compare, diff, and patch JSON and JSON-like structures in Python.")
+ (license license:expat)))
+
(define-public python-jsonschema
(package
(name "python-jsonschema")
(base32
"1s6cp2lv4m0f00hjckjz8p6m7d3n3v16jvg353llf5ia1iqsnsib"))))
(build-system python-build-system)
- (home-page "https://pypi.python.org/pypi/Unidecode")
+ (home-page "https://pypi.org/project/Unidecode/")
(synopsis "ASCII transliterations of Unicode text")
(description
"Unidecode provides ASCII transliterations of Unicode text. Unidecode is
(define-public python-pyyaml
(package
(name "python-pyyaml")
- (version "3.13")
+ (version "5.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "PyYAML" version))
(sha256
(base32
- "1gx603g484z46cb74j9rzr6sjlh2vndxayicvlyhxdz98lhhkwry"))))
+ "058nd4p8f25wwzy2aiwh18wcrdm6663cqbfdkgjp8y9cp7ampx79"))))
(build-system python-build-system)
(inputs
`(("libyaml" ,libyaml)))
- (home-page "http://pyyaml.org/wiki/PyYAML")
+ (home-page "https://pyyaml.org")
(synopsis "YAML parser and emitter for Python")
(description
"PyYAML is a YAML parser and emitter for Python. PyYAML features a
(define-public python-virtualenv
(package
(name "python-virtualenv")
- (version "16.1.0")
+ (version "20.0.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "virtualenv" version))
(sha256
(base32
- "0242cg3hdq3qdvx5flyrki8lpwlgwf5k45c21ks5049fv7ygm6gq"))))
+ "096r7g5cv85vxymg9iqbn5z749613snlvd6p3rf1nxnrd386j0qz"))))
(build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'disable-failing-test
- (lambda _
- ;; Disable failing test. See upstream bug report
- ;; https://github.com/pypa/virtualenv/issues/957
- (substitute* "tests/test_virtualenv.py"
- (("skipif.*") "skipif(True, reason=\"Guix\")\n"))
- #t)))))
(native-inputs
`(("python-mock" ,python-mock)
- ("python-pytest" ,python-pytest)))
+ ("python-pytest" ,python-pytest)
+ ;; NOTE: guix lint remarks that "python-setuptools should probably not
+ ;; be an input at all". However, removing the input makes the build error:
+ ;; File "setup.py", line 4, in <module>
+ ;; raise RuntimeError("setuptools >= 41 required to build")
+ ("python-setuptools" ,python-setuptools)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (propagated-inputs
+ `(("python-appdirs" ,python-appdirs)
+ ("python-distlib" ,python-distlib)
+ ("python-filelock" ,python-filelock)
+ ("python-six" ,python-six)
+ ("python-importlib-metadata" ,python-importlib-metadata)))
(home-page "https://virtualenv.pypa.io/")
(synopsis "Virtual Python environment builder")
(description
@end itemize")
(license license:asl2.0)))
+(define-public python-rstr
+ (package
+ (name "python-rstr")
+ (version "2.2.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "rstr" version))
+ (sha256
+ (base32
+ "197dw8mbq0pjjz1l6h1ksi62vgn7x55d373ch74y06744qiq5sjx"))))
+ (build-system python-build-system)
+ (home-page
+ "http://bitbucket.org/leapfrogdevelopment/rstr/overview")
+ (synopsis "Generate random strings in Python")
+ (description "This package provides a python module for generating
+random strings of various types. It could be useful for fuzz testing,
+generating dummy data, or other applications. It has no dependencies
+outside the standard library.")
+ (license license:bsd-3)))
+
(define-public python-scp
(package
(name "python-scp")
(define-public python-language-server
(package
(name "python-language-server")
- (version "0.31.6")
+ (version "0.31.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-language-server" version))
(sha256
(base32
- "0cqrffd5272p2hifa35rf1h1g6dss741jmjkwa43jninifmbz0df"))))
+ "0f8rljff4h2ay9m2n9ang7axai37nzd39zd7m6c90rci5wh8cmxh"))))
(build-system python-build-system)
(propagated-inputs
`(("python-pluggy" ,python-pluggy)
feature-set for programming Python effectively.")
(license license:expat)))
+(define-public python-pathspec
+ (package
+ (name "python-pathspec")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pathspec" version))
+ (sha256
+ (base32
+ "15lvs4awlg8xzl0l4gk9y53xx4yqmqvsv44pglv39m70y85afajn"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/cpburnz/python-path-specification")
+ (synopsis "Utility library for gitignore style pattern matching of file paths")
+ (description
+ "This package provides a utility library for gitignore style pattern
+matching of file paths.")
+ (license license:mpl2.0)))
+
(define-public python-black
(package
(name "python-black")
- (version "18.6b4")
+ (version "19.10b0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "black" version))
(sha256
(base32
- "0i4sfqgz6w15vd50kbhi7g7rifgqlf8yfr8y78rypd56q64qn592"))))
+ "0f8mr0yzj78q1dx7v6ggbgfir2wv0n5z2shfbbvfdq7910xbgvf2"))))
(build-system python-build-system)
(arguments
`(#:phases
(let ((python3 (which "python3")))
(substitute* '("tests/data/fmtonoff.py"
"tests/data/string_prefixes.py"
- "tests/data/function.py")
+ "tests/data/function.py"
+ "tests/data/python37.py")
(("#!/usr/bin/env python3(\\.[0-9]+)?" _ minor-version)
(string-append "#!" python3 (if (string? minor-version)
minor-version
- ""))))))))))
+ "")))))
+ #t))
+ (add-after 'unpack 'disable-broken-tests
+ (lambda _
+ ;; These tests are supposed to be skipped when the blackd
+ ;; dependencies are missing, but this doesn't quite work.
+ (substitute* "tests/test_black.py"
+ (("( *)class BlackDTestCase.*" match indent)
+ (string-append indent "@unittest.skip(\"no blackd deps\")\n"
+ indent "class BlackDTestCase(unittest.TestCase):\n"))
+ (("web.Application") "False")
+ (("@unittest_run_loop") ""))
+
+ ;; Patching the above file breaks the self test
+ (substitute* "tests/test_black.py"
+ (("( *)def test_self" match indent)
+ (string-append indent "@unittest.skip(\"guix\")\n" match)))
+ #t)))))
(propagated-inputs
`(("python-click" ,python-click)
("python-attrs" ,python-attrs)
("python-appdirs" ,python-appdirs)
- ("python-toml" ,python-toml)))
+ ("python-pathspec" ,python-pathspec)
+ ("python-regex" ,python-regex)
+ ("python-toml" ,python-toml)
+ ("python-typed-ast" ,python-typed-ast)))
+ (native-inputs
+ `(("python-setuptools-scm" ,python-setuptools-scm)))
(home-page "https://github.com/ambv/black")
(synopsis "The uncompromising code formatter")
(description "Black is the uncompromising Python code formatter.")
(base32
"1dpq0vb01p36jjwbhhd08ylvrnyvcc82yxx3mwjx6awrycjyw6j7"))))
(build-system python-build-system)
- (home-page "http://pythonhosted.org/blinker/")
+ (home-page "https://pythonhosted.org/blinker/")
(synopsis "Fast, simple object-to-object and broadcast signaling")
(description
"Blinker provides a fast dispatching system that allows any number of
(with-directory-excursion "/tmp"
(invoke "python" "-c"
"import numpy; numpy.test(verbose=2)")))))))
- (home-page "http://www.numpy.org/")
+ (home-page "https://numpy.org")
(synopsis "Fundamental package for scientific computing with Python")
(description "NumPy is the fundamental package for scientific computing
with Python. It contains among other things: a powerful N-dimensional array
(define-public python-pygit2
(package
(name "python-pygit2")
- (version "0.28.2")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pygit2" version))
(sha256
- (base32 "11kzj5mjkspvplnpdb6bj8dcj6rgmkk986k8hjcklyg5yaxkz32d"))))
+ (base32 "1hs0pqqzn1yjxqk86nq7p0lvsklwnlyi5xwyzr7d5nrs19dmsjbg"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; tests don't run correctly in our environment
(propagated-inputs
- `(("python-six" ,python-six)
+ `(("python-cached-property" ,python-cached-property)
("python-cffi" ,python-cffi)
- ("libgit2" ,libgit2)
- ("python-tox" ,python-tox)))
+ ("libgit2" ,libgit2)))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://github.com/libgit2/pygit2")
;; GPL2.0 only, with linking exception.
(license license:gpl2)))
-(define-public python2-pygit2
- (package-with-python2 python-pygit2))
-
(define-public python-pyparsing
(package
(name "python-pyparsing")
- (version "2.3.1")
+ (version "2.4.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyparsing" version))
(sha256
- (base32 "0yk6xl885b91dmlhlsap7x78hk2rdr879fln9anbq6k4ca42djb6"))))
+ (base32 "17wn5zlijc9m9zj26gy3f541y7smpj8rfhl51d025c2gm210b0sc"))))
(build-system python-build-system)
(outputs '("out" "doc"))
(arguments
`(("python-sphinx" ,python-sphinx)))
(native-inputs
`(("python-nose" ,python-nose)))
- (home-page "https://pypi.python.org/pypi/numpydoc")
+ (home-page "https://pypi.org/project/numpydoc/")
(synopsis
"Numpy's Sphinx extensions")
(description
(define-public python2-autopep8
(package-with-python2 python-autopep8))
+(define-public python-distlib
+ (package
+ (name "python-distlib")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "distlib" version ".zip"))
+ (sha256
+ (base32
+ "08fyi2r246733vharl2yckw20rilci28r91mzrnnvcr638inw5if"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'no-/bin/sh
+ (lambda _
+ (substitute* '("distlib/scripts.py" "tests/test_scripts.py")
+ (("/bin/sh") (which "sh")))
+ #t))
+ (add-before 'check 'prepare-test-env
+ (lambda _
+ (setenv "HOME" "/tmp")
+ ;; NOTE: Any value works, the variable just has to be present.
+ (setenv "SKIP_ONLINE" "1")
+ #t)))))
+ (native-inputs `(("unzip" ,unzip)))
+ (home-page "https://bitbucket.org/pypa/distlib")
+ (synopsis "Distribution utilities")
+ (description "Distlib is a library which implements low-level functions that
+relate to packaging and distribution of Python software. It is intended to be
+used as the basis for third-party packaging tools.")
+ (license license:psfl)))
+
(define-public python-distutils-extra
(package
(name "python-distutils-extra")
(inputs
`(("freetype" ,freetype)
("lcms" ,lcms)
- ("libjpeg" ,libjpeg)
+ ("libjpeg" ,libjpeg-turbo)
("libtiff" ,libtiff)
("libwebp" ,libwebp)
("openjpeg" ,openjpeg)
(sha256
(base32 "0308djallnh00v112y5b7nadl657ysmkp6vc8xn51d6yzc9zm7n3"))))
(build-system python-build-system)
- (home-page "https://pypi.python.org/pypi/decorator/")
+ (home-page "https://pypi.org/project/decorator/")
(synopsis "Python module to simplify usage of decorators")
(description
"The aim of the decorator module is to simplify the usage of decorators
(arguments '(#:tests? #f))
(native-inputs
`(("python-nose" ,python-nose)))
- (home-page "https://pypi.python.org/pypi/drmaa")
+ (home-page "https://pypi.org/project/drmaa/")
(synopsis "Python bindings for the DRMAA library")
(description
"A Python package for Distributed Resource Management (DRM) job
(define-public python-setuptools-scm
(package
(name "python-setuptools-scm")
- (version "3.2.0")
+ (version "3.4.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "setuptools_scm" version))
(sha256
(base32
- "0n3knn3p1sqlx31k2lahn7z9bacvlv8nhlfidj77vz50bxqlgasj"))))
+ "083k93wi7mrmp1cn28hcbnr6sivbgls0y7zz2m5qzn1wg04a3f16"))))
(build-system python-build-system)
(home-page "https://github.com/pypa/setuptools_scm/")
(synopsis "Manage Python package versions in SCM metadata")
them as the version argument or in a SCM managed file.")
(license license:expat)))
-;; Needed by python-lazy-object-proxy, remove on next update cycle.
-(define-public python-setuptools-scm-3.3
- (package
- (inherit python-setuptools-scm)
- (version "3.3.3")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "setuptools_scm" version))
- (sha256
- (base32
- "19cyndx23xmpbhz4qrwmfwsmnnaczd0dw7qg977ksq2dbvxy29dx"))))))
-
(define-public python2-setuptools-scm
(package-with-python2 python-setuptools-scm))
(propagated-inputs
`(("python-scandir" ,python-scandir)
("python-six" ,python-six)))
- (home-page "https://pypi.python.org/pypi/pathlib2/")
+ (home-page "https://pypi.org/project/pathlib2/")
(synopsis "Object-oriented file system paths")
(description "The goal of pathlib2 is to provide a backport of the
standard @code{pathlib} module which tracks the standard library module, so
"0y3hg12iby1qyaspnbisz4s4vxax7syikk3skznwqizqyv89y9yk"))))
(build-system python-build-system)
(arguments
- `(#:python ,python-2))
- (native-inputs
- `(("python-wheel" ,python2-wheel)))
+ `(#:python ,python-2
+ #:phases (modify-phases %standard-phases
+ ;; The build system tests for python-wheel, but it is
+ ;; not required for Guix nor the test suite. Just drop
+ ;; it to make bootstrapping pytest easier.
+ (add-after 'unpack 'drop-wheel-dependency
+ (lambda _
+ (substitute* "setup.cfg"
+ (("^[[:blank:]]+wheel")
+ ""))
+ #t)))))
(propagated-inputs
`(("python-pathlib2" ,python2-pathlib2)
("python-typing" ,python2-typing)))
for older versions of Python.")
(license license:asl2.0)))
+;; For importlib-metadata-bootstrap below.
+(define-public python2-importlib-resources-bootstrap
+ (hidden-package
+ (package/inherit
+ python2-importlib-resources
+ (name "python2-importlib-resources-bootstrap")
+ (propagated-inputs
+ `(("python-pathlib2-bootstrap" ,python2-pathlib2-bootstrap)
+ ("python-typing" ,python2-typing))))))
+
(define-public python-importlib-metadata
(package
(name "python-importlib-metadata")
- (version "1.4.0")
+ (version "1.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "importlib_metadata" version))
(sha256
- (base32 "1n76444v7zn910xrhh8954jdn4byxbn9f1jck6b85a716mbh2z7i"))))
+ (base32
+ "00ikdj4gjhankdljnz7g5ggak4k9lql2926x0x117ir9j2lv7x86"))))
(build-system python-build-system)
(propagated-inputs
`(("python-zipp" ,python-zipp)))
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)
+ ("python-pyfakefs" ,python-pyfakefs)
("python-packaging" ,python-packaging)))
(home-page "https://importlib-metadata.readthedocs.io/")
(synopsis "Read metadata from Python packages")
(package/inherit
base
(name "python2-importlib-metadata")
+ (native-inputs
+ `(("python-setuptools-scm" ,python2-setuptools-scm)
+ ("python-pyfakefs" ,python2-pyfakefs-bootstrap)
+ ("python-packaging" ,python2-packaging-bootstrap)))
(propagated-inputs
`(("python-configparser" ,python2-configparser)
("python-contextlib2" ,python2-contextlib2)
("python-pathlib2" ,python2-pathlib2)
,@(package-propagated-inputs base))))))
+;; This package is used by python2-pytest, and thus must not depend on it.
+(define-public python2-importlib-metadata-bootstrap
+ (hidden-package
+ (package/inherit
+ python2-importlib-metadata
+ (name "python2-importlib-metadata-bootstrap")
+ (arguments
+ `(#:tests? #f
+ ,@(package-arguments python2-importlib-metadata)))
+ (propagated-inputs
+ `(("python-zipp" ,python2-zipp-bootstrap)
+ ("python-pathlib2" ,python2-pathlib2-bootstrap)
+ ("python-configparser" ,python2-configparser)
+ ("python-contextlib2" ,python2-contextlib2-bootstrap)
+ ("python-importlib-resources" ,python2-importlib-resources-bootstrap))))))
+
(define-public python-jaraco-packaging
(package
(name "python-jaraco-packaging")
(native-inputs
`(("python-pytest" ,python-pytest)
("xorg-server" ,xorg-server-for-tests)))
- (home-page "http://stanford.edu/~mwaskom/software/seaborn/")
+ (home-page "https://seaborn.pydata.org/")
(synopsis "Statistical data visualization")
(description
"Seaborn is a library for making attractive and informative statistical
#t)))))
(propagated-inputs
`(("python-mpmath" ,python-mpmath)))
- (home-page "http://www.sympy.org/")
+ (home-page "https://www.sympy.org/")
(synopsis "Python library for symbolic mathematics")
(description
"SymPy is a Python library for symbolic mathematics. It aims to become a
(native-inputs
`(("python-six" ,python-six))) ; required for conversion, not at run-time
(home-page
- "http://docs.python.org/3/library/functools.html#functools.singledispatch")
+ "https://docs.python.org/3/library/functools.html#functools.singledispatch")
(synopsis "Backport of singledispatch feature from Python 3.4")
(description
"This library brings functools.singledispatch from Python 3.4 to Python
(define-public python-flake8
(package
(name "python-flake8")
- (version "3.7.7")
+ (version "3.7.9")
(source (origin
(method url-fetch)
(uri (pypi-uri "flake8" version))
(sha256
(base32
- "0qg6zggqigrd4k3gv88shd1a27d0cwgfql8vfiq2c7rl7w3rd6c5"))))
+ "1yscj6avirm6m12bjh4fn2lfgxaamqsjh9pirdqfi0fcgq8ils25"))))
(build-system python-build-system)
(arguments
`(#:phases
("python-mccabe" ,python-mccabe)))
(native-inputs
`(("python-mock" ,python-mock)
- ("python-pytest" ,python-pytest-bootstrap)
- ("python-pytest-runner" ,python-pytest-runner)))
+ ("python-pytest" ,python-pytest-bootstrap)))
(home-page "https://gitlab.com/pycqa/flake8")
(synopsis
"The modular source code checker: pep8, pyflakes and co")
(propagated-inputs
`(("python2-configparser" ,python2-configparser)
("python2-enum34" ,python2-enum34)
+ ("python2-functools32" ,python2-functools32)
("python2-typing" ,python2-typing)
,@(package-propagated-inputs base))))))
(define-public python-markdown
(package
(name "python-markdown")
- (version "3.1.1")
+ (version "3.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Markdown" version))
(sha256
(base32
- "0yhylk4ffqqs7x086fav4pnfsl1021v7lghznzkififprmmqfl1f"))))
+ "00k91gwhxnm8jdnm2v5xjz9irj6dbi7afywz2hpakqdbxs1ydzlh"))))
(build-system python-build-system)
(native-inputs
`(("python-nose" ,python-nose)
Markdown. The library features international input, various Markdown
extensions, and several HTML output formats. A command line wrapper
markdown_py is also provided to convert Markdown files to HTML.")
+ (properties `((python2-variant . ,(delay python2-markdown))))
(license license:bsd-3)))
+;; Markdown 3.2 dropped support for Python 2.
(define-public python2-markdown
- (package-with-python2 python-markdown))
+ (let ((base (package-with-python2 (strip-python2-variant python-markdown))))
+ (package/inherit
+ base
+ (version "3.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "Markdown" version))
+ (sha256
+ (base32
+ "0yhylk4ffqqs7x086fav4pnfsl1021v7lghznzkififprmmqfl1f")))))))
(define-public python-ptyprocess
(package
(define-public python-fonttools
(package
(name "python-fonttools")
- (version "3.38.0")
+ (version "4.2.4")
(source (origin
(method url-fetch)
(uri (pypi-uri "fonttools" version ".zip"))
(sha256
(base32
- "12ripk3s7skgxr1bs9r8n13r94ym3s8iir7ivfixls9fa4dabmlh"))))
+ "0rz2fn707x8ri507bb5k5y3di851dwchn0886f77g5bgiflmnpwm"))))
(build-system python-build-system)
(native-inputs
`(("unzip" ,unzip)
from an XML-based format.")
(license license:expat)))
+;; Fonttools 4.x dropped support for Python 2, so stick with 3.x here.
(define-public python2-fonttools
- (package-with-python2 python-fonttools))
+ (let ((base (package-with-python2 (strip-python2-variant python-fonttools))))
+ (package/inherit
+ base
+ (version "3.44.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "fonttools" version ".zip"))
+ (sha256
+ (base32
+ "0v6399g755f2hn1ry62i5b6gdinf2fpx2966v3bxh6bjw1accb5p")))))))
(define-public python-ly
(package
(description "This package provides a Python library to parse, manipulate
or create documents in LilyPond format. A command line program ly is also
provided that can be used to do various manipulations with LilyPond files.")
- (home-page "https://pypi.python.org/pypi/python-ly")
+ (home-page "https://pypi.org/project/python-ly/")
(license license:gpl2+)))
(define-public python-appdirs
(description "MessagePack is a fast, compact binary serialization format,
suitable for similar data to JSON. This package provides CPython bindings for
reading and writing MessagePack data.")
- (home-page "https://pypi.python.org/pypi/msgpack/")
+ (home-page "https://pypi.org/project/msgpack/")
(license license:asl2.0)))
;; This msgpack library's name changed from "python-msgpack" to "msgpack" with
(base32
"0diwsicwmiq2cpzpxri7cyl5fmsvicafw6nfqf6p6p322dji2g45"))))
(build-system python-build-system)
- (home-page "http://code.google.com/p/prettytable/")
+ (home-page "https://code.google.com/archive/p/prettytable/")
(synopsis "Display tabular data in an ASCII table format")
(description
"A library designed to represent tabular data in visually appealing ASCII
"linker_exe='gcc',"
"linker_so='gcc -shared')")))
#t))
+ (add-after 'unpack 'disable-tuning
+ (lambda _
+ (substitute* "setup.py"
+ (("cpu_flags = .*")
+ "cpu_flags = ['sse2']\n"))
+ #t))
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(invoke "python" "setup.py" "build"
`(("python-cython" ,python-cython)
("pkg-config" ,pkg-config)))
(inputs
- `(("hdf5" ,hdf5)
+ `(("hdf5" ,hdf5-1.10)
("bzip2" ,bzip2)
("zlib" ,zlib)))
(home-page "http://www.pytables.org/")
(define-public python2-tables
(package-with-python2 python-tables))
+(define-public python-pytest-black
+ (package
+ (name "python-pytest-black")
+ (version "0.3.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-black" version))
+ (sha256
+ (base32
+ "04lppqydxm0f3f3x0l8hj7v0j6d8syj34jc37yzqwqcyqsnaga81"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-black" ,python-black)
+ ("python-toml" ,python-toml)))
+ (native-inputs
+ `(("python-setuptools-scm" ,python-setuptools-scm)))
+ (home-page "https://github.com/shopkeep/pytest-black")
+ (synopsis "Pytest plugin to enable format checking with black")
+ (description
+ "This package provides a pytest plugin to enable format checking with the
+Python code formatter \"black\".")
+ (license license:expat)))
+
+(define-public python-get-version
+ (package
+ (name "python-get-version")
+ (version "2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "get_version" version))
+ (sha256
+ (base32
+ "1g15jyx33vkxavv9hwv275cs4g9bp2i1y942raw3fxamq8kbaml1"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pygments" ,python-pygments)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-black" ,python-pytest-black)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-setuptools" ,python-setuptools)
+ ("python-testpath" ,python-testpath)))
+ (home-page "https://github.com/flying-sheep/get_version")
+ (synopsis "Version helper in the spirit of versioneer")
+ (description
+ "This package provides a version helper that lets you automatically use
+the latest @code{vX.X.X} Git tag as the version in your Python package. It
+also supports getting the version from Python source distributions or, once
+your package is installed, via @code{pkg_resources} (part of
+@code{setuptools}).")
+ (license license:gpl3+)))
+
+(define-public python-legacy-api-wrap
+ (package
+ (name "python-legacy-api-wrap")
+ (version "1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "legacy-api-wrap" version))
+ (sha256
+ (base32
+ "06qhp0g543dy98vpa41hwdalvdbsjfc3ldk474yr9sd75mhl8jh3"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-get-version" ,python-get-version)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-black" ,python-pytest-black)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-setuptools" ,python-setuptools)))
+ (home-page "https://github.com/flying-sheep/legacy-api-wrap")
+ (synopsis "Legacy API wrapper")
+ (description "This module defines a decorator to wrap legacy APIs. The
+primary use case is APIs defined before keyword-only parameters existed.")
+ (license license:gpl3+)))
+
(define-public python-pyasn1
(package
(name "python-pyasn1")
(define-public python-pip
(package
(name "python-pip")
- (version "19.2.1")
+ (version "20.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pip" version))
(sha256
(base32
- "100sd12ss4mbdj5lf3wawad29cm573b27765mq098x6xhcj71395"))))
+ "0zwnlsjn6mb742cr995zfbk9v56ygxp8w3k49601r9by9kmcic3x"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; there are no tests in the pypi archive.
(arguments
;; There are no tests.
`(#:tests? #f))
- (home-page "https://pypi.python.org/pypi/termcolor")
+ (home-page "https://pypi.org/project/termcolor/")
(synopsis "ANSII Color formatting for terminal output")
(description
"This package provides ANSII Color formatting for output in terminals.")
(define-public python-libarchive-c
(package
(name "python-libarchive-c")
- (version "2.8")
+ (version "2.9")
(source (origin
(method url-fetch)
(uri (pypi-uri "libarchive-c" version))
(sha256
(base32
- "0qg0v1s9c1xdk9philhnv8k6c6nicvnvfwlc0j9srg90jmdlvm06"))))
+ "0q7g6a97110bk0j5x81555kajyxh4sybaabab6v5sgr0xi6386cr"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(define-public python-bleach
(package
(name "python-bleach")
- (version "3.1.0")
+ (version "3.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bleach" version))
(sha256
(base32
- "1yhrgrhkln8bd6gn3imj69g1h4xqah9gaz9q26crqr6gmmvpzprz"))))
+ "0j4xlnw99m1xy0s7wxz9fk5f3c1n8r296fh75jn5p5j61w6qg2xa"))))
(build-system python-build-system)
(propagated-inputs
`(("python-webencodings" ,python-webencodings)
(base32
"0j6ad6lwwyc9kv71skj098v5l7x5biyj2hs4lc5x1kcixqcr97sh"))))
(build-system python-build-system)
- (home-page "http://contextlib2.readthedocs.org/")
+ (home-page "https://contextlib2.readthedocs.org/")
(synopsis "Tools for decorators and context managers")
(description "This module is primarily a backport of the Python
3.2 contextlib to earlier Python versions. Like contextlib, it
(native-inputs
`(("python2-unittest2" ,python2-unittest2))))))
+;; This package is used by python2-pytest via python2-importlib-metadata,
+;; and thus can not depend on python-unittest2 (which depends on pytest).
+(define-public python2-contextlib2-bootstrap
+ (hidden-package
+ (package/inherit
+ python2-contextlib2
+ (name "python2-contextlib2-bootstrap")
+ (arguments
+ `(#:tests? #f
+ ,@(package-arguments python2-contextlib2)))
+ (native-inputs '()))))
+
(define-public python-texttable
(package
(name "python-texttable")
- (version "0.9.1")
+ (version "1.6.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "texttable" version))
(sha256
(base32
- "0yawv64c0zbawwv6zz84whb32fnb2n9jylwjcfsrcdgh7xvl340i"))))
+ "1x5l77akfc20x52jma9573qp8l8r07q103pm4l0pbizvh4vp1wzg"))))
(build-system python-build-system)
- (arguments '(#:tests? #f)) ; no tests
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _ (invoke "pytest" "tests.py"))))))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
(home-page "https://github.com/foutaise/texttable/")
(synopsis "Python module for creating simple ASCII tables")
(description "Texttable is a Python module for creating simple ASCII
tables.")
- (license license:lgpl2.1+)))
+ (license license:expat)))
(define-public python2-texttable
(package-with-python2 python-texttable))
@item write and deploy hybrid multi-process applications
@item write scripts to administer multiple environments
@end enumerate")
- (home-page "http://codespeak.net/execnet/")
+ (home-page "https://codespeak.net/execnet/")
(license license:expat)))
(define-public python2-execnet
(define-public python-colorama
(package
(name "python-colorama")
- (version "0.3.9")
+ (version "0.4.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "colorama" version))
(sha256
(base32
- "1wd1szk0z3073ghx26ynw43gnc140ibln1safgsis6s6z3s25ss8"))))
+ "189n8hpijy14jfan4ha9f5n06mnl33cxz7ay92wjqgkr639s0vg9"))))
(build-system python-build-system)
(synopsis "Colored terminal text rendering for Python")
(description "Colorama is a Python library for rendering colored terminal
text.")
- (home-page "https://pypi.python.org/pypi/colorama")
+ (home-page "https://pypi.org/project/colorama/")
(license license:bsd-3)))
(define-public python2-colorama
(define-public python-pluggy
(package
(name "python-pluggy")
- (version "0.11.0")
+ (version "0.13.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pluggy" version))
(sha256
(base32
- "10511a54dvafw1jrk75mrhml53c7b7w4yaw7241696lc2hfvr895"))))
+ "1c35qyhvy27q9ih9n899f3h4sdnpgq027dbiilly2qb5cvgarchm"))))
(build-system python-build-system)
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)))
(synopsis "Plugin and hook calling mechanism for Python")
(description "Pluggy is an extraction of the plugin manager as used by
Pytest but stripped of Pytest specific details.")
- (home-page "https://pypi.python.org/pypi/pluggy")
+ (home-page "https://pypi.org/project/pluggy/")
+ (properties `((python2-variant . ,(delay python2-pluggy))))
(license license:expat)))
(define-public python2-pluggy
- (package-with-python2 python-pluggy))
+ (let ((base (package-with-python2 (strip-python2-variant
+ python-pluggy))))
+ (package/inherit
+ base
+ (propagated-inputs
+ `(("python-importlib-metadata" ,python2-importlib-metadata))))))
+
+;; This package requires python2-importlib-metadata, but that package
+;; ends up needing python2-pluggy via python2-pytest, so we need this
+;; variant to solve the circular dependency.
+(define-public python2-pluggy-bootstrap
+ (hidden-package
+ (package/inherit
+ python2-pluggy
+ (name "python2-pluggy-bootstrap")
+ (arguments
+ `(#:tests? #f
+ ,@(package-arguments python2-pluggy)))
+ (propagated-inputs
+ `(("python-importlib-metadata" ,python2-importlib-metadata-bootstrap))))))
(define-public python-tox
(package
`(; FIXME: Missing: ("python-pytest-timeout" ,python-pytest-timeout)
("python-pytest" ,python-pytest) ; >= 2.3.5
("python-setuptools-scm" ,python-setuptools-scm)))
- (home-page "http://tox.testrun.org/")
+ (home-page "https://tox.readthedocs.io")
(synopsis "Virtualenv-based automation of test activities")
(description "Tox is a generic virtualenv management and test command line
tool. It can be used to check that a package installs correctly with
(arguments
`(#:phases (modify-phases %standard-phases
(replace 'check
- (lambda _
- (invoke "pytest" "-vv"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (invoke "nosetests" "-v")
+ (format #t "test suite not run~%"))
+ #t)))))
(propagated-inputs
`(("python-markupsafe" ,python-markupsafe)))
(native-inputs
`(("python-mock" ,python-mock)
- ("python-pytest" ,python-pytest)))
+ ("python-nose" ,python-nose)))
(home-page "https://www.makotemplates.org/")
(synopsis "Templating language for Python")
(description "Mako is a templating language for Python that compiles
are supported and well tested. vCard 3.0 files are supported, and all data
should be imported, but only a few components are understood in a sophisticated
way.")
- (home-page "http://eventable.github.io/vobject/")
+ (home-page "https://eventable.github.io/vobject/")
(license license:asl2.0)))
(define-public python2-vobject
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; no test suite
- (home-page "http://software.clapper.org/munkres/")
+ (home-page "https://software.clapper.org/munkres/")
(synopsis "Implementation of the Munkres algorithm")
(description "The Munkres module provides an implementation of the Munkres
algorithm (also called the Hungarian algorithm or the Kuhn-Munkres algorithm),
(define-public python2-pathlib2
(package
(name "python2-pathlib2")
- (version "2.3.3")
+ (version "2.3.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "pathlib2" version))
(sha256
(base32
- "0hpp92vqqgcd8h92msm9slv161b1q160igjwnkf2ag6cx0c96695"))))
+ "0s4qa8c082fdkb17izh4mfgwrjd1n5pya18wvrbwqdvvb5xs9nbc"))))
(build-system python-build-system)
;; We only need the the Python 2 variant, since for Python 3 our minimum
;; version is 3.4 which already includes this package as part of the
(propagated-inputs
`(("python2-scandir" ,python2-scandir)
("python2-six" ,python2-six)))
- (home-page "https://pypi.python.org/pypi/pathlib2/")
+ (home-page "https://pypi.org/project/pathlib2/")
(synopsis "Object-oriented file system paths - backport of standard
pathlib module")
(description "The goal of pathlib2 is to provide a backport of standard
(define-public python-cleo
(package
(name "python-cleo")
- (version "0.6.8")
+ (version "0.7.6")
(source (origin
(method url-fetch)
(uri (pypi-uri "cleo" version))
(sha256
(base32
- "06zp695hq835rkaq6irr1ds1dp2qfzyf32v60vxpd8rcnxv319l5"))))
+ "02dlc0rn43zgvw0s5v4j80bca9n1jfpwy3r78gn9qjgk0qj39kwr"))))
(build-system python-build-system)
(native-inputs
`( ;; For testing
("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-backpack" ,python-backpack)
+ ("python-clikit" ,python-clikit)
("python-pastel" ,python-pastel)
("python-pylev" ,python-pylev)))
(home-page "https://github.com/sdispater/cleo")
(define-public python-tomlkit
(package
(name "python-tomlkit")
- (version "0.5.7")
+ (version "0.5.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "tomlkit" version))
(sha256
(base32
- "18820ga5z3if1w8dvykxrfm000akracq01ic402xrbljgbn5grn4"))))
+ "0sf2a4q61kf344hjbw8kb6za1hlccl89j9lzqw0l2zpddp0hrh9j"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)))
(define-public python-clikit
(package
(name "python-clikit")
- (version "0.2.4")
+ (version "0.4.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "clikit" version))
(sha256
(base32
- "0dc8czib5f4j9px1ivcpqnmivnx2zjpc0xb00ldrhsqylks7r06n"))))
+ "10gab65pq0jdf589n33sj2513pxal2lisl4xwf1ijysdjxmpdr4a"))))
(build-system python-build-system)
(propagated-inputs
`(("python-pastel" ,python-pastel)
(base32
"1w1aaay424ciz8fz3fkzxb0pxzfxn184f2whpyn4fx72bn50x47k"))))
(native-inputs
- `(("python-setuptools-scm" ,python-setuptools-scm-3.3)))
+ `(("python-setuptools-scm" ,python-setuptools-scm)))
(build-system python-build-system)
(home-page "https://github.com/ionelmc/python-lazy-object-proxy")
(synopsis "Lazy object proxy for python")
,@(package-propagated-inputs base))))))
(define-public python-binwalk
- (let ((commit "64201acfb5b0a9cdd9faa58c40a36dcff8612e29")
- (revision "0"))
- (package
- (name "python-binwalk")
- (version (git-version "2.1.1" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/ReFirmLabs/binwalk")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1z7ca6rfp887hw5jc3sb45mm4fa0xid4lsp2z8g4r590dr7k7w15"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'set-pythonpath
- (lambda _
- (setenv "PYTHONPATH"
- (string-append
- (getcwd) "/src/"
- ":" (getenv "PYTHONPATH")))
- (setenv "HOME" "")
- #t)))))
- (native-inputs
- `(("python-coverage" ,python-coverage)
- ("python-nose" ,python-nose)))
- (home-page "https://github.com/ReFirmLabs/binwalk")
- (synopsis "Firmware analysis tool")
- (description "Binwalk is a tool for analyzing, reverse engineering, and extracting firmware images")
- (license license:expat))))
+ (package
+ (name "python-binwalk")
+ (version "2.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ReFirmLabs/binwalk")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'set-pythonpath
+ (lambda _
+ (setenv "PYTHONPATH"
+ (string-append
+ (getcwd) "/src/"
+ ":" (getenv "PYTHONPATH")))
+ (setenv "HOME" "")
+ #t)))))
+ (native-inputs
+ `(("python-coverage" ,python-coverage)
+ ("python-nose" ,python-nose)))
+ (home-page "https://github.com/ReFirmLabs/binwalk")
+ (synopsis "Firmware analysis tool")
+ (description "Binwalk is a tool for analyzing, reverse engineering, and
+extracting firmware images")
+ (license license:expat)))
(define-public python-nltk
(package
("python-six" ,python-six)))
(arguments
`(#:tests? #f)) ; no tests/ in the PyPI tarball
- (home-page "http://graphene-python.org/")
+ (home-page "https://graphene-python.org/")
(synopsis "GraphQL Framework for Python")
(description
"Graphene is a Python library for building GraphQL schemas/types.
(define-public python-invoke
(package
(name "python-invoke")
- (home-page "http://www.pyinvoke.org/")
+ (home-page "https://www.pyinvoke.org/")
(version "1.3.0")
(source (origin
(method url-fetch)
(define-public python-attrs
(package
(name "python-attrs")
- (version "19.1.0")
+ (version "19.3.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "attrs" version))
(sha256
(base32
- "16g33zr5f449lqc5wgvzpknxryfzrfsxcr6kpgxwn7l5fkv71f7h"))))
+ "0wky4h28n7xnr6xv69p9z6kv8bzn50d10c3drmd9ds8gawbcxdzp"))))
(build-system python-build-system)
(arguments
`(#:modules ((guix build utils)
(define-public python-configparser
(package
(name "python-configparser")
- (version "3.7.1")
+ (version "4.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "configparser" version))
(sha256
(base32
- "0cnz213il9lhgda6x70fw7mfqr8da43s3wm343lwzhqx94mgmmav"))))
+ "1priacxym85yjcf68hh38w55nqswaxp71ryjyfdk222kg9l85ln7"))))
+ (native-inputs
+ `(("python-setuptools_scm" ,python-setuptools-scm)))
(build-system python-build-system)
(home-page "https://github.com/jaraco/configparser/")
(synopsis "Backport of configparser from python 3.5")
(define-public python-scandir
(package
(name "python-scandir")
- (version "1.9.0")
+ (version "1.10.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "scandir" version))
(sha256
- (base32 "0r3hvf1a9jm1rkqgx40gxkmccknkaiqjavs8lccgq9s8khh5x5s4"))))
+ (base32 "1bkqwmf056pkchf05ywbnf659wqlp6lljcdb0y88wr9f0vv32ijd"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(arguments
`(#:phases (modify-phases %standard-phases
(replace 'check
- (lambda _ (invoke "py.test" "-vv"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (invoke "py.test" "-vv")
+ (format #t "test suite not run~%"))
+ #t)))))
(native-inputs
`(("python-pretend" ,python-pretend)
("python-pytest" ,python-pytest)))
(define-public python2-packaging
(package-with-python2 python-packaging))
+;; Variants with minimal dependencies, for bootstrapping Pytest.
+(define-public python-packaging-bootstrap
+ (hidden-package
+ (package/inherit
+ python-packaging
+ (name "python-packaging-bootstrap")
+ (native-inputs '())
+ (propagated-inputs
+ `(("python-pyparsing" ,python-pyparsing)))
+ (arguments '(#:tests? #f)))))
+
+(define-public python2-packaging-bootstrap
+ (hidden-package
+ (package/inherit
+ python2-packaging
+ (name "python2-packaging-bootstrap")
+ (native-inputs '())
+ (propagated-inputs
+ `(("python-pyparsing" ,python2-pyparsing)))
+ (arguments
+ `(#:tests? #f
+ ,@(package-arguments python2-packaging))))))
+
(define-public python-relatorio
(package
(name "python-relatorio")
(define-public python-radon
(package
(name "python-radon")
- (version "2.2.0")
+ (version "4.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "radon" version))
(sha256
(base32
- "07gq5hq4nrffxnlnksws9hrx7fd001gam63j62i82gyfr23gvdym"))))
+ "0vfxxzbnz5lxfvp0yxp35g6c8qqnnbhi4dm7shkm1d3d4192q22n"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(base32
"192pclzs2y0yaywqkrlvd0x73740q310kvqvm6jldhi619mq59wi"))))
(build-system python-build-system)
- (home-page "https://pypi.python.org/pypi/rfc3987")
+ (home-page "https://pypi.org/project/rfc3987/")
(synopsis "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)")
(description "@code{rfc3987} provides routines for parsing and
validation of URIs (see RFC 3986) and IRIs (see RFC 3987).")
(define-public python2-apache-libcloud
(package-with-python2 python-apache-libcloud))
-(define-public python-smmap2
+(define-public python-smmap
(package
- (name "python-smmap2")
- (version "2.0.5")
+ (name "python-smmap")
+ (version "3.0.1")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "smmap2" version))
+ (uri (pypi-uri "smmap" version))
(sha256
- (base32 "16k03pcnxd3lgzwgbd7nl4jwzm1wmahirvd09kljnzvy96hgza99"))))
+ (base32 "0ijlnv60y8f41py1wnn5n1a1i81cxd9dfpdhr0k3cgkrcbz8850p"))))
(build-system python-build-system)
(native-inputs
`(("python-nosexcover" ,python-nosexcover)))
(home-page "https://github.com/Byron/smmap")
(synopsis "Python sliding window memory map manager")
- (description "@code{smmap2} is a pure Python implementation of a sliding
+ (description "@code{smmap} is a pure Python implementation of a sliding
window memory map manager.")
(license license:bsd-3)))
+(define-public python-smmap2
+ (deprecated-package "python-smmap2" python-smmap))
+
+(define-public python2-smmap
+ (package-with-python2 python-smmap))
+
(define-public python2-smmap2
- (package-with-python2 python-smmap2))
+ (deprecated-package "python2-smmap2" python2-smmap))
(define-public python-regex
(package
(define-public python-xenon
(package
(name "python-xenon")
- (version "0.5.4")
+ (version "0.7.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xenon" version))
(sha256
(base32
- "029cbhysg2vr5n4jz8gpg2793f8wkwnqpr1qgv6c1dn685vy31mc"))))
+ "0nv207ql2wmh9q62503np056c4vf1c1hlsi5cvv5p5kx574k6r2y"))))
(build-system python-build-system)
(native-inputs
`(("python-pyyaml" ,python-pyyaml)
("python-flake8" ,python-flake8)
("python-tox" ,python-tox)))
(arguments
- `(#:phases
+ `(#:tests? #f ;test suite not shipped with the PyPI archive
+ #:phases
(modify-phases %standard-phases
(add-before 'build 'patch-test-requirements
(lambda _
("python-nose" ,python-nose)))
(propagated-inputs
`(("python-h5py" ,python-h5py)))
- (home-page "http://www.activepapers.org/")
+ (home-page "https://www.activepapers.org/")
(synopsis "Executable papers for scientific computing")
(description
"ActivePapers is a tool for working with executable papers, which
"183kg1rhzz3hqizvphkd8hlbf1zxfx8737zhfkmqzxi71jmdw7pd"))))
(build-system python-build-system)
(native-inputs
- `(("python-tox" ,python-tox)
+ `(("python-appdirs" ,python-appdirs)
+ ("python-distlib" ,python-distlib)
+ ("python-importlib-metadata" ,python-importlib-metadata)
+ ("python-filelock" ,python-filelock)
+ ("python-six" ,python-six)
+ ("python-tox" ,python-tox)
("python-virtualenv" ,python-virtualenv)))
(home-page "https://github.com/k-bx/python-semver")
(synopsis "Python helper for Semantic Versioning")
(define-public python-typing
(package
(name "python-typing")
- (version "3.6.6")
+ (version "3.7.4.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "typing" version))
(sha256
(base32
- "0ba9acs4awx15bf9v3nrs781msbd2nx826906nj6fqks2bvca9s0"))))
+ "08xs7s5pyq99hbrzw23inczmidz90krvpv9q5p1qrvh6yzrydpwi"))))
(build-system python-build-system)
(home-page "https://docs.python.org/3/library/typing.html")
(synopsis "Type hints for Python")
(define-public python-more-itertools
(package
(name "python-more-itertools")
- (version "7.1.0")
+ (version "8.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "more-itertools" version))
(sha256
(base32
- "16phg2f2dvm6ci5wr49ncha5lmc0m2in3bsl33c61vzca4gkvd4b"))))
+ "01x5nwm1zxmnd06cllbdd095xxc2nd25ing1a726m2kd30rbkpdi"))))
(build-system python-build-system)
(home-page "https://github.com/erikrose/more-itertools")
(synopsis "More routines for operating on iterables, beyond itertools")
(base32
"1r12cm6mcdwdzz7d47a6g4l437xsvapdlgyhqay3i2nrlv03da9q"))))
(arguments
- `(#:python ,python2-minimal))
+ `(#:python ,python-2))
(propagated-inputs
`(("python2-six" ,python2-six-bootstrap)))))
`(("unzip" ,unzip)))
(propagated-inputs
`(("python-gevent" ,python-gevent)))
- (home-page "http://gehrcke.de/gipc")
+ (home-page "https://gehrcke.de/gipc/")
(synopsis "Child process management in the context of gevent")
(description "Usage of Python's multiprocessing package in a
gevent-powered application may raise problems. With @code{gipc},
(define-public pybind11
(package
(name "pybind11")
- (version "2.3.0")
+ (version "2.4.3")
(source (origin
(method git-fetch)
(uri (git-reference
(commit (string-append "v" version))))
(sha256
(base32
- "11b6dniri8m05spfd2a19irz82shf4sdca73566bniggrf3zclnf"))
+ "0k89w4bsfbpzw963ykg1cyszi3h3nk393qd31m6y46pcfxkqh4rd"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(native-inputs
- `(("python" ,python)
- ("python-pytest" ,python-pytest)))
+ `(("python" ,python-wrapper)
+
+ ;; The following dependencies are used for tests.
+ ("python-pytest" ,python-pytest)
+ ("catch" ,catch-framework2-1)
+ ("eigen" ,eigen)))
(arguments
- `(#:test-target "check"))
+ `(#:configure-flags
+ (list (string-append "-DCATCH_INCLUDE_DIR="
+ (assoc-ref %build-inputs "catch")
+ "/include/catch"))
+
+ #:phases (modify-phases %standard-phases
+ (add-after 'install 'install-python
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (with-directory-excursion "../source"
+ (setenv "PYBIND11_USE_CMAKE" "yes")
+ (invoke "python" "setup.py" "install"
+ "--single-version-externally-managed"
+ "--root=/"
+ (string-append "--prefix=" out)))))))
+
+ #:test-target "check"))
(home-page "https://github.com/pybind/pybind11/")
(synopsis "Seamless operability between C++11 and Python")
- (description "pybind11 is a lightweight header-only library that exposes
-C++ types in Python and vice versa, mainly to create Python bindings of
-existing C++ code. Its goals and syntax are similar to the excellent
-Boost.Python library by David Abrahams: to minimize boilerplate code in
-traditional extension modules by inferring type information using compile-time
-introspection.")
- (license license:expat)))
+ (description
+ "@code{pybind11} is a lightweight header-only library that exposes C++
+types in Python and vice versa, mainly to create Python bindings of existing
+C++ code. Its goals and syntax are similar to the @code{Boost.Python}
+library: to minimize boilerplate code in traditional extension modules by
+inferring type information using compile-time introspection.")
+ (license license:bsd-3)))
(define-public python-fasteners
(package
tool).")
(license license:bsd-3)))
+(define-public python-numcodecs
+ (package
+ (name "python-numcodecs")
+ (version "0.6.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "numcodecs" version))
+ (sha256
+ (base32
+ "0kbfr8pl3x9glsypbq8hzim003f16ml1b1cvgrh4w1sdvgal6j7g"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-numpy" ,python-numpy)
+ ("python-msgpack" ,python-msgpack)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (home-page "https://github.com/zarr-developers/numcodecs")
+ (synopsis "Buffer compression and transformation codecs")
+ (description
+ "This Python package provides buffer compression and transformation
+codecs for use in data storage and communication applications.")
+ (license license:expat)))
+
+(define-public python-asciitree
+ (package
+ (name "python-asciitree")
+ (version "0.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "asciitree" version))
+ (sha256
+ (base32
+ "0vhgri2m2xlnibhz4xwn4hpbc7xacisxjqrk6k5kyppq96vbk92a"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/mbr/asciitree")
+ (synopsis "Draws ASCII trees")
+ (description "This package draws tree structures using characters.")
+ (license license:expat)))
+
+(define-public python-zarr
+ (package
+ (name "python-zarr")
+ (version "2.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "zarr" version))
+ (sha256
+ (base32
+ "026n3sjzjv2gmwx6y72b8ij0hk42bc8zdbvfj5gdqzd4i6wj3ajk"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-service-tests
+ (lambda _
+ (setenv "ZARR_TEST_ABS" "0")
+ (setenv "ZARR_TEST_MONGO" "0")
+ (setenv "ZARR_TEST_REDIS" "0")
+ #t))
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "-vv" "-k" "not lmdb")
+ #t)))))
+ (propagated-inputs
+ `(("python-asciitree" ,python-asciitree)
+ ("python-fasteners" ,python-fasteners)
+ ("python-numcodecs" ,python-numcodecs)
+ ("python-numpy" ,python-numpy)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (home-page "https://github.com/zarr-developers/zarr-python")
+ (synopsis "Chunked, compressed, N-dimensional arrays for Python")
+ (description
+ "This package provides an implementation of chunked, compressed,
+N-dimensional arrays for Python.")
+ (license license:expat)))
+
(define-public python-anndata
(package
(name "python-anndata")
- (version "0.6.18")
+ (version "0.7.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "anndata" version))
(sha256
(base32
- "03x83yjaccbqszj7x4fwwmpil0ai59yx64d1zmf2691za3j03w73"))))
+ "0rnfbpr55j1a1bi2kd4mz444741hrn74kz90h5rnjr59jmpfnh09"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'delete-inconvenient-tests
+ (lambda _
+ ;; This test depends on python-scikit-learn.
+ (delete-file "anndata/tests/test_inplace_subset.py")
+ #t))
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "-vv"))))))
(propagated-inputs
`(("python-h5py" ,python-h5py)
+ ("python-importlib-metadata" ,python-importlib-metadata)
("python-natsort" ,python-natsort)
+ ("python-numcodecs" ,python-numcodecs)
+ ("python-packaging" ,python-packaging)
("python-pandas" ,python-pandas)
- ("python-scipy" ,python-scipy)))
+ ("python-scipy" ,python-scipy)
+ ("python-zarr" ,python-zarr)))
+ (native-inputs
+ `(("python-joblib" ,python-joblib)
+ ("python-pytest" ,python-pytest)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
(home-page "https://github.com/theislab/anndata")
(synopsis "Annotated data for data analysis pipelines")
(description "Anndata is a package for simple (functional) high-level APIs
(base32
"0fm0w5id2yhqld95hg2m636vjgkz377rvgdfqaxc25vbylr9lklp"))))
(build-system python-build-system)
- (native-inputs
- `(("python-tox" ,python-tox)))
+ (arguments
+ ;; FIXME: Tests require many extra dependencies, and would introduce
+ ;; a circular dependency on hypothesis, which uses this package.
+ '(#:tests? #f))
(home-page "http://www.grantjenks.com/docs/sortedcontainers/")
(synopsis "Sorted List, Sorted Dict, Sorted Set")
(description
pure-Python.")
(license license:asl2.0)))
+(define-public python2-sortedcontainers
+ (package-with-python2 python-sortedcontainers))
+
(define-public python-cloudpickle
(package
(name "python-cloudpickle")
(define-public python-construct
(package
(name "python-construct")
- (version "2.9.45")
+ (version "2.10.56")
(source
(origin
(method url-fetch)
(uri (pypi-uri "construct" version))
(sha256
(base32
- "130iy05awzigm2xah2yvlmb08mac5bi4gzr5m3g7k1krs3ps0w92"))))
+ "0q86jjzsvy835h3c8pjj4619vbp7ihfg8njmyw86ym4qrpni7flp"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ; No tests exist.
("python-arrow" ,python-arrow)
("python-numpy" ,python-numpy)
("python-ruamel.yaml" ,python-ruamel.yaml)))
- (home-page "http://construct.readthedocs.io")
+ (home-page "https://construct.readthedocs.io")
(synopsis "Declarative and symmetrical parser and builder for binary data")
(description
"This package provides both simple, atomic constructs (such as
files. These files are used to translate strings in android apps.")
(license license:expat)))
-(define-public python-pathtools
+(define-public python-watchdog
(package
- (name "python-pathtools")
- (version "0.1.2")
+ (name "python-watchdog")
+ (version "0.9.0")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "pathtools" version))
+ (uri (pypi-uri "watchdog" version))
+ (sha256
+ (base32
+ "07cnvvlpif7a6cg4rav39zq8fxa5pfqawchr46433pij0y6napwn"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'remove-failing
+ (lambda _
+ (delete-file "tests/test_inotify_buffer.py")
+ (delete-file "tests/test_snapshot_diff.py")
+ #t)))))
+ (propagated-inputs
+ `(("python-argh" ,python-argh)
+ ("python-pathtools" ,python-pathtools)
+ ("python-pyyaml" ,python-pyyaml)))
+ (native-inputs
+ `(("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-timeout" ,python-pytest-timeout)))
+ (home-page "https://github.com/gorakhargosh/watchdog")
+ (synopsis "Filesystem events monitoring")
+ (description "This package provides a way to monitor filesystem events
+such as a file modification and trigger an action. This is similar to inotify,
+but portable.")
+ (license license:asl2.0)))
+
+(define-public python-wget
+ (package
+ (name "python-wget")
+ (version "3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "wget" version ".zip"))
+ (sha256
+ (base32
+ "0qb0y7ipby42m4m7h0ipazpdyc3bn9xi46lvifcwwl5albn31rim"))))
+ (build-system python-build-system)
+ (native-inputs `(("unzip" ,unzip)))
+ (home-page "https://bitbucket.org/techtonik/python-wget/")
+ (synopsis "Pure Python download utility")
+ (description "The python-wget library provides an API to download files
+with features similar to the @command{wget} utility.")
+ (license license:unlicense)))
+
+(define-public offlate
+ (package
+ (name "offlate")
+ (version "0.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://framagit.org/tyreunom/offlate")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1h7iam33vwxk8bvslfj4qlsdprdnwf8bvzhqh3jq5frr391cadbw"))))
+ "13pqnbl05wcyldfvl75fp89vjgwsvxyc69vhnb17kkha2rc2k1h7"))))
+ (build-system python-build-system)
+ (arguments
+ ;; No tests
+ `(#:tests? #f))
+ (propagated-inputs
+ `(("python-android-stringslib" ,python-android-stringslib)
+ ("python-dateutil" ,python-dateutil)
+ ("python-gitlab" ,python-gitlab)
+ ("python-lxml" ,python-lxml)
+ ("python-polib" ,python-polib)
+ ("python-pyenchant" ,python-pyenchant)
+ ("python-pygit2" ,python-pygit2)
+ ("python-pygithub" ,python-pygithub)
+ ("python-pyqt" ,python-pyqt)
+ ("python-requests" ,python-requests)
+ ("python-ruamel.yaml" ,python-ruamel.yaml)
+ ("python-translation-finder" ,python-translation-finder)
+ ("python-watchdog" ,python-watchdog)))
+ (native-inputs
+ `(("qttools" ,qttools)))
+ (home-page "https://framagit.org/tyreunom/offlate")
+ (synopsis "Offline translation interface for online translation tools")
+ (description "Offlate offers a unified interface for different translation
+file formats, as well as many different online translation platforms. You can
+use it to get work from online platforms, specialized such as the Translation
+Project, or not such a gitlab instance when your upstream doesn't use any
+dedicated platform. The tool proposes a unified interface for any format and
+an upload option to send your work back to the platform.")
+ (license license:gpl3+)))
+
+(define-public python-pypng
+ (package
+ (name "python-pypng")
+ (version "0.0.20")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pypng" version))
+ (sha256
+ (base32 "02qpa22ls41vwsrzw9r9qhj1nhq05p03hb5473pay6y980s86chh"))))
(build-system python-build-system)
- (home-page "https://github.com/gorakhargosh/pathtools")
- (synopsis "File system general utilities")
- (description "This package provides pattern matching and various utilities
-for file systems paths.")
+ (home-page "https://github.com/drj11/pypng")
+ (synopsis "Pure Python PNG image encoder/decoder")
+ (description
+ "The PyPNG module implements support for PNG images. It reads and writes
+PNG files with all allowable bit depths (1/2/4/8/16/24/32/48/64 bits per
+pixel) and colour combinations: greyscale (1/2/4/8/16 bit); RGB, RGBA,
+LA (greyscale with alpha) with 8/16 bits per channel; colour mapped
+images (1/2/4/8 bit). Adam7 interlacing is supported for reading and writing.
+A number of optional chunks can be specified (when writing) and
+understood (when reading): tRNS, bKGD, gAMA.
+
+PyPNG is not a high level toolkit for image processing (like PIL) and does not
+aim at being a replacement or competitor. Its strength lies in fine-grained
+extensive support of PNG features. It can also read and write Netpbm PAM
+files, with a focus on its use as an intermediate format for implementing
+custom PNG processing.")
(license license:expat)))
+
+(define-public python-fuzzywuzzy
+ (package
+ (name "python-fuzzywuzzy")
+ (version "0.18.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "fuzzywuzzy" version))
+ (sha256
+ (base32
+ "1s00zn75y2dkxgnbw8kl8dw4p1mc77cv78fwfa4yb0274s96w0a5"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-hypothesis" ,python-hypothesis)
+ ("python-pycodestyle" ,python-pycodestyle)
+ ("python-pytest" ,python-pytest)))
+ (propagated-inputs
+ `(("python-levenshtein" ,python-levenshtein)))
+ (home-page "https://github.com/seatgeek/fuzzywuzzy")
+ (synopsis "Fuzzy string matching in Python")
+ (description "Approximate string matching using
+@emph{Levenshtein Distance} to calculate the differences between
+sequences.")
+ (license license:gpl2)))
+
+(define-public python2-fuzzywuzzy
+ (package-with-python2 python-fuzzywuzzy))