diff options
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r-- | gnu/packages/python-xyz.scm | 240 |
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") |