diff options
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r-- | gnu/packages/python-xyz.scm | 859 |
1 files changed, 700 insertions, 159 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index bac90b1e07..ddc697f71b 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -121,7 +121,7 @@ ;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io> ;;; Copyright © 2022, 2023 Wamm K. D. <jaft.r@outlook.com> ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com> -;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> +;;; Copyright © 2022-2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com> ;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> @@ -180,6 +180,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages bioinformatics) #:use-module (gnu packages build-tools) #:use-module (gnu packages check) #:use-module (gnu packages cmake) @@ -342,6 +343,110 @@ range of notification services, such as Telegram, Discord, Slack, Amazon SNS, Gotify, etc.") (license license:bsd-2))) +(define-public python-archspec + (package + (name "python-archspec") + (version "0.2.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/archspec/archspec") + (commit (string-append "v" version)) + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03yfn4b9xg41pd7vls2cils77wkkb9si1h2qqvnkds661fdankqj")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + '(modify-phases %standard-phases + ;; Numba needs a writable dir to cache functions. + (add-before 'build 'set-numba-cache-dir + (lambda _ + (setenv "NUMBA_CACHE_DIR" "/tmp")))))) + (propagated-inputs (list python-boltons + python-cooler + python-ctxcore + python-interlap + python-intervaltree + python-jsonschema + python-networkx + python-numba + python-poetry-core + pyscenic + python-scikit-learn + python-tables + python-typing-extensions)) + (native-inputs (list python-black + python-flake8 + python-isort + python-poetry-core + python-pylint + python-pytest + python-pytest-cov)) + (home-page "https://github.com/archspec/archspec") + (synopsis "Library to query system architecture") + (description + "Archspec offers human-readable labels for system architecture aspects. +These aspects include CPU, network fabrics, etc. In addition, it offers +APIs to detect, query, and compare them.") + (license license:expat))) + +(define-public python-awkward-cpp + (package + (name "python-awkward-cpp") + (version "32") + (source + (origin + (method url-fetch) + (uri (pypi-uri "awkward-cpp" version)) + (sha256 + (base32 "1w11fjkwrian3vll7jhnisl1b6m6rk2rqx0n9d1hzyq6cbw5m35d")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-importlib-resources python-numpy)) + (native-inputs + (list cmake pybind11 python-pytest python-scikit-build-core)) + (home-page "https://github.com/scikit-hep/awkward-1.0") + (synopsis "CPU kernels and compiled extensions for Awkward Array") + (description "Awkward CPP provides precompiled routines for the awkward +package. It is not useful on its own, only as a dependency for awkward.") + (license license:bsd-3))) + +(define-public python-awkward + (package + (name "python-awkward") + (version "2.6.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "awkward" version)) + (sha256 + (base32 "1s280ndr4r2q9qn9c0slan5zw37p41cx8q5z6k6p988afr01c6j8")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + ;; CUDA is and requires proprietary software. + '(list "--ignore-glob=tests-cuda**"))) + (propagated-inputs (list python-awkward-cpp + python-fsspec + python-importlib-metadata + python-numpy + python-packaging + python-typing-extensions)) + (native-inputs + (list python-hatch-fancy-pypi-readme + python-hatchling + python-pytest)) + (home-page "https://github.com/scikit-hep/awkward-1.0") + (synopsis "Manipulate JSON-like data with NumPy-like idioms") + (description "Awkward Array is a library for nested, variable-sized data, +including arbitrary-length lists, records, mixed types, and missing data, +using NumPy-like idioms.") + (license license:bsd-3))) + (define-public python-xmldiff (package (name "python-xmldiff") @@ -984,6 +1089,27 @@ transformation of the plane.") from a docstring rather than the other way around.") (license license:mpl2.0))) +(define-public python-array-api-compat + (package + (name "python-array-api-compat") + (version "1.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "array_api_compat" version)) + (sha256 + (base32 "1bvn92v52h8p2zpinwv5bl1314kdjw3msalj91nczfdbrmay78bl")))) + (build-system pyproject-build-system) + ;; Tests would require all supported array libraries, including pytorch + (arguments (list #:tests? #false)) + (propagated-inputs (list python-numpy)) + (home-page "https://data-apis.org/array-api-compat/") + (synopsis "Array API compatibility wrapper for NumPy et al") + (description + "This package provides a wrapper around @code{NumPy} and other array +libraries to make them compatible with the Array API standard") + (license license:expat))) + (define-public python-cachetools (package (name "python-cachetools") @@ -1033,6 +1159,29 @@ It uses a plain-text database, a location-independent library, and features git integration, command-line support, and a curses-based TUI.") (license license:expat))) +(define-public python-colorcet + (package + (name "python-colorcet") + (version "3.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "colorcet" version)) + (sha256 + (base32 "1sx4m5xbz1k8bm8cr2f3x21dip167k7c1nv35npqla52h76v6899")))) + (build-system pyproject-build-system) + (native-inputs (list python-nbval + python-packaging + python-pytest + python-pytest-cov + python-pytest-mpl)) + (home-page "https://colorcet.holoviz.org/") + (synopsis "Collection of perceptually uniform colormaps") + (description "Colorcet is a collection of perceptually accurate 256-color +colormaps for use with Python plotting programs like Bokeh, Matplotlib, +HoloViews, and Datashader.") + (license license:cc-by4.0))) + (define-public python-colored (package (name "python-colored") @@ -1126,35 +1275,28 @@ into dataclasses.") (define-public python-contourpy (package (name "python-contourpy") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (pypi-uri "contourpy" version)) (sha256 - (base32 "088bhyh6m6q0h637wiq2paqhwn76hqvvbhqwacfx4a1qhv1lcc75")))) + (base32 "1az80zv067rcybm5x93j7rfiakbwiv1h8l58gnki4wjbwb13gfln")))) (build-system pyproject-build-system) (arguments - (list - #:test-flags - ;; All these tests require matplotlib, but matplotlib requires contourpy - ;; now. - '(list "-k" "not test_mypy" - "--ignore=tests/test_config.py" - "--ignore=tests/test_filled.py" - "--ignore=tests/test_lines.py" - "--ignore=tests/test_renderer.py"))) - (propagated-inputs (list python-mypy - python-numpy - python-pillow - python-pytest - python-pytest-cov - python-pytest-xdist - python-selenium - python-sphinx - python-sphinx-copybutton - python-wurlitzer)) - (native-inputs (list meson-python pybind11-2.10 pkg-config)) + ;; Image tests require matplotlib and create a circular dependency. + (list #:test-flags + #~(list "-m" "not image"))) + (propagated-inputs + (list python-numpy)) + (native-inputs + (list cmake + meson-python/newer + pkg-config + pybind11 + python-pytest + python-pytest-cov + python-wurlitzer)) (home-page "https://contourpy.readthedocs.io/") (synopsis "Python library for calculating contours of 2D quadrilateral grids") @@ -1836,6 +1978,24 @@ class.") library.") (license license:expat))) +(define-public python-slicerator + (package + (name "python-slicerator") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "slicerator" version)) + (sha256 + (base32 "0ik0bmh18zgffd9kx53254jp3yyih6zcmd8kfb080xnqbizhl0a4")))) + (build-system pyproject-build-system) + (home-page "https://github.com/soft-matter/slicerator") + (synopsis "Lazy-loading, fancy-sliceable iterable") + (description + "This package provides a lazy-loading, fancy-sliceable iterable. Think +of it like a generator that is \"reusable\" and has a length.") + (license license:bsd-3))) + (define-public python-slixmpp (package (name "python-slixmpp") @@ -4000,7 +4160,7 @@ server.") (define-public python-openpyxl (package (name "python-openpyxl") - (version "3.0.9") + (version "3.0.10") (source (origin ;; We use the upstream repository, as the tests are not included in the @@ -4011,13 +4171,8 @@ server.") (changeset version))) (file-name (string-append name "-" version "-checkout")) (sha256 - (base32 "1p8xvc2gjw6zyzbd7qdvc3x178sm00ymrbyh9539l4fpzgxh0j9c")))) - (build-system python-build-system) - (arguments - `(#:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "pytest")))))) + (base32 "0f8ym32vdn8wyziiy5bz8iiwvgj7dlccy86wkfcn5syqgivgqnv9")))) + (build-system pyproject-build-system) (native-inputs (list python-lxml python-pillow python-pytest)) (propagated-inputs (list python-et-xmlfile python-jdcal)) (home-page "https://openpyxl.readthedocs.io") @@ -5181,13 +5336,13 @@ structure is left untouched.") (define-public python-exif-read (package (name "python-exif-read") - (version "2.1.2") + (version "3.0.0") (source (origin (method url-fetch) (uri (pypi-uri "ExifRead" version)) (sha256 (base32 - "1b90jf6m9vxh9nanhpyvqdq7hmfx5iggw1l8kq10jrs6xgr49qkr")))) + "191c7sa0rca8wkspfq8nlfa6davh743mqkzrcayz5gcx2rja7i8a")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; no tests (home-page "https://github.com/ianare/exif-py") @@ -6077,26 +6232,17 @@ possible.") for Python.") (license license:bsd-3))) - (define-public python-jinja2 (package (name "python-jinja2") - (version "3.1.1") + (version "3.1.2") (source (origin (method url-fetch) (uri (pypi-uri "Jinja2" version)) (sha256 - (base32 - "1saawzys14l1p4kafs7hkihmnvqjq8fwxjmkjiqx3jq1nm5ys2v4")))) - (build-system python-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (if tests? - (invoke "pytest" "-vv") - (format #t "test suite not run~%"))))))) + (base32 "0lp86yadzf8dph67f6g3yxmvnhrzzi863z58jmsrx2j059q1ld9i")))) + (build-system pyproject-build-system) (native-inputs (list python-pytest)) (propagated-inputs (list python-markupsafe)) (home-page "https://jinja.palletsprojects.com/") @@ -6106,7 +6252,6 @@ for Python.") written in pure Python.") (license license:bsd-3))) - (define-public python-jinja2-time (package (name "python-jinja2-time") @@ -6834,6 +6979,24 @@ text styles of documentation.") "Pygments is a syntax highlighting package written in Python.") (license license:bsd-2))) +(define-public python-vdf + (package + (name "python-vdf") + (version "3.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "vdf" version)) + (sha256 + (base32 + "1bz2gn04pl6rj2mawlzlirz1ygg4rdypq0pxbyg018873vs1jm7x")))) + (build-system pyproject-build-system) + (home-page "https://github.com/ValvePython/vdf") + (synopsis "Work with Valve's VDF text format") + (description "This package provides @code{python-vdf}, a library for +working with Valve's VDF text format.") + (license license:expat))) + (define-public python-pygments-github-lexers (package (name "python-pygments-github-lexers") @@ -7607,6 +7770,9 @@ errors when data is invalid.") (arguments (list #:test-flags #~(list "--ignore=tests/test_docs.py" ; no pytest_examples + ;; These tests include hashes that keep changing depending on + ;; package versions. + "--ignore=tests/benchmarks/test_north_star.py" ;; need python-email-validator >= 2.0.0 "-k not test_fastapi_startup_perf") #:phases @@ -8128,13 +8294,13 @@ writing C extensions for Python as easy as Python itself.") ;; Cython 3 is not officially released yet, so distinguish the name ;; for now. (name "python-cython-next") - (version "3.0.0b2") + (version "3.0.8") (source (origin (method url-fetch) (uri (pypi-uri "Cython" version)) (sha256 (base32 - "0mb7gpavs87am29sbk6yqznsybxj9dk4fwj4370j9sbrcmjq0hkc")))) + "1rlxscrn4bgdlbhjjikknbz5s2hyvn2rjfparry5wxnmiwyl4cw3")))) (properties '()))) ;; NOTE: when upgrading numpy please make sure that python-numba, @@ -8443,6 +8609,47 @@ easily generalized like @dfn{compressed sparse row/column}(CSR/CSC) and depends on @code{scipy.sparse} for some computations.") (license license:bsd-3))) +(define-public python-multiscale-spatial-image + (package + (name "python-multiscale-spatial-image") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "multiscale_spatial_image" version)) + (sha256 + (base32 "01kcagjy797hbz5an9cp8wcl5krgp21yb7ibfimvpidb3jp5lfhb")))) + (build-system pyproject-build-system) + ;; All interesting tests require file downloads over IPFS. + (arguments (list #:tests? #false)) + (propagated-inputs + (list `(,insight-toolkit "python") + python-dask + python-dask-image + python-numpy + python-spatial-image + python-xarray + python-xarray-datatree)) + (native-inputs + (list python-fsspec + python-hatchling + python-ipfsspec + python-jsonschema + python-nbmake + python-pooch + python-pytest + python-pytest-mypy + python-urllib3 + python-zarr)) + (home-page "https://github.com/spatial-image/multiscale-spatial-image") + (synopsis "Multi-dimensional spatial image data structure") + (description + "This package lets you generate a multiscale, chunked, multi-dimensional +spatial image data structure that can serialized to OME-NGFF. Each scale is a +scientific Python Xarray spatial-image Dataset, organized into nodes of an +Xarray Datatree.") + (license license:asl2.0))) + (define-public python-spectra (package (name "python-spectra") @@ -8626,6 +8833,34 @@ tracebacks and better introspection than Python's standard @command{pdb} debugger, with which it shares the same interface.") (license license:bsd-3))) +(define-public python-ipfsspec + (package + (name "python-ipfsspec") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ipfsspec" version)) + (sha256 + (base32 "1y4ad9schc76j2lynm7vpwi4q4jzi9vv843zfpisbp8zqgm0rr7l")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + '(list "-m not local_gw" + ;; Require local gateway + "--ignore=test/test_gateway.py" + ;; Require internet + "--ignore=test/test_async.py" + "--ignore=test/test_ipfs.py"))) + (propagated-inputs (list python-aiohttp python-fsspec python-requests)) + (native-inputs (list python-pytest python-pytest-asyncio)) + (home-page "https://github.com/fsspec/ipfsspec") + (synopsis "Read-only implementation of fsspec for IPFS") + (description "This package provides a read-only implementation of +@code{fsspec} for IPFS.") + (license license:expat))) + (define-public python-pdbpp ;; The latest release lacks support for Python 3.10; use the latest commit ;; of the master branch (see: https://github.com/pdbpp/pdbpp/issues/503). @@ -9485,6 +9720,35 @@ Python code against some of the style conventions in @url{http://www.python.org/dev/peps/pep-0008/,PEP 8}.") (license license:expat))) +(define-public python-pyct + (package + (name "python-pyct") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyct" version)) + (sha256 + (base32 "1856dbrcpc0nxxhlfh3dqzz7xxn5sdi600q45hsprqyqrg2lm7yx")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + ;; These tests want to download example data from the internet. + '(list "-k" (string-append + "not test_examples_with_use_test_data" + " and not test_examples_using_test_data_and_force_with_prexisting_content_in_target" + " and not test_fetch_data_using_test_data_with_no_file_in_data_copies_from_stubs" + " and not test_fetch_data_using_test_data_and_force_with_file_in_data_over_writes")))) + (propagated-inputs (list python-param python-pyyaml)) + (native-inputs (list python-flake8 python-pytest)) + (home-page "https://github.com/holoviz-dev/pyct") + (synopsis "Common packaging tasks") + (description + "This Python package provides utilities to run common packaging tasks, +e.g. copy examples, fetch data, etc.") + (license license:bsd-3))) + (define-public python-multidict (package (name "python-multidict") @@ -13005,17 +13269,41 @@ approach.") (version "5.32.2") (source (origin - (method url-fetch) - (uri (pypi-uri "snakemake" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/snakemake/snakemake") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "13013gdavwvyj1qr9xfi9fpwhb3km8c3z53bja5b7ic3sb2z6dgz")))) - (build-system python-build-system) + (base32 "0nxp4z81vykv07kv2b6zrwk7ns8s10zqsb7vcignp8695yq3nlcm")))) + (build-system pyproject-build-system) (arguments - ;; TODO: Package missing test dependencies. (list - #:tests? #f + #:test-flags + '(list + ;; We have no TES support. + "--ignore=tests/test_tes.py" + ;; This test attempts to change S3 buckets on AWS and fails + ;; because there are no AWS credentials. + "--ignore=tests/test_tibanna.py" + ;; It's a similar story with this test, which requires access + ;; to the Google Storage service. + "--ignore=tests/test_google_lifesciences.py") #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'tabulate-compatibility + (lambda _ + (substitute* "snakemake/dag.py" + (("\"job\": rule,") + "\"job\": rule.name,")))) + (add-after 'unpack 'patch-version + (lambda _ + (substitute* "setup.py" + (("version=versioneer.get_version\\(\\)") + (format #f "version=~s" #$version))) + (substitute* '("snakemake/_version.py" + "versioneer.py") + (("0\\+unknown") #$version)))) ;; For cluster execution Snakemake will call Python. Since there is ;; no suitable PYTHONPATH set, cluster execution will fail. We fix ;; this by calling the snakemake wrapper instead. @@ -13023,7 +13311,9 @@ approach.") (lambda _ (substitute* "snakemake/executors/__init__.py" (("\\{sys.executable\\} -m snakemake") - (string-append #$output "/bin/snakemake")))))))) + (string-append #$output "/bin/snakemake"))))) + (add-before 'check 'pre-check + (lambda _ (setenv "HOME" "/tmp")))))) (propagated-inputs (list python-appdirs python-configargparse @@ -13041,6 +13331,12 @@ approach.") python-requests python-toposort python-wrapt)) + (native-inputs + (list git-minimal + python-wrapper + python-pytest + python-pandas + python-requests-mock)) (home-page "https://snakemake.readthedocs.io") (synopsis "Python-based execution environment for make-like workflows") (description @@ -13079,6 +13375,11 @@ Python style, together with a fast and comfortable execution environment.") (substitute* "snakemake/executors/__init__.py" (("\\{sys.executable\\} -m snakemake") (string-append #$output "/bin/snakemake"))))) + (add-after 'unpack 'tabulate-compatibility + (lambda _ + (substitute* "snakemake/dag.py" + (("\"job\": rule,") + "\"job\": rule.name,")))) (add-after 'unpack 'patch-version (lambda _ (substitute* "setup.py" @@ -13170,6 +13471,12 @@ Python style, together with a fast and comfortable execution environment.") (string-append "tibanna_args.command = command.replace('" #$output "/bin/snakemake', 'python3 -m snakemake')"))))) + ;; No longer needed with 7.15.2+ + (add-after 'unpack 'tabulate-compatibility + (lambda _ + (substitute* "snakemake/dag.py" + (("\"job\": rule,") + "\"job\": rule.name,")))) (add-after 'unpack 'patch-version (lambda _ (substitute* "setup.py" @@ -13976,7 +14283,7 @@ plugin for flake8 to check PEP-8 naming conventions.") (define-public python-pyproject-metadata (package (name "python-pyproject-metadata") - (version "0.6.1") + (version "0.7.1") (source (origin (method git-fetch) @@ -13986,7 +14293,7 @@ plugin for flake8 to check PEP-8 naming conventions.") (file-name (git-file-name name version)) (sha256 (base32 - "00zahgw9zjfqwf0218bj5k732aibnn68cq1p8f0wmbirb7fy5k31")))) + "0yvs59ymz5gdix34a95wxlxvk9bnvjgrzsnmnc3ws7whpfv3yasm")))) (build-system pyproject-build-system) (propagated-inputs (list python-packaging)) (native-inputs (list python-pypa-build python-pytest python-tomli)) @@ -15475,14 +15782,14 @@ tasks, sockets, files, locks, and queues.") (define-public python-tables (package (name "python-tables") - (version "3.6.1") + (version "3.7.0") (source (origin (method url-fetch) (uri (pypi-uri "tables" version)) (sha256 (base32 - "0j8vnxh2m5n0cyk9z3ndcj5n1zj5rdxgc1gb78bqlyn2lyw75aa9")) + "1zp1qmas4pgcag9sn0gwd40c6ibn9bg056d6ckjq7agjsrx8hap9")) (modules '((guix build utils))) (snippet '(begin @@ -15539,7 +15846,8 @@ tasks, sockets, files, locks, and queues.") (string-append "--hdf5=" (assoc-ref inputs "hdf5")))))))) (propagated-inputs - (list python-numexpr python-numpy)) + (list python-numexpr python-numpy python-packaging + python-py-cpuinfo)) (native-inputs (list python-cython pkg-config)) (inputs @@ -16254,24 +16562,49 @@ a hash value.") (define-public python-termcolor (package (name "python-termcolor") - (version "1.1.0") + (version "2.4.0") (source (origin (method url-fetch) (uri (pypi-uri "termcolor" version)) (sha256 (base32 - "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x")))) - (build-system python-build-system) + "0ykvmjrsjr5w4h63x7qmx6rsdb1p5a4nv8wgg7nl3b688xhfbfda")))) + (build-system pyproject-build-system) (arguments - ;; There are no tests. - `(#:tests? #f)) + (list + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'fix-pyproject + (lambda _ + ;; The build system doesn't like to hear of Python 3.13. + (substitute* "pyproject.toml" + ((" \"Programming Language .*") ""))))))) + (native-inputs + (list python-hatch-vcs + python-hatchling + python-pytest + python-pytest-cov)) (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.") (license license:expat))) +(define-public python-termcolor-1 + (package + (inherit python-termcolor) + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "termcolor" version)) + (sha256 + (base32 + "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x")))) + ;; There are no tests + (arguments (list #:tests? #false)))) + (define-public python-terminaltables (package (name "python-terminaltables") @@ -17552,8 +17885,11 @@ config files.") (add-after 'unpack 'loosen-requirements (lambda _ (substitute* "requirements/base.txt" - (("antlr4-python3-runtime==") - "antlr4-python3-runtime>="))))))) + (("antlr4-python3-runtime==.*") + "antlr4-python3-runtime >=4.9\n")) + ;; Ignore deprecation warnings. + (substitute* "pyproject.toml" + (("-Werror") ""))))))) (propagated-inputs (list java-antlr4-runtime-python python-pydevd python-pyyaml)) @@ -17606,15 +17942,17 @@ connection pool.") (define-public python-argparse-manpage (package (name "python-argparse-manpage") - (version "1.1") + (version "4.5") (source (origin (method url-fetch) (uri (pypi-uri "argparse-manpage" version)) (sha256 (base32 - "0blh31zns68anina9lba5wh81d1414s97p60zw5l0d0shhh0wj5p")))) - (build-system python-build-system) + "1nq4sq1zk1xzdsqq61hd27jhj978ys136aba1zjg02x1g0c0cg11")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest python-tomli)) (home-page "https://github.com/praiskup/argparse-manpage") (synopsis "Build manual page from Python's ArgumentParser object") (description @@ -17713,7 +18051,7 @@ for atomic file system operations.") (define-public python-qstylizer (package (name "python-qstylizer") - (version "0.1.10") + (version "0.2.3") (source (origin (method git-fetch) @@ -17722,25 +18060,22 @@ for atomic file system operations.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0zvkn6g1dn51kkw33v8qrlnwlmf5h6sw1ay3bh14ifjr8b9xsjjz")))) - (build-system python-build-system) + (base32 "1n11f63pbqzmb7sj9cj0jq9kv8sfinjqhg7fs0mnfsrici8435br")))) + (build-system pyproject-build-system) (arguments - `(#:test-target "pytest" - #:phases - (modify-phases %standard-phases - (add-before 'build 'set-pbr-version - (lambda _ - (setenv "PBR_VERSION" "3.0.1")))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'set-pbr-version + (lambda _ + (setenv "PBR_VERSION" "3.0.1")))))) (native-inputs (list python-pbr python-pytest python-pytest-catchlog - python-pytest-cov - python-pytest-mock - python-pytest-runner - python-pytest-xdist)) + python-pytest-mock)) (propagated-inputs - (list python-inflection python-tinycss)) + (list python-inflection python-tinycss2)) (home-page "https://github.com/blambright/qstylizer") (synopsis "Qt stylesheet generation utility for PyQt/PySide") (description "@code{qstylizer} is a Python package designed to help with @@ -17789,14 +18124,16 @@ applications.") (package (name "python-click-default-group") (version "1.2.4") - (source (origin - (method url-fetch) - (uri (pypi-uri "click_default_group" version)) - (sha256 - (base32 - "07i5w47lbihcb3cvs08vynz725z9skvhhzrarnk6qi8dxjckqgzb")))) + (source + (origin + (method git-fetch) ; no tests in PyPI release + (uri (git-reference + (url "https://github.com/click-contrib/click-default-group") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06h12qwg0lhvxlgfm9768afibwp8j6r3r440v630a30bv0nkhngm")))) (build-system pyproject-build-system) - (arguments (list #:tests? #false)) ;there are none (propagated-inputs (list python-click)) (native-inputs @@ -18026,7 +18363,7 @@ with a new public API, and RPython support.") (define-public python-hy (package (name "python-hy") - (version "0.26.0") + (version "0.28.0") (source (origin (method git-fetch) ; no tests in PyPI release @@ -18035,7 +18372,7 @@ with a new public API, and RPython support.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1czhh7s81sg0nrnf4zv0ydqi4f7s6sywf4ks4fd59vpx441ca39v")))) + (base32 "0fs9ydqlbhmp4l3lf8ap8bksbpmlscm6gz7zf9bv2kmcldkjlzsw")))) (build-system python-build-system) (arguments (list @@ -18062,7 +18399,7 @@ with a new public API, and RPython support.") " and not test_macro_require" " and not test_requires_pollutes_core")))))))) (native-inputs - (list python-pytest python-wheel)) + (list python-pytest-next python-wheel)) (propagated-inputs (list python-funcparserlib)) (home-page "https://docs.hylang.org/en/stable/") @@ -19079,13 +19416,13 @@ applications.") (define-public python-kombu (package (name "python-kombu") - (version "5.3.6") + (version "5.3.7") (source (origin (method url-fetch) (uri (pypi-uri "kombu" version)) (sha256 - (base32 "1n9i4hj1h3aivgy82l7accyjh1rqn20am00152l5syhl19bmpnpk")))) + (base32 "1gwp3b7w7jhsas40655pa9nlblm12irjapfkx0flmhamlgclq701")))) (build-system pyproject-build-system) (arguments (list #:test-flags @@ -20456,18 +20793,15 @@ It uses LR parsing and does extensive error checking.") (define-public python-tabulate (package (name "python-tabulate") - (version "0.8.9") + (version "0.9.0") (source (origin (method url-fetch) (uri (pypi-uri "tabulate" version)) (sha256 (base32 - "19qkdz8xwk5jxa5xn53mnk76qnh4ysm81vzj664jw1b0azr167gb")))) - (build-system python-build-system) - (arguments - ;; FIXME: The pypi release tarball is missing a 'test/common.py' - ;; and the latest release is not tagged in the upstream repository. - '(#:tests? #f)) + "0g4b0qnbw55igbpxfxzciqvb6w8ncw4gmcgyq0lyavcnylmv3580")))) + (build-system pyproject-build-system) + (native-inputs (list python-pytest python-setuptools-scm)) (home-page "https://bitbucket.org/astanin/python-tabulate") (synopsis "Pretty-print tabular data") (description @@ -21164,18 +21498,16 @@ inspection of types defined in the Python standard typing module.") (define-public python-lazy-loader (package (name "python-lazy-loader") - (version "0.3") + (version "0.4") (source (origin (method url-fetch) (uri (pypi-uri "lazy_loader" version)) (sha256 (base32 - "0dwghffnsjjf4pi4gwbl43rx04jmap375hdamafs5cpm6j78js1v")))) + "1lacaz292qxpgw6kxiirkx6sv9c5883nq4ssm3hs94cvb2153is7")))) (build-system pyproject-build-system) (native-inputs - (list python-pre-commit - python-pytest - python-pytest-cov)) + (list python-numpy python-pytest)) (propagated-inputs (list python-flit-core)) (home-page "https://scientific-python.org/specs/spec-0001/") @@ -26803,18 +27135,52 @@ inferring type information using compile-time introspection.") (define-public python-pooch (package (name "python-pooch") - (version "1.3.0") + (version "1.8.1") (source (origin (method url-fetch) (uri (pypi-uri "pooch" version)) (sha256 - (base32 "1618adsg9r8fsv422sv35z1i723q3a1iir5v7dv2sklh4pl4im1h")))) - (build-system python-build-system) + (base32 "0w32fhfp67k0ip0gxjpw8kxdx9ghybxmqkv9sbwy99nrgl4n7vr7")))) + (build-system pyproject-build-system) (arguments - `(#:tests? #f)) ;requires online data - (propagated-inputs - (list python-appdirs python-packaging python-requests)) + (list + #:test-flags + '(list "-k" + (string-append + ;; We don't have the test archives + "not test_decompress" + " and not test_multiple_unpacking" + " and not test_unpack_members_with_leading_dot" + " and not test_unpacking" + " and not test_unpacking_members_then_no_members" + " and not test_unpacking_wrong_members_then_no_members" + ;; These all require access to the internet + " and not test_check_availability" + " and not test_check_availability_invalid_downloader" + " and not test_check_availability_on_ftp" + " and not test_create_and_fetch" + " and not test_downloader_arbitrary_progressbar" + " and not test_fetch_with_downloader" + " and not test_figshare_data_repository_versions" + " and not test_load_registry_from_doi" + " and not test_pooch_corrupted" + " and not test_pooch_custom_url" + " and not test_pooch_download" + " and not test_pooch_download_retry" + " and not test_pooch_download_retry_fails_eventually" + " and not test_pooch_download_retry_off_by_default" + " and not test_pooch_logging_level" + " and not test_pooch_update" + " and not test_retrieve" + " and not test_retrieve_default_path" + " and not test_retrieve_fname" + " and not test_stream_download") + "--ignore=pooch/tests/test_downloaders.py"))) + (propagated-inputs + (list python-packaging python-platformdirs python-requests)) + (native-inputs + (list python-pytest python-setuptools-scm)) (home-page "https://github.com/fatiando/pooch") (synopsis "Manage your Python library's sample data files") (description @@ -27288,19 +27654,23 @@ codecs for use in data storage and communication applications.") (define-public python-zarr (package (name "python-zarr") - (version "2.17.1") + (version "2.17.2") (source (origin (method url-fetch) (uri (pypi-uri "zarr" version)) (sha256 (base32 - "0qb2wj60i7v1c95k6m0pskx20ss6dxrj3ym0d7z4c98jfah3ljsn")))) + "1kjj0pk0s6306ljrig77m39zqdy32ch4nyja5lalab9l9v5sdfic")))) (build-system pyproject-build-system) (arguments (list #:test-flags - #~(list "-n" "auto") + #~(list "-n" "auto" + ;; This tests are flaky. The pass several times on my laptop + ;; but occasionally fail. They fail pretty reliably on the + ;; build farm. + "-k not test_lazy_loader and not open_array") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'disable-service-tests @@ -27331,7 +27701,7 @@ N-dimensional arrays for Python.") (define-public python-anndata (package (name "python-anndata") - (version "0.8.0") + (version "0.10.7") (source (origin ;; The tarball from PyPi doesn't include tests. @@ -27342,29 +27712,39 @@ N-dimensional arrays for Python.") (file-name (git-file-name name version)) (sha256 (base32 - "0v7npqrg1rdm8jzw22a45c0mqrmsv05r3k88i3lhzi0pzzxca1i1")))) + "1i08rm1xnsnq12rjv4virgdx61bra1gsfagjdq0kcpz8npxqa0as")))) (build-system pyproject-build-system) (arguments (list #:test-flags - '(list "-k" "not concatenation.rst") + '(list "-k" (string-append "not concatenation.rst" + ;; fixture 'mocker' not found + " and not test_consecutive_bool")) #:phases #~(modify-phases %standard-phases ;; Doctests require scanpy from (gnu packages bioinformatics) (add-after 'unpack 'disable-doctests (lambda _ + (substitute* "conftest.py" + (("import pytest") + (string-append "import pytest\nimport _pytest\n")) + (("pytest.DoctestItem") + "_pytest.doctest.DoctestItem")) (substitute* "pyproject.toml" (("--doctest-modules") "")))) (add-before 'build 'set-version (lambda _ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version) - (substitute* "anndata/_metadata.py" - (("__version__ =.*") - (string-append "__version__ = \"" #$version "\"\n"))) ;; ZIP does not support timestamps before 1980. - (setenv "SOURCE_DATE_EPOCH" "315532800")))))) + (setenv "SOURCE_DATE_EPOCH" "315532800"))) + ;; Numba needs a writable dir to cache functions. + (add-before 'check 'set-numba-cache-dir + (lambda _ + (setenv "NUMBA_CACHE_DIR" "/tmp")))))) (propagated-inputs - (list python-h5py + (list python-array-api-compat + python-exceptiongroup ;only for Python <3.11 + python-h5py python-importlib-metadata python-natsort python-numcodecs @@ -27374,9 +27754,18 @@ N-dimensional arrays for Python.") python-scikit-learn python-zarr)) (native-inputs - (list python-boltons + (list python-awkward + python-boltons + python-dask + python-distributed + python-hatchling + python-hatch-vcs python-joblib + python-loompy + python-matplotlib python-pytest + python-pytest-doctestplus + python-pytest-xdist python-toml python-flit python-setuptools-scm)) @@ -27722,22 +28111,17 @@ they use the same path.") (define-public python-partd (package (name "python-partd") - (version "1.2.0") + (version "1.4.1") (source (origin (method url-fetch) (uri (pypi-uri "partd" version)) (sha256 (base32 - "1sy3vdfyyx3bc5590zb7gwpsmimqz8m992x9hsydq8nmhixqjrxa")))) + "0rvz2si6lbyhk7hj804gilq2y2bfdi33q81iwwkmgskgkva5vhjn")))) (build-system pyproject-build-system) (propagated-inputs - (list python-blosc - python-locket - python-numpy - python-pandas - python-pyzmq - python-toolz)) + (list python-locket python-numpy python-pandas python-pyzmq python-toolz)) (home-page "https://github.com/dask/partd/") (synopsis "Appendable key-value storage") (description "Partd stores key-value pairs. Values are raw bytes. We @@ -27792,16 +28176,16 @@ decisions with any given backend.") (define-public python-dask (package (name "python-dask") - (version "2023.7.0") + (version "2024.4.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/dask/dask/") - (commit "8523b3bae2ec0183d9d92cc536a3405f15189b7e"))) + (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1x617m0jlc63v938kqga9mhflhac3aj1ylq5mkpf2g9pd9x2hcbz")))) + (base32 "1kaxlvqd5hknlb0awck5vcw9b18nl8rpxx4j78js8p9d0y5rsgw8")))) (build-system pyproject-build-system) (arguments (list @@ -27809,9 +28193,24 @@ decisions with any given backend.") #:test-flags #~(list "-n" "auto" "-m" "not gpu and not slow and not network" + ;; These all fail with different hashes. Doesn't seem + ;; problematic. + "--ignore-glob=**/test_tokenize.py" + ;; ORC tests crash Python with a failure to find the global + ;; localtime file. See also + ;; https://github.com/apache/arrow/issues/40633. + "--ignore-glob=**/test_orc.py" "-k" (string-append ;; This one cannot be interrupted. "not test_interrupt" + ;; This one fails with "local variable 'ctx' referenced + ;; before assignment". Maybe enable this in later + ;; versions (or when pandas has been upgraded. + " and not test_dt_accessor" + ;; This fails when dask-expr is among the inputs. + " and not test_groupby_internal_repr" + ;; This fails with different job ids. + " and not test_to_delayed_optimize_graph" ;; This one expects a deprecation warning that never ;; comes. " and not test_RandomState_only_funcs") @@ -27846,11 +28245,17 @@ parentdir_prefix = dask- ;; This option is not supported by our version of pytest. (substitute* "pyproject.toml" (("--cov-config=pyproject.toml") "")))) + (add-after 'unpack 'patch-pyproject + (lambda _ + ;; We use pyarrow > 14 + (substitute* "pyproject.toml" + (("\"pyarrow_hotfix\",") "")))) (add-before 'check 'pre-check (lambda _ (chdir "/tmp")))))) (propagated-inputs (list python-click ;needed at runtime python-cloudpickle + python-dask-expr python-fsspec python-importlib-metadata ;needed at runtime for dask/_compatibility.py python-numpy @@ -27877,6 +28282,66 @@ larger-than-memory or distributed environments. These parallel collections run on top of the dynamic task schedulers.") (license license:bsd-3))) +(define-public python-dask/bootstrap + (package + (inherit python-dask) + (properties '((hidden? . #true))) + (arguments + (substitute-keyword-arguments (package-arguments python-dask) + ((#:tests? _ #t) #f))) + (propagated-inputs + (modify-inputs (package-propagated-inputs python-dask) + (delete "python-dask-expr"))))) + +(define-public python-dask-image + (package + (name "python-dask-image") + (version "2023.8.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "dask-image" version)) + (sha256 + (base32 "1dh49lvirf5fbgq5hw1c4972czg5w12fg9y689cinyjjn22qk6jy")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + ;; Flake8 attribute errors. + '(list "--ignore=dask_image/ndfilters/_threshold.py" + "--ignore=dask_image/ndfourier/_utils.py" + "--ignore=dask_image/ndinterp/__init__.py" + "--ignore=dask_image/ndmeasure/__init__.py" + "--ignore=dask_image/ndmeasure/_utils/_find_objects.py" + "--ignore=dask_image/ndmeasure/_utils/_label.py" + "--ignore=tests/test_dask_image/test_ndfilters/test__conv.py" + "--ignore=tests/test_dask_image/test_ndfourier/test_core.py" + "--ignore=tests/test_dask_image/test_ndinterp/test_spline_filter.py" + "--ignore=tests/test_dask_image/test_ndmeasure/test_core.py" + "--ignore=tests/test_dask_image/test_ndmeasure/test_find_objects.py"))) + (propagated-inputs (list python-dask + python-numpy + python-pandas-2 + python-pims + python-scipy + python-tifffile)) + (native-inputs + (list python-pytest-flake8 python-pytest)) + (home-page "https://github.com/dask/dask-image") + (synopsis "Distributed image processing") + (description "This is a package for image processing with Dask arrays. +Features: + +@itemize +@item Provides support for loading image files. +@item Implements commonly used N-D filters. +@item Includes a few N-D Fourier filters. +@item Provides some functions for working with N-D label images. +@item Supports a few N-D morphological operators. +@end itemize +") + (license license:bsd-3))) + (define-public python-ilinkedlist (package (name "python-ilinkedlist") @@ -28709,7 +29174,7 @@ time-or-computationally-expensive properties quick and easy and works in Python (define-public python-folium (package (name "python-folium") - (version "0.13.0") + (version "0.16.0") (source (origin ;; PyPI has a ".whl" file but not a proper source release. @@ -28720,12 +29185,46 @@ time-or-computationally-expensive properties quick and easy and works in Python (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "00adpdi1890zzzg7ffp04hmx59igdcdpyqa129vnmwqh54b5a006")))) - (build-system python-build-system) + (base32 "1dbndpqpd7c5pmc58yxz7m6bsll377fz7xqpzh58wm0hjn6ylc00")))) + (build-system pyproject-build-system) + (arguments + (list #:test-flags + ;; This file requires Selenium. + #~(list "--ignore" "tests/selenium/test_selenium.py" + "-k" (string-append + ;; The tests below also require Selenium. + "not test__repr_png_is_bytes" + " and not test_valid_png" + " and not test_valid_png_size" + " and not test_geojson" + " and not test_heat_map_with_weights" + ;; This performs an online request. + " and not test_json_request" + ;; AssertionError. + " and not test_minimap")) + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'pretend-version + ;; The version string is usually derived via setuptools-scm, + ;; but without the git metadata available, the version string + ;; is set to '0.0.0'. + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" + #$(package-version this-package))))))) (propagated-inputs - (list python-branca python-jinja2 python-numpy python-requests)) + (list python-branca + python-jinja2 + python-numpy + python-requests + python-xyzservices)) (native-inputs - (list python-pytest)) + (list python-geopandas + python-nbconvert + python-pandas + python-pillow + python-pytest + python-selenium + python-setuptools-scm)) (home-page "https://github.com/python-visualization/folium") (synopsis "Make beautiful maps with Leaflet.js & Python") (description "@code{folium} makes it easy to visualize data that’s been @@ -28791,7 +29290,7 @@ repository is provided via Python API and as a compressed JSON file.") (package ;; This is a command-line tool, so no "python-" prefix. (name "jube") - (version "2.2.2") + (version "2.6.1") (source (origin (method url-fetch) (uri (string-append @@ -28799,9 +29298,10 @@ repository is provided via Python API and as a compressed JSON file.") version)) (sha256 (base32 - "0xq4k1q63s1p6swgyp61vahlrd1fqmgbm0gm5kpj8ikwy0yc0nqk")) + "0r5d2gdqa0f4c468q3k25ycw1k2g76gg8fyiln4ni98fvfsbx3il")) (file-name (string-append "jube-" version ".tar.gz")))) (build-system python-build-system) + (native-inputs (list python-pyyaml)) ; pyyaml is needed for tests (home-page "https://apps.fz-juelich.de/jsc/jube/jube2/docu/index.html") (synopsis "Benchmarking environment") (description @@ -31755,6 +32255,48 @@ heterogeneous and multi-platform clusters (including clusters running other applications with variable CPU loads).") (license license:bsd-3))) +(define-public python-param + (package + (name "python-param") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "param" version)) + (sha256 + (base32 "07z7az7xg8pzjrmaf928is7n6siw9v9nxfmf0a5vgqj7nl40pcx7")))) + (build-system pyproject-build-system) + (native-inputs + (list python-cloudpickle + python-coverage + python-hatchling + python-hatch-vcs + python-ipython + python-jsonschema + python-nbval + python-nest-asyncio + python-numpy + python-odfpy + python-openpyxl + python-pandas + python-pyarrow + python-pytest + python-pytest-asyncio + python-pytest-xdist + python-tables + python-xlrd)) + (home-page "https://param.holoviz.org/") + (synopsis + "Make your Python code clearer and more reliable by declaring Parameters") + (description + "Param is a library for handling all the user-modifiable parameters, +arguments, and attributes that control your code. It provides automatic, +robust error-checking while dramatically reducing boilerplate code, letting +you focus on what you want your code to do rather than on checking for all the +possible ways users could supply inappropriate values to a function or +class.") + (license license:bsd-3))) + (define-public python-djitellopy (package (name "python-djitellopy") @@ -32382,7 +32924,7 @@ used to retry a function a given number of times.") (define-public python-pivy (package (name "python-pivy") - (version "0.6.5") + (version "0.6.8") (source (origin (method git-fetch) @@ -32391,20 +32933,20 @@ used to retry a function a given number of times.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0vids7sxk8w5vr73xdnf8xdci71a7syl6cd35aiisppbqyyfmykx")))) + (base32 "00l4r06dwmgn8h29nrl3g3yv33cfyizyylk28x1j95qyj36sggfb")))) (build-system python-build-system) (arguments - `(;; The test suite fails due to an import cycle between 'pivy' and '_coin' - #:tests? #f - #:phases - (modify-phases %standard-phases + (list + ;; The test suite fails due to an import cycle between 'pivy' and '_coin' + #:tests? #f + #:phases + #~(modify-phases %standard-phases (add-after 'unpack 'patch-cmake-include-dirs - (lambda _ - ;; Patch buildsystem to respect Coin3D include directory - (substitute* "CMakeLists.txt" - (("\\$\\{SoQt_INCLUDE_DIRS}") - "${Coin_INCLUDE_DIR};${SoQt_INCLUDE_DIRS}")) - #t))))) + (lambda _ + ;; Patch buildsystem to respect Coin3D include directory + (substitute* "CMakeLists.txt" + (("\\$\\{SoQt_INCLUDE_DIRS}") + "${Coin_INCLUDE_DIR};${SoQt_INCLUDE_DIRS}"))))))) (native-inputs (list cmake swig)) (inputs @@ -32412,7 +32954,6 @@ used to retry a function a given number of times.") qtbase-5 libxi libice - soqt glew coin3d)) (home-page "https://github.com/coin3d/pivy") @@ -35771,7 +36312,7 @@ window managers.") (define-public i3-autotiling (package (name "i3-autotiling") - (version "1.8") + (version "1.9.1") (source (origin (method git-fetch) (uri (git-reference @@ -35780,7 +36321,7 @@ window managers.") (file-name (git-file-name name version)) (sha256 (base32 - "1nsm0gd45ys4ghlzrvjrf0lvcyhvpx58lz8gg325a762wn5a4a72")))) + "010sw3b2nx5cl578drd3xj58wlza76zkzh1jhsp44chg1vvhacrx")))) (build-system python-build-system) (arguments (list #:tests? #f)) ;no tests (native-inputs (list python-wheel)) |