diff options
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r-- | gnu/packages/python-xyz.scm | 433 |
1 files changed, 365 insertions, 68 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 7c19d2409b..f6c4ca076f 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -108,7 +108,7 @@ ;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; Copyright © 2021 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de> ;;; Copyright © 2021 Pradana Aumars <paumars@courrier.dev> -;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> +;;; Copyright © 2021, 2022 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2021 Sébastien Lerique <sl@eauchat.org> ;;; Copyright © 2021 Raphaël Mélotte <raphael.melotte@mind.be> ;;; Copyright © 2021 ZmnSCPxj <ZmnSCPxj@protonmail.com> @@ -120,6 +120,7 @@ ;;; Copyright © 2022 drozdov <drozdov@portalenergy.tech> ;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io> ;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com> +;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -3510,6 +3511,18 @@ with sensible defaults out of the box.") (base32 "0njsm0wn31l21bi118g5825ma5sa3rwn7v2x4wjd7yiiahkri337")))) (arguments `()))) +(define-public python-click-8 + (package (inherit python-click) + (name "python-click") + (version "8.1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "click" version)) + (sha256 + (base32 "0whs38a2i0561kwbgigs6vic9r0a1887m2v1aw3rmv6r2kz0g5s7")))) + (arguments `()))) + (define-public python-cligj (package (name "python-cligj") @@ -5680,7 +5693,7 @@ writing C extensions for Python as easy as Python itself.") (define-public python-numpy-next (package (name "python-numpy-next") - (version "1.21.3") + (version "1.22.3") (source (origin (method url-fetch) @@ -5689,12 +5702,12 @@ writing C extensions for Python as easy as Python itself.") version "/numpy-" version ".tar.gz")) (sha256 (base32 - "0s6hy8828yr7fcjiwnym4l8lrknr21gqfkaiawsf86n0hd0a5fyh")))) + "19dw91pqbqcniw2z57kiyqs1qp56g7kqy1bdyv664g8s62sc01m9")))) (build-system python-build-system) (inputs (list openblas)) (native-inputs - (list python-cython python-hypothesis python-pytest + (list python-cython python-hypothesis-6.23 python-pytest python-pytest-xdist gfortran)) (arguments `(#:phases @@ -5786,6 +5799,12 @@ capabilities.") (sha256 (base32 "140zq9snx0di4id4g97vaw9zz8x2rfla5lp3a70j666f5030yd5p")))) + ;; python-numpy-next replaced python-hypothesis with + ;; python-hypothesis-6.23. We switch it back here, to prevent + ;; python-numpy-1.20 and its numerous dependents from being rebuilt. + (native-inputs + (list python-cython python-hypothesis python-pytest + python-pytest-xdist gfortran)) ;; 92 tests fail, many of them because parts of the temp file name ;; accidentally ends up in a comparison. (arguments @@ -8730,21 +8749,19 @@ connect strings, then issue SQL commands within IPython or IPython Notebook.") (define-public python-traitlets (package (name "python-traitlets") - (version "4.3.3") + (version "5.1.1") (source (origin (method url-fetch) (uri (pypi-uri "traitlets" version)) (sha256 (base32 - "1xsrwgivpkxlbr4dfndfsi098s29yqgswgjc1qqn69yxklvfw8yh")))) + "1ivhxglsrnhqw4g98ihddn7i5f6976gpk31fijwq473wb9n4b7q5")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ (invoke "pytest" "-vv" "traitlets")))))) - (propagated-inputs - (list python-ipython-genutils python-decorator python-six)) (native-inputs (list python-pytest)) (home-page "https://ipython.org") @@ -8942,21 +8959,21 @@ installing @code{kernelspec}s for use with Jupyter frontends.") (define-public python-pari-jupyter (package (name "python-pari-jupyter") - (version "1.4.0") + (version "1.4.1") (source (origin (method url-fetch) (uri (pypi-uri "pari-jupyter" version)) (sha256 (base32 - "1hwjr66vfjsx28qmxrgsp3z0px1xqwxv53byvsrbwbjp4pbp79sz")))) + "1ikqvv335qfrhmlji0iclci6pnm2c3fvnxf031jr1d68j79g6ypd")))) (build-system python-build-system) (arguments '(#:tests? #f)) ;no test suite (propagated-inputs (list python-ipykernel)) (inputs (list pari-gp readline)) - (home-page "https://github.com/jdemeyer/pari-jupyter") + (home-page "https://github.com/sagemath/pari-jupyter") (synopsis "Jupyter kernel for PARI/GP") (description "The package provides a PARI/GP kernel for Jupyter.") (license license:gpl3+))) @@ -8996,6 +9013,7 @@ callback signature using a prototype function.") (build-system python-build-system) (propagated-inputs (list python-backcall + python-decorator python-pyzmq python-prompt-toolkit-2 python-terminado @@ -11734,32 +11752,6 @@ Unicode-aware. It is not intended as an end-user tool.") (define-public python2-xlrd (package-with-python2 python-xlrd)) -;; We need this for python-anndata -(define-public python-xlrd-1 - (package - (inherit python-xlrd) - (name "python-xlrd") - (version "1.2.0") - (source (origin - ;; The tests are not included in the PyPI archive. - (method git-fetch) - (uri (git-reference - (url "https://github.com/python-excel/xlrd") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0sm5p0ii5ayh52ak1jpw0n1kgsv72vdwwp8c3z13l8yf4irsb587")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; Some tests depend on writing a temporary file to the user's home - ;; directory. - (add-after 'unpack 'fix-tests - (lambda _ - (setenv "HOME" "/tmp")))))))) - ;;; Note: this package is unmaintained since 2018 (archived on GitHub). (define-public python-xlwt (package @@ -17229,6 +17221,33 @@ characters, mouse support, and auto suggestions.") (license license:bsd-3) (properties `((python2-variant . ,(delay python-prompt-toolkit-2)))))) +(define-public python-proselint + (package + (name "python-proselint") + (version "0.13.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "proselint" version)) + (sha256 + (base32 + "0n1ahnq2mkgvh94g05xhc3l1fs3hh0ycskqlqivhhfdaq8ybdlkx")))) + (build-system python-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-home-directory + (lambda _ + (setenv "HOME" "/tmp")))))) + (propagated-inputs + (list python-click-8 python-future python-six)) + (home-page "https://github.com/amperser/proselint") + (synopsis "Linter for prose") + (description "@code{python-proselint} is a linter for English prose, that +scans through a file and detects issues.") + (license license:bsd-3))) + (define-public python-prompt-toolkit-2 (package (inherit python-prompt-toolkit) (name "python-prompt-toolkit") @@ -19409,6 +19428,26 @@ multitouch applications.") (description "This package provides a MediaWiki API client.") (license license:expat))) +(define-public python-kneed + (package + (name "python-kneed") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "kneed" version)) + (sha256 + (base32 "0vkwi0pr7nfkp3c46hnmx0275yx68v96v10rmspv0wis33x6f39l")))) + (build-system python-build-system) + (propagated-inputs + (list python-matplotlib python-numpy python-scipy)) + (home-page "https://github.com/arvkevi/kneed") + (synopsis "Knee-point detection in Python") + (description "This package implements the kneedle algorithm. Given a set +of x and y values, kneed will return the knee point of the function. The knee +point is the point of maximum curvature.") + (license license:bsd-3))) + (define-public python-utils (package (name "python-utils") @@ -23143,7 +23182,6 @@ N-dimensional arrays for Python.") python-packaging python-pandas python-scipy - python-xlrd-1 python-zarr)) (native-inputs (list python-joblib python-pytest python-toml python-flit @@ -23293,22 +23331,6 @@ main differences are that @code{cytoolz} is faster and cytoolz offers a C API that is accessible to other projects developed in Cython.") (license license:bsd-3))) -;; python-cooler doesn't work with 0.11 yet -(define-public python-cytoolz-for-cooler - (package - (inherit python-cytoolz) - (version "0.10.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "cytoolz" version)) - (sha256 - (base32 - "0p4a9nadsy1337gy2cnb5yanbn03j3zm6d9adyqad9bk3nlbpxc2")) - (modules '((guix build utils))) - (snippet - '(for-each delete-file (find-files "cytoolz" "\\.c$"))))))) - (define-public python-sortedcollections (package (name "python-sortedcollections") @@ -24473,6 +24495,59 @@ Stamen, and supports custom tilesets with Mapbox or Cloudmade API keys. It supports Image, Video, GeoJSON and TopoJSON overlays.") (license license:expat))) +(define-public python-mercantile + (package + (name "python-mercantile") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "mercantile" version)) + (sha256 + (base32 "0sxmndhzzrvss5irsgzfrk51k6jihwcb7661992mizdgbnqnsg7s")))) + (build-system python-build-system) + (propagated-inputs (list python-click)) + (native-inputs + (list python-check-manifest python-hypothesis python-pytest)) + (home-page "https://github.com/mapbox/mercantile") + (synopsis "Web mercator XYZ tile utilities") + (description "The mercantile module provides @code{ul(xtile, ytile, zoom)} +and @code{bounds(xtile, ytile, zoom)} functions that respectively return the +upper left corner and bounding longitudes and latitudes for XYZ tiles, a +@code{xy(lng, lat)} function that returns spherical mercator x and y +coordinates, a @code{tile(lng, lat, zoom)} function that returns the tile +containing a given point, and quadkey conversion functions +@code{quadkey(xtile, ytile, zoom)} and @code{quadkey_to_tile(quadkey)} for +translating between quadkey and tile coordinates.") + (license license:bsd-3))) + +(define-public python-xyzservices + (package + (name "python-xyzservices") + (version "2022.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "xyzservices" version)) + (sha256 + (base32 "1paxv4i0dws85md7csv7pf80jl3xh792mx8rxnsrk61ks3ivbsyg")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv"))))))) + (native-inputs + (list python-pytest python-mercantile python-requests)) + (home-page "https://github.com/geopandas/xyzservices") + (synopsis "Source of XYZ tiles providers") + (description "@code{xyzservices} is a lightweight library providing a +repository of available XYZ services offering raster basemap tiles. The +repository is provided via Python API and as a compressed JSON file.") + (license license:bsd-3))) + (define-public jube (package ;; This is a command-line tool, so no "python-" prefix. @@ -24825,25 +24900,18 @@ standard error channel (stderr) in your program.") (define-public python-anyio (package (name "python-anyio") - (version "3.3.0") + (version "3.5.0") (source (origin (method url-fetch) (uri (pypi-uri "anyio" version)) (sha256 (base32 - "0x03hsprdrs86wjjkj96zm2jswy3a5bgyrknyi58pzz5hdsscmxf")))) + "19m58805wir4i2s45dd5ynwlzb7ky1218isbir53gpqzzgigzbm0")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-compatibility - (lambda _ - (substitute* "tests/test_taskgroups.py" - (("import pytest") - "import pytest\nimport _pytest\nfrom _pytest import logging") - (("pytest.LogCaptureFixture") - "_pytest.logging.LogCaptureFixture")))) (replace 'check (lambda* (#:key inputs outputs tests? #:allow-other-keys) (when tests? @@ -24880,18 +24948,24 @@ standard error channel (stderr) in your program.") " and not test_send_eof" " and not test_send_large_buffer" " and not test_send_receive" - " and not test_socket_options")))))))) + " and not test_socket_options" + " and not test_unretrieved_future_exception_server_crash")))))))) (propagated-inputs - (list python-idna python-sniffio python-typing-extensions)) + (list python-contextvars + python-dataclasses + python-idna + python-sniffio + python-typing-extensions)) (native-inputs - (list python-coverage + (list python-contextlib2 + python-coverage python-hypothesis - python-iniconfig python-mock python-pytest-6 python-pytest-mock python-pytest-trio python-setuptools-scm + python-trio python-trustme python-uvloop)) (home-page "https://github.com/agronholm/anyio") @@ -29482,7 +29556,11 @@ writing STL files. It supports both the text and binary forms of STL.") (lambda _ (substitute* "setup.py" (("test_suite = 'multipart.tests.suite'") - "test_suite = 'multipart.tests.test_multipart.suite'"))))))) + "test_suite = 'multipart.tests.test_multipart.suite'")) + ;; Needed by PyYAML 6.0. + (substitute* "multipart/tests/test_multipart.py" + (("yaml_data = yaml.load\\(f\\)") + "yaml_data = yaml.load(f, Loader=yaml.SafeLoader)"))))))) (home-page "https://github.com/andrew-d/python-multipart") (synopsis "Streaming multipart parser for Python") (description @@ -29572,6 +29650,24 @@ adapted from the @code{packaging} package.") Python CLI apps.") (license license:asl2.0))) +(define-public python-style + (package + (name "python-style") + (version "1.1.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "style" version)) + (sha256 + (base32 "1dcfb578v9mrwh92rgms87gql0gp4vgj6l9hpgyfg0wbd3rh3bfh")))) + (build-system python-build-system) + (home-page "https://github.com/lmittmann/style") + (synopsis "Terminal string styling") + (description +"@code{python-style} is a simple terminal string styling package. Its API is +a port of the chalk package for javascript.") + (license license:expat))) + (define-public python-sre-yield (package (name "python-sre-yield") @@ -29594,6 +29690,114 @@ uses the parsed regular expression, so you get a much more accurate result than trying to just split strings.") (license license:asl2.0))) +(define-public python-pydispatcher + (package + (name "python-pydispatcher") + (version "2.0.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PyDispatcher" version)) + (sha256 + (base32 "1bswbmhlbqdxlgbxlb6xrlm4k253sg8nvpl1whgsys8p3fg0cw2m")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest"))))))) + (native-inputs (list python-pytest)) + (home-page "http://pydispatcher.sourceforge.net") + (synopsis "Multi-producer-multi-consumer signal dispatching mechanism") + (description "PyDispatcher is an enhanced version of Patrick K. O’Brien’s +original @code{dispatcher.py} module. It provides the Python programmer with +a robust mechanism for event routing within various application contexts. + +Included in the package are the robustapply and saferef modules, which +provide the ability to selectively apply arguments to callable objects +and to reference instance methods using weak-references.") + (license license:bsd-3))) + +(define-public python-queuelib + (package + (name "python-queuelib") + (version "1.6.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "queuelib" version)) + (sha256 + (base32 "1lpwq8wx3025i14y5h0hbald2ypbarf081pql6cqcak4y9kp482b")))) + (build-system python-build-system) + (native-inputs (list python-pytest)) + (home-page "https://github.com/scrapy/queuelib") + (synopsis + "Collection of persistent (disk-based) and non-persistent (memory-based) queues") + (description "Queuelib is a Python library that implements object +collections which are stored in memory or persisted to disk, provide a +simple API, and run fast. + +Queuelib provides collections for queues (FIFO), stacks (LIFO), queues +sorted by priority and queues that are emptied in a round-robin +fashion.") + (license license:bsd-3))) + +(define-public python-itemadapter + (package + (name "python-itemadapter") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "itemadapter" version)) + (sha256 + (base32 "083wp3h2brh8x19jbdr8rz3biqwp3jlqd0rfzcyrjyhssffsgdh5")))) + (build-system python-build-system) + (home-page "https://github.com/scrapy/itemadapter") + (synopsis "Common interface for data container classes") + (description "The ItemAdapter class is a wrapper for data container +objects, providing a common interface to handle objects of different +types in an uniform manner, regardless of their underlying implementation. + +Currently supported types are: +@itemize +@item scrapy.item.Item +@item dict +@item dataclass-based classes +@item attrs-based classes +@item pydantic-based classes +@end itemize + +Additionally, interaction with arbitrary types is supported by +implementing a pre-defined interface.") + (license license:bsd-3))) + +(define-public python-itemloaders + (package + (name "python-itemloaders") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "itemloaders" version)) + (sha256 + (base32 "15hc78h90qhwass1bga1c3xar2dd6j8sxg61zg6jvh74lf6csxqj")))) + (build-system python-build-system) + (propagated-inputs + (list python-itemadapter python-jmespath python-parsel python-w3lib)) + (home-page "https://github.com/scrapy/itemloaders") + (synopsis "Base library for scrapy's ItemLoader") + (description "Itemloaders is a library that helps you collect data +from HTML and XML sources. It comes in handy to extract data from web +pages, as it supports data extraction using CSS and XPath Selectors. + +It’s specially useful when you need to standardize the data from many +sources. For example, it allows you to have all your casting and +parsing rules in a single place.") + (license license:bsd-3))) + (define-public python-hypy-utils (package (name "python-hypy-utils") @@ -29633,3 +29837,96 @@ and setting the color of terminal output, via HyDEV.") versions of MkDocs-powered docs to a Git branch. It is suitable for deploying to Github via gh-pages.") (license license:bsd-3))) + +(define-public python-arpeggio + (package + (name "python-arpeggio") + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "Arpeggio" version)) + (sha256 + (base32 + "0ggdsck1wpladd5bh9drhkmm86bblgk2wagrhn3sdf4v04wkic6n")))) + (build-system python-build-system) + (native-inputs (list python-coverage + python-coveralls + python-flake8 + python-mike + python-mkdocs + python-pytest + python-pytest-runner + python-twine + python-wheel)) + (home-page "https://github.com/textX/Arpeggio") + (synopsis "Packrat parser interpreter for Python") + (description + "This Python library provides a recursive descent parser with backtracking +and memoization (a.k.a. packrat parser). Arpeggio grammars are based on PEG +formalism. Arpeggio's main use is a foundation for a toolchain for DSL +development but it can be used for all sorts of general purpose parsing.") + (license license:expat))) + +(define-public python-flatten-json + (package + (name "python-flatten-json") + (version "0.1.13") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flatten_json" version)) + (sha256 + (base32 "007m28gfs7pmz2rqqjxpial6skzw26hrfi8vrdy9agi9x0rj6dgf")))) + (build-system python-build-system) + (propagated-inputs (list python-six)) + (home-page "https://github.com/amirziai/flatten") + (synopsis "Flatten JSON objects") + (description + "The @code{flatten_json} Python library flattens the hierarchy in your +object, which can be useful if you want to force your objects into a table.") + (license license:expat))) + +(define-public python-deepmerge + (package + (name "python-deepmerge") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "deepmerge" version)) + (sha256 + (base32 "06hagzg8ccmjzqvszdxb52jgx5il8a1jdz41n4dpkyyjsfg7fi2b")))) + (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'set-version + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version) + ;; ZIP does not support timestamps before 1980. + (setenv "SOURCE_DATE_EPOCH" "315532800"))) + (replace 'build + (lambda _ + (invoke "python" "-m" "build" "--wheel" + "--no-isolation" "."))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest")))) + (replace 'install + (lambda _ + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output whl))))))) + (native-inputs + (list python-pypa-build + python-setuptools-scm + python-pytest + python-wheel)) + (home-page "https://deepmerge.readthedocs.io/en/latest/") + (synopsis "Merge nested data structures") + (description + "The @code{deep-merge} Python library provides a toolset to deeply merge +nested data structures in Python like lists and dictionaries.") + (license license:expat))) |