summaryrefslogtreecommitdiff
path: root/gnu/packages/python-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r--gnu/packages/python-xyz.scm240
1 files changed, 205 insertions, 35 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index fcf01f3d04..b9465ec64d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -116,7 +116,7 @@
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
-;;; Copyright © 2022 Evgeny Pisemsky <evgeny@pisemsky.com>
+;;; Copyright © 2022 Evgeny Pisemsky <mail@pisemsky.site>
;;; Copyright © 2022 drozdov <drozdov@portalenergy.tech>
;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io>
;;; Copyright © 2022, 2023 Wamm K. D. <jaft.r@outlook.com>
@@ -1765,6 +1765,46 @@ different units.")
scatter plots, histograms and heatmaps in the terminal using braille dots.")
(license license:expat)))
+(define-public python-poetry-dynamic-versioning
+ (package
+ (name "python-poetry-dynamic-versioning")
+ (version "1.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "poetry_dynamic_versioning" version))
+ (sha256
+ (base32 "19v9jrawbx1nwnwrd6giyzwfq50y2mjzkrsx0ga2sbx2a2yphlbj"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "--ignore=tests/test_integration.py"
+ ;; E RuntimeError: Unable to detect version control system. Not
+ ;; installed: Git, Mercurial, Darcs, Subversion, Bazaar, Fossil,
+ ;; Pijul.
+ "-k"
+ (string-append
+ "not test__get_version__defaults"
+ " and not test__get_version__format_jinja"
+ " and not test__get_version__format_jinja_with_enforced_style"
+ " and not test__get_version__format_jinja_imports_with_module_only"
+ " and not test__get_version__format_jinja_imports_with_module_and_item"))))
+ (native-inputs
+ (list python-poetry-core
+ python-pytest))
+ (propagated-inputs
+ (list poetry
+ python-dunamai
+ python-jinja2
+ python-tomlkit))
+ (home-page "https://github.com/mtkennerly/poetry-dynamic-versioning")
+ (synopsis "Poetry plugin enabling VCS tags dynamic versioning")
+ (description
+ "This package provides a build backend that patches Poetry Core to enable
+the versioning system in PEP 517 build frontends.")
+ (license license:expat)))
+
(define-public python-portpicker
(package
(name "python-portpicker")
@@ -2342,6 +2382,42 @@ EasyGUI is NOT event-driven. Instead, all GUI interactions are invoked by
simple function calls.")
(license license:bsd-3)))
+(define-public python-echo
+ (package
+ (name "python-echo")
+ (version "0.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "echo" version))
+ (sha256
+ (base32 "1hr2kgjmf5gcjbg1mry03ca1dayfwy8mi8as42jfg0apsa3bfvvj"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'start-xorg-server
+ (lambda _
+ ;; The test suite requires a running X server.
+ (system "Xvfb :99 -screen 0 1024x768x24 &")
+ (setenv "DISPLAY" ":99.0"))))))
+ (propagated-inputs
+ (list python-numpy
+ python-qtpy
+ python-pyqt-6))
+ (native-inputs
+ (list python-pytest
+ python-pytest-cov
+ python-setuptools-scm
+ xorg-server-for-tests))
+ (home-page "https://github.com/glue-viz/echo")
+ (synopsis "Callback Properties in Python")
+ (description
+ "Echo is a small library for attaching callback functions to property
+state changes.")
+ (license license:expat)))
+
(define-public python-pymd4c
(package
(name "python-pymd4c")
@@ -5045,33 +5121,51 @@ and is not compatible with JSON.")
(license license:expat)))
(define-public python-extension-helpers
-(package
- (name "python-extension-helpers")
- (version "1.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "extension-helpers" version))
- (sha256
- (base32 "1rjha07ds633fb81hn3i2yzk3v2flbi6qa091ix4mkvrgk3gl6ya"))))
- (build-system pyproject-build-system)
- ;; FIXME: pytest failed to load test suit, find out why.
- ;; - _pytest.pathlib.ImportPathMismatchError: ('extension_helpers.conftes
- (arguments (list #:tests? #f))
- (native-inputs
- (list python-coverage
- python-pytest
- python-pytest-astropy
- python-pytest-cov
- python-setuptools-scm))
- (home-page "https://extension-helpers.readthedocs.io")
- (synopsis "Astropy ecosystem utilities for building and installing packages")
- (description
- "The extension-helpers package includes convenience helpers to assist with
+ (package
+ (name "python-extension-helpers")
+ (version "1.1.1")
+ (source
+ (origin
+ (method git-fetch) ; no tests in the PyPI tarball
+ (uri (git-reference
+ (url "https://github.com/astropy/extension-helpers")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1lkhypg21ydx03z03dppbf05zff40dyl0kn6nichzfdfpqnr5055"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; It tries to install it via pip: E ModuleNotFoundError: No module named
+ ;; 'helpers_test_package_fd9cc3a9_11fa_4a1a_b80e_c5b043949604'
+ #:test-flags #~(list "-k" "not test_only_pyproject[True]")
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; LookupError: setuptools-scm was unable to detect version for
+ ;; /tmp/guix-build-python-extension-helpers-1.1.1.drv-0/source.
+ (add-before 'build 'set-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))
+ (replace 'check
+ (lambda* (#:key tests? test-flags #:allow-other-keys)
+ (when tests?
+ (setenv "HOME" "/tmp")
+ (with-directory-excursion "/tmp"
+ (apply invoke "pytest" "-v" test-flags))))))))
+ (native-inputs
+ (list python-pytest
+ python-pytest-astropy
+ python-pytest-cov
+ python-setuptools-scm
+ python-tomli))
+ (home-page "https://extension-helpers.readthedocs.io")
+ (synopsis "Astropy ecosystem utilities for building and installing packages")
+ (description
+ "The extension-helpers package includes convenience helpers to assist with
building Python packages with compiled C/Cython extensions. It is developed by
the Astropy project but is intended to be general and usable by any Python
package.")
- (license license:bsd-3)))
+ (license license:bsd-3)))
(define-public python-extras
(package
@@ -16073,7 +16167,7 @@ structures.")
(define-public wfetch
(let ((commit "e1cfa37814aebc9eb56ce994ebe877b6a6f9a715")
- (revision "1"))
+ (revision "2"))
(package
(name "wfetch")
(version (git-version "0.1-pre" revision commit))
@@ -16101,7 +16195,10 @@ structures.")
(mkdir-p share)
(substitute* "wfetch/wfetch.py"
(("os.sep, 'opt', 'wfetch'") (string-append "'" share "'")))
- (install-file "wfetch/wfetch.py" bin)
+ ; The documentation expects the executable to be named
+ ; 'wfetch', not 'wfetch.py'.
+ (rename-file "wfetch/wfetch.py" "wfetch/wfetch")
+ (install-file "wfetch/wfetch" bin)
(copy-recursively "wfetch/icons" share)))))))
(inputs (list python-pyowm python-fire python-termcolor python-requests))
(synopsis "Command-line tool to display weather info")
@@ -16148,13 +16245,13 @@ your package is installed, via @code{pkg_resources} (part of
(define-public python-filetype
(package
(name "python-filetype")
- (version "1.0.8")
+ (version "1.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "filetype" version))
(sha256
- (base32 "05mkinkcn36v1cnb5hzay3zxmv7jmmflckxxp08rgzbkkf3i9pvp"))))
+ (base32 "1nxa91szfbhhbhvdwj06jz8zghzwgb9lf0v6aj61vx2b8zb6rdb6"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -19254,16 +19351,19 @@ templates into Python modules.")
(define-public python-waitress
(package
(name "python-waitress")
- (version "1.1.0")
+ (version "3.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "waitress" version))
- (patches (search-patches "python-waitress-fix-tests.patch"))
(sha256
(base32
- "1a85gyji0kajc3p0s1pwwfm06w4wfxjkvvl4rnrz3h164kbd6g6k"))))
- (build-system python-build-system)
+ "18dq4bibsv6cfhv6a3b16w2xwycxqkkiwbb0vpcwsd21n1ws8p80"))))
+ (build-system pyproject-build-system)
+ (arguments
+ ;; https://github.com/Pylons/waitress/issues/443
+ (list #:test-flags #~(list "-k" "not test_service_port")))
+ (native-inputs (list python-pytest python-pytest-cov))
(home-page "https://github.com/Pylons/waitress")
(synopsis "Waitress WSGI server")
(description "Waitress is meant to be a production-quality pure-Python WSGI
@@ -19560,13 +19660,13 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.")
(define-public python-celery
(package
(name "python-celery")
- (version "5.3.6")
+ (version "5.4.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "celery" version))
(sha256
- (base32 "1fdacw13ij94s59l6lspl09iv6fc8h1p6399jz1h00kwfcfwf347"))))
+ (base32 "01p7lyydhqk7fna5zn49qxj3yk0xah63725dmkajjc4d1qa1jjjh"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -19588,6 +19688,7 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.")
(list python-case
python-dnspython
python-flaky
+ python-google-cloud-storage
python-iniconfig
python-moto
python-msgpack
@@ -23417,6 +23518,47 @@ system.")
;; Can be used with either license.
(license (list license:asl2.0 license:gpl2+))))
+(define-public python-dunamai
+ (package
+ (name "python-dunamai")
+ (version "1.21.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "dunamai" version))
+ (sha256
+ (base32 "1i35i8ym6n8mpgrq31hivrvfciy12gv26jwlzimmkx9jy2spz0h5"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k" "not test__version__from_git__shallow")
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; These steps are taked from NixOS package definition:
+ ;; nixpkgs/pkgs/development/python-modules/dunamai/default.nix
+ (add-before 'check 'pre-check
+ (lambda _
+ (setenv "PATH" (string-append #$output "/bin:" (getenv "PATH")))
+ (setenv "HOME" "/tmp")
+ (invoke "git" "config" "--global" "user.email" "nobody@example.com")
+ (invoke "git" "config" "--global" "user.name" "Nobody"))))))
+ (propagated-inputs
+ (list python-packaging))
+ (native-inputs
+ (list git-minimal
+ python-poetry-core
+ python-pytest))
+ (home-page "https://github.com/mtkennerly/dunamai")
+ (synopsis "Dynamic version generation")
+ (description
+ "Dunamai is Python library and command line tool for producing dynamic,
+standards-compliant version strings, derived from tags in your version control
+system. This facilitates uniquely identifying nightly or per-commit builds in
+continuous integration and releasing new versions of your software simply by
+creating a tag.")
+ (license license:expat)))
+
(define-public python-pbkdf2
(package
(name "python-pbkdf2")
@@ -34399,6 +34541,34 @@ needed and registers the function with its annotations.")
symbolic expressions in pure Python using the technique of logical unification.")
(license license:bsd-3)))
+(define-public python-looseversion
+ (package
+ (name "python-looseversion")
+ (version "1.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "looseversion" version))
+ (sha256
+ (base32 "17k625ws83lwksa7yyy4mn0i39lmxgrzxihn22l335dvyvrnbppb"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; No tests provided.
+ #:tests? #f))
+ (native-inputs
+ (list python-hatchling))
+ (home-page "https://github.com/effigies/looseversion")
+ (synopsis "Version numbering for anarchists and software realists")
+ (description
+ "This package provides a drop-in replacement for the original
+@code{LooseVersion}. It implements an identical interface and comparison
+logic to @code{LooseVersion}. The only major change is that a
+@code{looseversion.LooseVersion} is comparable to a
+@code{distutils.version.LooseVersion}, which means tools should not need to
+worry whether all dependencies that use LooseVersion have migrated.")
+ (license license:psfl)))
+
(define-public python-cons
(package
(name "python-cons")