diff options
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r-- | gnu/packages/python-xyz.scm | 2117 |
1 files changed, 1487 insertions, 630 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 6f092ab730..a2f1a9aed0 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -52,7 +52,7 @@ ;;; Copyright © 2018-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018, 2019, 2021 Clément Lassieur <clement@lassieur.org> -;;; Copyright © 2018, 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2018, 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com> ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl> @@ -66,7 +66,7 @@ ;;; Copyright © 2019, 2020, 2021 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz> ;;; Copyright © 2019, 2020, 2021, 2022 Tanguy Le Carrour <tanguy@bioneland.org> -;;; Copyright © 2019, 2021 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> +;;; Copyright © 2019, 2021, 2022 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> ;;; Copyright © 2020 Riku Viitanen <riku.viitanen@protonmail.com> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 sirgazil <sirgazil@zoho.com> @@ -75,11 +75,11 @@ ;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com> ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com> -;;; Copyright © 2020 Matthew James Kraai <kraai@ftbfs.org> +;;; Copyright © 2020, 2022 Matthew James Kraai <kraai@ftbfs.org> ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> ;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw> ;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org> -;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> ;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com> @@ -104,7 +104,7 @@ ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte@inria.fr> ;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr> -;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com> +;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; Copyright © 2021 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de> ;;; Copyright © 2021, 2022 Pradana Aumars <paumars@courrier.dev> @@ -130,6 +130,8 @@ ;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl> ;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it> ;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org> +;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr> +;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -158,9 +160,11 @@ #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages crypto) #:use-module (gnu packages databases) #:use-module (gnu packages dbm) + #:use-module (gnu packages digest) #:use-module (gnu packages django) #:use-module (gnu packages djvu) #:use-module (gnu packages docker) @@ -189,6 +193,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages image-processing) #:use-module (gnu packages imagemagick) + #:use-module (gnu packages java) #:use-module (gnu packages jupyter) #:use-module (gnu packages kerberos) #:use-module (gnu packages libevent) @@ -197,6 +202,7 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) + #:use-module (gnu packages machine-learning) #:use-module (gnu packages man) #:use-module (gnu packages markup) #:use-module (gnu packages maths) @@ -258,6 +264,7 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module (srfi srfi-1) @@ -318,6 +325,71 @@ asynchronous one follows design}.") (license license:asl2.0))) +(define-public python-jupytext + (package + (name "python-jupytext") + (version "1.14.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mwouts/jupytext") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gqpvphrp2ja9ggadx0rrk0sqbpz6kqqg62qqmw4k17469lphc8c")))) + (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + ;; some tests fail when HOME=/homeless-shelter. + (setenv "HOME" "/tmp") + ;; OSError: [Errno 18] Invalid cross-device link + (setenv "TMPDIR" "/tmp") + (when tests? + (let ((disabled-tests + (list "test_create_header_with_set_formats" + "test_pre_commit_hook" + "test_sync_with_pre_commit_hook"))) + (invoke "pytest" "-vv" "-k" + (string-append "not " + (string-join disabled-tests + " and not ")))))))))) + (native-inputs + (list git-minimal + python-autopep8 + python-black + python-flake8 + python-gitpython + python-isort + python-ipython-genutils + python-jupyter-server + python-pre-commit + python-pytest + python-pyaml)) + (propagated-inputs + (list python-markdown-it-py + python-mdit-py-plugins + python-nbformat)) + (home-page "https://github.com/mwouts/jupytext") + (synopsis + "Jupyter notebooks as Markdown documents, Julia, Python or R scripts") + (description + "Jupytext is a plugin for Jupyter that can save Jupyter notebooks as +either Markdown files or scripts in many languages. Common use cases for +Jupytext are: + +@itemize +@item version control on Jupyter Notebooks +@item editing, merging or refactoring notebooks in your favorite text editor +@item applying Q&A checks on notebooks. +@end itemize +") + (license license:expat))) + (define-public python-logzero (package (name "python-logzero") @@ -372,7 +444,7 @@ easy logging and rotating to a console or a file.") (invoke "pytest" "--cov=logbook" "-r" "s" "tests"))))))) (native-inputs (list python-cython python-mock python-pytest python-pytest-cov - python-google-brotli)) + python-brotli)) (home-page "https://github.com/getlogbook/logbook") (synopsis "Logbook is a logging replacement for Python") (description @@ -495,6 +567,43 @@ and variables you'll need already imported and created. (home-page "https://github.com/google/python-fire") (license license:asl2.0))) +(define-public python-fit-nbinom + (package + (name "python-fit-nbinom") + (version "1.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "fit_nbinom" version)) + (sha256 + (base32 + "12v8l5i35vjbpvh5i4lw29ys6vpr3z7pysyrx33hxaq09zr015mx")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-numpy python-scipy)) + (home-page "https://github.com/joachimwolff/fit_nbinom") + (synopsis "Negative binomial maximum likelihood estimator") + (description "This package provides an implementation in Python using +scipy and numpy of negative binomial maximum likelihood estimation.") + (license license:gpl3+))) + +(define-public python-dotmap + (package + (name "python-dotmap") + (version "1.3.30") + (source (origin + (method url-fetch) + (uri (pypi-uri "dotmap" version)) + (sha256 + (base32 + "0s5kb2v7jd0narz6m6jcicak3h5pw290wz21cdsv8pq77y9sf8aq")))) + (build-system python-build-system) + (home-page "https://github.com/drgrib/dotmap") + (synopsis "Ordered, dynamically-expandable dot-access dictionary") + (description + "DotMap is a dot-access dictionary subclass that has dynamic +hierarchy creation, can be initialized with keys, can be initialized from a +dictionary, can be convert to a dictionary, and is ordered by insertion.") + (license license:expat))) + (define-public python-twodict (package (name "python-twodict") @@ -554,22 +663,51 @@ decorators, including variants of the Python standard library's @code{lru_cache} function decorator.") (license license:expat))) +(define-public python-cobib + (package + (name "python-cobib") + (version "3.5.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "cobib" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "16nbrbvascbf6cb7yvn9q793dy8zx703pqrmk3mswib9a19mnx3n")))) + (build-system python-build-system) + (propagated-inputs + (list python-beautifulsoup4 + python-bibtexparser + python-pylatexenc + python-requests + python-requests-oauthlib + python-ruamel.yaml)) + (native-inputs + (list python-future + python-pyte + python-pytest)) + (home-page "https://gitlab.com/mrossinek/cobib") + (synopsis "Terminal-based bibliography management tool") + (description + "@command{cobib} is a command-line based bibliography management tool. +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-colorful (package (name "python-colorful") (version "0.5.4") (source (origin - (method url-fetch) - (uri - (pypi-uri "colorful" version)) + (method git-fetch) ; no tests data in PyPi package + (uri (git-reference + (url "https://github.com/timofurrer/colorful") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1sh7g2cn1fyz2hzmzs933razdxi2bna9i1lxa790r9pdwba8m146")))) - (build-system python-build-system) - ;; FIXME: tests cannot be computed: - ;; "Can't perform this operation for unregistered loader type" - (arguments - `(#:tests? #f)) + (base32 "1fcz5v8b318a3dsdha4c874jsf3wmcw3f25bv2csixclyzacli98")))) + (build-system pyproject-build-system) (native-inputs (list python-coverage python-flake8 python-pytest)) (propagated-inputs @@ -624,6 +762,67 @@ It indexes documents and provides a search interface for retrieving documents that best match text queries.") (license license:expat))) +(define-public python-mdit-py-plugins + (package + (name "python-mdit-py-plugins") + (version "0.3.1") + (source (origin + (method git-fetch) ;for tests + (uri (git-reference + (url "https://github.com/executablebooks/mdit-py-plugins") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00ybbfb6dzn9q5qnvnm8bmhd84s215ik7pcdb4r35zhwiv2ikizz")))) + (build-system pyproject-build-system) + (propagated-inputs + (list python-markdown-it-py + python-attrs)) + (native-inputs + (list python-coverage + python-flit-core + python-pytest + python-pytest-cov + python-pytest-regressions)) + (home-page "https://github.com/executablebooks/mdit-py-plugins") + (synopsis "Collection of plugins for markdown-it-py") + (description "This package contains a collection of plugins for +@code{markdown-it-py} like: +@enumerate +@item amsmath, +@item attrs, +@item container, +@item definition list, +@item dollarmath, +@item field list, +@item footnote, +@item textmath, and +@item wordcount. +@end enumerate") + (license license:expat))) + +(define-public python-mdurl + (package + (name "python-mdurl") + (version "0.1.2") + (source + (origin + (method git-fetch) ; no tests data in PyPi package + (uri (git-reference + (url "https://github.com/executablebooks/mdurl") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0csc777q42jzv4zgdzxmwp8xqlb92ws1jvj09m2smh4klw67q5f3")))) + (build-system pyproject-build-system) + (native-inputs (list python-flit python-pytest)) + (home-page "https://github.com/executablebooks/mdurl") + (synopsis "Markdown URL utilities") + (description + "This package implements a Python port of the JavaScript @code{mdurl}.") + (license license:expat))) + (define-public python-mrkd (package (name "python-mrkd") @@ -722,6 +921,24 @@ template") variables into the markdown template") (license license:expat))) +(define-public python-py4j + (package + (name "python-py4j") + (version "0.10.9.7") + (source (origin + (method url-fetch) + (uri (pypi-uri "py4j" version)) + (sha256 + (base32 + "1fwdx92cdaiviradksfyygg05g1fpc3x2lf65bv5rnispcam6vhb")))) + (build-system python-build-system) + (home-page "https://www.py4j.org/") + (synopsis "Dynamically access arbitrary Java objects from Python") + (description + "This package enables Python programs to dynamically access arbitrary +Java objects.") + (license license:bsd-3))) + (define-public python-pymdown-extensions (package (name "python-pymdown-extensions") @@ -745,6 +962,36 @@ variables into the markdown template") Markdown. All extensions are found under the module namespace of pymdownx.") (license license:expat))) +(define-public python-pint + (package + (name "python-pint") + (version "0.20.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "Pint" version)) + (sha256 + (base32 + "0rv0cbala7ibjbaf6kkcn0mdhqdbajnvlcw0f15gwzfwg10g0z1q")))) + (build-system python-build-system) + (native-inputs + (list python-pytest + python-pytest-cov + python-pytest-mpl + python-pytest-subtests + python-setuptools-scm + python-sparse + python-dask + python-xarray + python-distributed)) + (home-page "https://github.com/hgrecco/pint") + (synopsis "Physical quantities module") + (description + "Pint is a Python package to define, operate and manipulate physical +quantities: the product of a numerical value and a unit of measurement. It +allows arithmetic operations between them and conversions from and to +different units.") + (license license:bsd-3))) + (define-public python-plotille (package (name "python-plotille") @@ -966,7 +1213,7 @@ of a loop structure or other iterative computation.") (define-public python-glymur (package (name "python-glymur") - (version "0.10.1") + (version "0.12.0") (source (origin (method git-fetch) ; no tests data in PyPi package @@ -975,8 +1222,8 @@ of a loop structure or other iterative computation.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1cq9r8vzwvds1kasy5gc2rxw034jh9l43rraps1n739072pfz6qg")))) - (build-system python-build-system) + (base32 "03nny8k42yxdyw7sjv43szmg23x3rqplbaf7m0a0lpvwla1dl78i")))) + (build-system pyproject-build-system) (arguments (list #:phases @@ -997,29 +1244,14 @@ of a loop structure or other iterative computation.") " elif libname == \"c\":\n" " path = \"" (search-input-file inputs "/lib/libc.so.6") "\"\n"))))) - ;; TODO: implement as a feature of python-build-system (PEP-621, - ;; PEP-631, PEP-660) - (replace 'build + (add-before 'check 'disable-failing-tests (lambda _ - (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version) - ;; ZIP does not support timestamps before 1980. - (setenv "SOURCE_DATE_EPOCH" "315532800") - (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((whl (car (find-files "dist" "\\.whl$")))) - (invoke "pip" "--no-cache-dir" "--no-input" - "install" "--no-deps" "--prefix" #$output whl)))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - ;; Failing test due to inability of - ;; ctypes.util.find_library() to determine library path, - ;; which is patched above. - (delete-file "tests/test_config.py") - (invoke "python" "-m" "pytest" "-vv" "tests"))))))) + ;; Failing test due to inability of + ;; ctypes.util.find_library() to determine library path, + ;; which is patched above. + (delete-file "tests/test_config.py")))))) (native-inputs - (list python-pypa-build python-pytest)) + (list python-pytest)) (inputs (list openjpeg ; glymur/lib/openjp2.py libtiff)) ; glymur/lib/tiff.py @@ -1444,14 +1676,24 @@ and a list of words that are easier to remember for humans (the (define-public python-bitarray (package (name "python-bitarray") - (version "1.4.0") + (version "2.6.1") (source (origin (method url-fetch) (uri (pypi-uri "bitarray" version)) (sha256 (base32 - "177fj6wbw5jln54wpp6plcqy2329wjkwqwvgz7022rrg3xfrq49g")))) + "0c4jli872nzix81n1xirnrghlq2fdsxb570d9rnfvxi1694sah44")))) (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; Step out of the source directory to avoid interference. + (with-directory-excursion "/tmp" + (invoke "python" "-c" + "import bitarray; bitarray.test()")))))))) (home-page "https://github.com/ilanschnell/bitarray") (synopsis "Efficient arrays of booleans") (description "This package provides an object type which efficiently @@ -1528,21 +1770,14 @@ NetCDF files can also be read and modified. Python-HDF4 is a fork of (define-public python-h5netcdf (package (name "python-h5netcdf") - (version "1.0.1") + (version "1.1.0") (source (origin (method url-fetch) (uri (pypi-uri "h5netcdf" version)) (sha256 - (base32 "1b2dcgf5rwy7pb7hr4prkc5vgcw9qc2was20dmnj90lbrpx08rvp")))) - (build-system python-build-system) - (arguments - (list #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv" "h5netcdf/tests"))))))) + (base32 "0mmzfr6k55zqxxpb64gvdqisak8s1zb2r04yzkmp0wzd7dbknb4k")))) + (build-system pyproject-build-system) (native-inputs (list python-netcdf4 python-pytest @@ -1551,9 +1786,11 @@ NetCDF files can also be read and modified. Python-HDF4 is a fork of (list python-h5py python-packaging)) (home-page "https://h5netcdf.org") (synopsis "Python interface for the netCDF4 file-format based on h5py") - (description "This package provides Python interface for the netCDF4 -file-format that reads and writes local or remote HDF5 files directly via h5py -or h5pyd, without relying on the Unidata netCDF library") + (description "This package provides a Python interface for the netCDF4 +file-format that reads and writes local or remote HDF5 files directly via +@url{h5py, https://www.h5py.org/} or @url{h5pyd, +https://github.com/HDFGroup/h5pyd}, without relying on the Unidata netCDF +library.") (license license:bsd-3))) (define-public python-h5py @@ -1619,6 +1856,25 @@ concepts.") approximate nearest neighbor search with Python bindings.") (license license:asl2.0))) +(define-public python-pylatexenc + (package + (name "python-pylatexenc") + (version "2.10") + (source (origin + (method url-fetch) + (uri (pypi-uri "pylatexenc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1ls09z47b5md71gkxcj7fd87ynpvv2walgp2w6z31p26xf2gvn1x")))) + (build-system python-build-system) + (home-page "https://github.com/phfaist/pylatexenc") + (synopsis "LaTeX parser for Unicode/LaTeX conversion") + (description + "@code{python-pylatexenc} is a LaTeX parser providing LaTeX-to-Unicode and +Unicode-to-LaTeX conversion.") + (license license:expat))) + (define-public python-pyls-black (package (name "python-pyls-black") @@ -1973,46 +2229,6 @@ Because only safe literals are encoded, it is safe to send serpent data to other machines, such as over the network.") (license license:expat))) -(define-public python-setuptools - (package - (name "python-setuptools") - (version "64.0.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "setuptools" version)) - (sha256 - (base32 - "1sllqf0bhsl2yilf1w0xnlz0r4yaksmwaj0ap91zdc6kgbigdjiv")) - (modules '((guix build utils))) - (snippet - ;; Remove included binaries which are used to build self-extracting - ;; installers for Windows. - ;; TODO: Find some way to build them ourself so we can include them. - '(for-each delete-file (find-files "setuptools" - "^(cli|gui).*\\.exe$"))))) - (build-system python-build-system) - ;; FIXME: Tests require pytest, which itself relies on setuptools. - ;; One could bootstrap with an internal untested setuptools. - (arguments (list #:tests? #f)) - (home-page "https://pypi.org/project/setuptools/") - (synopsis "Library designed to facilitate packaging Python projects") - (description "Setuptools is a fully-featured, stable library designed to -facilitate packaging Python projects, where packaging includes: -@itemize -@item Python package and module definitions -@item distribution package metadata -@item test hooks -@item project installation -@item platform-specific details. -@end itemize") - ;; TODO: setuptools now bundles the following libraries: - ;; packaging, pyparsing, six and appdirs. How to unbundle? - (license (list license:psfl ;setuptools itself - license:expat ;six, appdirs, pyparsing - license:asl2.0 ;packaging is dual ASL2/BSD-2 - license:bsd-2)))) - (define-public python-setuptools-declarative-requirements (package (name "python-setuptools-declarative-requirements") @@ -2660,15 +2876,15 @@ standard.") ;; getprotobyname is called. Thankfully there is an environment ;; variable to disable the greendns import, so use it: (setenv "EVENTLET_NO_GREENDNS" "yes"))) - (add-after 'unpack 'delete-broken-tests - (lambda _ - (delete-file "tests/greendns_test.py") - (delete-file "tests/socket_test.py"))) - ;; See https://github.com/eventlet/eventlet/issues/562#issuecomment-714183009 (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? - (invoke "nosetests" "-v" "tests/"))))))) + (invoke + "nosetests" + "-v" "tests/" + "-I" "greendns_test.py" + "-I" "socket_test.py" + "-e" "test_018b_http_10_keepalive_framing"))))))) (home-page "https://eventlet.net") (synopsis "Concurrent networking library for Python") (description @@ -2819,6 +3035,25 @@ after Andy Lester’s Perl module WWW::Mechanize.") audio playback capability for Python 3 on OSX, Windows, and Linux.") (license license:expat))) ; MIT license +(define-public python-jsonalias + (package + (name "python-jsonalias") + (version "0.1.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "jsonalias" version)) + (sha256 + (base32 + "0sd7c3vyvfhhpnan77ax4f0x1whjcb5iz7jhjky7kmcpaf9lvw34")))) + (build-system python-build-system) + (arguments (list #:tests? #f)) ; There are no tests. + (home-page "https://github.com/kevinheavey/jsonalias/") + (synopsis "JSON type alias for Python") + (description + "This package provides a microlibrary that defines a JSON type alias for +Python.") + (license license:expat))) + (define-public python-simplejson (package (name "python-simplejson") @@ -2849,6 +3084,29 @@ the optional C extension for speedups. Simplejson is also supported on Python 3.3+.") (license license:x11))) +(define-public python-simple-rlp + (package + (name "python-simple-rlp") + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SamuelHaidu/simple-rlp") + ;; Upstream doesn't tag the git repo. + (commit "342ea269d84da1ddc4a7630cdebc90159261391c"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1nv92sphpkyrncak4qgj50qmgkmj4ycl2szbnv9c7ihgl5df4div")))) + (build-system python-build-system) + (home-page "https://github.com/SamuelHaidu/simple-rlp") + (synopsis + "Python implementation of RLP (Recursive Length Prefix) encoding") + (description + "@code{simple-rlp} is a python implementation of RLP (Recursive Length \ +Prefix) - Encode and decode data structures.") + (license license:expat))) (define-public python-pyicu (package @@ -2901,12 +3159,12 @@ Python 3.3+.") (propagated-inputs (list python-pygobject python-pycairo python-pyatspi)) (native-inputs - `(("python-nose" ,python-nose) - ("gtk+" ,gtk+) - ("xvfb" ,xorg-server) - ("dbus" ,dbus) - ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) - ("gobject-introspection" ,gobject-introspection))) + (list python-nose + gtk+ + xorg-server-for-tests + dbus + gsettings-desktop-schemas + gobject-introspection)) (home-page "https://gitlab.com/dogtail/dogtail/") (synopsis "GUI test tool and automation framework written in Python") (description @@ -2916,6 +3174,41 @@ applications. dogtail scripts are written in Python and executed like any other Python program.") (license license:gpl2+))) +(define-public python-doxyqml + (package + (name "python-doxyqml") + (version "0.5.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "doxyqml" version)) + (sha256 + (base32 + "1f0jjqvamly4hn7f1palvq27z6yr694rfzyxrb6g0ysbbawxkvq9")))) + (build-system python-build-system) + (home-page "http://agateau.com/projects/doxyqml") + (synopsis "Doxygen input filter for QML files") + (description + "This package provides a Doxygen input filter for QML files.") + (license license:bsd-3))) + +(define-public python-doxypypy + (package + (name "python-doxypypy") + (version "0.8.8.6") + (source (origin + (method url-fetch) + (uri (pypi-uri "doxypypy" version)) + (sha256 + (base32 + "06z0vbh975g42z5szbfvn9i3bif3xwr5pncqd4fvjzjkbi2p2xb2")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ;no test suite + (home-page "https://github.com/Feneric/doxypypy") + (synopsis "Doxygen filter for Python") + (description + "This package provides a Doxygen filter for Python.") + (license license:gpl2+))) + (define-public python-empy (package (name "python-empy") @@ -2946,25 +3239,6 @@ system is highly configurable via command line options and embedded commands.") (license license:lgpl2.1+))) -(define-public python-enum34 - (package - (name "python-enum34") - (version "1.1.6") - (source - (origin - (method url-fetch) - (uri (pypi-uri "enum34" version)) - (sha256 - (base32 - "1cgm5ng2gcfrkrm3hc22brl6chdmv67b9zvva9sfs7gn7dwc9n4a")))) - (build-system python-build-system) - (home-page "https://pypi.org/project/enum34/") - (synopsis "Backported Python 3.4 Enum") - (description - "Enum34 is the new Python stdlib enum module available in Python 3.4 -backported for previous versions of Python from 2.4 to 3.3.") - (license license:bsd-3))) - (define-public python-parse-type (package (name "python-parse-type") @@ -3053,6 +3327,46 @@ existing ones.") a certain expected condition.") (license license:expat))) +(define-public python-pomegranate + (package + (name "python-pomegranate") + (version "0.14.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "pomegranate" version)) + (sha256 + (base32 + "0gb9srkbxzlkjyfizvxkw5y0bvnfcyiaxapz0hrdaba8j096b5i2")) + (modules '((guix build utils))) + ;; Delete generated Cython C files. + (snippet + '(for-each delete-file (find-files "." "\\.c$"))))) + (build-system python-build-system) + (arguments + (list + #:phases + '(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "setup.py" "test"))))))) + (propagated-inputs + (list python-joblib + python-networkx + python-numpy + python-pyyaml + python-scipy)) + (native-inputs + (list python-cython + python-nose + python-pandas)) + (home-page "https://pypi.python.org/pypi/pomegranate/") + (synopsis "Graphical models library for Python") + (description + "Pomegranate is a graphical models library for Python, implemented in +Cython for speed.") + (license license:expat))) + (define-public python-poyo (package (name "python-poyo") @@ -3494,18 +3808,6 @@ with sensible defaults out of the box.") (base32 "06kbzd6sjfkqan3miwj9wqyddfxc2b6hi7p5s4dvqjb3gif2bdfj")))) (arguments `()))) -(define-public python-click-5 - (package (inherit python-click) - (name "python-click") - (version "5.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "click" version)) - (sha256 - (base32 "0njsm0wn31l21bi118g5825ma5sa3rwn7v2x4wjd7yiiahkri337")))) - (arguments `()))) - (define-public python-cligj (package (name "python-cligj") @@ -3631,6 +3933,8 @@ compare, diff, and patch JSON and JSON-like structures in Python.") (define-public python-jsonschema-next (package (inherit python-jsonschema) + ;; XXX: Update to the latest version requires new build system - Hatch + ;; https://hatch.pypa.io/ (version "4.5.1") (source (origin @@ -3638,25 +3942,9 @@ compare, diff, and patch JSON and JSON-like structures in Python.") (uri (pypi-uri "jsonschema" version)) (sha256 (base32 "1z0x22691jva7lwfcfh377jdmlz68zhiawxzl53k631l34k8hvbw")))) - (arguments - (substitute-keyword-arguments (package-arguments python-jsonschema) - ((#:phases phases) - #~(modify-phases #$phases - ;; XXX: PEP 517 manual build/install procedures copied from - ;; python-isort. - (replace 'build - (lambda _ - ;; ZIP does not support timestamps before 1980. - (setenv "SOURCE_DATE_EPOCH" "315532800") - (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (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-twisted)) + (build-system pyproject-build-system) + (native-inputs + (list python-setuptools-scm python-twisted)) (propagated-inputs (list python-attrs python-importlib-metadata @@ -3793,23 +4081,22 @@ memory usage and transliteration quality.") (define-public python-pyjwt (package (name "python-pyjwt") - (version "2.4.0") + (version "2.6.0") (source (origin (method url-fetch) (uri (pypi-uri "PyJWT" version)) (sha256 (base32 - "1fmbcwfw1463wjzwbcgg3s16rad6kfb1mc5y7jbkp6v9ihh0hafl")))) - (build-system python-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv"))))))) + "1z85kwr945rbzrn5wabrsmck5x8disa9wc7b3y5gci7w65z5qa39")))) + (build-system pyproject-build-system) (native-inputs - (list python-cryptography python-pytest)) + (list python-coverage + python-cryptography + python-pre-commit + python-pytest + python-sphinx + python-sphinx-rtd-theme)) (home-page "https://github.com/progrium/pyjwt") (synopsis "JSON Web Token implementation in Python") (description @@ -3986,6 +4273,116 @@ e.g. filters, callbacks and errbacks can all be promises.") "Virtualenv is a tool to create isolated Python environments.") (license license:expat))) +(define-public python-crossenv + (package + (name "python-crossenv") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "crossenv" version)) + (sha256 + (base32 + "07rv4650n19740ixmnsf4qbxyqlgi7f5m1cy8cq0gl01q3r6hps4")))) + (build-system python-build-system) + (arguments + (list #:tests? #f)) ; tests not distributed on pypi + (home-page "https://github.com/benfogle/virtualenv") + (synopsis "Cross-compiling virtualenv for Python") + (description "This package is a tool for cross-compiling extension +modules. It creates a special virtual environment such that @command{pip} or +@file{setup.py} will cross compile packages for you, usually with no further +work on your part.") + (license license:expat))) + +(define-public python-uc-micro-py + (package + (name "python-uc-micro-py") + (version "1.0.1") + (source (origin + (method git-fetch) ;for tests + (uri (git-reference + (url "https://github.com/tsutsu3/uc.micro-py") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "17f55gi55rg47nm88fn3f8851ph03dgykdp011lxr3j6hk18lyfv")))) + (build-system pyproject-build-system) + (native-inputs (list python-pytest)) + (home-page "https://github.com/tsutsu3/uc.micro-py") + (synopsis "Unicode data files for linkify-it-py projects") + (description "This package contains a micro subset of Unicode data files +for linkify-it-py projects.") + (license license:expat))) + +(define-public python-linkify-it-py + (package + (name "python-linkify-it-py") + (version "2.0.0") + (source (origin + (method git-fetch) ;for tests + (uri (git-reference + (url "https://github.com/tsutsu3/linkify-it-py") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fg0a1lc8xbb62y9krxcp708ll58dxcwm8i7rrwpkd5sh2229f6x")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-uc-micro-py)) + (native-inputs (list python-pytest)) + (home-page "https://github.com/tsutsu3/linkify-it-py") + (synopsis "Links recognition library with full Unicode support") + (description "This is Python port of +@url{https://github.com/markdown-it/linkify-it, linkify-it}, which is a links +recognition library with full Unicode support. It has features like: +@itemize +@item Full unicode support, with @i{astral} characters +@item International domains support +@item Allows rules extension and custom normalizers. +@end itemize") + (license license:expat))) + +(define-public python-markdown-it-py + (package + (name "python-markdown-it-py") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "markdown-it-py" version)) + (sha256 + (base32 + "1nh75i72584r70alhqc479gys04s5m5g3vq601yf2njbs7z5jzng")))) + (build-system python-build-system) + (arguments + (list + #:tests? #f ;pypi source does not contains tests + #:phases + #~(modify-phases %standard-phases + (replace 'build + (lambda _ (invoke "flit" "build"))) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (for-each + (lambda (wheel) + (invoke "python" "-m" "pip" "install" + wheel (string-append "--prefix=" #$output))) + (find-files "dist" "\\.whl$"))))))) + (native-inputs (list python-flit)) + (propagated-inputs + (list python-mdurl + python-typing-extensions)) + (home-page "https://github.com/executablebooks/markdown-it-py") + (synopsis "Python port of markdown-it") + (description + "This is a Python port of @code{markdown-it}, and some of its associated +plugins. The driving design philosophy of the port has been to change as +little of the fundamental code structure (file names, function name, etc) as +possible.") + (license license:expat))) + (define-public python-markupsafe (package (name "python-markupsafe") @@ -4362,6 +4759,73 @@ accessible for novices, as well as a scripting interface offering the full flexibility and power of the Python language.") (license license:gpl3+))) +(define-public python-dm-tree + (package + (name "python-dm-tree") + (version "0.1.7") + (source (origin + (method url-fetch) + (uri (pypi-uri "dm-tree" version)) + (sha256 + (base32 "0apxfxgmqh22qpk92zmmf3acqkavhwxz78lnwz026a5rlnncizih")))) + (build-system python-build-system) + (inputs (list pybind11 abseil-cpp python)) + (propagated-inputs (list python-wheel + python-absl-py + python-attrs + python-numpy + python-wrapt)) + (arguments + (list #:tests? #f + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'build-shared-lib + (lambda _ + (let* ((pybind11 #$(this-package-input "pybind11")) + (python #$(this-package-input "python")) + (version (python-version python)) + (abseil-cpp #$(this-package-input "abseil-cpp"))) + ;; Delete default cmake build. + (substitute* "setup.py" + (("ext_modules.*") "") + (("cmdclass.*") "")) + ;; Actual build phase. + (mkdir-p "build/temp/tree/") + (invoke + "gcc" "-pthread" "-Wno-unused-result" "-Wsign-compare" + "-DNDEBUG" "-g" "-fwrapv" "-O3" "-Wall" + "-fno-semantic-interposition" "-fPIC" + "-I" (string-append pybind11 + "/lib/python" version + "/site-packages/pybind11/include") + "-I" (string-append python "/include/python" + version) + "-I" (string-append abseil-cpp "/include") + "-c" "tree/tree.cc" + "-o" "build/temp/tree/tree.o" + "-fvisibility=hidden" "-g0") + (mkdir-p "build/lib/tree") + (invoke + "g++" "-pthread" "-shared" + (string-append "-Wl," "-rpath=" python "/lib") + "-fno-semantic-interposition" + "build/temp/tree/tree.o" + "-L" (string-append python "/lib") + "-L" (string-append abseil-cpp "/lib") + "-l" "absl_int128" + "-l" "absl_raw_hash_set" + "-l" "absl_raw_logging_internal" + "-l" "absl_strings" + "-l" "absl_throw_delegate" + "-o" "build/lib/tree/_tree.so"))))))) + (home-page "https://github.com/deepmind/tree") + (synopsis "Work with nested data structures in Python") + (description "Tree is a python library for working with nested data +structures. In a way, @code{tree} generalizes the builtin @code{map} function +which only supports flat sequences, and allows you to apply a function to each +leaf preserving the overall structure.") + (license license:asl2.0))) + (define-public python-docutils (package (name "python-docutils") @@ -4421,6 +4885,31 @@ via commands such as @command{rst2man}, as well as supporting Python code.") ;; tests contain Python 2 syntax. (arguments '(#:tests? #false)))) +(define-public python-docx + (package + (name "python-docx") + (version "0.8.11") + (source (origin + (method url-fetch) + (uri (pypi-uri "python-docx" version)) + (sha256 + (base32 + "1i7bxghb7knlyjain101qg1jmmz2b6qj03bi3vfxhvcml0rx418i")))) + (build-system pyproject-build-system) + (native-inputs + (list behave + python-flake8 + python-mock + python-pyparsing + python-pytest)) + (propagated-inputs + (list python-lxml)) + (home-page "https://github.com/python-openxml/python-docx/") + (synopsis "Python library to create and modify Microsoft Word documents") + (description "This Python library can be used to create and update +Microsoft Word (.docx) documents.") + (license license:expat))) + (define-public python-restructuredtext-lint (package (name "python-restructuredtext-lint") @@ -4559,6 +5048,23 @@ text styles of documentation.") (description "This package installs Github custom lexers to Pygments.") (license license:bsd-3))) +(define-public python-pygtrie + (package + (name "python-pygtrie") + (version "2.5.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "pygtrie" version)) + (sha256 + (base32 + "1qm4xdmzd4q5pc9h5gjdpr5m7lg06k8dvqnjn7d07d3fhani8d90")))) + (build-system pyproject-build-system) + (home-page "https://github.com/mina86/pygtrie") + (synopsis "Pure Python trie data structure implementation") + (description + "This package provides a pure Python trie data structure implementation.") + (license license:asl2.0))) + (define-public python-bump2version (package (name "python-bump2version") @@ -4693,7 +5199,7 @@ ecosystem, but can naturally be used also by other projects.") (define-public python-robotframework (package (name "python-robotframework") - (version "5.0") + (version "5.0.1") ;; There are no tests in the PyPI archive. (source (origin @@ -4703,7 +5209,7 @@ ecosystem, but can naturally be used also by other projects.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qcm36c8hachbv3bc05ky7cf63i3sj0y8dw3bwjvcln28i543f81")) + (base32 "0jjr71npzrm5mv16pya3m2dqaqgf6sc45yca5kfmc5lfislig5b8")) (patches (search-patches "python-robotframework-atest.patch" "python-robotframework-source-date-epoch.patch")))) @@ -4724,13 +5230,7 @@ ecosystem, but can naturally be used also by other projects.") ;; directory not being '/', as is the case in the Guix build ;; container. (delete-file "atest/robot/standard_libraries/\ -operating_system/path_expansion.robot") - ;; FIXME: The test 'Process.Sending Signal.By default signal - ;; is not sent to process running in shell' fails for unknown - ;; reason (see: - ;; https://github.com/robotframework/robotframework/issues/4292). - (delete-file "atest/robot/standard_libraries/\ -process/sending_signal.robot"))) +operating_system/path_expansion.robot"))) (add-before 'build 'build-and-install-doc (lambda* (#:key outputs #:allow-other-keys) (let ((doc (string-append (assoc-ref outputs "doc") @@ -4766,7 +5266,7 @@ process/sending_signal.robot"))) (invoke "xvfb-run" "atest/run.py"))))))) (native-inputs (list python-docutils - python-jsonschema + python-jsonschema-next python-invoke python-lxml python-pygments @@ -4788,13 +5288,13 @@ process automation (RPA).") (define-public python-robotframework-datadriver (package (name "python-robotframework-datadriver") - (version "1.6.0") + (version "1.6.1") (source (origin (method url-fetch) (uri (pypi-uri "robotframework-datadriver" version)) (sha256 - (base32 "0qa2vry8jr49k5rbrvmkgggzsmis1wv06dp5dvwmp7afm7vjc51k")))) + (base32 "0mcyr3v98nvfnvffy096qp3jqslas7l8hh0j00lpi0mp12cd0qk9")))) (build-system python-build-system) (arguments `(#:phases @@ -4864,7 +5364,7 @@ utility, a static analysis tool (linter) for Robot Framework source files.") (define-public python-robotframework-pabot (package (name "python-robotframework-pabot") - (version "2.5.2") + (version "2.7.0") (source (origin ;; There are no tests in the PyPI archive. @@ -4875,7 +5375,7 @@ utility, a static analysis tool (linter) for Robot Framework source files.") (file-name (git-file-name name version)) (sha256 (base32 - "14a8isq1f4lgfwjb84hhzg6jm7ns18dxa9bg6dy8k2ml8zl0qknk")))) + "0246vvyaxax0nzlrffvp9vg6mh5jmvbbm87azignf0gakjidr7nn")))) (build-system python-build-system) (arguments (list @@ -6780,6 +7280,8 @@ as the original project seems to have been abandoned circa 2007.") (build-system python-build-system) (arguments `(#:tests? #f)) ; Tests try to access the network. + (propagated-inputs + (list python-six)) (home-page "http://pagekite.net/wiki/Floss/PySocksipyChain/") (synopsis "Python SOCKS module with chained proxies support") (description @@ -6919,33 +7421,16 @@ run simple @code{argparse} parsers from function signatures.") (sha256 (base32 "169ixll1ncm2a2pcc86665ikjv2lrzs10p6c1w4yj55p3gk3xgh1")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments (list #:phases #~(modify-phases %standard-phases - ;; Do a manual PEP 517 style build/install procedure until the - ;; python-build-system overhaul is merged. - (replace 'build - (lambda _ - ;; ZIP does not support timestamps before 1980. - (let ((circa-1980 (* 10 366 24 60 60))) - (setenv "SOURCE_DATE_EPOCH" (number->string circa-1980)) - (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))) (add-before 'check 'disable-e2e-tests (lambda _ ;; These tests rely on KeyboardInterrupts which do not ;; work in the build container. - (delete-file "autopage/tests/test_end_to_end.py"))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv")))) - (replace 'install - (lambda _ - (let ((whl (car (find-files "dist" "\\.whl$")))) - (invoke "pip" "--no-cache-dir" "--no-input" - "install" "--no-deps" "--prefix" #$output whl))))))) + (delete-file "autopage/tests/test_end_to_end.py")))))) (native-inputs (list python-pypa-build python-setuptools @@ -7302,6 +7787,30 @@ 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-property-manager + (package + (name "python-property-manager") + (version "3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "property-manager" version)) + (sha256 + (base32 "0m3w4spr8f39xnm65naw29ncal4r453kn7ndqb63rwbsmslnvrwk")))) + (build-system python-build-system) + (native-inputs + (list python-pytest-cov)) + (propagated-inputs + (list python-verboselogs + python-humanfriendly + python-coloredlogs)) + (home-page "https://github.com/xolox/python-property-manager") + (synopsis "Useful property variants for Python programming") + (description "The @code{property-manager} package defines several custom +property variants for Python programming including required properties, +writable properties, cached properties, etc.") + (license license:expat))) ; MIT license + (define-public python-executing (package (name "python-executing") @@ -7323,6 +7832,32 @@ tifffile, czifile, and other scientific image input/output modules.") currently doing, particularly the AST node being executed.") (license license:expat))) +(define-public python-executor + (package + (name "python-executor") + (version "23.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "executor" version)) + (sha256 + (base32 "0g83yr54j0vcwhy6h7n0jsd7q0q630kwa6v9kqzlzrm9xj6c3ip1")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ; TODO: tests require root/sudo + (propagated-inputs + (list python-six + python-property-manager + python-fasteners + python-virtualenv)) + (home-page "https://github.com/xolox/python-executor") + (synopsis "Programmer friendly subprocess wrapper") + (description "The @code{executor} package is a simple wrapper for Python’s +subprocess module that makes it very easy to handle subprocesses on UNIX +systems with proper escaping of arguments and error checking currently doing, +particularly the AST node being executed.") + (license license:expat))) ; MIT license + (define-public python-roifile (package (name "python-roifile") @@ -7439,13 +7974,13 @@ data, and scientific formats.") (define-public python-pyvips (package (name "python-pyvips") - (version "2.2.0") + (version "2.2.1") (source (origin (method url-fetch) (uri (pypi-uri "pyvips" version)) (sha256 - (base32 "0lq71iiic4pc8qhxr60gi141w25pjnn4vsh05d5l0fjkgjsv137b")))) + (base32 "1dfbwwvnnsk4g2kj1pw654z9jq3mb72l1m8ma29858jpn12vn7dm")))) (build-system python-build-system) (arguments (list #:phases @@ -9503,13 +10038,13 @@ interfaces in an easy and portable manner.") (define-public python-networkx (package (name "python-networkx") - (version "2.6.2") + (version "2.8.6") (source (origin (method url-fetch) (uri (pypi-uri "networkx" version)) (sha256 - (base32 "1fqrq7gc0nn4rd4zqibw96cap75vb5nlixapkajwawp71jaz21i3")))) + (base32 "19h18f5j79l7kmwm5cvm75fadjgmkzw5m3pyvb9cnq0860q7faxx")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -9879,40 +10414,37 @@ SVG, EPS, PNG and terminal output.") (define-public python-seaborn (package (name "python-seaborn") - (version "0.11.2") + (version "0.12.0") (source (origin (method url-fetch) (uri (pypi-uri "seaborn" version)) (sha256 (base32 - "1xpl3zb945sihsiwm9q1yyx84sakk1phcg0fprj6i0j0dllfjifg")) - (patches (search-patches "python-seaborn-kde-test.patch" - "python-seaborn-2690.patch")))) - (build-system python-build-system) - (arguments - `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-more-tests - (lambda _ - (substitute* "seaborn/tests/test_distributions.py" - (("get_contour_color\\(ax\\.collections\\[0\\]\\)") - "get_contour_color(ax.collections[0])") - (("c\\.get_color\\(\\)") "get_contour_color(c)") - (("def test_hue_ignores_cmap") - "def skip_test_hue_ignores_cmap") - (("def test_fill_artists") - "def skip_test_fill_artists") - (("def test_with_rug") "def skip_test_with_rug")))) - (add-before 'check 'start-xserver - (lambda _ - (system "Xvfb :1 &") - (setenv "DISPLAY" ":1"))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "seaborn"))))))) + "08vvnp4ps86857imxz2l5xi2vir5xdcdp3apq4badb4b5llifgw9")))) + (build-system python-build-system) + (arguments + (list #:modules '((guix build python-build-system) + (guix build utils) + (ice-9 match)) + #:phases #~(modify-phases %standard-phases + (replace 'build + (lambda _ + (invoke "python" "-m" "build" "--wheel" + "--no-isolation" "."))) + (replace 'install + (lambda _ + (match (find-files "dist" "\\.whl$") + ((wheel _ ...) + (invoke "python" "-m" "pip" "install" + (string-append "--prefix=" #$output) + wheel))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv"))))))) (propagated-inputs (list python-pandas python-matplotlib python-numpy python-scipy)) - (native-inputs (list python-pytest xorg-server-for-tests)) + (native-inputs (list python-flit-core python-pypa-build python-pytest)) (home-page "https://seaborn.pydata.org/") (synopsis "Statistical data visualization") (description @@ -9982,16 +10514,18 @@ more advanced mathematics.") (define-public python-bigfloat (package (name "python-bigfloat") - (version "0.3.0") + (version "0.4.0") (source (origin (method url-fetch) (uri (pypi-uri "bigfloat" version)) (sha256 - (base32 "0xd7q4l7v0f463diznjv4k9wlaks80pn9drdqmfifi7zx8qvybi6")))) + (base32 "1f0c1hdr39bbl5rds5r1waa1papjmjiyp0ixs64mkjiahzg6pfaq")))) (build-system python-build-system) (inputs (list mpfr)) + (propagated-inputs + (list python-six)) (home-page "https://github.com/mdickinson/bigfloat") (synopsis "Arbitrary precision floating-point arithmetic for Python") (description @@ -10625,6 +11159,32 @@ file (e.g. @file{PKG-INFO}).") cyclomatic complexity of Python source code.") (license license:expat))) +(define-public python-autoflake8 + (package + (name "python-autoflake8") + (version "0.4.0") + (source (origin + (method git-fetch) ;for tests + (uri (git-reference + (url "https://github.com/fsouza/autoflake8") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jx7bkslbhr24yvq60pl39faz2r6g93f1zm1gygswl0rzr5zmgnh")))) + (build-system pyproject-build-system) + (native-inputs + (list python-aiofiles + python-poetry-core + python-pytest + python-pytest-xdist)) + (propagated-inputs (list python-pyflakes)) + (home-page "https://github.com/fsouza/autoflake8") + (synopsis "Automatically fix issues reported by flake8") + (description "Tool to automatically fix some issues reported by +@command{flake8}.") + (license license:expat))) + (define-public python-flake8 (package (name "python-flake8") @@ -10986,14 +11546,22 @@ Python.") (package (inherit python-mistune) (name "python-mistune-next") - (version "2.0.0rc1") + (version "2.0.4") (source (origin (method url-fetch) (uri (pypi-uri "mistune" version)) (sha256 (base32 - "1nd7iav1ixh9hlj4hxn6lmpava88d86ys8rqm30wgvr7gjlxnas5")))) - (native-inputs (list python-nose)))) + "024q9l6mgd37wa25w7dhskv1m3zsj5lf0w9cfyx7l9p2adhadq4y")))) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv"))))))) + (native-inputs (list python-pytest)))) (define-public python-markdown (package @@ -11222,6 +11790,23 @@ checksums. It implement more than a hundred checksum routines.") blocks or callables with two context managers and two decorators.") (license license:expat))) +(define-public python-timeout-decorator + (package + (name "python-timeout-decorator") + (version "0.5.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "timeout-decorator" version)) + (sha256 + (base32 + "1mxk2qyydhzncm93z08kvj5ssxq3fr2n7pkrrji28nqwvdc2ybva")))) + (build-system python-build-system) + (home-page "https://github.com/pnpnpn/timeout-decorator") + (synopsis "Timeout decorator") + (description "This package provides a decorator that raises an error +when an operation takes longer than expected.") + (license license:expat))) + (define-public python-straight-plugin (package (name "python-straight-plugin") @@ -11894,6 +12479,23 @@ independent alignment of columns (left or right justified or centred) and printing of sub-tables by specifying a row range.") (license license:bsd-3))) +(define-public python-rtf-tokenize + (package + (name "python-rtf-tokenize") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "rtf_tokenize" version)) + (sha256 + (base32 + "026njb9iwznycda83bln3gfivcnzdz6vy8y86xvbsy84s28g6gaw")))) + (build-system python-build-system) + (native-inputs (list python-pytest)) + (home-page "https://github.com/benoit-pierre/rtf_tokenize") + (synopsis "Simple RTF tokenizer") + (description "This package is a simple RTF tokenizer.") + (license license:gpl2+))) + (define-public python-curio (package (name "python-curio") @@ -12457,25 +13059,10 @@ domains support.") (uri (pypi-uri "path" version)) (sha256 (base32 "0lig13gxnfv98v790db1smvsbd3mnj7y8rwyiwhfi6xiqibygwms")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - (list - #:tests? #f - #:phases - #~(modify-phases %standard-phases - ;; XXX: PEP 517 manual build/install procedures copied from - ;; python-isort. - (replace 'build - (lambda _ - ;; ZIP does not support timestamps before 1980. - (setenv "SOURCE_DATE_EPOCH" "315532800") - (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (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)) + (list #:tests? #f)) + (native-inputs (list python-setuptools-scm)) (home-page "https://github.com/jaraco/path") (synopsis "Object-oriented file system path manipulation library") (description "@code{path} (formerly @code{path.py}) implements path @@ -12491,18 +13078,15 @@ invoked on those path objects directly.") (package-arguments python-path-bootstrap) ((#:tests? _ #f) (not (%current-target-system))) - ((#:phases phases #~%standard-phases) - #~(modify-phases #$phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - ;; Do not test the myproject.toml build as it tries to pull - ;; dependencies from the Internet. - (invoke "pytest" "-vv" "-k" - (string-append - "not project " - ;; This tests assumes a root user exists. - "and not test_get_owner"))))))))) + ((#:test-flags flags #~'()) + #~(append (list "-k" + (string-append + ;; Do not test the myproject.toml build as it tries + ;; to pull dependencies from the Internet. + "not project " + ;; This tests assumes a root user exists. + "and not test_get_owner")) + #$flags)))) (native-inputs (modify-inputs (package-native-inputs python-path-bootstrap) (append python-appdirs @@ -12543,27 +13127,6 @@ fakes, or doubles. Basically, a stub is an object that returns pre-canned responses, rather than doing any computation.") (license license:bsd-3))) -(define-public python-pip - (package - (name "python-pip") - (version "22.2.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pip" version)) - (sha256 - (base32 - "0jwac0bhfp48w4fqibf1ysrs2grksdv92hwqm7bmdw2jn2fr5l9z")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; there are no tests in the pypi archive. - (home-page "https://pip.pypa.io/") - (synopsis "Package manager for Python software") - (description - "Pip is a package manager for Python software, that finds packages on the -Python Package Index (PyPI).") - (license license:expat))) - ;;; Variant used to break a dependency cycle with ;;; python-pytest-perf-bootstrap. (define-public python-pip-run-bootstrap @@ -13648,8 +14211,8 @@ Jupyter kernels such as IJulia and IRKernel.") (("def test_other_output") "def _test_other_output"))))))) (propagated-inputs (list python-ipykernel python-ipython-genutils python-jupyter-client - python-jupyter-core python-pygments python-pyqt python-pyzmq - python-qtpy python-traitlets)) + python-jupyter-core python-pygments python-pyqt-without-qtwebkit + python-pyzmq python-qtpy python-traitlets)) (native-inputs (list python-flaky python-pytest python-pytest-qt)) (home-page "https://jupyter.org") @@ -13951,6 +14514,46 @@ config files.") (home-page "https://github.com/DiffSK/configobj") (license license:bsd-3))) +(define-public python-omegaconf + (package + (name "python-omegaconf") + (version "2.2.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/omry/omegaconf") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet #~(begin + (delete-file-recursively "build_helpers/bin") + (substitute* "build_helpers/build_helpers.py" + (("java") "antlr4") + (("\"-jar\",") "") + (("str\\(build_dir / \"bin\" / \"antlr.*\"\\),") "")))) + (sha256 + (base32 + "00rw1rkjycn0jdg3jmar6jdxb1pcb21jclm5g1921s9z8f5ii5dh")))) + (build-system pyproject-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'loosen-requirements + (lambda _ + (substitute* "requirements/base.txt" + (("antlr4-python3-runtime==") + "antlr4-python3-runtime>="))))))) + (propagated-inputs (list java-antlr4-runtime-python + python-pydevd + python-pyyaml)) + (native-inputs (list icedtea antlr4 python-pytest python-pytest-mock)) + (home-page "https://github.com/omry/omegaconf") + (synopsis "Flexible configuration system") + (description "OmegaConf is a hierarchical configuration system and +supports merging configurations from multiple sources. It provides a +consistent API regardless of how the configuration was created.") + (license license:bsd-3))) + (define-public python-configargparse (package (name "python-configargparse") @@ -14377,7 +14980,7 @@ with a new public API, and RPython support.") (define-public python-hy (package (name "python-hy") - (version "0.20.0") + (version "0.25.0") (source (origin (method git-fetch) ; no tests in PyPI release @@ -14386,7 +14989,7 @@ with a new public API, and RPython support.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1g7djra9z7b0wyqyfrk2n4z3zamp2xkahv00jwdv35xmwwn09hq4")))) + (base32 "1am6z9m0s9svysj0wrfz069rpvbqqimphqll3912q4bvdlz6vrjp")))) (build-system python-build-system) (arguments '(#:phases @@ -14396,13 +14999,14 @@ with a new public API, and RPython support.") (when tests? (invoke "python" "-m" "pytest" "-k" (string-append ; skip some failed tests - "not test_bin_hy_sys_executable" - " and not test_bin_hy_circular_macro_require" - " and not test_macro_from_module")))))))) + "not test_sys_executable" + " and not test_circular_macro_require" + " and not test_macro_require" + " and not test_requires_pollutes_core")))))))) (native-inputs - (list python-pytest)) + (list python-pytest-7.1 python-wheel)) (propagated-inputs - (list python-astor python-colorama python-funcparserlib python-rply)) + (list python-colorama python-funcparserlib)) (home-page "https://docs.hylang.org/en/stable/") (synopsis "Lisp frontend to Python") (description @@ -14931,7 +15535,10 @@ enhancements to optimization and data fitting problems.") (delete-file "tests/unit/bokeh/models/test_sources.py") (delete-file "tests/unit/bokeh/embed/test_bundle.py") - (invoke "pytest" "-v"))))))) + ;; XXX: This one test transforms a gif of a red box. It + ;; transforms it all right but the base64 doesn't look as + ;; expected, probably because of a change in pillow. + (invoke "pytest" "-v" "-k" "not test_transform_PIL"))))))) (propagated-inputs (list node-lts python-jinja2 @@ -15280,8 +15887,8 @@ fast xml and html manipulation.") ;; whatever) so this transformation needs to be done before the tests ;; can be run. Maybe we could add a build step to transform beforehand ;; but it could be annoying/difficult. - ;; We can enable tests for the Python 2 version, though, and do below. #:tests? #f)) + (native-inputs (list python-setuptools-57)) ;for use_2to3 support (home-page "https://bitbucket.org/runeh/anyjson/") (synopsis "Wraps best available JSON implementation in a common interface") @@ -15712,6 +16319,20 @@ way.") (sha256 (base32 "00yvj8bxmhhhhd74v7j0x673is7vizmxwgb3dd5xmnkr74ybyi7w")))) + (arguments + (list + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'disable-test + (lambda _ + ;; See https://github.com/bmc/munkres/issues/40 + (substitute* "test/test_munkres.py" + (("^def test_profit_float" m) + (string-append "\ +import platform +@pytest.mark.skipif(platform.architecture()[0] == \"32bit\", + reason=\"Fails on 32 bit architectures\") +" m)))))))) (build-system python-build-system) (native-inputs (list python-pytest)) (home-page "https://software.clapper.org/munkres/") @@ -15970,6 +16591,49 @@ is made as zipfile like as possible.") syntax highlighting, markdown and more to the terminal.") (license license:expat))) +(define-public python-textual + (package + (name "python-textual") + (version "0.1.18") + (source (origin + (method url-fetch) + (uri (pypi-uri "textual" version)) + (sha256 + (base32 + "08yg5a51hz1axfj5hx28hx31gq5apcj6vpkkmawmiplisa73z25j")))) + (build-system python-build-system) + (arguments + (let ((tests + ;; The release on pypi comes without tests. We can't build + ;; from this checkout, though, because installation requires + ;; an invocation of poetry. + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Textualize/textual") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0b3ycwqhp21mg9fvmadgxhgbvkwq6fd784l2xcmvy77rravrnnax"))))) + (list #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (copy-recursively #$(file-append tests "/tests") + "tests") + (invoke "python" "-m" "pytest" "-vv")))))))) + (propagated-inputs + (list python-rich python-typing-extensions)) + (native-inputs + (list python-pytest)) + (home-page "https://github.com/Textualize/textual") + (synopsis "Build text user interfaces in Python") + (description "Textual is a @acronym{TUI, Text User Interface} framework +for Python inspired by modern web development.") + (license license:expat))) + (define-public python-magic (package (name "python-magic") @@ -16023,6 +16687,42 @@ modules, which are different and were developed separately, both serve the same purpose: to provide Python bindings for libmagic.") (license license:expat))) +(define-public s3cmd + (package + (name "s3cmd") + (version "2.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/s3tools/s3cmd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rdgwwmmp8mdxc84bxq6k9a7v7z2qgc3df47djzs2b84gw81dglx")))) + (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'hide-wrapping + (lambda _ + (substitute* "S3/MultiPart.py" + (("sys\\.argv\\[0\\]") "\"s3cmd\"")) + (substitute* "s3cmd" + (("optparser\\.get_prog_name\\(\\)") "\"s3cmd\""))))))) + (inputs + (list python-dateutil + python-magic)) + (home-page "https://s3tools.org/s3cmd") + (synopsis "Command line tool for S3-compatible storage services") + (description + "S3cmd is a command line tool for uploading, retrieving and managing data +in storage services that are compatible with the Amazon Simple Storage +Service (S3) protocol, including S3 itself. It supports rsync-like backup, +GnuPG encryption, and more. It also supports management of Amazon's +CloudFront content delivery network.") + (license license:gpl2+))) + (define-public python-pkgconfig (package (name "python-pkgconfig") @@ -16296,13 +16996,13 @@ library. It can be used to act both as a TFTP client or TFTP server.") (define-public python-greenlet (package (name "python-greenlet") - (version "1.1.2") - (source (origin - (method url-fetch) - (uri (pypi-uri "greenlet" version)) - (sha256 - (base32 - "0jkln5bf6rq7dbvpv7ypin3pp9jqd2jr91yyxlnfcii3msj5w3z3")))) + (version "2.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "greenlet" version)) + (sha256 + (base32 "0rqgxp1fai0fcyv46nd1389mxvk3ccixgdkwws70xnk08ib05rj2")))) (build-system python-build-system) (home-page "https://greenlet.readthedocs.io/") (synopsis "Lightweight in-process concurrent programming") @@ -16339,13 +17039,13 @@ graphviz.") (define-public python-gevent (package (name "python-gevent") - (version "21.12.0") + (version "22.10.2") (source (origin (method url-fetch) (uri (pypi-uri "gevent" version)) (sha256 (base32 - "0kh9mmq811mzfgj60n64icybjp4ryjmfmy1vg7x92yrniibn92zl")) + "0ijwwm2yr7jgz8xs1rbvzj6gp7xw1pagf0i7g99b6dzffshiv80w")) (modules '((guix build utils))) (snippet '(begin @@ -16905,12 +17605,11 @@ strings require only one extra byte in addition to the strings themselves.") (sha256 (base32 "1n0h25gj6zd02kqyl040xpdvg4hpy1j92716sz0rg019xjqqijqb")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments (list #:phases #~(modify-phases %standard-phases - ;; XXX: PEP 517 manual build copied from python-isort. (add-after 'unpack 'adjust-for-older-attrs ;; Our older attrs package is using the 'attr' rather than 'attrs' ;; namespace. @@ -16919,14 +17618,6 @@ strings require only one extra byte in addition to the strings themselves.") (substitute* (find-files "." "\\.py$") (("from attrs\\b") "from attr")))) - (replace 'build - (lambda _ - (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) - (replace 'install - (lambda _ - (let ((whl (car (find-files "dist" "\\.whl$")))) - (invoke "pip" "--no-cache-dir" "--no-input" - "install" "--no-deps" "--prefix" #$output whl)))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? @@ -16944,7 +17635,6 @@ strings require only one extra byte in addition to the strings themselves.") python-msgpack python-poetry-core python-pymongo ;for the bson module - python-pypa-build python-pytest python-pytest-xdist)) (propagated-inputs @@ -17229,8 +17919,10 @@ It supports TSIG authenticated messages and EDNS0.") (lambda _ (substitute* "setup.py" (("import DNS") "") - (("DNS.__version__") (string-append "\"" ,version "\""))) - #t))) + (("DNS.__version__") (string-append "\"" ,version "\""))))) + ;; For the same reason, drop the sanity check because the library + ;; fails to load without /etc/resolv.conf. + (delete 'sanity-check)) #:tests? #f)) ; Also skip the tests. (home-page "https://launchpad.net/py3dns") (synopsis "Python 3 DNS library") @@ -17449,7 +18141,7 @@ characters, mouse support, and auto suggestions.") (setenv "HOME" "/tmp")))))) (propagated-inputs (list python-click python-future python-six)) - (home-page "https://github.com/amperser/proselint") + (home-page "http://proselint.com/") (synopsis "Linter for prose") (description "@code{python-proselint} is a linter for English prose, that scans through a file and detects issues.") @@ -17512,13 +18204,13 @@ as well.") (define-public ptpython (package (name "ptpython") - (version "3.0.17") + (version "3.0.20") (source (origin (method url-fetch) (uri (pypi-uri "ptpython" version)) (sha256 (base32 - "1phk1grcvn456igjg8gwjjg8bf4kszddq5nd5sdlz3hslg62a7ci")))) + "1mjfyr5gwrs1qbizh6nki0nv6hahmg8mhhqxi1qc6pfa4znlrzga")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;there are no tests @@ -17529,9 +18221,9 @@ as well.") (synopsis "Python Read-Eval-Print-Loop with nice IDE-like features") (description "ptpython is a Python read-eval-print loop with IDE-like features. - It supports syntax highlighting, multiline editing, autocompletion, mouse, - color schemes, bracketed paste, Vi and Emacs keybindings, Chinese characters - etc.") +It supports syntax highlighting, multiline editing, autocompletion, mouse, +color schemes, bracketed paste, Vi and Emacs keybindings, Chinese characters +etc.") (license license:bsd-3))) (define-public python-easyprocess @@ -17669,13 +18361,13 @@ as well.") (define-public python-pyserial-asyncio (package (name "python-pyserial-asyncio") - (version "0.5") + (version "0.6") (source (origin (method url-fetch) (uri (pypi-uri "pyserial-asyncio" version)) (sha256 - (base32 "0cwd2cjz859v6jrm3y6hikfqjyhyfj5vhfjb8vvflvl6791yah8n")))) + (base32 "0bx3syngmq2j9mh81byzka1x4ilw8ac9mbx52zn7b7ayw0ijj0xn")))) (build-system python-build-system) (propagated-inputs (list python-pyserial)) (home-page "https://github.com/pyserial/pyserial-asyncio") @@ -18014,7 +18706,7 @@ without requiring an event loop, useful for creative responsive GUIs.") (define-public binwalk (package (name "binwalk") - (version "2.3.2") + (version "2.3.3") (source (origin (method git-fetch) @@ -18023,7 +18715,13 @@ without requiring an event loop, useful for creative responsive GUIs.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "01dalxw07c42ka4fqpixcacvy42h04ya909lzpmsblr9s2xdgwcm")))) + (base32 "0phqyqv34vhh80dgipiggs4n3iq2vfjk9ywx2c5d8g61vzgbd2g8")) + (modules '((guix build utils))) + (snippet + #~(begin + (for-each delete-file + (list "testing/tests/input-vectors/firmware.zip" + "testing/tests/test_firmware_zip.py")))))) (build-system python-build-system) (arguments `(#:phases @@ -18254,13 +18952,13 @@ numbers, real numbers, mixed types and more, and comes with a shell command (define-public glances (package (name "glances") - (version "3.1.7") + (version "3.3.0.4") (source (origin (method url-fetch) (uri (pypi-uri "Glances" version)) (sha256 - (base32 "020vb38qrb0m3sdr7xjr43cmcfxpnyg4hmb97wgxsa9zvwsjwa5x")) + (base32 "0klyyxqc7cbrf1i741304i3rrwan19qm2v58xmrlgqsmxac542la")) (modules '((guix build utils))) (snippet '(begin @@ -18274,7 +18972,7 @@ numbers, real numbers, mixed types and more, and comes with a shell command #t)))) (build-system python-build-system) (propagated-inputs - (list python-future python-psutil)) + (list python-defusedxml python-future python-packaging python-psutil)) (home-page "https://github.com/nicolargo/glances") (synopsis "Cross-platform curses-based monitoring tool") (description @@ -18556,35 +19254,6 @@ working with Portable Executable (PE) files. It makes to most information from the header, as well as section details and data available.") (license license:expat))) -(define-public python-pyev - (package - (name "python-pyev") - (version "0.9.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pyev" version)) - (sha256 - (base32 - "0rf603lc0s6zpa1nb25vhd8g4y337wg2wyz56i0agsdh7jchl0sx")))) - (build-system python-build-system) - (arguments - `(#:tests? #f ; no test suite - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch - (lambda* (#:key inputs #:allow-other-keys) - (let ((libev (search-input-file inputs "/lib/libev.so.4"))) - (substitute* "setup.py" - (("libev_dll_name = find_library\\(\\\"ev\\\"\\)") - (string-append "libev_dll_name = \"" libev "\""))))))))) - (inputs - (list libev)) - (home-page "https://github.com/gabrielfalcao/pyev") - (synopsis "Python libev interface") - (description "Pyev provides a Python interface to libev.") - (license license:gpl3))) - (define-public python-imagesize (package (name "python-imagesize") @@ -18884,8 +19553,6 @@ from the header, as well as section details and data available.") (replace 'check (lambda _ (invoke "python" "test/test_pbkdf2.py")))))) - (propagated-inputs - (list python-pycrypto)) ; optional (home-page "https://www.dlitz.net/software/python-pbkdf2/") (synopsis "Password-based key derivation") (description "This module implements the password-based key derivation @@ -19241,6 +19908,27 @@ from the header, as well as section details and data available.") and bit flag values.") (license license:expat))) +(define-public python-attrdict + (package + (name "python-attrdict") + (version "2.0.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "attrdict" version)) + (sha256 + (base32 + "0w3vsz64j9npxfgh83hghsh161wwkrx1fxqi1533js2wnnc0dj9m")))) + (build-system python-build-system) + ;; The package is no longer maintained and tests need some work. + (arguments '(#:tests? #f)) + (propagated-inputs (list python-six)) + (home-page "https://github.com/bcj/AttrDict") + (synopsis "Attribute-style access dictionaries") + (description + "This package provides mapping objects whose elements can be accessed +both as keys and as attributes.") + (license license:expat))) + (define-public python-attrs (package (name "python-attrs") @@ -19337,7 +20025,7 @@ from the header, as well as section details and data available.") (add-before 'build 'check (lambda _ (invoke "make" "check")))))) (home-page "https://liw.fi/ttystatus/") - (synopsis "Python library for showing progress reporting and + (synopsis "Python library for progress reporting and status updates on terminals") (description "@code{ttystatus} is a Python library for showing progress reporting and status updates on terminals, for command line programs. @@ -19862,19 +20550,6 @@ while only declaring the test-specific fields.") ;; licenses. (license (list license:asl2.0 license:bsd-2)))) -;; TODO(staging): merge with python-packaging-bootstrap. -(define-public python-packaging-next - (package - (inherit python-packaging) - (version "21.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "packaging" version)) - (sha256 - (base32 - "1sygirdrqgv4f1ckh9nhpcw1yfidrh3qjl86wq8vk6nq4wlw8iyx")))))) - (define-public python-relatorio (package (name "python-relatorio") @@ -20317,24 +20992,29 @@ while only declaring the test-specific fields.") (define-public python-marshmallow (package (name "python-marshmallow") - (version "3.9.1") + (version "3.19.0") (source (origin - (method url-fetch) - (uri (pypi-uri "marshmallow" version)) - (sha256 - (base32 - "0kizhh3mnhpa08wfnsv1gagy22bpxzxszgbiylkhpz1d8qvwrykk")))) - (build-system python-build-system) + (method url-fetch) + (uri (pypi-uri "marshmallow" version)) + (sha256 + (base32 + "0y6vpq2p5841kcw2qil68la0rx9z1vmxzj3dxjv99kjhsq7jq0wh")))) + (build-system pyproject-build-system) (propagated-inputs - (list python-dateutil python-simplejson)) + (list python-packaging)) (native-inputs - (list python-pytest python-pytz)) + (list python-flake8 + python-flake8-bugbear + python-mypy + python-pre-commit + python-pytest + python-pytz + python-simplejson)) (home-page "https://github.com/marshmallow-code/marshmallow") - (synopsis "Convert complex datatypes to and from native - Python datatypes") - (description "@code{marshmallow} provides a library for converting - complex datatypes to and from native Python datatypes.") + (synopsis "Convert complex datatypes to and from native Python datatypes") + (description "@code{marshmallow} provides a library for converting complex +datatypes to and from native Python datatypes.") (license license:expat))) (define-public python-marshmallow-jsonapi @@ -20370,39 +21050,70 @@ while only declaring the test-specific fields.") (define-public python-apispec (package (name "python-apispec") - (version "4.0.0") + (version "6.0.2") (source (origin - (method url-fetch) - (uri (pypi-uri "apispec" version)) - (sha256 + (method url-fetch) + (uri (pypi-uri "apispec" version)) + (sha256 (base32 - "12n4w5zkn4drcn8izq68vmixmqvz6abviqkdn4ip0kaax3jjh3in")))) - (build-system python-build-system) + "11vqxwdxmm7qmyhdbxk4gnx37nbzmn266ah92gi4pvzd76vq0vg7")))) + (build-system pyproject-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "pytest" "-vv" - ;; Disable validation tests since they require - ;; the optional 'prance' library which is not - ;; yet in Guix. - "-k" "not openapi_tools_validate")))))) + (list + ;; Disable validation tests since they require + ;; the optional 'prance' library which is not + ;; yet in Guix. + #:test-flags '(list "-k" "not openapi_tools_validate"))) (propagated-inputs - (list python-pyyaml)) + (list python-packaging)) (native-inputs - (list python-pytest python-marshmallow)) + (list python-flake8 + python-flake8-bugbear + python-marshmallow + python-mypy + python-pre-commit + python-pytest + python-pyyaml)) (home-page "https://github.com/marshmallow-code/apispec") (synopsis "Swagger/OpenAPI specification generator") (description "@code{python-apispec} is a pluggable API specification - generator. It currently supports the OpenAPI specification, formerly known - as Swagger.") +generator. It currently supports the OpenAPI specification, formerly known as +Swagger.") + (license license:expat))) + +(define-public python-apispec-webframeworks + (package + (name "python-apispec-webframeworks") + (version "0.5.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "apispec-webframeworks" version)) + (sha256 + (base32 + "1wyw30402xq2a8icrsjmy9v43jyvawcjd85ccb2zicqlg4k5pcqd")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-apispec)) + (native-inputs + (list python-bottle + python-flake8 + python-flake8-bugbear + python-flask + python-mock + python-pre-commit + python-pytest + python-tornado + python-tox)) + (home-page "https://github.com/marshmallow-code/apispec-webframeworks") + (synopsis "Web framework plugins for apispec") + (description "This package provides plugins for using @code{apispec} with +web frameworks.") (license license:expat))) (define-public python-flasgger (package (name "python-flasgger") - (version "0.6.3") + (version "0.9.5") (source (origin (method git-fetch) @@ -20411,29 +21122,35 @@ while only declaring the test-specific fields.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0yydxsyjnc0clbrjqb1n7587l6cdqvwdagwxk5hkx01qwdfbkvpn")))) - (build-system python-build-system) + (base32 "0a2djgfq905a4in16068qz0ikg88dm4nbckaamhaz2v9khllr0bi")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "Makefile" - (("flake8 flasgger --ignore=F403") - "flake8 flasgger --ignore=E731,F403")) - (invoke "py.test")))))) + (list + ;; This test fails due to missing fixtures + #:test-flags '(list "-k" "not test_swag") + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'prepare-check + (lambda _ + ;; This requires a dummy package "flasgger_package" to be installed. + (delete-file "examples/package_example.py") + ;; These fail with an internal server error + (for-each delete-file '("examples/marshmallow_apispec.py" + "examples/validation.py"))))))) (propagated-inputs (list python-flask python-pyyaml python-jsonschema python-mistune python-six)) (native-inputs - (list python-decorator + (list python-apispec + python-apispec-webframeworks + python-decorator python-flake8 + python-flask-jwt python-flask-restful python-flex - python-pytest - python-pytest-cov python-marshmallow - python-apispec)) + python-pytest + python-pytest-cov)) (home-page "https://github.com/rochacbruno/flasgger/") (synopsis "Extract Swagger specs from your Flask project") (description "@code{python-flasgger} allows extracting Swagger specs @@ -21058,30 +21775,13 @@ particularly convenient for use in tests.") (uri (pypi-uri "tempora" version)) (sha256 (base32 "09wirlk5vmxlhl9rnxp7g5qz2nsd6b0gnzk5fczbz0s8lsbz386b")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - (list - #:phases - #~(modify-phases %standard-phases - ;; XXX: PEP 517 manual build copied from python-isort. - (replace 'build - (lambda _ - (setenv "SOURCE_DATE_EPOCH" "315532800") - (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) - (replace 'install - (lambda _ - (let ((whl (car (find-files "dist" "\\.whl$")))) - (invoke "pip" "--no-cache-dir" "--no-input" - "install" "--no-deps" "--prefix" #$output whl)))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - ;; Do not test the myproject.toml build as it tries to pull - ;; dependencies from the Internet. - (invoke "pytest" "-k" "not project"))))))) + ;; Do not test the myproject.toml build as it tries to pull + ;; dependencies from the Internet. + (list #:test-flags #~'("-k" "not project"))) (native-inputs - (list python-pypa-build - python-freezegun + (list python-freezegun python-pytest python-pytest-black python-pytest-checkdocs @@ -21368,14 +22068,14 @@ style guide, even if the original code didn't violate the style guide.") (define-public python-yq (package (name "python-yq") - (version "2.11.1") + (version "3.1.0") (source (origin (method url-fetch) (uri (pypi-uri "yq" version)) (sha256 (base32 - "1q4rky0a6n4izmq7slb91a54g8swry1xrbfqxwc8lkd3hhvlxxkl")))) + "1wklgs3d9si475nffw9agq5kgk8bdicbsmlj4sx4kiw64ji4ma1h")))) (build-system python-build-system) (arguments '(#:phases @@ -21390,9 +22090,9 @@ style guide, even if the original code didn't violate the style guide.") "/bin/jq"))) #t))))) (inputs - (list python-argcomplete python-pyyaml python-xmltodict jq)) + (list python-argcomplete python-pyyaml python-xmltodict python-toml jq)) (native-inputs - (list python-coverage python-flake8 python-wheel)) + (list python-coverage python-flake8 python-setuptools-scm python-wheel)) (home-page "https://github.com/kislyuk/yq") (synopsis "Command-line YAML/XML processor") (description @@ -21402,8 +22102,8 @@ filters can be used to process the data as it passes through.") (license license:asl2.0))) (define-public python-gyp - (let ((commit "5e2b3ddde7cda5eb6bc09a5546a76b00e49d888f") - (revision "0")) + (let ((commit "9d09418933ea2f75cc416e5ce38d15f62acd5c9a") + (revision "1")) (package (name "python-gyp") ;; Google does not release versions, @@ -21420,8 +22120,9 @@ filters can be used to process the data as it passes through.") (file-name (git-file-name name version)) (sha256 (base32 - "0fr7nxcrk292djmxzpcjaphnsd123k31gp8jnd91vwknhq6snmv9")))) + "0ay99rc5msqjpjl7fy1l69f8mvn08wnh2pgr08ijdih9z88xaa5x")))) (build-system python-build-system) + (propagated-inputs (list python-six)) (home-page "https://gyp.gsrc.io/") (synopsis "GYP is a Meta-Build system") (description @@ -21443,13 +22144,7 @@ files, and Makefiles.") (file-name (git-file-name name version)) (sha256 (base32 "1q7ajgqjfivxqsqgnhp4lc4p6jxyh4zprcsdbpd6dw54inaf0av5")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "py.test")))))) + (build-system pyproject-build-system) (native-inputs (list python-pytest)) (home-page "https://github.com/Suor/whatever") @@ -21471,13 +22166,7 @@ functions by partial application of operators.") (sha256 (base32 "1s98vkjnq3zq71737hn8xa15kssvmy1sfzsll3vrlv53902418mw")) (file-name (git-file-name name version)))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "py.test")))))) + (build-system pyproject-build-system) (native-inputs (list python-pytest python-whatever)) (home-page "https://github.com/Suor/funcy") @@ -21667,60 +22356,42 @@ based on the CPython 2.7 and 3.7 parsers.") (file-name (git-file-name name version)) (sha256 (base32 "1knv353qhkl2imav3jfp6bgq47m8wkkqhq1dzmqg2sv8rsy7zgl7")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:phases - ,#~(modify-phases %standard-phases - ;; Unfortunately, this doesn't seem to be enough to fix these two - ;; tests, but we'll patch this anyway. - (add-after 'unpack 'patch-shell-reference - (lambda _ - (substitute* "tests/test_completion/test_completion.py" - (("\"bash\"") (string-append "\"" (which "bash") "\"")) - (("\"/bin/bash\"") - (string-append "\"" (which "bash") "\""))))) - (replace 'build - (lambda _ - (invoke "flit" "build"))) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (for-each - (lambda (wheel) - (format #true wheel) - (invoke "python" "-m" "pip" "install" - wheel (string-append "--prefix=" #$output))) - (find-files "dist" "\\.whl$")))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (setenv "HOME" "/tmp") ; some tests need it - - ;; This is for completion tests - (with-output-to-file "/tmp/.bashrc" - (lambda _ (display "# dummy"))) - - (setenv "GUIX_PYTHONPATH" - (string-append (getcwd) ":" - (getenv "GUIX_PYTHONPATH"))) - (let ((disabled-tests (list "test_show_completion" - "test_install_completion"))) - (invoke "python" "-m" "pytest" "tests/" - "-k" - (string-append "not " - (string-join disabled-tests - " and not ")))))))))) + (list + #:test-flags + '(let ((disabled-tests (list "test_show_completion" + "test_install_completion"))) + (list "-k" (string-append "not " + (string-join disabled-tests + " and not ")))) + #:phases + #~(modify-phases %standard-phases + ;; Unfortunately, this doesn't seem to be enough to fix these two + ;; tests, but we'll patch this anyway. + (add-after 'unpack 'patch-shell-reference + (lambda _ + (substitute* "tests/test_completion/test_completion.py" + (("\"bash\"") (string-append "\"" (which "bash") "\"")) + (("\"/bin/bash\"") + (string-append "\"" (which "bash") "\""))))) + (add-before 'check 'pre-check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "HOME" "/tmp") ; some tests need it + ;; This is for completion tests + (with-output-to-file "/tmp/.bashrc" + (lambda _ (display "# dummy"))))))))) (propagated-inputs (list python-click)) (native-inputs (list python-coverage python-flit python-pytest python-rich python-shellingham)) (home-page "https://github.com/tiangolo/typer") - (synopsis - "Typer builds CLI based on Python type hints") + (synopsis "Typer builds CLI based on Python type hints") (description - "Typer is a library for building CLI applications. It's based on -Python 3.6+ type hints.") + "Typer is a library for building CLI applications. It's based on Python +3.6+ type hints.") ;; MIT license (license license:expat))) @@ -21827,13 +22498,13 @@ Included are implementations of: (define-public bpython (package (name "bpython") - (version "0.21") + (version "0.23") (source (origin (method url-fetch) (uri (pypi-uri "bpython" version)) (sha256 - (base32 "11wlf12nm6ggn9512y4yqs26s8gdgpx0h9ls94k7fsjgjy4rpal8")))) + (base32 "0ah5giynavyh70yc0jqgmjaajv3xg5j2y7k9i3q8mi47r2mph04z")))) (build-system python-build-system) (arguments `(#:phases @@ -21942,6 +22613,25 @@ working with iterables.") (description "Lexer and codec to work with LaTeX code in Python.") (license license:expat))) +(define-public python-pybloom-live + (package + (name "python-pybloom-live") + (version "4.0.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "pybloom_live" version)) + (sha256 + (base32 + "040i6bjqvl33j30v865shsk30s3h7f16pqwiaj5kig857dfmqm4r")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-bitarray python-xxhash)) + (native-inputs (list python-pytest)) + (home-page "https://github.com/joseph-fox/python-bloomfilter") + (synopsis "Bloom filter") + (description "This package provides a scalable Bloom filter implemented in +Python.") + (license license:expat))) + (define-public python-pybtex (package (name "python-pybtex") @@ -22660,6 +23350,32 @@ environments.") "PyNamecheap is a Namecheap API client in Python.") (license license:expat))) +(define-public python-pynixutil + (package + (name "python-pynixutil") + (version "0.5.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nix-community/pynixutil") + (commit version))) + (file-name (git-file-name name version)) + ;; Derivation test uses nix. + (modules '((guix build utils))) + (snippet '(delete-file "tests/test_drv.py")) + (sha256 + (base32 + "1lnspcai7mqpv73bbd8kgyw63fxwgkwvfkl09b2bl5y2g2v7np6m")))) + (build-system pyproject-build-system) + (native-inputs (list poetry python-pytest)) + (home-page "https://github.com/nix-community/pynixutil") + (synopsis "Utility functions for working with data from Nix in Python") + (description + "@code{pynixutil} provides functions for base32 encoding/decoding and +derivation parsing, namingly @code{b32decode()}, @code{b32encode()} and +@code{drvparse()}.") + (license license:expat))) + (define-public python-dns-lexicon (package (name "python-dns-lexicon") @@ -22795,14 +23511,14 @@ tool).") (define-public python-numcodecs (package (name "python-numcodecs") - (version "0.6.4") + (version "0.10.2") (source (origin (method url-fetch) (uri (pypi-uri "numcodecs" version)) (sha256 (base32 - "0kbfr8pl3x9glsypbq8hzim003f16ml1b1cvgrh4w1sdvgal6j7g")) + "1i2rvm1f23dapcf6w3mj4877jzq5f24bhfa0fafbv1nr7xmqr0r2")) (modules '((guix build utils))) (snippet '(begin @@ -22812,11 +23528,11 @@ tool).") "numcodecs/lz4.c" "numcodecs/vlen.c" "numcodecs/zstd.c")))))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:tests? #false ; TODO: unclear why numcodecs.* are not found - #:phases - (modify-phases %standard-phases + (list + #:phases + '(modify-phases %standard-phases (add-after 'unpack 'disable-avx2 (lambda _ (setenv "DISABLE_NUMCODECS_AVX2" "1"))) @@ -22833,16 +23549,18 @@ tool).") "'numcodecs.lz4', libraries=['lz4'], ") (("'numcodecs.blosc',") "'numcodecs.blosc', libraries=['blosc'], ")))) - (replace 'check - (lambda* (#:key tests? inputs outputs #:allow-other-keys) - (when tests? - (add-installed-pythonpath inputs outputs) - (invoke "pytest" "-vv"))))))) + (add-before 'check 'build-extensions + (lambda _ + ;; Cython extensions have to be built before running the tests. + (invoke "python" "setup.py" "build_ext" "--inplace")))))) (inputs (list c-blosc lz4 zlib `(,zstd "lib"))) (propagated-inputs - (list python-numpy python-msgpack)) + (list python-entrypoints + python-numpy + python-msgpack + python-typing-extensions)) (native-inputs (list python-cython python-pytest python-setuptools-scm)) (home-page "https://github.com/zarr-developers/numcodecs") @@ -22872,14 +23590,14 @@ codecs for use in data storage and communication applications.") (define-public python-zarr (package (name "python-zarr") - (version "2.4.0") + (version "2.13.3") (source (origin (method url-fetch) (uri (pypi-uri "zarr" version)) (sha256 (base32 - "026n3sjzjv2gmwx6y72b8ij0hk42bc8zdbvfj5gdqzd4i6wj3ajk")))) + "135ls2q7zc98pk61a5cnh88j4hnnavcwasrswdjqyqvcc68b096v")))) (build-system python-build-system) (arguments `(#:phases @@ -22921,29 +23639,26 @@ N-dimensional arrays for Python.") (sha256 (base32 "0v7npqrg1rdm8jzw22a45c0mqrmsv05r3k88i3lhzi0pzzxca1i1")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'check) - (replace 'build - (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") - (invoke "flit" "build"))) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (let ((out (assoc-ref outputs "out"))) - (for-each (lambda (wheel) - (format #true wheel) - (invoke "python" "-m" "pip" "install" - wheel (string-append "--prefix=" out))) - (find-files "dist" "\\.whl$")))))))) + (list + #:test-flags + '(list "-k" "not concatenation.rst") + #:phases + #~(modify-phases %standard-phases + ;; Doctests require scanpy from (gnu packages bioinformatics) + (add-after 'unpack 'disable-doctests + (lambda _ + (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")))))) (propagated-inputs (list python-h5py python-importlib-metadata @@ -22952,9 +23667,14 @@ N-dimensional arrays for Python.") python-packaging python-pandas python-scipy + python-scikit-learn python-zarr)) (native-inputs - (list python-joblib python-pytest python-toml python-flit + (list python-boltons + python-joblib + python-pytest + python-toml + python-flit python-setuptools-scm)) (home-page "https://github.com/theislab/anndata") (synopsis "Annotated data for data analysis pipelines") @@ -24235,7 +24955,7 @@ time-or-computationally-expensive properties quick and easy and works in Python (define-public python-folium (package (name "python-folium") - (version "0.12.1") + (version "0.13.0") (source (origin ;; PyPI has a ".whl" file but not a proper source release. @@ -24246,7 +24966,7 @@ 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 "1q05pzca3wfwgnbg03l3bagnhh348yx68w4aa91rg3g8zlviwjz1")))) + (base32 "00adpdi1890zzzg7ffp04hmx59igdcdpyqa129vnmwqh54b5a006")))) (build-system python-build-system) (propagated-inputs (list python-branca python-jinja2 python-numpy python-requests)) @@ -25001,16 +25721,27 @@ scripts to load entry points more quickly.") (define-public python-funcparserlib (package (name "python-funcparserlib") - (version "1.0.0") + (version "1.0.1") (source - (origin - (method url-fetch) - (uri (pypi-uri "funcparserlib" version)) - (sha256 - (base32 "0swbqf53x7lfnczvi566s1g3nkf5mfrxz7sbpyymricz57a3vlvx")))) - (build-system python-build-system) + (origin + ;; Source tarball on PyPi lacks tests. + (method git-fetch) + (uri (git-reference + (url "https://github.com/vlasovskikh/funcparserlib") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dw3i4fyf3j9h1l7xfgs99fc2w2axk6xqk0sdag43k444ss4hkrc")))) + (build-system pyproject-build-system) (arguments - `(#:tests? #f)) ; no tests in PyPI and no setup.py in GitHub + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "-m" "unittest" "discover" "-v"))))))) + ;; ModuleNotFoundError: No module named 'poetry' + (native-inputs (list python-poetry-core)) (home-page "https://github.com/vlasovskikh/funcparserlib") (synopsis "Recursive descent parsing library based on functional combinators") @@ -25176,17 +25907,33 @@ also be usable with other GSSAPI mechanisms.") (define-public python-check-manifest (package (name "python-check-manifest") - (version "0.37") + (version "0.48") (source (origin (method url-fetch) (uri (pypi-uri "check-manifest" version)) (sha256 (base32 - "0lk45ifdv2cpkl6ayfyix7jwmnxa1rha7xvb0ih5999k115wzqs4")))) - (build-system python-build-system) + "0my6ammldi8mddrbq798qxbl90qr8nlk7gzliq3v7gp7mlfmymrv")))) + (build-system pyproject-build-system) + (arguments + '(;; This test requires setting up a venv which does not work + ;; properly in the build environment. + #:test-flags '("-k" "not test_build_sdist_pep517_isolated") + #:phases + (modify-phases %standard-phases + ;; Tests use git submodule commands over the file transport, which + ;; has been disabled in git, see CVE-2022-39253. Enable these + ;; commands to allow checks to succeed. + (add-before 'check 'allow-git-submodule-add + (lambda _ + (setenv "HOME" "/tmp") + (invoke "git" "config" "--global" + "protocol.file.allow" "always")))))) (native-inputs - (list python-mock git)) + (list git-minimal/fixed python-pytest)) + (propagated-inputs + (list python-pypa-build python-setuptools python-tomli)) (home-page "https://github.com/mgedmin/check-manifest") (synopsis "Check MANIFEST.in in a Python source package for completeness") (description "Python package can include a MANIFEST.in file to help with @@ -25723,15 +26470,15 @@ library. Only the high-level API is bound.") (define-public python-frozendict (package (name "python-frozendict") - (version "1.2") + (version "2.3.4") (source (origin (method url-fetch) (uri (pypi-uri "frozendict" version)) (sha256 - (base32 "0ibf1wipidz57giy53dh7mh68f2hz38x8f4wdq88mvxj5pr7jhbp")))) + (base32 "0y3zn57i1q5192f7l4w2z2zsy3rrx50g563msaq954r58s1v3d0m")))) (build-system python-build-system) - (home-page "https://github.com/slezica/python-frozendict") + (home-page "https://github.com/Marco-Sulla/python-frozendict") (synopsis "Simple immutable mapping for Python") (description "@dfn{frozendict} is an immutable wrapper around dictionaries that @@ -25812,14 +26559,39 @@ information for your operating system.") (define-public python-canonicaljson (package (name "python-canonicaljson") - (version "1.4.0") + (version "1.6.3") (source (origin (method url-fetch) (uri (pypi-uri "canonicaljson" version)) (sha256 - (base32 "0c86g0vvzdcg3nrcsqnbzlfhpprc2i894p8i14hska56yl27d6w9")))) + (base32 "0j5lq191jkd483q6xzc16c9fahxf15lrv03mvah9ka3lq85pcnfa")))) (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'loosen-requirements + (lambda _ + ;; Permit newer versions of setuptools_scm + (substitute* "pyproject.toml" + ((">= 2.0.0, <3") ">= 2.0.0")))) + (replace 'build + (lambda _ + ;; ZIP does not support timestamps before 1980. + (setenv "SOURCE_DATE_EPOCH" "315532800") + (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-pytest python-setuptools python-setuptools-scm)) (propagated-inputs (list python-six python-frozendict python-simplejson)) (home-page "https://github.com/matrix-org/python-canonicaljson") @@ -26250,17 +27022,17 @@ accessor layer.") (define-public pyzo (package (name "pyzo") - (version "4.12.3") + (version "4.12.4") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/pyzo/pyzo.git") + (url "https://github.com/pyzo/pyzo") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0v6rgp52bf9za2spxx9c1yc6wmskvlsj81iw0gipjy7y8vpypgn2")))) + "10qqilbh7n4z2656qbr9gllvgi7xq11xcm2bv64h02jmkb7m4m6n")))) (build-system python-build-system) (arguments `(#:phases @@ -26387,6 +27159,12 @@ be necessary when using @code{cmd}.") (arguments '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-queue-import + (lambda _ + ;; Adjust Queue import for Python 3. Remove for versions >=0.4.0. + (substitute* "tests/threadsafety.py" + (("from Queue import Queue") + "from queue import Queue")))) (add-before 'build 'qualify-libtidy (lambda* (#:key inputs #:allow-other-keys) (let ((libtidy (search-input-file inputs "/lib/libtidy.so"))) @@ -26782,31 +27560,37 @@ It adds a simple and readable way to print stuff during development.") (define-public python-dateparser (package (name "python-dateparser") - (version "0.7.6") + (version "1.1.3") (source (origin (method url-fetch) (uri (pypi-uri "dateparser" version)) (sha256 (base32 - "1ypbyqxlk7n6zibk90js3ybz37xmin3kk0i35g8c51bwqpcfyxg8")))) - (build-system python-build-system) + "19fbgq1zrwx10kljmdbs3p0y2m2xsgww20pqzw4kv6161zipsymf")))) + (build-system pyproject-build-system) (propagated-inputs (list python-dateutil python-pytz python-regex python-ruamel.yaml python-tzlocal)) (native-inputs - (list python-mock python-parameterized tzdata-for-tests)) + (list python-flake8 python-pytest python-parameterized tzdata-for-tests)) (arguments - `(;; TODO: Of 23320 tests, 6 fail and 53 error. - #:tests? #f - #:phases + `(#:phases (modify-phases %standard-phases (add-before 'check 'set-check-environment (lambda* (#:key inputs #:allow-other-keys) (setenv "TZ" "UTC") (setenv "TZDIR" (search-input-directory inputs - "share/zoneinfo"))))))) + "share/zoneinfo")))) + (add-before 'check 'delete-failing-tests + (lambda _ + (with-directory-excursion "tests" + (for-each delete-file + '("test_dateparser_data_integrity.py" + "test_hijri.py" + "test_jalali.py" + "test_language_detect.py")))))))) (home-page "https://github.com/scrapinghub/dateparser") (synopsis "Date parsing library designed to parse dates from HTML pages") @@ -26942,14 +27726,14 @@ and pandoc-citeproc.") (define-public python-rnc2rng (package (name "python-rnc2rng") - (version "2.6.4") + (version "2.6.6") (source (origin (method url-fetch) (uri (pypi-uri "rnc2rng" version)) (sha256 (base32 - "1kmp3iwxxyzjsd47j2sprd47ihhkwhb3yydih3af5bbfq0ibh1w8")))) + "1wbqvz2bhq2f5kqi7q2q3m9y5vs9rj970zhnjh502pvvhmbx20as")))) (build-system python-build-system) (propagated-inputs (list python-rply)) @@ -27146,6 +27930,8 @@ module patches @code{asyncio} to allow nested use of @code{asyncio.run} and "1mzk4yabxj6r149fswhis18hd8dnag5sj8i4wb06450zq3pi8dh7")))) (native-inputs (list unzip)) + (propagated-inputs + (list python-six)) (build-system python-build-system) (arguments '(#:tests? #f)) ; No test suite. (home-page "https://www.parallelpython.com") @@ -27687,7 +28473,7 @@ used to retry a function a given number of times.") libice soqt glew - coin3D-4)) + coin3D)) (home-page "https://github.com/coin3d/pivy") (synopsis "Python bindings to Coin3D") (description @@ -27750,7 +28536,7 @@ and frame grabber interface.") (uri (pypi-uri "scikit-build" version)) (sha256 (base32 "1wx1m9vnxnnz59lyaisgyxldp313kciyd4af8lf112vb8vbjy9yk")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments (list #:phases @@ -27761,11 +28547,6 @@ and frame grabber interface.") (("^(CMAKE_DEFAULT_EXECUTABLE = ).*" _ head) (format #f "~a ~s~%" head (search-input-file inputs "bin/cmake")))))) - ;; XXX: PEP 517 manual build copied from python-isort. - (replace 'build - (lambda _ - (setenv "SOURCE_DATE_EPOCH" "315532800") - (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? @@ -27791,31 +28572,24 @@ and frame grabber interface.") ;; nondeterministically (see: ;; https://github.com/scikit-build/scikit-build/issues/711). "and not test_generator_cleanup " - "and not test_generator_selection "))))) - (replace 'install - (lambda _ - (let ((whl (car (find-files "dist" "\\.whl$")))) - (invoke "pip" "--no-cache-dir" "--no-input" - "install" "--no-deps" "--prefix" #$output whl))))))) + "and not test_generator_selection ")))))))) (native-inputs (list cmake-minimal gfortran - git-minimal + git-minimal/fixed ;for tests ninja python-coverage python-cython python-mock python-packaging python-path - python-pypa-build python-pytest python-pytest-cov python-pytest-mock python-pytest-virtualenv python-pytest-xdist python-requests - python-setuptools-scm - python-wheel)) + python-setuptools-scm)) (propagated-inputs (list python-distro python-packaging python-wheel)) (home-page "https://github.com/scikit-build/scikit-build") @@ -27929,6 +28703,39 @@ characteristics. These measures are basically linear regressions based on the number of words, syllables, and sentences.") (license license:asl2.0))) +(define-public python-readability-lxml + (package + (name "python-readability-lxml") + (version "0.8.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/buriy/python-readability") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13nfy2v0pbbf62jn9qwgi489gg97hbb22q6w3f78mnvjxd2m19rh")) + (snippet + #~(begin (delete-file "readability/compat/two.py"))))) + (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "-m" "pytest" "-v" "tests/"))))))) + (propagated-inputs (list python-chardet python-cssselect python-lxml)) + (native-inputs (list python-timeout-decorator python-pytest)) + (home-page "http://github.com/buriy/python-readability") + (synopsis "HTML to text parser") + (description + "This package provides classes and function that strip gratuitous markup +from web pages to make them easier to read.") + (license license:asl2.0))) + (define-public python-listparser (package (name "python-listparser") @@ -29001,9 +29808,9 @@ simple mock/record and a complete capture/replay framework.") (when tests? (invoke "pytest" "-vv"))))))) (inputs - ;; libyajl is optional, but compiling with it makes faster + ;; yajl is optional, but compiling with it makes faster ;; backends available to ijson: - (list libyajl)) + (list yajl)) (native-inputs (list python-pytest)) (build-system python-build-system) @@ -29136,13 +29943,13 @@ development, testing, production]}; (define-public python-pudb (package (name "python-pudb") - (version "2022.1.2") + (version "2022.1.3") (source (origin (method url-fetch) (uri (pypi-uri "pudb" version)) (sha256 (base32 - "03a7zalgdxfd2z2k6050ng087gwqgqis544n2083gdfxbf0ap0vb")))) + "0jk61qgacvwy6zkz1f55jawax4ggb1aawy6w3wnfkzqrkvd3ms2q")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -29153,7 +29960,7 @@ development, testing, production]}; (lambda* (#:key tests? #:allow-other-keys) (when tests? (invoke "pytest" "-vv"))))))) - (native-inputs (list python-pytest python-pytest-mock)) + (native-inputs (list python-pytest python-pytest-mock python-numpy)) (propagated-inputs (list python-jedi python-pygments python-urwid python-urwid-readline)) (home-page "https://documen.tician.de/pudb/") @@ -30130,34 +30937,17 @@ object, which can be useful if you want to force your objects into a table.") (uri (pypi-uri "deepmerge" version)) (sha256 (base32 "06hagzg8ccmjzqvszdxb52jgx5il8a1jdz41n4dpkyyjsfg7fi2b")))) - (build-system python-build-system) + (build-system pyproject-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))))))) + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))))) (native-inputs - (list python-pypa-build - python-setuptools-scm - python-pytest - python-wheel)) + (list python-setuptools-scm + python-pytest)) (home-page "https://deepmerge.readthedocs.io/en/latest/") (synopsis "Merge nested data structures") (description @@ -30709,7 +31499,7 @@ window managers.") (define-public i3-autotiling (package (name "i3-autotiling") - (version "1.6.1") + (version "1.8") (source (origin (method git-fetch) (uri (git-reference @@ -30718,7 +31508,7 @@ window managers.") (file-name (git-file-name name version)) (sha256 (base32 - "1m8k3g83n2n1xws89dh20f3sy6753wvip9dzf6bssv2cz9ll7406")))) + "1nsm0gd45ys4ghlzrvjrf0lvcyhvpx58lz8gg325a762wn5a4a72")))) (build-system python-build-system) (arguments (list #:tests? #f)) ;no tests (native-inputs (list python-wheel)) @@ -30856,7 +31646,7 @@ platform using the ActivityPub protocol.") (define-public python-lief (package (name "python-lief") - (version "0.12.1") + (version "0.12.3") (source (origin (method git-fetch) (uri (git-reference @@ -30865,7 +31655,7 @@ platform using the ActivityPub protocol.") (file-name (git-file-name name version)) (sha256 (base32 - "1xzbh3bxy4rw1yamnx68da1v5s56ay4g081cyamv67256g0qy2i1")))) + "11i6hqmcjh56y554kqhl61698n9v66j2qk1c1g63mv2w07h2z661")))) (build-system python-build-system) (native-inputs (list cmake)) (arguments @@ -30885,6 +31675,73 @@ platform using the ActivityPub protocol.") and abstract ELF, PE and MachO formats.") (license license:asl2.0))) +(define-public python-eris + (package + (name "python-eris") + (version "0.0.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "eris" version)) + (sha256 + (base32 + "16wbmahmfzdzrsjbn8jzi79vhghrzvvlcgnym20q0v3p3i4x47pq")))) + (build-system python-build-system) + (propagated-inputs (list python-pycryptodome)) + (home-page "https://codeberg.org/eris/python-eris") + (synopsis "Python implementation of ERIS") + (description +"Python implementation of the @acronym{ERIS, Encoding for Robust Immutable +Storage}.") + (license license:lgpl3+))) + +(define-public shrinkwrap + (package + (name "shrinkwrap") + (version "0.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fzakaria/shrinkwrap") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet '(substitute* "pyproject.toml" + (("lief = \"0\\.12\\.0\"") "lief = \"*\""))) + (sha256 + (base32 + "1f3qrygj16y767q2c7pn9j6m95ggcmj9s5cx9v92ygygly4mr3jp")))) + (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-v" "tests")))) + ;; XXX: PEP 517 manual build copied from python-isort. + (replace 'build + (lambda _ + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (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-click + python-poetry-core + python-pypa-build + python-pytest)) + (inputs (list python-lief python-sh)) + (home-page "https://github.com/fzakaria/shrinkwrap") + (synopsis "Emboss needed dependencies on the top level executable") + (description + "@code{shrinkwrap} is a tool which will discover all transitive dynamic +shared objects, and lift them up to the executable referenced by absolute +path.") + (license license:expat))) + (define-public python-pymonad (package (name "python-pymonad") |