;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
-;;; Copyright © 2017, 2020 Roel Janssen <roel@gnu.org>
+;;; 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>
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages jupyter)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
license:asl2.0 ; packaging is dual ASL2/BSD-2
license:bsd-2))))
+(define-public python-setuptools-declarative-requirements
+ (package
+ (name "python-setuptools-declarative-requirements")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri
+ "setuptools-declarative-requirements"
+ version))
+ (sha256
+ (base32
+ "1l8zmcnp9h8sp8hsw7b81djaa1a9yig0y7i4phh5pihqz1gdn7yi"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (propagated-inputs
+ `(("python-toml" ,python-toml)
+ ("python-wheel" ,python-wheel)))
+ (home-page
+ "https://github.com/s0undt3ch/setuptools-declarative-requirements")
+ (synopsis "File support for setuptools declarative setup.cfg")
+ (description
+ "This package provides file support for setuptools declarative
+@code{setup.cfg}.")
+ (license license:asl2.0)))
+
;; The setuptools provided by Python 3.7.4 is too new for Tensorflow.
(define-public python-setuptools-for-tensorflow
(hidden-package
lossless but can be tweaked for more aggressive cleaning.")
(license license:asl2.0)))
+(define-public python-mappy
+ (package
+ (name "python-mappy")
+ (version "2.18")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "mappy" version))
+ (sha256
+ (base32
+ "1a05p7rkmxa6qhm108na8flzj2v45jab06drk59kzk1ip2sgvzqq"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-cython" ,python-cython)))
+ (inputs
+ `(("zlib" ,zlib)))
+ (home-page "https://github.com/lh3/minimap2")
+ (synopsis "Python binding for minimap2")
+ (description "This package provides a convenient interface to minimap2,
+a fast and accurate C program to align genomic and transcribe nucleotide
+sequences.")
+ (license license:expat)))
+
(define-public python-mechanize
(package
(name "python-mechanize")
(define-public python2-kitchen
(package-with-python2 python-kitchen))
+(define-public python-roman
+ (package
+ (name "python-roman")
+ (version "3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "roman" version))
+ (sha256
+ (base32
+ "0gyp2bmw47jgpm8j64gydzqq838bgxz5gh6cm57lxlr7p26sqiic"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/zopefoundation/roman")
+ (synopsis "Integer to Roman numerals converter")
+ (description
+ "This package provides a small helper library to convert Arabic Numbers
+to Roman Numerals.")
+ (license license:psfl)))
+
(define-public python-unidecode
(package
(name "python-unidecode")
(base32
"1zmhnswy0wxfn0xprs9aqsvx2c3kmzfn2wx14q8cv3vpkxdamj4q")))))))
+(define-public python-pygments-github-lexers
+ (package
+ (name "python-pygments-github-lexers")
+ (version "0.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pygments-github-lexers" version))
+ (sha256
+ (base32
+ "0cz14clcc9z4pn79ll8hp3xzgsrfjscak5zfsvlgrz6ngkkmgjma"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pygments" ,python-pygments)))
+ (home-page "https://github.com/liluo/pygments-github-lexers")
+ (synopsis "Pygments Github custom lexers")
+ (description "This package installs Github custom lexers to Pygments.")
+ (license license:bsd-3)))
+
(define-public python-bump2version
(package
(name "python-bump2version")
(description (package-description python-matplotlib))
(license (package-license python-matplotlib))))
-(define-public python2-matplotlib-documentation
- (let ((parent (package-with-python2 python-matplotlib-documentation)))
- (package
- (inherit parent)
- (native-inputs
- (alist-delete "python-sphinx-copybutton"
- (package-native-inputs parent))))))
-
(define-public python-matplotlib-venn
(package
(name "python-matplotlib-venn")
(description "This package is a fork of Pillow which adds support for SIMD
parallelism.")))
+(define-public python-imagecodecs
+ (package
+ (name "python-imagecodecs")
+ (version "2021.3.31")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "imagecodecs" version))
+ (sha256
+ (base32
+ "0q7pslb6wd56vbcq2mdxwsiha32mxjr7mgqqfbq5w42q601p9pi0"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Unbundle 3rd party modules.
+ (delete-file-recursively "3rdparty")
+ ;; Delete pre-generated Cython files.
+ (for-each delete-file (find-files "imagecodecs" "_.*\\.c$"))
+ #t))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; Tests are disabled, because dependencies are missing.
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'create-configuration
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; By default everything is enabled. We can selectively disable
+ ;; extensions (and thus dependencies) by deleting them from the
+ ;; EXTENSIONS dictionary. This is upstream’s preferred way.
+ (call-with-output-file "imagecodecs_distributor_setup.py"
+ (lambda (port)
+ (format port "\
+def customize_build(EXTENSIONS, OPTIONS):
+ del EXTENSIONS['aec']
+ del EXTENSIONS['avif']
+ del EXTENSIONS['bitshuffle']
+ del EXTENSIONS['deflate']
+ del EXTENSIONS['jpeg2k']
+ del EXTENSIONS['jpeg12']
+ del EXTENSIONS['jpegls']
+ del EXTENSIONS['jpegxl']
+ del EXTENSIONS['jpegxr']
+ del EXTENSIONS['lerc']
+ del EXTENSIONS['ljpeg']
+ del EXTENSIONS['lzf']
+ del EXTENSIONS['zfp']
+ del EXTENSIONS['zopfli']
+ OPTIONS['cythonize']
+")))
+ #t)))))
+ (inputs
+ `(("c-blosc" ,c-blosc)
+ ("giflib" ,giflib)
+ ("google-brotli" ,google-brotli)
+ ("libjpeg-turbo" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("libtiff" ,libtiff)
+ ("libwebp" ,libwebp)
+ ("lz4" ,lz4)
+ ("snappy" ,snappy)
+ ("xz" ,xz)
+ ("zlib" ,zlib)
+ ("zstd" ,zstd "lib")))
+ (propagated-inputs
+ `(("python-numpy" ,python-numpy)))
+ (native-inputs
+ ;; For building.
+ `(("python-cython" ,python-cython)
+ ;; For testing. Incomplete.
+ ;("python-numcodecs" ,python-numcodecs)
+ ;("python-zarr" ,python-zarr)
+ ;("python-pytest" ,python-pytest)
+ ))
+ (home-page "https://www.lfd.uci.edu/~gohlke/")
+ (synopsis
+ "Image transformation, compression, and decompression codecs")
+ (description
+ "Imagecodecs is a Python library that provides block-oriented, in-memory
+buffer transformation, compression, and decompression functions for use in the
+tifffile, czifile, and other scientific image input/output modules.")
+ (license license:bsd-3)))
+
(define-public python-roifile
(package
(name "python-roifile")
- (version "2020.5.28")
+ (version "2020.11.28")
(source
(origin
(method url-fetch)
(uri (pypi-uri "roifile" version))
(sha256
(base32
- "1vwbwfsw745gyqymff6dllc5zqjsgqmxaw245sw4an6yw9rcbzc0"))))
+ "04argnc7qccybkrj9ww18bf81ghsghhh93hnqy3p111rcdlyn66p"))))
(build-system python-build-system)
(arguments `(#:tests? #f)) ; there are none
(propagated-inputs
(define-public python-tifffile
(package
(name "python-tifffile")
- (version "2020.6.3")
+ (version "2021.4.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "tifffile" version))
(sha256
(base32
- "0xv3ynkbrsibqvx7250075idb7wm3canjd6lx2nzf3cbp6l07577"))))
+ "16r0hw7shka1bqf28bv198lj2jhf2r9gy3s5zv4nf5cfsfm8pajm"))))
(build-system python-build-system)
;; Tests require lfdfiles, which depends on tifffile
(arguments `(#:tests? #f))
(propagated-inputs
`(("python-numpy" ,python-numpy)
- ;;("python-lfdfiles" ,python-lfdfiles)
- ("python-roifile" ,python-roifile)))
+ ("python-imagecodecs" ,python-imagecodecs)))
(home-page "https://www.lfd.uci.edu/~gohlke/")
(synopsis "Read and write TIFF(r) files")
(description "This package lets you read image and metadata from many
(define-public python-lfdfiles
(package
(name "python-lfdfiles")
- (version "2020.1.1")
+ (version "2021.2.22")
(source
(origin
(method url-fetch)
(uri (pypi-uri "lfdfiles" version))
(sha256
(base32
- "1n9bkfn4vxl0lbhzd0m35lq86ayx5fwcj3ghpfl2vbjbsnfp3h47"))))
+ "12fxm4v805dgjrih7x6jnl1wd7y7jw1rkhjs3d4am8s6qk1cbar2"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete pre-generated Cython files.
+ (for-each delete-file (find-files "lfdfiles" "_.*\\.c$"))
+ #t))))
(build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; No tests exist, despite a test dependency on pytest.
(propagated-inputs
`(("python-click" ,python-click)
("python-numpy" ,python-numpy)
("python-tifffile" ,python-tifffile)))
+ (native-inputs `(("python-cython" ,python-cython)))
(home-page "https://www.lfd.uci.edu/~gohlke/")
(synopsis "Work with LFD data files")
(description
(define-public python-xlsxwriter
(package
(name "python-xlsxwriter")
- (version "1.3.7")
+ (version "1.3.9")
(source
(origin
;; There are no tests in the PyPI tarball.
(commit (string-append "RELEASE_" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1qg40r2mwrqfmhaxnary1cfgi0dwwazp5qga7c9p2cdji2v0x5rm"))))
+ (base32 "04idf331rp0iyhlnh7268jmim8ydw4jjb81hr5rh548sqnq4bhpl"))))
(build-system python-build-system)
(home-page "https://github.com/jmcnamara/XlsxWriter")
(synopsis "Python module for creating Excel XLSX files")
@end enumerate")
(license license:bsd-3)))
-(define-public python2-ipyparallel
- (let ((ipyparallel (package-with-python2 python-ipyparallel)))
- (package/inherit ipyparallel
- (propagated-inputs
- `(("python2-futures" ,python2-futures)
- ,@(package-propagated-inputs ipyparallel))))))
-
(define-public python-ipython-cluster-helper
(package
(name "python-ipython-cluster-helper")
(define-public python-jupyter-core
(package
(name "python-jupyter-core")
- (version "4.4.0")
+ (version "4.7.1")
(source
(origin
(method url-fetch)
(uri (string-append (pypi-uri "jupyter_core" version)))
(sha256
(base32
- "1dy083rarba8prn9f9srxq3c7n7vyql02ycrqq306c40lr57aw5s"))))
+ "1d12j5hkff0xiax87pnhmzbsph3jqqzhz16h8xld7z2y4armq0kr"))))
(build-system python-build-system)
;; FIXME: not sure how to run the tests
(arguments `(#:tests? #f))
"Jupyter core is the base package on which Jupyter projects rely.")
(license license:bsd-3)))
-(define-public python2-jupyter-core
- (package-with-python2 python-jupyter-core))
-
(define-public python-jupyter-client
(package
(name "python-jupyter-client")
- (version "5.2.4")
+ (version "6.1.12")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jupyter_client" version))
(sha256
(base32
- "0l9mh7ccrpl3lppym3dnky8n1nk7xarzzdcxf4q2s7aw203cpydm"))))
+ "10p7fcgvv9hvz9zical9wk68ks5ssak2ykbzx65wm1k1hk8a3g64"))))
(build-system python-build-system)
;; Tests fail because of missing native python kernel which I assume is
;; provided by the ipython package, which we cannot use because it would
;; cause a dependency cycle.
(arguments
`(#:tests? #f
-
#:phases (modify-phases %standard-phases
(add-after 'unpack 'set-tool-file-names
(lambda* (#:key inputs #:allow-other-keys)
(inputs
`(("iproute" ,iproute)))
(propagated-inputs
- `(("python-pyzmq" ,python-pyzmq)
- ("python-traitlets" ,python-traitlets)
- ("python-jupyter-core" ,python-jupyter-core)))
+ `(("python-dateutil" ,python-dateutil)
+ ("python-jupyter-core" ,python-jupyter-core)
+ ("python-pyzmq" ,python-pyzmq)
+ ("python-tornado" ,python-tornado-6)
+ ("python-traitlets" ,python-traitlets)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
(home-page "https://jupyter.org/")
(synopsis "Jupyter protocol implementation and client libraries")
(description
(define-public python-ipykernel
(package
(name "python-ipykernel")
- (version "5.1.3")
+ (version "5.5.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ipykernel" version))
(sha256
- (base32 "1a08y677lpn80qzvv7z0smgggmr5m5ayf0bs6vds47xpxl9sss5k"))))
+ (base32 "02f55cjkp5q64x7ikjxznbxwjpkdmfy237b9kg7dk1pxmzvy90m6"))))
(build-system python-build-system)
(arguments
`(#:phases
("python-pytest" ,python-pytest)))
(home-page "https://ipython.org")
(synopsis "IPython Kernel for Jupyter")
- (description
- "This package provides the IPython kernel for Jupyter.")
- (properties `((python2-variant . ,(delay python2-ipykernel))))
- (license license:bsd-3)))
-
-;; Version 5.x and above no longer support Python 2.
-(define-public python2-ipykernel
- (package
- (name "python2-ipykernel")
- (version "4.10.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "ipykernel" version))
- (sha256
- (base32 "1yzmdiy1djsszqp54jzd8ym8h4hpl67zjq83j2kxbkp0rwmlpdzf"))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2))
- (propagated-inputs
- `(("python2-ipython" ,python2-ipython)
- ;; imported at runtime during connect
- ("python2-jupyter-client" ,python2-jupyter-client)
- ("python2-tornado" ,python2-tornado)
- ("python2-traitlets" ,python2-traitlets)))
- (native-inputs
- `(("python2-mock" ,python2-mock)
- ("python2-nose" ,python2-nose)
- ("python2-pytest" ,python2-pytest)
- ("python2-pytest-cov" ,python2-pytest-cov)))
- (home-page "https://ipython.org")
- (synopsis "IPython Kernel for Jupyter")
(description
"This package provides the IPython kernel for Jupyter.")
(license license:bsd-3)))
correct string literal concatenation.
It looks for style problems like implicitly concatenated string literals on
-the same line (which can be introduced by the code formating tool Black), or
+the same line (which can be introduced by the code formatting tool Black), or
unnecessary plus operators for explicit string literal concatenation.")
(license license:expat)))
(define-public python-nbformat
(package
(name "python-nbformat")
- (version "4.4.0")
+ (version "5.1.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nbformat" version))
(sha256
(base32
- "00nlf08h8yc4q73nphfvfhxrcnilaqanb8z0mdy6nxk0vzq4wjgp"))))
+ "1j6idwsw59cslsssvlkg2bkfpvd6ri7kghbp14jwcw87sy57h5mm"))))
(build-system python-build-system)
- (arguments `(#:tests? #f)) ; no test target
(propagated-inputs
`(("python-ipython-genutils" ,python-ipython-genutils)
("python-jsonschema" ,python-jsonschema)
("python-jupyter-core" ,python-jupyter-core)
("python-traitlets" ,python-traitlets)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
(home-page "https://jupyter.org")
(synopsis "Jupyter Notebook format")
(description "This package provides the reference implementation of the
Jupyter Notebook format and Python APIs for working with notebooks.")
+ (properties `((python2-variant . ,(delay python2-nbformat))))
(license license:bsd-3)))
(define-public python2-nbformat
- (package-with-python2 python-nbformat))
+ (let ((parent (package-with-python2
+ (strip-python2-variant python-nbformat))))
+ (package
+ (inherit parent)
+ (version "4.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "nbformat" version))
+ (sha256
+ (base32
+ "00nlf08h8yc4q73nphfvfhxrcnilaqanb8z0mdy6nxk0vzq4wjgp")))))))
(define-public python-bleach
(package
(define-public python-nbconvert
(package
(name "python-nbconvert")
- (version "5.0.0b1")
+ (version "6.0.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nbconvert" version))
(sha256
(base32
- "0brclbb18l4nmd5qy3dl9wn05rjdh1fz4rmzdlfqacj12rcdvdgp"))))
+ "00lhqaxn481qvk2w5568asqlsnvrw2fm61p1vssx3m7vdnl17g6b"))))
(build-system python-build-system)
(arguments
- `(;; The "bdist_egg" target is disabled by default, causing the installation
- ;; to fail.
- #:configure-flags (list "bdist_egg")
- ;; FIXME: 5 failures, 40 errors.
- #:tests? #f))
- ;; #:phases
- ;; (modify-phases %standard-phases
- ;; (replace 'check
- ;; (lambda _
- ;; (zero? (system* "py.test" "-v")))))
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+
+ ;; This seems to require Chromium.
+ (delete-file "nbconvert/exporters/tests/test_webpdf.py")
+
+ ;; This depends on the python3 kernel, which is provided by a
+ ;; package that depends on nbconvert.
+ (delete-file "nbconvert/preprocessors/tests/test_execute.py")
+
+ ;; Most of these tests fail because nbconvert fails to execute
+ ;; itself.
+ (delete-file "nbconvert/tests/test_nbconvertapp.py")
+
+ ;; One test here fails with an unclear error. It looks like
+ ;; "%%pylabprint" is supposed to be expanded to some other
+ ;; code, but isn't.
+ (delete-file "nbconvert/filters/tests/test_strings.py")
+
+ ;; Some tests need HOME
+ (setenv "HOME" "/tmp")
+ (invoke "pytest")))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-bleach" ,python-bleach)
+ ("python-defusedxml" ,python-defusedxml)
("python-entrypoints" ,python-entrypoints)
("python-jinja2" ,python-jinja2)
("python-jupyter-core" ,python-jupyter-core)
("python-mistune" ,python-mistune)
+ ("python-nbclient" ,python-nbclient)
("python-nbformat" ,python-nbformat)
+ ("python-pandocfilters" ,python-pandocfilters)
("python-pygments" ,python-pygments)
+ ("python-jupyterlab-pygments" ,python-jupyterlab-pygments)
+ ("python-testpath" ,python-testpath)
("python-traitlets" ,python-traitlets)))
(home-page "https://jupyter.org")
(synopsis "Converting Jupyter Notebooks")
@item ReStructured Text (rst)
@item executable script
@end enumerate\n")
- (license license:bsd-3)))
+ (license license:bsd-3)
+ (properties `((python2-variant . ,(delay python2-nbconvert))))))
(define-public python2-nbconvert
- (package-with-python2 python-nbconvert))
+ (let ((parent
+ (package-with-python2
+ (strip-python2-variant python-nbconvert))))
+ (package
+ (inherit parent)
+ (version "5.0.0b1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "nbconvert" version))
+ (sha256
+ (base32
+ "0brclbb18l4nmd5qy3dl9wn05rjdh1fz4rmzdlfqacj12rcdvdgp"))))
+ (arguments
+ `(;; The "bdist_egg" target is disabled by default, causing the installation
+ ;; to fail.
+ #:configure-flags (list "bdist_egg")
+ ;; FIXME: 5 failures, 40 errors.
+ #:tests? #f))
+ (propagated-inputs
+ `(("python-bleach" ,python-bleach)
+ ("python-entrypoints" ,python-entrypoints)
+ ("python-jinja2" ,python-jinja2)
+ ("python-jupyter-core" ,python-jupyter-core)
+ ("python-mistune" ,python-mistune)
+ ("python-nbformat" ,python-nbformat)
+ ("python-pygments" ,python-pygments)
+ ("python-traitlets" ,python-traitlets))))))
(define-public python-notebook
(package
(name "python-notebook")
- (version "5.7.4")
+ (version "6.3.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "notebook" version))
(sha256
(base32
- "0jm7324mbxljmn9hgapj66q7swyz5ai92blmr0jpcy0h80x6f26r"))))
+ "0zfwr87ndjzmdp9adpc9lby1hdqdkjp2q7c9vff3wiw1dj6kkjfb"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
;; These tests require a browser
(delete-file-recursively "notebook/tests/selenium")
- ;; Some tests need HOME
- (setenv "HOME" "/tmp")
- ;; This file contains "warningfilters", which are not supported
- ;; by this version of nose.
- (delete-file "setup.cfg")
- (with-directory-excursion "/tmp"
- (invoke "nosetests" "-v"))
- #t)))))
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ ;; Some tests need HOME
+ (setenv "HOME" "/tmp")
+ (with-directory-excursion "/tmp"
+ (invoke "pytest" "-vv"
+ ;; TODO: This tests fails because nbconvert does not
+ ;; list "python" as a format.
+ "-k" "not test_list_formats"))))))))
(propagated-inputs
- `(("python-jupyter-core" ,python-jupyter-core)
- ("python-nbformat" ,python-nbformat)
+ `(("python-argon2-cffi" ,python-argon2-cffi)
+ ("python-ipykernel" ,python-ipykernel)
+ ("python-ipython-genutils" ,python-ipython-genutils)
+ ("python-jinja2" ,python-jinja2)
+ ("python-jupyter-client" ,python-jupyter-client)
+ ("python-jupyter-core" ,python-jupyter-core)
("python-nbconvert" ,python-nbconvert)
+ ("python-nbformat" ,python-nbformat)
("python-prometheus-client" ,python-prometheus-client)
+ ("python-pyzmq" ,python-pyzmq)
("python-send2trash" ,python-send2trash)
- ("python-terminado" ,python-terminado)))
+ ("python-terminado" ,python-terminado)
+ ("python-tornado" ,python-tornado-6)
+ ("python-traitlets" ,python-traitlets)))
(native-inputs
- `(("python-nose" ,python-nose)
- ("python-sphinx" ,python-sphinx)
- ("python-requests" ,python-requests)))
+ `(("python-coverage" ,python-coverage)
+ ("python-nbval" ,python-nbval)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-requests" ,python-requests)
+ ("python-requests-unixsocket" ,python-requests-unixsocket)))
(home-page "https://jupyter.org/")
(synopsis "Web-based notebook environment for interactive computing")
(description
"1ismyaxbv9d56yqqqb8xl58hg0iq0bbyy014a53y1g3hfbc8g7q7"))))
(build-system python-build-system)
(propagated-inputs
- `(("python-ipykernel" ,python-ipykernel)
- ("python-notebook" ,python-notebook)))
- (native-inputs
- `(("python-certifi" ,python-certifi)
- ("python-nose" ,python-nose)))
+ `(("python-notebook" ,python-notebook)))
(home-page "https://ipython.org")
(synopsis "IPython HTML widgets for Jupyter")
(description "This package provides interactive HTML widgets for Jupyter
(define-public python-ipywidgets
(package
(name "python-ipywidgets")
- (version "7.5.1")
+ (version "7.6.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ipywidgets" version))
(sha256
(base32
- "15sww2mvnkqlvx55gwa82v05062a8j1xpncnqna4k9sl53hgcig9"))))
+ "1w217j8i53x14l7b05fk300k222zs9vkcjaa1rbrw3sk43k466lz"))))
(build-system python-build-system)
(propagated-inputs
- `(("python-ipython" ,python-ipython)
+ `(("python-ipykernel" ,python-ipykernel)
+ ("python-ipython" ,python-ipython)
+ ("python-jupyterlab-widgets" ,python-jupyterlab-widgets)
+ ("python-nbformat" ,python-nbformat)
("python-traitlets" ,python-traitlets)
("python-widgetsnbextension" ,python-widgetsnbextension)))
(native-inputs
- `(("python-nose" ,python-nose)
- ("python-pytest" ,python-pytest)))
+ `(("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)))
(home-page "https://ipython.org")
(synopsis "IPython HTML widgets for Jupyter")
(description "Ipywidgets are interactive HTML widgets for Jupyter
(synopsis "Jupyter terminal console")
(description "This package provides a terminal-based console frontend for
Jupyter kernels. It also allows for console-based interaction with non-Python
-Jupyter kernels such as IJulia and IRKernel.")
- (properties `((python2-variant . ,(delay python2-jupyter-console))))
- (license license:bsd-3)))
-
-(define-public python2-jupyter-console
- (package
- (name "python2-jupyter-console")
- (version "5.2.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "jupyter_console" version))
- (sha256
- (base32
- "1kam1qzgwr7srhm5r6aj90di5sws4bq0jmiw15452ddamb9yspal"))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2
- #:tests? #f)) ; Tests only run in a TTY.
- (propagated-inputs
- `(("python2-ipykernel" ,python2-ipykernel)
- ("python2-jupyter-client" ,python2-jupyter-client)
- ("python2-prompt-toolkit" ,python2-prompt-toolkit-1)
- ("python2-pygments" ,python2-pygments)))
- (native-inputs
- `(("python2-nose" ,python2-nose)))
- (home-page "https://jupyter.org")
- (synopsis "Jupyter terminal console")
- (description "This package provides a terminal-based console frontend for
-Jupyter kernels. It also allows for console-based interaction with non-Python
Jupyter kernels such as IJulia and IRKernel.")
(license license:bsd-3)))
code.")
(license license:expat)))
+(define-public python-deprecation
+ (package
+ (name "python-deprecation")
+ (version "2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "deprecation" version))
+ (sha256
+ (base32
+ "1zqqjlgmhgkpzg9ss5ki8wamxl83xn51fs6gn2a8cxsx9vkbvcvj"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-packaging" ,python-packaging)))
+ (native-inputs
+ `(("python-unittest2" ,python-unittest2)))
+ (home-page "https://deprecation.readthedocs.io/")
+ (synopsis "Python library to handle automated deprecations")
+ (description
+ "This is a library that enables automated deprecations. It offers the
+@code{deprecated()} decorator to wrap functions, providing proper warnings
+both in documentation and via Python’s warnings system, as well as the
+@code{deprecation.fail_if_not_removed()} decorator for test methods to ensure
+that deprecated code is eventually removed.")
+ (license license:asl2.0)))
+
(define-public python-tox
(package
(name "python-tox")
(define-public python-flit
(package
(name "python-flit")
- (version "3.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "flit" version))
- (sha256
- (base32
- "14q8qa48bli2mniznc8b54qkwvhbik4kw99y01fi5gzzl620zzml"))))
+ (version "3.2.0")
+ ;; We fetch the sources via git because on pypi the package is split into
+ ;; two parts: flit and flit_core; flit_core cannot be built without flit.
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/takluyver/flit")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0fpqxpz5bv2xpv1akmc0c8yfss6sj09wdzxrlf3qw1lp1jhbzpyc"))))
(build-system python-build-system)
(arguments
- `(#:tests? #f)) ; XXX: Check requires network access.
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'bootstrap
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((home (string-append (getcwd) "/home")))
+ (mkdir-p home)
+ (setenv "HOME" home))
+ (for-each make-file-writable (find-files "."))
+ (copy-recursively (assoc-ref inputs "python-testpath")
+ (string-append (getcwd) "/testpath"))
+ (substitute* "pyproject.toml"
+ (("\"testpath\",") ""))
+ (invoke "python" "bootstrap_dev.py")))
+ (replace 'build
+ (lambda _
+ ;; A ZIP archive should be generated, but it fails with "ZIP does
+ ;; not support timestamps before 1980". Luckily,
+ ;; SOURCE_DATE_EPOCH is respected, which we set to some time in
+ ;; 1980.
+ (setenv "SOURCE_DATE_EPOCH" "315532800")
+ (for-each (lambda (toml)
+ (invoke "python3" "-m" "flit"
+ "--debug" "--ini-file" toml
+ "build"))
+ '("testpath/pyproject.toml"
+ "pyproject.toml"))
+ (with-directory-excursion "flit_core"
+ (invoke "python" "build_dists.py"))))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (let ((out (assoc-ref outputs "out")))
+ (delete-file-recursively "./home")
+ (for-each (lambda (wheel)
+ (format #true wheel)
+ (invoke "python" "-m" "pip" "install"
+ wheel (string-append "--prefix=" out)))
+ (append
+ (find-files "flit_core/dist" "\\.whl$")
+ (find-files "dist" "\\.whl$")))))))
+ #:tests? #f)) ; XXX: Check requires network access.
+ (propagated-inputs
+ `(("python-pytoml" ,python-pytoml)
+ ("python-toml" ,python-toml)))
+ (native-inputs
+ `(("python-docutils" ,python-docutils)
+ ("python-responses" ,python-responses)
+ ("python-pygments-github-lexers" ,python-pygments-github-lexers)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-sphinx" ,python-sphinx)
+ ("python-sphinxcontrib-github-alt" ,python-sphinxcontrib-github-alt)
+ ;; This package needs testpath, but testpath also needs flit...
+ ("python-testpath"
+ ,(let ((name "python-testpath")
+ (version "0.4.4"))
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jupyter/testpath")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1fwv4d3p54xx1x942s104irr35lszvv6jnr4nn1scsfvc0m1qmbk")))))))
(home-page "https://flit.readthedocs.io/")
(synopsis
"Simple packaging tool for simple packages")
a text editor and easily understood and used by both programmers and non-programmers.")
(license license:expat))) ; MIT license
+(define-public python-nest-asyncio
+ (package
+ (name "python-nest-asyncio")
+ (version "1.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "nest_asyncio" version))
+ (sha256
+ (base32
+ "1anha29fcijminn5bh2icnx8x7nk39lna9wkc72262i12p2s3idg"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/erdewit/nest_asyncio")
+ (synopsis "Patch asyncio to allow nested event loops")
+ (description
+ "By design @code{asyncio} does not allow its event loop to be nested.
+This presents a practical problem: when in an environment where the event loop
+is already running it's impossible to run tasks and wait for the result. This
+module patches @code{asyncio} to allow nested use of @code{asyncio.run} and
+@code{loop.run_until_complete}.")
+ (license license:bsd-3)))
+
(define-public python-parallel
(package
(name "python-parallel")
(define-public python-djvulibre
(package
(name "python-djvulibre")
- (version "0.8.5")
+ (version "0.8.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-djvulibre" version))
(sha256
- (base32 "1c0lvpg7j2525cv52s3q5sg7hfnakkb8rmghg0jc02gshsxmrj4f"))))
+ (base32 "089smpq29ll0z37lnq26r2f72d31i33xm9fw9pc6hlcsm6nbjbiv"))))
(build-system python-build-system)
(native-inputs
`(("ghostscript" ,ghostscript)
Django template systems, the filters can be used in any environment.")
(license license:bsd-3)))
+(define-public python-ld
+ (package
+ (name "python-ld")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ld" version))
+ (sha256
+ (base32
+ "1k4ydp5rgkv4985v459kcl06i1igjm1ywvh2vkbi9ck1zyyri1z5"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-six" ,python-six)))
+ (home-page "https://github.com/nir0s/ld")
+ (synopsis "OS platform information API")
+ (description
+ "The ld package provides information about the GNU/Linux distribution it
+runs on, such as a reliable machine-readable ID, or version information.")
+ (license license:asl2.0)))
+
+(define-public python-quicktions
+ (package
+ (name "python-quicktions")
+ (version "1.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "quicktions" version))
+ (sha256
+ (base32
+ "1px21a6x527i1bsr2p6bbf3jziqpvd1vjkvvzh13gsy4iip0yvzn"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; This file is generated by Cython.
+ (delete-file "src/quicktions.c") #t))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'cythonize-sources
+ (lambda _
+ (with-directory-excursion "src"
+ (invoke "cython" "quicktions.pyx"))))
+ (replace 'check
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest"))
+ #t)))))
+ (native-inputs
+ `(("python-cython" ,python-cython)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/scoder/quicktions")
+ (synopsis "Fast fractions data type for rational numbers")
+ (description
+ "This package provides fast fractions data type for rational numbers. It
+is the cythonized version of @code{fractions.Fraction}.")
+ (license license:psfl)))
+
(define-public python-pathvalidate
(package
(name "python-pathvalidate")