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.scm4740
1 files changed, 2355 insertions, 2385 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b5aa148e14..fdfa56ed22 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2013-2024 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2019, 2023 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2017, 2021, 2022, 2024 Eric Bavier <bavier@posteo.net>
@@ -1472,6 +1472,29 @@ cache directory, to avoid modifying the host's environment, and further
activated using a set of environment variables.")
(license (list license:expat license:asl2.0))))
+(define-public python-pypydispatcher
+ (package
+ (name "python-pypydispatcher")
+ (version "2.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyPyDispatcher" version))
+ (sha256
+ (base32 "1wihj7xgq5fk91li0id6a311lyrnmq7ch8rbr9dm7lprrzgwbgmn"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-setuptools
+ python-setuptools-scm))
+ (home-page "https://github.com/scrapy/pypydispatcher")
+ (synopsis "Multi-producer-multi-consumer signal dispatching mechanism")
+ (description
+ "This package implements a functionality of pulti-producer-multi-consumer
+signal dispatching mechanism. It's a fork of
+http://pydispatcher.sourceforge.net/ with PyPy support.")
+ (license license:bsd-3)))
+
(define-public python-pyte
(package
(name "python-pyte")
@@ -1815,150 +1838,6 @@ regularly spaced grids. The actual streamline tracing is done at a low level
in Rust, with a nice Python API provided on top.")
(license license:gpl3+)))
-(define-public python-takethetime
- (package
- (name "python-takethetime")
- (version "0.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "TakeTheTime" version))
- (sha256
- (base32 "1y9gzqb9l1f2smx8783ccjzjvby5mphshgrfks7s75mml59h9qyv"))))
- (build-system pyproject-build-system)
- (arguments
- (list #:tests? #f)) ; tests are time dependent and not provided in PyPI
- (native-inputs
- (list python-setuptools
- python-wheel))
- (home-page "https://github.com/ErikBjare/TakeTheTime")
- (synopsis "Timing chunks of code")
- (description
- "This package implements a functionality for time taking using context
-managers.")
- (license license:expat)))
-
-(define-public python-tatsu
- (package
- (name "python-tatsu")
- (version "5.13.1")
- (source
- (origin
- (method git-fetch) ; no tests in PyPI releasefor tests
- (uri (git-reference
- (url "https://github.com/neogeny/TatSu")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0pdq9d45vbp7j600ig4k21mv2wipvmz05dji91x7kifhzfl5i6w9"))))
- (build-system pyproject-build-system)
- (native-inputs
- (list python-pytest
- python-setuptools
- python-wheel))
- (home-page "https://tatsu.readthedocs.io/en/stable/")
- (synopsis "PEG/Packrat Parser generator for Python")
- (description
- "TatSu (竜) takes a grammar in a variation of Extended Backus-Naur
-Form (EBNF) as input, and outputs a memoizing Parsing Expression Grammar (PEG)
-or Packrat parser in Python.")
- (license license:bsd-2)))
-
-(define-public python-term-image
- (package
- (name "python-term-image")
- (version "0.7.2")
- (source
- (origin
- ;; We need the full repo to run the tests.
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/AnonymouX47/term-image")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1lsd5m0k5m99arkca2rzrrlln10c8ax6xfawqwjnspcbf8l3h3dq"))))
- (build-system pyproject-build-system)
- (arguments
- (list #:test-flags
- #~(list "tests"
- ;; These tests require network access.
- "-k" (string-append "not test_from_url"
- " and not test_source"
- " and not test_close"))
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'adjust-dependencies
- (lambda _
- (substitute* "setup.py"
- (("pillow>=9.1,<11") "pillow>=9.1,<12")))))))
- (propagated-inputs (list python-pillow python-requests))
- (native-inputs
- (list python-pytest
- python-setuptools
- python-urwid))
- (home-page "https://github.com/AnonymouX47/term-image")
- (synopsis "Display images in the terminal")
- (description "term-image is a library and program to display images on
-compatible terminals.
-
-Features:
-@enumerate
-@item Multiple image formats (basically all formats supported by
-@code{PIL.Image.open()})
-@item Multiple image source types: PIL image instance, local file, URL
-@item Multiple image render styles (with automatic support detection)
-@item Support for multiple terminal graphics protocols, including Kitty
-@item Transparency support (with multiple options)
-@item Animated image support (including transparent ones)
-@item Integration into various TUI / terminal-based output libraries
-@item Terminal size awareness
-@item Automatic and manual image sizing
-@item Horizontal and vertical alignment
-@item Automatic and manual font ratio adjustment (to preserve image aspect
-ratio)
-@end enumerate")
- (license license:expat)))
-
-(define-public python-trubar
- (package
- (name "python-trubar")
- (version "0.3.4")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "trubar" version))
- (sha256
- (base32 "149l5wid1b41gmfzsrhapcigcbcsflviz8p1pfa937443fxw1dkd"))))
- (build-system pyproject-build-system)
- (arguments
- (list
- #:test-flags
- #~(list "-k" (string-join
- ;; AttributeError: module 'libcst' has no attribute
- ;; 'FlattenSentinel'. Did you mean: 'MaybeSentinel'?
- (list "not test_import_from_future"
- "test_inport_after_docstring"
- ;; AssertionError: Items in the second set but not
- ;; the first
- "test_walk_files")
- " and not "))))
- (native-inputs
- (list python-pytest
- python-setuptools
- python-wheel))
- (propagated-inputs
- (list python-libcst
- python-pyyaml))
- (home-page "https://github.com/janezd/trubar")
- (synopsis "Utility for translation of Python sources")
- (description
- "This package provides a tool for translation and localization of Python
-programs via modification of source files. Trubar supports f-strings and does
-not require any changes to the original source code, such as marking strings
-for translation.")
- (license license:expat)))
-
(define-public python-jaconv
(package
(name "python-jaconv")
@@ -2184,7 +2063,7 @@ easy logging and rotating to a console or a file.")
(build-system pyproject-build-system)
(native-inputs
(list python-brotli
- python-cython-3
+ python-cython
python-pytest
python-setuptools
python-wheel))
@@ -2618,6 +2497,39 @@ decorators, including variants of the Python standard library's
(sha256
(base32 "1m20wqipm50zvcgs3z2xksb96qwx1xc1jbhvaxcnglkmj6m1qrhs"))))))
+(define-public python-colorclass
+ (package
+ (name "python-colorclass")
+ (version "2.2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/matthewdeanmartin/colorclass")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ylj167lfh8yzms30qrkiznv6737hdxra5lk8mhijcjm3hi1cl9l"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k" "not test_piped") ; Unclear why this test fails.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'use-poetry-core
+ (lambda _
+ ;; Patch to use the core poetry API.
+ (substitute* "pyproject.toml"
+ (("poetry.masonry.api") "poetry.core.masonry.api")))))))
+ (native-inputs (list python-poetry-core python-pytest))
+ (home-page "https://github.com/matthewdeanmartin/colorclass")
+ (synopsis "Colorful console applications with Python")
+ (description
+ "This package provides an ANSI color text library for Python. It
+provides automatic coloring for dark or light terminals.")
+ (license license:expat)))
+
(define-public python-colorcet
(package
(name "python-colorcet")
@@ -3375,73 +3287,6 @@ commits.")
generator MkDocs.")
(license license:expat)))
-(define-public python-skranger
- (package
- (name "python-skranger")
- (version "0.8.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/crflynn/skranger")
- (commit version)
- (recursive? #true)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0njy4xbc98l295k92nyk93njv1348vd1il5pdyrnk8nnzc2anzf0"))))
- (build-system pyproject-build-system)
- (arguments
- (list
- #:modules '((guix build pyproject-build-system)
- (guix build utils)
- (ice-9 match))
- #:test-flags
- ;; "from sklearn.datasets import load_boston" fails because it has been
- ;; removed from scikit-learn since version 1.2.
- '(list "--ignore=tests/conftest.py"
- "--ignore=tests/test_tools.py"
- "--ignore=tests/tree/test_regressor.py"
- "--ignore=tests/ensemble/test_regressor.py"
- ;; All tests fail with error: AttributeError: 'super' object has
- ;; no attribute '__sklearn_tags__'
- "--ignore=tests/tree/test_classifier.py"
- "--ignore=tests/ensemble/test_classifier.py")
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'fix-tests
- (lambda _
- (substitute* "tests/conftest.py"
- (("from sklearn.datasets import load_boston") "")
- (("^_boston_X.*") "_boston_X, _boston_Y = (True, True)\n"))))
- (add-before 'check 'build-extensions
- (lambda _
- ;; Cython extensions have to be built before running the tests.
- (invoke "python" "buildpre.py")
- (invoke "python" "build.py" "build_ext" "--inplace")
- (let ((site (string-append #$output "/lib/python"
- #$(version-major+minor
- (package-version python))
- "/site-packages/skranger"))
- (lib (match (find-files "build" "\\.so")
- ((the-lib) the-lib)
- (_ (error "could not find .so")))))
- (mkdir-p site)
- (install-file lib site)))))))
- (propagated-inputs (list python-scikit-learn))
- (native-inputs
- (list python-cython
- python-matplotlib
- python-pandas
- python-poetry-core
- python-setuptools
- python-wheel
- python-pytest))
- (home-page "https://github.com/crflynn/skranger")
- (synopsis "Python bindings for C++ ranger random forests")
- (description "This package provides scikit-learn compatible Python
-bindings to the C++ random forest implementation, ranger, using Cython.")
- (license license:gpl3+)))
-
(define-public python-nanobind
(package
(name "python-nanobind")
@@ -3576,31 +3421,6 @@ library.")
of it like a generator that is \"reusable\" and has a length.")
(license license:bsd-3)))
-(define-public python-tenacity
- (package
- (name "python-tenacity")
- (version "9.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tenacity" version))
- (sha256
- (base32 "0fyp421r038naskvyhj90hkq0az96477njad4rhs6annjz53fzw0"))))
- (build-system pyproject-build-system)
- (native-inputs
- (list python-pytest
- python-setuptools
- python-setuptools-scm
- python-tornado-6
- python-typeguard
- python-wheel))
- (home-page "https://github.com/jd/tenacity")
- (synopsis "Retrying library for python")
- (description
- "Tenacity is a general-purpose python library to simplify the task of
-adding retry behavior to just about anything.")
- (license license:asl2.0)))
-
(define-public python-pytelegrambotapi
(package
(name "python-pytelegrambotapi")
@@ -4690,8 +4510,8 @@ which is a fork of @url{http://hdfeos.org/software/pyhdf.php,pyhdf}.")
;; Version 0.9.x was called python-hdf4 in PyPI because at that time upstream
;; didn't have access to the pyhdf package in PyPI. For version 0.10.0 and
;; onward, please install pyhdf instead of python-hdf4.
-(define-public python-hdf4
- (deprecated-package "python-hdf4" python-pyhdf))
+(define-deprecated-package python-hdf4
+ python-pyhdf)
(define-public python-h5netcdf
(package
@@ -5069,7 +4889,7 @@ of the netcdf4 package before.")
(setenv "NO_CDL" "1")
(invoke "python" "run_all.py"))))))))
(native-inputs
- (list python-cython-3
+ (list python-cython
python-setuptools
python-wheel))
(propagated-inputs
@@ -5424,24 +5244,6 @@ to allow the user to choose from a list of options, and terminal interaction
helpers.")
(license license:expat)))
-(define-public python-textparser
- (package
- (name "python-textparser")
- (version "0.23.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "textparser" version))
- (sha256
- (base32
- "0w5lyhrsvzs5a9q1l3sjgxgljrvd3ybf796w93kc39wayzvd02gh"))))
- (build-system python-build-system)
- (home-page "https://github.com/eerimoq/textparser")
- (synopsis "Fast text parser for Python")
- (description "This library provides a text parser written in the Python
-language. It aims to be fast.")
- (license license:expat)))
-
;; XXX: The project might be abandoned and this package has no users in Guix,
;; consider to remove if it keeps failing.
;; See: <https://github.com/ethanfurman/aenum/issues/45>,
@@ -7746,6 +7548,35 @@ you traverse a schema like paths and access a schema on demand with separate
dereferencing accessor layer.")
(license license:asl2.0)))
+(define-public python-jsonschema-objects
+ (package
+ (name "python-jsonschema-objects")
+ (version "0.5.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cwacek/python-jsonschema-objects/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0p3m0fbj25brhfma4bl47xjq6x4ay14yx284qwrki96dwd6v46xd"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-pytest-mock
+ python-setuptools))
+ (propagated-inputs
+ (list python-inflection
+ python-jsonschema
+ python-markdown))
+ (home-page "http://python-jsonschema-objects.readthedocs.org/")
+ (synopsis "Automatic Python binding generation from JSON schemas")
+ (description
+ "This package provides an automatic class-based binding to JSON
+Schemas for use in python.")
+ (license license:expat)))
+
(define-public python-jsonschema-specifications
(package
(name "python-jsonschema-specifications")
@@ -7911,34 +7742,6 @@ Capabilities include:
@end itemize")
(license license:expat)))
-(define-public python-text-unidecode
- (package
- (name "python-text-unidecode")
- (version "1.3")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "text-unidecode" version))
- (sha256
- (base32
- "14xb99fdv52j21dsljgsbmbaqv10ps4b453p229r29sdn4xn1mms"))))
- (build-system python-build-system)
- (arguments
- '(#:phases (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "pytest" "-vv"))))))
- (native-inputs
- (list python-pytest))
- (home-page "https://github.com/kmike/text-unidecode/")
- (synopsis "Decode Unicode data")
- (description
- "@code{text-unidecode} is a basic Python port of the @code{Text::Unidecode}
-Perl library. It can create ASCII representations of Unicode data. In general
-users should prefer the @code{python-unidecode} package which offers better
-memory usage and transliteration quality.")
- ;; The user can choose either license.
- (license (list license:clarified-artistic license:gpl2+))))
-
(define-public python-pyjwt
(package
(name "python-pyjwt")
@@ -8077,7 +7880,7 @@ environments and back.")
(base32 "0gmwggzm0j0iprx074g5hah91y2f68sfhhldq0f8crddj7ndk16m"))))
(build-system pyproject-build-system)
(native-inputs
- (list python-cython-3
+ (list python-cython
python-pytest
python-setuptools
python-wheel))
@@ -9794,8 +9597,8 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
"This package provides a JSON RPC 2.0 server library for Python.")
(license license:expat)))
-(define-public python-jsonrpc-server
- (deprecated-package "python-jsonrpc-server" python-lsp-jsonrpc))
+(define-deprecated-package python-jsonrpc-server
+ python-lsp-jsonrpc)
(define-public python-pydantic
(package
@@ -10134,8 +9937,8 @@ This tool is used in text editing environments to provide a complete
and integrated feature-set for programming Python effectively.")
(license license:expat)))
-(define-public python-language-server
- (deprecated-package "python-language-server" python-lsp-server))
+(define-deprecated-package python-language-server
+ python-lsp-server)
(define-public python-black
(package
@@ -10423,7 +10226,8 @@ writing C extensions for Python as easy as Python itself.")
;; time of the test suite.
(setenv "CFLAGS" "-O0"))))))))
-(define-public python-cython-3 python-cython)
+;; It may be removed after 2026-01-24.
+(define-deprecated/public-alias python-cython-3 python-cython)
;; NOTE: when upgrading numpy please make sure that python-numba,
;; python-pandas and python-scipy still build, as these three packages are
@@ -11443,7 +11247,7 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
(("build_inplace=False") "build_inplace=True")))))))
(native-inputs
(list python-covdefaults
- python-cython-3
+ python-cython
python-expandvars
python-pytest
python-pytest-cov
@@ -12485,27 +12289,23 @@ a general image processing tool.")
(define-public python-pillow-heif
(package
(name "python-pillow-heif")
- (version "0.22.0")
+ (version "1.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pillow_heif" version))
(sha256
- (base32 "16mkap63d14f69105b3bm8pi64fvpdznncgn48vhgls0jf977m31"))))
+ (base32 "1pkbkg88jg6f24xvbg95aq8dm8fa8ffz7zy4rq262m98i658q3pn"))))
(build-system pyproject-build-system)
(inputs (list libheif))
(propagated-inputs (list python-pillow))
(native-inputs (list opencv ; for opencv-python
- python-coverage
python-defusedxml
python-numpy
python-packaging
- python-pre-commit
- python-pylint
python-pympler
python-pytest
- python-setuptools
- python-wheel))
+ python-setuptools))
(home-page "https://github.com/bigcat88/pillow_heif")
(synopsis "Python interface for libheif library")
(description "This package provides Python bindings for the libheif library
@@ -12740,96 +12540,6 @@ ImageJ ROIs, an undocumented and ImageJ application specific format to store
regions of interest, geometric shapes, paths, text, etc for image overlays.")
(license license:bsd-3)))
-(define-public python-tifffile
- (package
- (name "python-tifffile")
- (version "2025.10.4")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tifffile" version))
- (sha256
- (base32 "0f1ybmr2jz19gjg92p9vz3qib49m0x4ipxvrvjyfa6r1mcb7qhrf"))))
- (build-system pyproject-build-system)
- ;; Tests require lfdfiles, which depends on tifffile
- (arguments (list #:tests? #f))
- (propagated-inputs
- (list python-numpy))
- (native-inputs
- (list python-setuptools))
- (home-page "https://www.lfd.uci.edu/~gohlke/")
- (synopsis "Read and write TIFF(r) files")
- (description
- "This package lets you read image and metadata from many bio-scientific
-formats such as plain TIFF, BigTIFF, OME-TIFF, STK, LSM, SGI,NIH, ImageJ,
-MicroManager, MD GEL, and FluoView files. It also lets you write numpy arrays
-to TIFF, BigTIFF, and ImageJ hyperstack compatible files.")
- (license license:bsd-3)))
-
-(define-public python-tifffile-for-dask-image
- ;; It's for python-dask-image@2024.5.3, remove when no longer required.
- (hidden-package
- (package
- (inherit python-tifffile)
- (name "python-tifffile")
- (version "2023.12.9")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tifffile" version))
- (sha256
- (base32 "1f6d8qdlq0zlksfdhp1mhj9icpwhw4cz47r4i80m6r0a328xmlcx")))))))
-
-(define-public python-tiktoken
- (package
- (name "python-tiktoken")
- (version "0.9.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tiktoken" version))
- (sha256
- (base32 "0p9cg6n8mzdi4lbbwxrrp26chy5hr14bqmzr3w74kq1qm6k5qanh"))))
- (build-system cargo-build-system)
- (arguments
- (list
- #:install-source? #false
- #:imported-modules
- (append %pyproject-build-system-modules
- %cargo-build-system-modules)
- #:modules
- '((guix build cargo-build-system)
- ((guix build pyproject-build-system) #:prefix py:)
- (guix build utils))
- #:phases
- #~(modify-phases %standard-phases
- (replace 'build
- (assoc-ref py:%standard-phases 'build))
- (add-after 'install 'wrap
- (lambda _
- ;; Collection of python- and pyproject-build-system phases
- ;; between 'install and 'check.
- (assoc-ref py:%standard-phases 'add-install-to-pythonpath)
- (assoc-ref py:%standard-phases 'add-install-to-path)
- (assoc-ref py:%standard-phases 'wrap)
- (assoc-ref py:%standard-phases 'create-entrypoints)
- (assoc-ref py:%standard-phases 'compile-bytecode)))
- (replace 'install
- (assoc-ref py:%standard-phases 'install)))))
- (propagated-inputs (list python-regex python-requests))
- (inputs (cargo-inputs 'python-tiktoken))
- (native-inputs
- (list python-setuptools
- python-setuptools-rust
- python-wheel
- python-wrapper))
- (home-page "https://github.com/openai/tiktoken/")
- (synopsis "Fast BPE tokeniser for use with OpenAI's models")
- (description
- "Tiktoken is a fast @dfn{byte pair encoding} (BPE) tokeniser for use with
-@code{OpenAI's} models.")
- (license license:expat)))
-
(define-public python-lfdfiles
(package
(name "python-lfdfiles")
@@ -12965,50 +12675,52 @@ that requires its specific capabilities.")
(define-public python-ffmpeg-python
;; The latest release (0.2.0) is old and its test suite crashs on Python 3.10.
- (let ((commit "df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6") (revision "0"))
- (package
- (name "python-ffmpeg-python")
- (version (git-version "0.2.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/kkroening/ffmpeg-python.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1zj4ac37n4igfj21zy405mdlvbpv6jyb12wfpszf8zkhhj2qby4c"))))
- (build-system python-build-system)
- (arguments
- (list
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'hardcode-ffmpeg
- (lambda* (#:key inputs #:allow-other-keys)
- (define ffmpeg (search-input-file inputs "bin/ffmpeg"))
+ (package
+ (name "python-ffmpeg-python")
+ (properties '((commit . "df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6")
+ (revision . "0")))
+ (version (git-version "0.2.0"
+ (assoc-ref properties 'revision)
+ (assoc-ref properties 'commit)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kkroening/ffmpeg-python.git")
+ (commit (assoc-ref properties 'commit))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zj4ac37n4igfj21zy405mdlvbpv6jyb12wfpszf8zkhhj2qby4c"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k" "not test_pipe and not test__probe")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'hardcode-ffmpeg
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((ffmpeg (search-input-file inputs "bin/ffmpeg")))
(substitute* "ffmpeg/_run.py"
(("cmd='ffmpeg'")
(string-append "cmd='" ffmpeg "'")))
(substitute* "ffmpeg/tests/test_ffmpeg.py"
(("out_file.compile\\(\\) == \\['ffmpeg'")
- (string-append "out_file.compile() == ['" ffmpeg "'")))))
- ;; Some tests fail with ffmpeg 5+
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "-vv"
- "-k" "not test_pipe and not test__probe")))))))
- (inputs (list ffmpeg))
- (propagated-inputs (list python-future))
- (native-inputs (list python-future python-numpy python-pytest
- python-pytest-mock python-pytest-runner))
- (home-page "https://github.com/kkroening/ffmpeg-python")
- (synopsis "Python bindings for FFmpeg with complex filtering support")
- (description
- "ffmpeg-python allows you to write FFmpeg filtergraphs in familiar
+ (format #f "out_file.compile() == [~s" ffmpeg)))))))))
+ (inputs (list ffmpeg))
+ (propagated-inputs (list python-future))
+ (native-inputs (list python-future
+ python-numpy
+ python-pytest
+ python-pytest-mock
+ python-setuptools))
+ (home-page "https://github.com/kkroening/ffmpeg-python")
+ (synopsis "Python bindings for FFmpeg with complex filtering support")
+ (description
+ "ffmpeg-python allows you to write FFmpeg filtergraphs in familiar
Python terms, taking care of running ffmpeg with the correct command-line
arguments. It handles arbitrarily large (directed-acyclic) signal graphs.")
- (license license:asl2.0))))
+ (license license:asl2.0)))
(define-public python-imageio-ffmpeg
(package
@@ -13253,7 +12965,7 @@ a front-end for C compilers or analysis tools.")
(list meson
ninja
pkg-config
- python-cython-3
+ python-cython
python-meson-python
python-numpy
python-pytest))
@@ -13358,23 +13070,23 @@ all of your favorite programs.")
(define-public python-pywinrm
(package
(name "python-pywinrm")
- (version "0.4.1")
+ (version "0.5.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "pywinrm" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/diyan/pywinrm/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "10gabhhg3rgacd5ahmi2r128z99fzbrbx6mz1nnq0dxmhmn5rpjf"))))
- (build-system python-build-system)
+ (base32 "0jp7rps6zg5b6n98lfkwbhv72982sxxnqc4v4i6hjlq1ycjmmb8r"))))
+ (build-system pyproject-build-system)
(propagated-inputs
- (list python-six python-requests_ntlm python-xmltodict
- python-kerberos))
+ (list python-requests python-requests-ntlm python-xmltodict))
(native-inputs
- (list python-mock python-pytest))
+ (list python-mock python-pytest python-setuptools))
(home-page "https://github.com/diyan/pywinrm/")
- (synopsis
- "Python library for Windows Remote Management (WinRM)")
+ (synopsis "Python library for Windows Remote Management (WinRM)")
(description
"pywinrm is a Python client for the Windows Remote Management (WinRM)
service. It allows you to invoke commands on target Windows machines from
@@ -13533,16 +13245,19 @@ etc. The core of this module is a decorator factory.")
(uri (pypi-uri "drmaa" version))
(sha256
(base32 "0xzqriqyvk5b8hszbavsyxd29wm3sxirm8zvvdm73rs2iq7w4hkx"))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
;; The test suite requires libdrmaa which is provided by the cluster
;; environment. At runtime the environment variable DRMAA_LIBRARY_PATH
;; should be set to the path of the libdrmaa library.
(arguments
- '(#:tests? #f
- #:phases (modify-phases %standard-phases
- ;; Loading the library fails because DRMAA_LIBRARY_PATH
- ;; is not configured.
- (delete 'sanity-check))))
+ (list
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Loading the library fails because DRMAA_LIBRARY_PATH
+ ;; is not configured.
+ (delete 'sanity-check))))
+ (native-inputs (list python-setuptools))
(home-page "https://pypi.org/project/drmaa/")
(synopsis "Python bindings for the DRMAA library")
(description
@@ -13570,11 +13285,11 @@ Python language binding specification.")
(substitute* '("grako/util.py"
"grako/walkers.py")
(("collections\\.Mapping") "collections.abc.Mapping"))))))
- (build-system python-build-system)
- (arguments '(#:tests? #f)) ; Test file 'grako.ebnf' is missing from archive.
- (native-inputs
- (list unzip python-pytest python-pytest-runner))
- (home-page "https://bitbucket.org/neogeny/grako")
+ (build-system pyproject-build-system)
+ ;; XXX: Test file 'grako.ebnf' is missing from archive.
+ (arguments (list #:tests? #f))
+ (native-inputs (list unzip python-pytest python-setuptools))
+ (home-page "https://pypi.org/project/grako")
(synopsis "EBNF parser generator")
(description
"Grako takes a grammar in a variation of EBNF as input, and outputs a
@@ -13639,7 +13354,7 @@ you to actually draw things with your favorite toolkit.")
(define-public python-gridmap
(package
(name "python-gridmap")
- (version "0.14.0")
+ (version "0.15.0")
(source
(origin
(method git-fetch)
@@ -13648,15 +13363,20 @@ you to actually draw things with your favorite toolkit.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0v0sgpg6pz8h61f9aqjf5xk0ipr512bbz8dxzjjylksj135qr19l"))))
- (build-system python-build-system)
+ (base32 "0w1sxvhv5ldbzkx70q7036yvny0zsylc4zj7nzmp3nhjdl8whlrm"))))
+ (build-system pyproject-build-system)
(arguments
- '(#:tests? #f ;FIXME: Requires python-cherrypy.
- #:phases (modify-phases %standard-phases
- ;; Importing the web server module requires cherrypy, too.
- (delete 'sanity-check))))
+ (list #:tests? #f ;XXX: freezes or timeout
+ #:test-backend #~'nose))
+ (native-inputs
+ (list ;; python-pynose
+ python-setuptools))
(propagated-inputs
- (list python-psutil python-drmaa python-pyzmq))
+ (list python-cherrypy
+ python-cloudpickle
+ python-psutil
+ python-drmaa
+ python-pyzmq))
(home-page "https://github.com/pygridtools/gridmap")
(synopsis "Create jobs on a cluster directly from Python")
(description
@@ -14580,63 +14300,6 @@ cluster down and deletes the throwaway profile.")
connect strings, then issue SQL commands within IPython or IPython Notebook.")
(license license:expat)))
-(define-public python-traitlets
- (package
- (name "python-traitlets")
- (version "5.14.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "traitlets" version))
- (sha256
- (base32
- "0zjj8ha4z5lbhhmvcl3q8wp5qmwqq0lwxma3d8qvh10s6xdi11c5"))))
- (build-system pyproject-build-system)
- (arguments
- (list
- #:test-flags
- '(list "-k" "not mypy_list_typing and not mypy_dict_typing")))
- (native-inputs
- (list python-argcomplete
- python-hatchling
- python-mypy
- python-pytest
- python-pytest-mock
- python-pytest-mypy-testing))
- (home-page "https://ipython.org")
- (synopsis "Configuration system for Python applications")
- (description
- "Traitlets is a framework that lets Python classes have attributes with
-type checking, dynamically calculated default values, and ‘on change’
-callbacks. The package also includes a mechanism to use traitlets for
-configuration, loading values from files or from command line arguments. This
-is a distinct layer on top of traitlets, so you can use traitlets in your code
-without using the configuration machinery.")
- (license license:bsd-3)))
-
-(define-public python-treelib
- (package
- (name "python-treelib")
- (version "1.8.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/caesar0301/treelib")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0jd3rdaq8v7ykb626cm1gxa03higqnn2pmnv46fc0lc55xbrkxlf"))
- (patches
- (search-patches "python-treelib-remove-python2-compat.patch"))))
- (build-system pyproject-build-system)
- (native-inputs (list python-poetry-core python-pytest))
- (home-page "https://github.com/caesar0301/treelib")
- (synopsis "Implementation of a tree structure in Python")
- (description
- "This package provides a Python implementation of a tree structure.")
- (license license:asl2.0)))
-
(define-public python-optree
(package
(name "python-optree")
@@ -15221,44 +14884,6 @@ computing.")
code.")
(license license:bsd-3)))
-(define-public python-textdistance
- (package
- (name "python-textdistance")
- (version "4.6.3")
- (source
- (origin
- ;; There are no tests in the PyPI tarball.
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/life4/textdistance")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1qaplikab46p38jqr93bxd26vvxcnvib15fjxmmp4cbsiy5196sg"))))
- (build-system pyproject-build-system)
- (arguments
- (list
- #:test-flags
- #~(list "--numprocesses" (number->string (min 4 (parallel-job-count))))))
- (native-inputs
- (list python-numpy
- python-pytest
- python-pytest-xdist
- python-setuptools
- python-wheel))
- (propagated-inputs
- (list python-jellyfish
- python-distance
- python-levenshtein
- python-pylev
- python-pyxdameraulevenshtein
- python-rapidfuzz))
- (home-page "https://github.com/life4/textdistance")
- (synopsis "Compute distance between the two texts")
- (description "@code{textdistance} is a pure Python library for comparing
-distance between two or more sequences by many algorithms.")
- (license license:expat)))
-
(define-public python-pydbus
(package
(name "python-pydbus")
@@ -15609,33 +15234,6 @@ language, in Python.")
GA4GH Task Execution API.")
(license license:expat)))
-(define-public python-toposort
- (package
- (name "python-toposort")
- (version "1.10")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "toposort" version))
- (sha256
- (base32
- "1gd66z5dy6j7qs5qkj1pg0vb15rwd571yq02fkm9d9nhaff4gfxz"))))
- (build-system pyproject-build-system)
- (arguments
- (list
- #:phases
- '(modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (invoke "python3" "-m" "test.test_toposort"))))))
- (native-inputs (list python-setuptools python-wheel))
- (home-page "https://gitlab.com/ericvsmith/toposort")
- (synopsis "Topological sort algorithm")
- (description
- "This package provides an implementation of a topological sort
-algorithm.")
- (license license:asl2.0)))
-
(define-public python-altgraph
(package
(name "python-altgraph")
@@ -15656,61 +15254,6 @@ traversals, topological sort, shortest paths, and more with graphviz
output.")
(license license:expat)))
-(define-public python-three-merge
- (package
- (name "python-three-merge")
- (version "0.1.1")
- (source
- (origin
- ;; There are no tests in the PyPI tarball.
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/spyder-ide/three-merge")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1fw28swh6jq4myr09j7gv68l241b8vwg470ak5xv0x4xwh2a1m86"))))
- (build-system pyproject-build-system)
- (propagated-inputs
- (list python-diff-match-patch))
- (native-inputs
- (list python-pytest python-setuptools python-wheel))
- (home-page "https://github.com/spyder-ide/three-merge")
- (synopsis "Library for merging two strings with respect to a base one")
- (description
- "This package provides a Python library to perform a 3-way merge between
-strings, based on @code{diff-match-patch}. This library performs merges at a
-character level, as opposed to most VCS systems, which opt for a line-based
-approach.")
- (license license:expat)))
-
-(define-public python-throttler
- (package
- (name "python-throttler")
- (version "1.2.2")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/uburuntu/throttler")
- (commit (string-append "v" version))))
- (sha256
- (base32 "1gn21x0zkm7rr7qijlz7nvw7z0mm1j2r0r2lslg7wln1z36gjkbw"))))
- (build-system pyproject-build-system)
- (native-inputs (list python-aiohttp
- python-codecov
- python-flake8
- python-pytest
- python-pytest-asyncio
- python-pytest-cov
- python-setuptools
- python-wheel))
- (home-page "https://github.com/uburuntu/throttler")
- (synopsis "Throttling with asyncio support")
- (description
- "This is a Python package for easy throttling with asyncio support.")
- (license license:expat)))
-
(define-public python-pyqrcode
(package
(name "python-pyqrcode")
@@ -16351,8 +15894,8 @@ file (e.g. @file{PKG-INFO}).")
(license license:expat)))
;; pep621 was renamed to pyproject-metadata.
-(define-public python-pep621
- (deprecated-package "python-pep621" python-pyproject-metadata))
+(define-deprecated-package python-pep621
+ python-pyproject-metadata)
(define-public python-meson-python
(package
@@ -17067,8 +16610,9 @@ stdin/stdout/stderr.")
(uri (pypi-uri "stopit" version))
(sha256
(base32 "0vcrcvky249q4rbgmwf18mwmnypfk8jpn4h6knyjf86r7xc9rwzp"))))
- (build-system python-build-system)
- (arguments '(#:tests? #f)) ;there are none
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #f)) ;there are none
+ (native-inputs (list python-setuptools))
(home-page "https://pypi.python.org/pypi/stopit")
(synopsis "Timeout control decorator and context managers")
(description
@@ -17076,27 +16620,6 @@ stdin/stdout/stderr.")
blocks or callables with two context managers and two decorators.")
(license license:expat)))
-(define-public python-timeout-decorator
- ;; TODO: Remove when python-requests-caches releses a fresh version dropping
- ;; it, see, <https://github.com/requests-cache/requests-cache/pull/1111>.
- (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 pyproject-build-system)
- (arguments (list #:tests? #f))
- (native-inputs (list python-setuptools python-wheel))
- (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")
@@ -17358,22 +16881,44 @@ from an XML-based format.")
(define-public python-ly
(package
(name "python-ly")
- (version "0.9.5")
+ (version "0.9.9")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri name version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/frescobaldi/python-ly")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "0x98dv7p8mg26p4816yy8hz4f34zf6hpnnfmr56msgh9jnsm2qfl"))))
- (build-system python-build-system)
+ (base32 "1q9jdvc4mrv3xkp7jm4g4kisq1k1d05b5d3wfvhpd85a9yqjrhq8"))))
+ (build-system pyproject-build-system)
(arguments
- ;; FIXME: Some tests need network access.
- '(#:tests? #f))
+ (list
+ #:phases
+ (let ((namespace-url "http://www.w3.org/2001/03/xml.xsd")
+ (xlink-url "http://www.w3.org/XML/2008/06/xlink.xsd"))
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'inject-data
+ (lambda _
+ (substitute* "tests/musicxml.xsd"
+ (((string-join (string-split #$namespace-url #\.) "\\."))
+ #$(origin
+ (method url-fetch)
+ (uri namespace-url)
+ (sha256 (base32 "\
+1j6h0sp0pcqi5dv9m6sxwr8brrb59fyx091ld1x6wlh28js4vn8f"))))
+ (((string-join (string-split #$xlink-url #\.) "\\."))
+ #$(origin
+ (method url-fetch)
+ (uri xlink-url)
+ (sha256 (base32 "\
+0jpjha5iiq4rf4hx3qfnmyya9cf17ysxz0rbhsffn5nwgxnghgf8")))))))))))
+ (native-inputs (list python-hatchling python-lxml python-pytest))
(synopsis "Tool and library for manipulating LilyPond files")
- (description "This package provides a Python library to parse, manipulate
-or create documents in LilyPond format. A command line program ly is also
-provided that can be used to do various manipulations with LilyPond files.")
+ (description
+ "This package provides a Python library to parse, manipulate or create
+documents in LilyPond format. A command line program ly is also provided that
+can be used to do various manipulations with LilyPond files.")
(home-page "https://pypi.org/project/python-ly/")
(license license:gpl2+)))
@@ -17420,13 +16965,18 @@ refactoring library.")
(package
(name "python-gorilla")
(version "0.3.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "gorilla" version))
- (sha256
- (base32
- "0b40blcp6fih4nvqbilra4qw1dfccv1ahjmr41ac4d9rjadqkcpy"))))
- (build-system python-build-system)
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/christophercrouzet/gorilla")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0hm5ynswhz6i763s6cjlh8lv5ai0f3x17mjvlihqs8idlk4vbrn0"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:test-backend #~'unittest))
+ (native-inputs (list python-setuptools))
(home-page "https://github.com/christophercrouzet/gorilla")
(synopsis "Convenient monkey patching with Python")
(description
@@ -17439,22 +16989,33 @@ third-party code.")
(define-public python-llfuse
(package
(name "python-llfuse")
- (version "1.4.4")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "llfuse" version))
- (sha256
- (base32
- "1jb4c9avvb0v3830xlbj1r9kj05i98vv6nq05105ppg57y7lq14j"))))
- (build-system python-build-system)
- (inputs
- (list fuse-2 attr))
+ (version "1.5.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/python-llfuse/python-llfuse")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "16wsrg1py4gvcxfgsfkll73lfq62psc0hcqvs73az7s4b1pvyy62"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k" "not test_listdir") ; requires /usr/bin access.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'build-cython
+ (lambda _
+ (invoke "python" "setup.py" "build_cython"))))))
+ (inputs (list fuse-2 attr))
(native-inputs
- (list pkg-config python-pytest))
+ (list pkg-config python-cython python-pytest python-setuptools))
(synopsis "Python bindings for FUSE")
(description
"Python-LLFUSE is a set of Python bindings for the low level FUSE API.")
- (home-page "https://bitbucket.org/nikratio/python-llfuse/")
+ (home-page "https://github.com/python-llfuse/python-llfuse")
(license license:lgpl2.0+)))
(define-public python-msgpack
@@ -17678,110 +17239,6 @@ programming. It provides standard programming abstractions such as as
tasks, sockets, files, locks, and queues.")
(license license:bsd-3)))
-(define-public python-tables
- (package
- (name "python-tables")
- (version "3.10.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tables" version))
- (sha256
- (base32
- "0469jrkmp0qv8cmlqkizm3b8imyc97mk9pfn66ldpyl6f4m82i15"))
- (snippet '(begin
- (use-modules (guix build utils))
- ;; TODO: Unbundle.
- ;; (delete-file-recursively "hdf5-blosc")
- (delete-file-recursively "c-blosc")))))
- (build-system pyproject-build-system)
- (arguments
- (list
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'disable-tuning
- (lambda _
- (substitute* "setup.py"
- (("cpu_flags = .*")
- "cpu_flags = ['sse2']\n"))))
- (add-after 'unpack 'fix-reference-to-blosc2
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "tables/__init__.py"
- (("( +)os.path.join\\(current_dir, blosc2_lib_hardcoded\\),"
- m indent)
- (string-append indent
- "\""
- (search-input-file inputs "/lib/libblosc2.so")
- "\",\n" m)))))
- (add-before 'build 'pre-build
- (lambda _
- (invoke "make" "distclean") ;Regenerate C code with Cython
- (setenv "BLOSC2_DIR" #$(this-package-input "cblosc2"))
- (setenv "BLOSC_DIR" #$(this-package-input "c-blosc"))
- (setenv "BZIP2_DIR" #$(this-package-input "bzip2"))
- (setenv "HDF5_DIR" #$(this-package-input "hdf5"))
- (setenv "LZO_DIR" #$(this-package-input "lzo"))))
- (add-before 'check 'pre-check
- (lambda _
- (setenv "HOME" "/tmp")))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (with-directory-excursion "/tmp"
- ;; Performing only a light (yet comprehensive) subset of the
- ;; test suite. If you want a more complete test, try
- ;; passing the --heavy flag to this script (or set the
- ;; 'heavy' parameter in case you are using tables.test()
- ;; call). The whole suite will take more than 4 hours to
- ;; complete on a relatively modern CPU and around 512 MB of
- ;; main memory.
- (invoke "python" "-m" "tables.tests.test_all"))))))))
- (native-inputs
- (list pkg-config
- python-cython
- python-pytest
- python-setuptools
- python-sphinx))
- (inputs
- (list bzip2
- c-blosc
- c-blosc2
- hdf5
- lzo))
- (propagated-inputs
- (list python-blosc2
- python-numexpr
- python-numpy
- python-packaging
- python-py-cpuinfo
- python-typing-extensions))
- (home-page "https://www.pytables.org/")
- (synopsis "Hierarchical datasets for Python")
- (description "PyTables is a package for managing hierarchical datasets and
-designed to efficiently cope with extremely large amounts of data.")
- (license license:bsd-3)))
-
-(define-public python-tasklogger
- (package
- (name "python-tasklogger")
- (version "1.2.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tasklogger" version))
- (sha256
- (base32 "1901mibcp6aiyjy8afnybrxnb0dkbdxlbvjqbr3gginlw7dr18xh"))))
- (build-system pyproject-build-system)
- (propagated-inputs (list python-deprecated))
- (native-inputs (list python-coverage python-coveralls python-nose2
- python-numpy python-setuptools python-wheel))
- (home-page "https://github.com/scottgigante/tasklogger")
- (synopsis "Extension to the core Python logging library")
- (description "This package provides an extension to the core Python
-logging library for logging the beginning and completion of tasks and
-subtasks.")
- (license license:gpl2)))
-
(define-public python-sniffio
(package
(name "python-sniffio")
@@ -18009,19 +17466,19 @@ provides a collection of cache libraries in the same API interface.")
(version "1.2.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "pylru" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jlhutch/pylru")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "15yj46307sw703vjfkgnr04dqvaicmfcj0hc6yrciildp55r6bs9"))))
- (build-system python-build-system)
+ (base32 "0sqai530d7fpjzny476f3zqq9mv05xqbyw500jmbhrpj9yy1l9xp"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key inputs outputs tests? #:allow-other-keys)
- (when tests?
- (add-installed-pythonpath inputs outputs)
- (invoke "python" "test.py")))))))
+ (list
+ #:test-backend #~'custom
+ #:test-flags #~(list "test.py")))
+ (native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/jlhutch/pylru")
(synopsis "Least recently used (LRU) cache implementation")
(description
@@ -18262,74 +17719,64 @@ is binding LibSass.")
(version "1.0.1")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "idna-ssl" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/aio-libs/idna-ssl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "0ydrc8hpg9mdr5hqq1lqfsfbn6sjq69slwpfrnlrm3k0phqg14qj"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f)) ;circular dependency with python-aiohttp
+ (base32 "1fj4zkcnx3mk7kbnf4d6pjgv331n17wzpphpwdnmr498ghbsph9k"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #f)) ;circular dependency with python-aiohttp
+ (native-inputs (list python-setuptools))
(propagated-inputs (list python-idna))
(home-page "https://github.com/aio-libs/idna-ssl")
- (synopsis "Patch @code{ssl.match_hostname} for Unicode(idna) domains support")
- (description "Patch @code{ssl.match_hostname} for Unicode(idna)
-domains support.")
+ (synopsis "Support Unicode(idna) domains for Python's @code{ssl} module")
+ (description
+ "This package provides Unicode(idna) domains support for Python's
+@code{ssl} module. It patches @code{ssl.match_hostname} for that purpose.")
(license license:expat)))
-;;; Variant used to break a cycle with python-pip-run-bootstrap.
-(define-public python-path-bootstrap
- (hidden-package
- (package
- (name "python-path-bootstrap")
- (version "17.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "path" version))
- (sha256
- (base32 "1scqbwgcbisx8mb28hw789a7np953851wg6z0bbzdm519znha7nl"))))
- (build-system pyproject-build-system)
- (arguments
- (list #:tests? #f))
- (native-inputs (list python-setuptools python-setuptools-scm python-wheel))
- (home-page "https://github.com/jaraco/path")
- (synopsis "Object-oriented file system path manipulation library")
- (description "@code{path} (formerly @code{path.py}) implements path
-objects as first-class entities, allowing common operations on files to be
-invoked on those path objects directly.")
- (license license:expat))))
-
(define-public python-path
- (package/inherit python-path-bootstrap
+ (package
(name "python-path")
+ (version "17.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "path" version))
+ (sha256
+ (base32 "1scqbwgcbisx8mb28hw789a7np953851wg6z0bbzdm519znha7nl"))))
+ (build-system pyproject-build-system)
(arguments
- (substitute-keyword-arguments
- (package-arguments python-path-bootstrap)
- ((#:tests? _ #f)
- (not (%current-target-system)))
- ((#: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))))
+ (list
+ #:tests? (not (%current-target-system))
+ #:test-flags
+ #~(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"))))
(native-inputs
- (modify-inputs (package-native-inputs python-path-bootstrap)
- (append python-appdirs
- python-more-itertools
- python-packaging
- python-pygments
- python-pytest)))
- (properties (alist-delete 'hidden?
- (package-properties
- python-path-bootstrap)))))
+ (list python-appdirs
+ python-more-itertools
+ python-packaging
+ python-pygments
+ python-pytest
+ python-setuptools
+ 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
+objects as first-class entities, allowing common operations on files to be
+invoked on those path objects directly.")
+ (license license:expat)))
-(define-public python-pathpy
- (deprecated-package "python-pathpy" python-path))
+;; It may be removed after 2026-01-24.
+(define-deprecated/public-alias python-path-bootstrap python-path)
+(define-deprecated/public-alias python-pathpy python-path)
(define-public python-pretend
(package
@@ -18357,207 +17804,64 @@ or doubles. Basically, a stub is an object that returns pre-canned responses,
rather than doing any computation.")
(license license:bsd-3)))
-;;; Variant used to break a dependency cycle with
-;;; python-pytest-perf-bootstrap.
-(define-public python-pip-run-bootstrap
- (hidden-package
- (package
- (name "python-pip-run-bootstrap")
- (version "8.8.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/jaraco/pip-run")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0ycrjj3jgqcr9c2k7y8vprq65iblg0q0hvwz8zwi13gmb0ffds0c"))))
- (build-system python-build-system)
- (arguments
- (list
- #:tests? #f
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'build 'pretend-version
- ;; The version string is usually derived via setuptools-scm, but
- ;; without the git metadata available this fails.
- (lambda _
- (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))))))
- (native-inputs (list python-setuptools-scm))
- (propagated-inputs (list python-autocommand python-path-bootstrap
- python-packaging))
- (home-page "https://github.com/jaraco/pip-run")
- (synopsis "Dynamic dependency loader for Python")
- (description "The @command{pip-run} command provides on-demand temporary
-package installation for a single interpreter run. It replaces this series of
-commands:
-@example
-$ virtualenv --python pythonX.X --system-site-packages /tmp/env
-$ /tmp/env/bin/pip install pkg1 pkg2 -r reqs.txt
-$ /tmp/env/bin/python ...
-$ rm -rf /tmp/env
-@end example")
- (license license:expat))))
-
(define-public python-pip-run
- (package/inherit python-pip-run-bootstrap
- (name "python-pip-run")
- (arguments
- (substitute-keyword-arguments (package-arguments python-pip-run-bootstrap)
- ((#:tests? _ #f)
- (not (%current-target-system)))
- ((#:phases phases #~%standard-phases)
- #~(modify-phases #$phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "-k"
- (string-append
- ;; Do not test the myproject.toml build as it tries
- ;; to pull dependencies from the internet.
- "not project "
- ;; These tests attempt to install dependencies from
- ;; the network and fail.
- "and not test_pkg_imported "
- "and not test_pkg_loaded_from_alternate_index ")))))))))
- (propagated-inputs
- (modify-inputs (package-propagated-inputs python-pip-run-bootstrap)
- (replace "python-path-bootstrap" python-path)))
- (native-inputs
- (modify-inputs (package-native-inputs python-pip-run-bootstrap)
- (append python-nbformat
- python-pygments
- python-pytest)))
- (properties (alist-delete 'hidden? (package-properties
- python-pip-run-bootstrap)))))
-
-(define-public python-tlsh
(package
- (name "python-tlsh")
- (version "4.11.2")
- (home-page "https://github.com/trendmicro/tlsh")
+ (name "python-pip-run")
+ (version "8.8.0")
(source
(origin
(method git-fetch)
- (uri (git-reference (url home-page) (commit version)))
+ (uri (git-reference
+ (url "https://github.com/jaraco/pip-run")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1gb5j73nw3nmx030rf8pm75rns5syxhv44zxr6i74kjicyly1i9w"))))
- (build-system python-build-system)
- (arguments
- (list #:phases
- #~(modify-phases %standard-phases
- (add-before 'build 'configure
- (lambda _
- (invoke "cmake" "."))) ;to generate tlsh_version.h
- (add-after 'configure 'chdir
- (lambda _
- (chdir "py_ext")))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (with-directory-excursion "../Testing"
- (invoke "./python_test.sh"))))))))
- (native-inputs (list cmake-minimal))
- (synopsis "Fuzzy matching library for Python")
- (description
- "Trend Micro Locality Sensitive Hash (TLSH) is a fuzzy matching library.
-Given a byte stream with a minimum length of 256 bytes, TLSH generates a hash
-value which can be used for similarity comparisons. Similar objects have
-similar hash values, which allows for the detection of similar objects by
-comparing their hash values. The byte stream should have a sufficient amount
-of complexity; for example, a byte stream of identical bytes will not generate
-a hash value.")
- (license license:asl2.0)))
-
-(define-public python-termcolor
- (package
- (name "python-termcolor")
- (version "2.5.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "termcolor" version))
- (sha256
- (base32 "0vwaxyr2vk8gi7s1slq74nb0ssbb0wcn208ziqp48j3dv8kqv3cr"))))
+ (base32 "0ycrjj3jgqcr9c2k7y8vprq65iblg0q0hvwz8zwi13gmb0ffds0c"))))
(build-system pyproject-build-system)
- (native-inputs
- (list python-hatch-vcs
- python-hatchling
- python-pytest
- python-pytest-cov))
- (home-page "https://pypi.org/project/termcolor/")
- (synopsis "ANSII Color formatting for terminal output")
- (description
- "This package provides ANSII Color formatting for output in terminals.")
- (license license:expat)))
-
-(define-public python-termcolor-1
- (package
- (inherit python-termcolor)
- (version "1.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "termcolor" version))
- (sha256
- (base32
- "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x"))))
- ;; There are no tests
- (arguments (list #:tests? #false))
- (native-inputs
- (list python-setuptools
- python-wheel))))
-
-(define-public python-terminaltables
- (package
- (name "python-terminaltables")
- (version "3.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "terminaltables" version))
- (sha256
- (base32
- "109vhldk6nv1z3hzp4dyqf6rjvlhl0y2k5k7qcm9fcrq5swhxszk"))))
- (build-system python-build-system)
- (home-page "https://github.com/Robpol86/terminaltables")
- (synopsis
- "Generate simple tables in terminals from a nested list of strings")
- (description
- "This package makes it easy to draw tables in terminal/console
-applications from a list of lists of strings. It supports multi-line rows.")
- (license license:expat)))
-
-(define-public python-term-background
- (package
- (name "python-term-background")
- (version "1.0.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "term_background" version))
- (sha256
- (base32 "0p674silrwc3jncncmdnj1lr6pl2q5qbx0xi3mzjq9sgcs5vmp4n"))))
(arguments
(list
+ #:tests? (not (%current-target-system))
+ #:test-flags
+ #~(list "-k" (string-append
+ ;; Do not test the myproject.toml build as it tries
+ ;; to pull dependencies from the internet.
+ "not project "
+ ;; These tests attempt to install dependencies from
+ ;; the network and fail.
+ "and not test_pkg_imported "
+ "and not test_pkg_loaded_from_alternate_index "
+ "and not test_pkg_loaded_from_url "))
#:phases
- '(modify-phases %standard-phases
- (add-after 'unpack 'fix-build
- (lambda _ (delete-file "setup.py"))))))
- (build-system pyproject-build-system)
+ #~(modify-phases %standard-phases
+ (add-before 'build 'pretend-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))))))
(native-inputs
- (list python-pytest
+ (list python-nbformat
+ python-pygments
+ python-pytest
python-setuptools
- python-setuptools-scm
- python-wrapper
- python-wheel))
- (home-page "http://github.com/rocky/shell-term-background")
- (synopsis "Determine if shell has a light or dark background")
- (description "This package determines if shell has a light or dark
-background.")
- (license license:gpl2+)))
+ python-setuptools-scm))
+ (propagated-inputs
+ (list python-autocommand
+ python-packaging
+ python-path
+ python-pip))
+ (home-page "https://github.com/jaraco/pip-run")
+ (synopsis "Dynamic dependency loader for Python")
+ (description "The @command{pip-run} command provides on-demand temporary
+package installation for a single interpreter run. It replaces this series of
+commands:
+@example
+$ virtualenv --python pythonX.X --system-site-packages /tmp/env
+$ /tmp/env/bin/pip install pkg1 pkg2 -r reqs.txt
+$ /tmp/env/bin/python ...
+$ rm -rf /tmp/env
+@end example")
+ (license license:expat)))
+
+;; It may be removed after 2026-01-24.
+(define-deprecated/public-alias python-pip-run-bootstrap python-pip-run)
(define-public python-libarchive-c
(package
@@ -18598,26 +17902,26 @@ Python's @code{ctypes} foreign function interface (FFI).")
(define-public python-file
(package/inherit file
(name "python-file")
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(arguments
- '(#:tests? #f ;no tests
- #:configure-flags '("--single-version-externally-managed" "--root=/")
- #:phases (modify-phases %standard-phases
- (add-before 'build 'change-directory
- (lambda _
- (chdir "python")
- #t))
- (add-before 'build 'set-library-file-name
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((file (assoc-ref inputs "file")))
- (substitute* "magic.py"
- (("find_library\\('magic'\\)")
- (string-append "'" file "/lib/libmagic.so'")))
- #t))))))
- (inputs `(("file" ,file)))
- (native-inputs (if (%current-target-system)
- `(("self" ,this-package))
- '()))
+ (list
+ #:tests? #f ;no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'change-directory
+ (lambda _
+ (chdir "python")))
+ (add-before 'build 'set-library-file-name
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "magic.py"
+ (("find_library\\('magic'\\)")
+ (format #f "~s" (search-input-file inputs
+ "lib/libmagic.so")))))))))
+ (inputs (list file))
+ (native-inputs (cons* python-setuptools
+ (if (%current-target-system)
+ (list this-package)
+ '())))
(synopsis "Python bindings to the libmagic file type guesser")
(description "This package provides Python bindings to the libmagic file
type guesser.
@@ -18823,9 +18127,9 @@ Python.")
(copy-file "lib/debian/_version.py.in" "lib/debian/_version.py")
(substitute* "lib/debian/_version.py"
(("__CHANGELOG_VERSION__") #$version))))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(native-inputs
- (list python-pytest))
+ (list python-pytest python-setuptools))
(propagated-inputs
(list python-six python-chardet))
(synopsis "Debian package related modules")
@@ -19057,19 +18361,24 @@ functions to find and load entry points.")
(define-public python-epc
(package
(name "python-epc")
- (version "0.0.5")
+ (properties '((commit . "f3673ae5c35f20a0f71546ab34c28e3dde3595c1")
+ (revision . "0")))
+ (version (git-version "0.0.5"
+ (assoc-ref properties 'revision)
+ (assoc-ref properties 'commit)))
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "epc" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tkf/python-epc")
+ (commit (assoc-ref properties 'commit))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "09bx1ln1bwa00917dndlgs4k589h8qx2x080xch5m58p92kjwkd1"))))
- (build-system python-build-system)
- (propagated-inputs
- (list python-sexpdata))
- (native-inputs
- (list python-nose))
+ (base32 "0q27bj49yan2qg6i8m5czs5b5jv26ff42yz7j4r5652s7j3f42mm"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:test-backend #~'nose))
+ (propagated-inputs (list python-sexpdata))
+ (native-inputs (list python-pynose python-setuptools))
(home-page "https://github.com/tkf/python-epc")
(synopsis "Remote procedure call (RPC) stack for Emacs Lisp and Python")
(description
@@ -19083,17 +18392,17 @@ from elisp.")
(version "1.5")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "forex-python" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/MicroPyramid/forex-python")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1ma8cl1i2dh8aa99pifnlilyy4d1gd1s07fj0yd17wcbpsh532cj"))))
- (build-system python-build-system)
- (arguments
- ;; Tests are not included in the PyPI tarball. Also, the tests in the
- ;; repository require online data.
- `(#:tests? #f))
- (propagated-inputs
- (list python-requests python-simplejson))
+ (base32 "0pl5sfd0wkv1a2y324l518h6sing7wkadrbr5xcf6hjykn2mbi5h"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #f)) ; Tests require online data.
+ (native-inputs (list python-setuptools))
+ (propagated-inputs (list python-requests python-simplejson))
(home-page "https://github.com/MicroPyramid/forex-python")
(synopsis "Foreign exchange rates and currency conversion")
(description
@@ -19119,11 +18428,15 @@ Features:
(version "0.9.12")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "simpleeval" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/danthedeckie/simpleeval")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0diysdzvx865yy2rjfah75ha2qfxaxz7r108kp7j2kkd903ya2ry"))))
- (build-system python-build-system)
+ (base32 "0khgl729q5133fgc00d550f4r77707rkkn7r56az4v8bvx0q8xp4"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/danthedeckie/simpleeval")
(synopsis "Simple, safe single expression evaluator library")
(description
@@ -19382,39 +18695,32 @@ Jupyter kernels such as IJulia and IRKernel.")
(define-public python-jsbeautifier
(package
(name "python-jsbeautifier")
- (version "1.10.2")
+ (version "1.15.3")
(home-page "https://github.com/beautify-web/js-beautify")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url home-page)
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0wawb070ki1axb3jc9xvsrgpji52vcfif3zmjzc3z4g98m5xw4kg"))))
- (build-system python-build-system)
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zl1g6w5zn2hxk5qq83j52cxa1ig75ryjwsjxv9wiwkar4qq88zg"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'chdir
- (lambda _
- ;; The upstream Git repository contains all the code,
- ;; but this package only builds the python code.
- (chdir "python")
- #t))
- (add-after 'unpack 'patch-python-six-requirements
- (lambda _
- (substitute* "python/setup.py"
- (("six>=1.12.0")
- "six>=1.11.0"))
- #t)))))
- (propagated-inputs
- (list python-editorconfig python-six))
- (native-inputs
- (list python-pytest))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "python")
+ (rename-file "setup-js.py" "setup.py"))))))
+ (propagated-inputs (list python-editorconfig python-six))
+ (native-inputs (list python-pytest python-setuptools))
(synopsis "JavaScript unobfuscator and beautifier")
- (description "Beautify, unpack or deobfuscate JavaScript, leveraging
-popular online obfuscators.")
+ (description
+ "This packages provides tooling to beautify, unpack or deobfuscate
+JavaScript, leveraging popular online obfuscators.")
(license license:expat)))
(define-public python-chardet
@@ -19623,38 +18929,45 @@ tutorial.")
@code{PythonAnywhere} services.")
(license license:expat)))
-(define-public python-pythondialog
+(define-public python-dialog
(package
- (name "python-pythondialog")
- (version "3.4.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "pythondialog" version))
- (sha256
- (base32
- "1728ghsran47jczn9bhlnkvk5bvqmmbihabgif5h705b84r1272c"))))
- (build-system python-build-system)
+ (name "python-dialog")
+ (version "3.5.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pythondialog" version))
+ (sha256
+ (base32 "08v3flvbhpc0p20drniiaalc3ijghlxk9ka5vz5mqqm6y254m8xj"))
+ (modules '((guix build utils)))
+ (snippet #~(delete-file-recursively "doc"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'patch-path
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((dialog (assoc-ref inputs "dialog")))
- (substitute* "dialog.py"
- (("os.getenv\\(\"PATH\", \":/bin:/usr/bin\"\\)") (string-append
- "os.getenv(\"PATH\") + \":"
- dialog
- "/bin\"")))
- #t))))
- #:tests? #f))
- (propagated-inputs (list dialog))
+ (list
+ ;; XXX: There are no tests, but some examples. However, they need to
+ ;; be run on a terminal.
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "dialog.py"
+ (("_path_to_executable\\(dialog\\)")
+ (format #f "os.path.realpath(~s)"
+ (search-input-file inputs "bin/dialog")))))))))
+ (native-inputs (list python-setuptools))
+ (inputs (list dialog))
(home-page "https://pythondialog.sourceforge.net/")
(synopsis "Python interface to the UNIX dialog utility")
(description
- "A Python wrapper for the dialog utility. Its purpose is to
-provide an easy to use, pythonic and comprehensive Python interface to dialog.
-This allows one to make simple text-mode user interfaces on Unix-like systems")
+ "A Python wrapper for the dialog utility. Its purpose is to provide an
+easy to use, pythonic and comprehensive Python interface to dialog. This
+allows one to make simple text-mode user interfaces on Unix-like systems")
(license license:lgpl2.1)))
+(define-public python-pythondialog
+ (deprecated-package "python-pythondialog" python-dialog))
+
(define-public python-confection
(package
(name "python-confection")
@@ -19851,29 +19164,6 @@ and dataclasses.")
@code{ArgumentParser} object.")
(license license:asl2.0)))
-(define-public python-texttable
- (package
- (name "python-texttable")
- (version "1.6.4")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/foutaise/texttable/")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1lcn76wx6fsj8d79gs985irkqz5qbwq1v9ji9jxsra6dbb643v5j"))))
- (build-system pyproject-build-system)
- (arguments (list #:test-flags #~(list "tests.py")))
- (native-inputs (list python-pytest python-setuptools))
- (home-page "https://github.com/foutaise/texttable/")
- (synopsis "Create simple ASCII tables in Python")
- (description
- "This package provides a Python module for creating simple ASCII
-tables.")
- (license license:expat)))
-
(define-public python-atomicwrites
(package
(name "python-atomicwrites")
@@ -20596,28 +19886,6 @@ text.")
@code{boto} library.")
(license license:asl2.0)))
-(define-public python-rsa
- (package
- (name "python-rsa")
- (version "3.4.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "rsa" version))
- (sha256
- (base32
- "1dcxvszbikgzh99ybdc7jq0zb9wspy2ds8z9mjsqiyv3q884xpr5"))))
- (build-system python-build-system)
- (propagated-inputs
- (list python-pyasn1))
- (synopsis "Pure-Python RSA implementation")
- (description "Python-RSA is a pure-Python RSA implementation. It supports
-encryption and decryption, signing and verifying signatures, and key
-generation according to PKCS#1 version 1.5. It can be used as a Python
-library as well as on the command line.")
- (home-page "https://stuvel.eu/rsa")
- (license license:asl2.0)))
-
(define-public python-plumbum
(package
(name "python-plumbum")
@@ -20745,7 +20013,7 @@ document.")
(invoke "nose2" "-v" "symengine.tests"))
(format #t "test suite not run~%")))))))
(native-inputs (list cmake-minimal
- python-cython-3
+ python-cython
python-nose2
python-setuptools
python-wheel))
@@ -20760,40 +20028,53 @@ manipulation library.")
(define-public python-asteval
(package
(name "python-asteval")
- (version "0.9.23")
+ (version "1.0.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asteval" version))
(sha256
- (base32
- "0f54sd4w1a72ij1bcxs2x7dk9xf8bzclawijf1z18bqx9f96l2gm"))))
- (build-system python-build-system)
+ (base32 "17x1qk07cixj1nn59pp5dzjc9jna92v6kljdss81l5rf9cqfga0s"))))
+ (build-system pyproject-build-system)
(native-inputs
- (list python-pytest))
+ (list python-pytest
+ python-pytest-cov
+ python-setuptools
+ python-setuptools-scm))
(home-page "https://github.com/newville/asteval")
(synopsis "Minimalistic evaluator of Python expressions")
(description
"This package provides a minimalistic evaluator of Python expression
-using the @code{ast} module")
+using the @code{ast} module.")
(license license:expat)))
(define-public python-lmfit
(package
(name "python-lmfit")
- (version "1.0.2")
+ (version "1.3.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "lmfit" version))
(sha256
(base32
- "0iab33jjb60f8kn0k0cqb0vjp1mdskks2n3kpn97zkw5cvjhq2b7"))))
- (build-system python-build-system)
+ "15z4zcyc4crfdw22qnbaq8wrf552jgl83gd3nk2zc5zp8f6c48iw"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ ;; Costly tests that may fail with multiprocessing.context.TimeoutError.
+ #~(list "--ignore=tests/test_jacobian_pickling.py")
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; XXX: Unclear why, but the phase seems broken.
+ ;; asteval>=1.0 is not understood correctly.
+ (delete 'sanity-check))))
(propagated-inputs
- (list python-asteval python-numpy python-scipy python-uncertainties))
+ (list python-asteval python-dill python-numpy python-scipy
+ python-uncertainties))
(native-inputs
- (list python-pytest))
+ (list python-pytest python-pytest-cov python-setuptools))
(home-page "https://lmfit.github.io/lmfit-py/")
(synopsis "Least-Squares minimization with bounds and constraints")
(description
@@ -20999,19 +20280,32 @@ Amazon Web Services (AWS) API.")
(define-public python-pyfiglet
(package
(name "python-pyfiglet")
- (version "0.8.post1")
+ (version "1.0.4")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "pyfiglet" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pwaller/pyfiglet")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "0f9n2076ga2ccsg174k2d7n0z4d44ml96yzc72s6g4nhalbk5hn6"))))
- (build-system python-build-system)
+ (base32 "1r1fyphz99jar2xfk761cl740zxk4b0gygajgjfx6i1kf0dxdv40"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fallback-on-default-build
+ (lambda _
+ ;; This pyproject has little value and fails because of the
+ ;; :__legacy__ suffix. Removing it to rely on defaults.
+ (delete-file "pyproject.toml"))))))
+ (native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/pwaller/pyfiglet")
(synopsis "Draw ASCII art big letters in Python")
- (description "This module lets you draw large letter from ordinary characters
-in pure Python.")
+ (description
+ "This module lets you draw large letter from ordinary characters in pure
+ Python.")
(license license:expat)))
(define-public python-mako
@@ -21331,83 +20625,72 @@ Eventlet, or gevent. Tasks can execute asynchronously (in the background) or
synchronously (wait until ready).")
(license license:bsd-3)))
-(define-public python-translitcodec
- (package
- (name "python-translitcodec")
- (version "0.4.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "translitcodec" version))
- (sha256
- (base32
- "10x6pvblkzky1zhjs8nmx64nb9jdzxad4bxhq4iwv0j4z2aqjnki"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f)) ; no tests provided
- (home-page
- "https://github.com/claudep/translitcodec")
- (synopsis
- "Unicode to 8-bit charset transliteration codec")
- (description
- "This package contains codecs for transliterating ISO 10646 texts into
-best-effort representations using smaller coded character sets (ASCII,
-ISO 8859, etc.).")
- (license license:expat)))
-
(define-public python-anyqt
(package
(name "python-anyqt")
- (version "0.2.0")
+ (version "0.2.1")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "AnyQt" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ales-erjavec/anyqt")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0fvnhdk0nzhlm1xydisvdq1w7lwaakdkbwb1rkyz4vd232wji4jb"))))
- (build-system python-build-system)
+ (base32 "0dci4sx53icd3jxv5gm22yr5g4dcyqbyvkkwliqpmbkxxjxj0dc8"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:tests? #f ;there are no tests
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'delete-files
- ;; Delete files related to other operating systems.
- (lambda _
- (delete-file "AnyQt/QtMacExtras.py")
- (delete-file "AnyQt/QtWinExtras.py"))))))
+ (list
+ ;; XXX: Qt tests require Qt modules, see test/test_import.py.
+ ;; TODO Add/configure the right Qt inputs.
+ #:test-flags
+ #~(list "--ignore-glob=tests/test_q*.py")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'delete-files
+ ;; Delete files related to other operating systems.
+ (lambda _
+ (delete-file "AnyQt/QtMacExtras.py")
+ (delete-file "AnyQt/QtWinExtras.py"))))))
+ (native-inputs
+ (list python-pyqt-6
+ python-pytest
+ python-pytest-qt
+ python-setuptools))
(home-page "https://github.com/ales-erjavec/anyqt")
- (synopsis "PyQt4/PyQt5 compatibility layer")
- (description "AnyQt is a PyQt4/PyQt5 compatibility layer.")
+ (synopsis "PyQt compatibility layer")
+ (description
+ "This package provides a PyQt/PySide compatibility layer. More precisely,
+it provides compatibility for the following modules: PyQt4, PyQt5, PyQt6,
+PySide, PySide2.")
(license license:gpl3)))
(define-public python-qasync
(package
(name "python-qasync")
- (version "0.27.1")
+ (version "0.28.0")
(source
(origin
- ;; There are no tests in the PyPI tarball.
(method git-fetch)
(uri (git-reference
- (url "https://github.com/CabbageDevelopment/qasync/")
- (commit (string-append "v" version))))
+ (url "https://github.com/CabbageDevelopment/qasync/")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0j6ksfnq9qfjdfppbkdz7jh6w0gnslwnckhafmlgim29b25g0z51"))))
+ (base32 "13i5riq7ig4csxlx61fzb8xl12ny0dkwj4h8f8r95xz5rii7a0kr"))))
(build-system pyproject-build-system)
(arguments
- (list #:test-flags
- ;; XXX: Added with python@3.11, not fixed upstream.
- #~(list "-k" "not test_regression_bug13")
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'check 'set-qpa
- (lambda _
- (setenv "QT_QPA_PLATFORM" "offscreen"))))))
+ (list
+ #:build-backend "poetry.core.masonry.api" ;XXX: python-uv-build is required
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'set-qpa
+ (lambda _
+ (setenv "QT_QPA_PLATFORM" "offscreen"))))))
(native-inputs
(list python-poetry-core python-pytest))
(propagated-inputs
- (list python-pyqt))
+ (list python-pyqt-6))
(home-page "https://github.com/CabbageDevelopment/qasync")
(synopsis "Implementation of the PEP 3156 Event-Loop with Qt")
(description
@@ -21417,40 +20700,44 @@ by providing an implementation of the PEP 3156 event-loop.")
(define-public python-editor
(package
- (name "python-editor")
- (version "1.0.4")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "python-editor" version))
- (sha256
- (base32
- "0yrjh8w72ivqxi4i7xsg5b1vz15x8fg51xra7c3bgfyxqnyadzai"))))
- (build-system python-build-system)
- (arguments
- '(#:tests? #f)) ;XXX: needs a TTY and an editor
- (home-page "https://github.com/fmoo/python-editor")
- (synopsis "Programmatically open an editor, capture the result")
- (description
- "python-editor is a library that provides the editor module for
-programmatically interfacing with your system's $EDITOR.")
- (license license:asl2.0)))
+ (name "python-editor")
+ (version "1.0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fmoo/python-editor")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0hm5gcz5117dsq39bqfxpwazk4khqd272ran0n12x0x84mnqvfxa"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #f)) ;XXX: needs a TTY and an editor
+ (native-inputs (list python-setuptools))
+ (home-page "https://github.com/fmoo/python-editor")
+ (synopsis "Programmatically open an editor, capture the result")
+ (description
+ "This package provides the editor module for programmatically interfacing
+with your system's $EDITOR.")
+ (license license:asl2.0)))
(define-public python-multiprocessing-logging
(package
(name "python-multiprocessing-logging")
- (version "0.3.1")
+ (version "0.3.4")
(home-page "https://github.com/jruere/multiprocessing-logging")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url home-page)
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1625wy3djlr3b2fpd3vi822f8gw6b75mnls5a4318dbi9za5pf0y"))))
- (build-system python-build-system)
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ib1plsyi4g68n0crc2cqhk54fccsmcijzh66g89fd3lgababgxd"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:test-backend #~'unittest))
+ (native-inputs (list python-setuptools))
(synopsis "Manage logs from multiple processes")
(description
"This Python module implements a multiprocessing-aware @code{Handler}
@@ -21462,33 +20749,27 @@ main process so that they are handled correctly.")
(package
(name "python-munkres")
(version "1.1.4")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "munkres" version))
- (sha256
- (base32
- "00yvj8bxmhhhhd74v7j0x673is7vizmxwgb3dd5xmnkr74ybyi7w"))))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "munkres" version))
+ (sha256
+ (base32 "00yvj8bxmhhhhd74v7j0x673is7vizmxwgb3dd5xmnkr74ybyi7w"))))
+ (build-system pyproject-build-system)
(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))
+ ;; See https://github.com/bmc/munkres/issues/40
+ #:test-flags
+ (if (member (%current-system) %32bit-supported-systems)
+ #~(list "-k" "not test_profit_float")
+ #~(list))))
+ (native-inputs (list python-pytest python-setuptools))
(home-page "https://software.clapper.org/munkres/")
(synopsis "Implementation of the Munkres algorithm")
- (description "The Munkres module provides an implementation of the Munkres
-algorithm (also called the Hungarian algorithm or the Kuhn-Munkres algorithm),
-useful for solving the Assignment Problem.")
+ (description
+ "The Munkres module provides an implementation of the Munkres algorithm
+(also called the Hungarian algorithm or the Kuhn-Munkres algorithm), useful
+for solving the Assignment Problem.")
(license license:bsd-3)))
(define-public python-codespell
@@ -21604,37 +20885,39 @@ can also be used to get the exact location, font or color of the text.")
(define-public python-rarfile
(package
(name "python-rarfile")
- (version "4.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "rarfile" version))
- (sha256
- (base32
- "1882wv9szcm29mnyhjmspyflyr2l7z73srn14w4dlnww49lqfm37"))))
- (build-system python-build-system)
+ (version "4.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/markokr/rarfile")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1lm4vz4w0hrnzln7w10ijhdiwxy7gz45m44zw4fz7rdnn7c06b36"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:tests? #f ;; The bsdtar utility is very limited and most tests fail.
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "rarfile.py"
- ;; Disable unrar and unar, which are unavailable on Guix.
- (("(unrar|unar)=True" all tool) (string-append tool "=False"))
- ;; Hardcode path to bsdtar
- (("\"bsdtar\"")
- (string-append "\"" (assoc-ref inputs "libarchive") "/bin/bsdtar\"")))
- #t))
- (replace 'check
- (lambda* (#:key inputs tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "-vv")))))))
- (native-inputs (list python-pytest))
+ (list
+ #:tests? #f ;The bsdtar utility is very limited and most tests fail.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "rarfile.py"
+ ;; Disable unrar and unar, which are unavailable on Guix.
+ (("(unrar|unar)=True" all tool)
+ (string-append tool "=False"))
+ ;; Hardcode path to bsdtar
+ (("\"bsdtar\"")
+ (format #f "~s"
+ (search-input-file inputs "bin/bsdtar")))))))))
+ (native-inputs (list python-pytest python-setuptools))
(inputs (list libarchive))
(home-page "https://github.com/markokr/rarfile")
(synopsis "RAR archive reader for Python")
- (description "This is Python module for RAR archive reading. The interface
-is made as zipfile like as possible.")
+ (description
+ "This is Python module for RAR archive reading. The interface is made as
+zipfile like as possible.")
(license license:isc)))
(define-public python-slugid
@@ -21650,21 +20933,14 @@ is made as zipfile like as possible.")
(file-name (git-file-name name version))
(sha256
(base32 "1h64p2jlqv6lsmw8h2j203kx3bhv72cwzpk5gdhsaamw30cp3h1i"))))
- (build-system python-build-system)
- (native-inputs (list python-nose))
- (arguments
- (list #:phases
- #~(modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key inputs tests? #:allow-other-keys)
- (when tests?
- ;; The project uses tox to run the tests via nose.
- (invoke "nosetests" "-v" "test.py")))))))
+ (build-system pyproject-build-system)
+ (arguments (list #:test-backend #~'nose))
+ (native-inputs (list python-pynose python-setuptools))
(home-page "http://taskcluster.github.io/slugid.py")
(synopsis "Module for Base64 encoded UUID v4 slugs")
- (description "This package provides a module for generating v4
-UUIDs and encoding them into 22 character URL-safe base64 slug
-representation.")
+ (description
+ "This package provides a module for generating v4 UUIDs and encoding them
+into 22 character URL-safe base64 slug representation.")
(license license:mpl2.0)))
(define-public python-rich
@@ -21740,58 +21016,6 @@ attractive help output from click, formatted with rich, with minimal
customization required.")
(license license:expat)))
-(define-public python-textual
- (package
- (name "python-textual")
- (version "3.5.0")
- (source (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
- "1sldkhy8phk9c7pln70dyb6aya7qpxb5niym9s91z144dv6ykgws"))))
- (build-system pyproject-build-system)
- (arguments
- (list #:test-flags
- ;; Snapshot tests require python-pytest-textual-snapshot which
- ;; in turn depends on python-textual.
- '(list "--ignore=tests/snapshot_tests/test_snapshots.py"
- "-k" (string-append
- ;; Broken for unknown reason.
- "not test_textual_env_var"
- ;; Tests that require python-treesitter-languages.
- " and not test_widget_construct"
- " and not test_setting_builtin_language_via_constructor"
- " and not test_setting_builtin_language_via_attribute"
- " and not test_setting_language_to_none"
- " and not test_setting_unknown_language"
- " and not test_register_language"
- " and not test_update_highlight_query"
- " and not test_default_theme"
- " and not test_setting_builtin_themes"
- " and not test_setting_unknown_theme_raises_exception"
- " and not test_registering_and_setting_theme"))))
- (propagated-inputs
- (list python-markdown-it-py
- python-platformdirs
- python-rich
- python-tree-sitter
- ;; python-tree-sitter-languages ; optional, not packed yet
- python-typing-extensions))
- (native-inputs
- (list python-poetry-core
- python-pytest
- python-pytest-asyncio
- python-pytest-xdist))
- (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")
@@ -21803,49 +21027,40 @@ for Python inspired by modern web development.")
(uri (git-reference (url home-page) (commit version)))
(file-name (git-file-name name version))
(sha256
- (base32
- "1x11kfn4g244fia9a7y4ly8dqv5zsxfg3l5azc54dl6gkp2bk7vx"))
- (modules '((guix build utils)))
- ;; Adjust expected output for file@5.45.
- (snippet #~(substitute* "test/libmagic_test.py"
- (("PDF document, version 1\\.2, 2 pages")
- "PDF document, version 1.2, 2 page(s)")))))
- (build-system python-build-system)
+ (base32 "1x11kfn4g244fia9a7y4ly8dqv5zsxfg3l5azc54dl6gkp2bk7vx"))))
+ (build-system pyproject-build-system)
(arguments
- '(#:phases (modify-phases %standard-phases
- ;; Replace a specific method call with a hard-coded
- ;; path to the necessary libmagic.so file in the
- ;; store. If we don't do this, then the method call
- ;; will fail to find the libmagic.so file, which in
- ;; turn will cause any application using
- ;; python-magic to fail.
- (add-before 'build 'hard-code-path-to-libmagic
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((magic (search-input-file inputs "/lib/libmagic.so")))
- (substitute* "magic/loader.py"
- (("find_library\\('magic'\\)")
- (string-append "'" magic "'"))))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- ;; The test suite mandates this variable.
- (setenv "LC_ALL" "C.UTF-8")
- (if tests?
- (with-directory-excursion "test"
- (invoke "python" "./libmagic_test.py"))
- (format #t "test suite not run~%")))))))
- (native-inputs
- (list which))
+ (list
+ #:test-backend #~'custom
+ #:test-flags #~(list "test/libmagic_test.py")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ ;; Adjust expected output for file@5.45.
+ (substitute* "test/libmagic_test.py"
+ (("PDF document, version 1\\.2, 2 pages")
+ "PDF document, version 1.2, 2 page(s)"))))
+ ;; Replace a specific method call with a hard-coded path to the
+ ;; necessary libmagic.so file in the store.
+ (add-before 'build 'hard-code-path-to-libmagic
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "magic/loader.py"
+ (("find_library\\('magic'\\)")
+ (format #f "~s"
+ (search-input-file inputs "lib/libmagic.so")))))))))
+ (native-inputs (list which python-setuptools))
(inputs
;; python-magic needs to be able to find libmagic.so.
(list file))
(synopsis "File type identification using libmagic")
(description
- "This module uses ctypes to access the libmagic file type
-identification library. It makes use of the local magic database and
-supports both textual and MIME-type output. Note that this module and
-the python-file module both provide a \"magic.py\" file; these two
-modules, which are different and were developed separately, both serve
-the same purpose: to provide Python bindings for libmagic.")
+ "This module uses ctypes to access the libmagic file type identification
+library. It makes use of the local magic database and supports both textual
+and MIME-type output. Note that this module and the python-file module both
+provide a \"magic.py\" file; these two 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
@@ -21947,6 +21162,7 @@ check if a package meets certain version requirements, query CFLAGS and
LDFLAGS and parse the output to build extensions with setup.py.")
(license license:expat)))
+;; This package is unmaintained since 2014, but still used in `khmer'.
(define-public python-bz2file
(package
(name "python-bz2file")
@@ -21956,11 +21172,10 @@ LDFLAGS and parse the output to build extensions with setup.py.")
(method url-fetch)
(uri (pypi-uri "bz2file" version))
(sha256
- (base32
- "126s53fkpx04f33a829yqqk8fj4png3qwg4m66cvlmhmwc8zihb4"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f)) ; Tests use deprecated python modules.
+ (base32 "126s53fkpx04f33a829yqqk8fj4png3qwg4m66cvlmhmwc8zihb4"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #f)) ; Tests use deprecated python modules.
+ (native-inputs (list python-setuptools))
(home-page "https://github.com/nvawda/bz2file")
(synopsis "Read and write bzip2-compressed files")
(description
@@ -22024,7 +21239,7 @@ codebase to support both Python 2 and Python 3 with minimal overhead.")
(build-system pyproject-build-system)
(native-inputs (list meson-python
pkg-config
- python-cython-3
+ python-cython
python-pytest
python-sphinx))
(home-page "https://github.com/sagemath/cysignals")
@@ -22067,105 +21282,37 @@ in strings and comments.")
(define-public python-py3status
(package
(name "python-py3status")
- (version "3.50")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "py3status" version))
- (sha256
- (base32 "0j2dx9lzpic15r8p0r0s3jmcskxpacahxl640b4864ldn5rlnh9d"))))
- (build-system python-build-system)
- (inputs
- (list file))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; 'file' is used for detection of configuration file encoding
- ;; let's make link the dependency to particular input
- (add-before 'build 'patch-file-path
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((file-path (assoc-ref inputs "file")))
- (substitute* "py3status/parse_config.py"
- (("\\[\"file\", \"-b\"")
- (string-append "['" file-path "/bin/file', '-b'")))
- #t))))
- #:tests? #f)) ; TODO: Requires many libraries not in Guix.
- (home-page "https://github.com/ultrabug/py3status")
- (synopsis "Extensible i3status wrapper written in Python")
- (description "py3status is an i3status wrapper which extends i3status
-functionality in a modular way, allowing you to extend your panel with your
-own code, responding to click events and updating clock every second.")
- (license license:bsd-3)))
-
-(define-public python-tblib
- (package
- (name "python-tblib")
- (version "3.1.0")
+ (version "3.62")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "tblib" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ultrabug/py3status")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0lnnbicpxx774s29nkbic4rrqvy4rhxd8skx5pp6zxh7kwn4qh06"))))
+ (base32 "13ggwr35w5isylrg1n7akhycm18r03bxin95hdpcmqg7fvqyfppz"))))
(build-system pyproject-build-system)
(arguments
(list
- ;; Don't run benchmark tests.
- #:test-flags #~(list "--ignore=tests/test_perf.py")
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'fix-pytest-config
- (lambda _
- (substitute* "pytest.ini"
- (("--benchmark-disable") "")))))))
- (native-inputs
- (list python-pytest
- python-setuptools))
- (home-page "https://github.com/ionelmc/python-tblib")
- (synopsis "Traceback serialization library")
+ (add-before 'build 'hardcode-file-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "py3status/parse_config.py"
+ (("\\[\"file\", \"-b\"")
+ (format #f "[~s, \"-b\""
+ (search-input-file inputs "bin/file")))))))))
+ (native-inputs (list python-hatchling python-pytest))
+ (inputs (list file))
+ (home-page "https://github.com/ultrabug/py3status")
+ (synopsis "Extensible i3status wrapper written in Python")
(description
- "Traceback serialization allows you to:
-
-@enumerate
-@item Pickle tracebacks and raise exceptions with pickled tracebacks in
-different processes. This allows better error handling when running code over
-multiple processes (imagine multiprocessing, billiard, futures, celery etc).
-
-@item Parse traceback strings and raise with the parsed tracebacks.
-@end enumerate\n")
+ "py3status is an i3status wrapper which extends i3status functionality in
+a modular way, allowing you to extend your panel with your own code,
+responding to click events and updating clock every second.")
(license license:bsd-3)))
-(define-public python-tftpy
- (package
- (name "python-tftpy")
- (version "0.8.2")
- (source
- (origin
- (method git-fetch) ;no tests in PyPI archive
- (uri (git-reference
- (url "https://github.com/msoulier/tftpy")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1gl04ps8h8r7av3h0zbm8gwmkqs9rkk5vf7n8mv2bzrkwvy9hacc"))))
- (build-system python-build-system)
- (arguments
- `(#:phases (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? inputs outputs #:allow-other-keys)
- (when tests?
- ;; The default DEBUG logging level is way too verbose.
- (substitute* "t/test.py"
- (("logging\\.DEBUG")
- "logging.INFO"))
- (invoke "python" "-m" "unittest" "t/test.py")))))))
- (home-page "https://tftpy.sourceforge.net/")
- (synopsis "Python trivial file transfer protocol (TFTP) library")
- (description "TFTPy is a trivial file transfer protocol (TFTP) Python
-library. It can be used to act both as a TFTP client or TFTP server.")
- (license license:expat)))
-
(define-public python-greenlet
(package
(name "python-greenlet")
@@ -22380,147 +21527,57 @@ graphviz.")
(define-public python-fastimport
(package
(name "python-fastimport")
- (version "0.9.9")
+ (version "0.9.16")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "fastimport" version))
- (sha256
- (base32 "06gk14qgm9dxx3pzjn0ckdbywc8ial2bjfzddqwlr4bn1nnqkbll"))))
- (build-system python-build-system)
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jelmer/python-fastimport")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pbnp9ffjs09ngva9qcizpscxl9s47rmd4dhxl62f5iwl6c46798"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:test-backend #~'unittest))
+ (native-inputs (list python-setuptools))
(home-page "https://github.com/jelmer/python-fastimport")
(synopsis "VCS fastimport parser and generator in Python")
- (description "This package provides a parser for and generator of the Git
+ (description
+ "This package provides a parser for and generator of the Git
@url{https://www.kernel.org/pub/software/scm/git/docs/git-fast-import.html,fastimport}
format.")
(license license:gpl2+)))
-(define-public python-twisted
+(define-public python-pika
(package
- (name "python-twisted")
- (version "24.11.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/twisted/twisted")
- (commit (string-append "twisted-" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0k4rd5bpx40j1k0mgbhzqa35dyni0kk7pxjr8x3pm1iaka1718rh"))))
+ (name "python-pika")
+ (version "1.3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pika/pika")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0bmp79lds26y2976xrpf53r3acqzpf3wpkprhlh3asqpfv5pwipb"))))
(build-system pyproject-build-system)
(arguments
(list
- ;; tests: skips=638, successes=9759
- #:test-backend #~'custom
#:test-flags
- #~(list "-m" "twisted.trial"
- "--temp-directory=/tmp/_trial_temp"
- (string-append "-j" (number->string (min 8 (parallel-job-count))))
- "twisted")
+ ;; XXX: These test most likely require a running RabbitMQ server.
+ #~(list "--ignore=tests/acceptance/blocking_adapter_test.py")
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'disable-broken-tests
- (lambda _
- (for-each delete-file
- (list
- ;; No idea why they fail
- "src/twisted/test/test_log.py"
- ;; Network tests
- "src/twisted/conch/test/test_cftp.py"
- "src/twisted/internet/test/test_endpoints.py"
- "src/twisted/protocols/test/test_tls.py"
- "src/twisted/test/test_sslverify.py"
- "src/twisted/web/test/test_agent.py"
- "src/twisted/web/test/test_tap.py"
- ;; These need a git executable
- "src/twisted/python/test/test_release.py"
- ;; These leave behind a socket file, which breaks the
- ;; build with "...has an unsupported type"
- "src/twisted/internet/test/test_unix.py"
- "src/twisted/test/test_unix.py"
- ;; These complain about missing test modules.
- "src/twisted/test/test_failure.py"
- "src/twisted/web/test/test_http2.py"
- "src/twisted/conch/test/test_forwarding.py")))))))
- (propagated-inputs
- (list python-attrs
- python-automat
- python-bcrypt
- python-constantly
- python-hyperlink
- python-incremental
- python-typing-extensions
- python-zope-interface
- ;; [conch]
- python-appdirs
- python-bcrypt
- python-cryptography
- ;; [http2]
- python-h2
- python-priority
- ;; [tls]
- python-idna
- python-pyopenssl
- python-service-identity
- ;; [serial]
- python-pyserial))
- (native-inputs
- (list glibc-utf8-locales ;for OpenTestLogTests.test_utf8
- python-hatch-fancy-pypi-readme
- python-hatchling
- python-httpx
- python-hypothesis
- python-incremental
- python-pyhamcrest
- python-pytest))
- (home-page "https://twistedmatrix.com/")
- (synopsis "Asynchronous networking framework written in Python")
- (description
- "Twisted is an extensible framework for Python programming, with special
-focus on event-based network programming and multiprotocol integration.")
- (license license:expat)))
-
-(define-public python-pika
- (package
- (name "python-pika")
- (version "1.2.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/pika/pika")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0sqj3bg6jwign8vwvn337fbwy69sm684ns1vh5kbfnskq4him9i2"))))
- (build-system python-build-system)
- (arguments
- '(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'disable-live-tests
- (lambda _
- ;; Disable tests that require RabbitMQ, which is not
- ;; yet available in Guix.
- (substitute* "nose2.cfg"
- (("tests=tests/unit,tests/acceptance")
- "start-dir=tests/unit"))
- (with-directory-excursion "tests"
- (for-each delete-file
- '("unit/base_connection_tests.py"
- "unit/threaded_test_wrapper_test.py")))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (setenv "PYTHONPATH" (getcwd))
- (invoke "nose2" "-v")))))))
- (native-inputs
- (list python-mock
- python-nose2
- ;; These are optional at runtime, and provided here for tests.
- python-gevent
- python-tornado
- python-twisted))
+ (add-before 'check 'configure-tests
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "PYTHONPATH" (getcwd))))))))
+ (native-inputs (list python-pytest
+ python-gevent
+ python-tornado
+ python-twisted
+ python-setuptools))
(home-page "https://pika.readthedocs.org")
(synopsis "Pure Python AMQP Client Library")
(description
@@ -22551,29 +21608,6 @@ network support library.")
It uses LR parsing and does extensive error checking.")
(license license:bsd-3)))
-(define-public python-tabulate
- (package
- (name "python-tabulate")
- (version "0.9.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "tabulate" version))
- (sha256
- (base32
- "0g4b0qnbw55igbpxfxzciqvb6w8ncw4gmcgyq0lyavcnylmv3580"))))
- (build-system pyproject-build-system)
- (native-inputs
- (list python-pytest
- python-setuptools-scm
- python-setuptools
- python-wheel))
- (home-page "https://bitbucket.org/astanin/python-tabulate")
- (synopsis "Pretty-print tabular data")
- (description
- "Tabulate is a library and command-line utility to pretty-print tabular
-data in Python.")
- (license license:expat)))
-
(define-public python-kazoo
(package
(name "python-kazoo")
@@ -22765,31 +21799,6 @@ Wikipedia code samples at
docstring and colored output.")
(license license:expat)))
-(define-public python-tomlkit
- (package
- (name "python-tomlkit")
- (version "0.13.3")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tomlkit" version))
- (sha256
- (base32 "18fjmmhiv5jkkg1dwidmxd0sjqnkf675igizxsa2ppspxr3z4323"))))
- (build-system pyproject-build-system)
- (native-inputs
- (list python-poetry-core
- python-pytest
- python-pyyaml))
- (home-page "https://github.com/sdispater/tomlkit")
- (synopsis "Style-preserving TOML library")
- (description
- "TOML Kit is a 1.0.0rc1-compliant TOML library. It includes a parser that
-preserves all comments, indentations, whitespace and internal element ordering,
-and makes them accessible and editable via an intuitive API. It can also
-create new TOML documents from scratch using the provided helpers. Part of the
-implementation has been adapted, improved, and fixed from Molten.")
- (license license:expat)))
-
(define-public python-shellingham
(package
(name "python-shellingham")
@@ -23585,24 +22594,26 @@ characters, mouse support, and auto suggestions.")
(define-public python-proselint
(package
(name "python-proselint")
- (version "0.13.0")
+ (version "0.14.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "proselint" version))
(sha256
- (base32
- "0n1ahnq2mkgvh94g05xhc3l1fs3hh0ycskqlqivhhfdaq8ybdlkx"))))
- (build-system python-build-system)
+ (base32 "11hfd207bhsvb0iznlnbr0w7jxihvn3ismpjbmz7c57a5ckn8jb2"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:tests? #f
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'set-home-directory
- (lambda _
- (setenv "HOME" "/tmp"))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-home-directory
+ (lambda _
+ (setenv "HOME" "/tmp"))))))
+ (native-inputs
+ (list python-poetry-core
+ python-pytest))
(propagated-inputs
- (list python-click python-future python-six))
+ (list python-click))
(home-page "http://proselint.com/")
(synopsis "Linter for prose")
(description "@code{python-proselint} is a linter for English prose, that
@@ -24149,8 +23160,8 @@ pytest-fixtures-style dependency injection.")
extracting firmware images")
(license license:expat)))
-(define-public python-binwalk
- (deprecated-package "python-binwalk" binwalk))
+(define-deprecated-package python-binwalk
+ binwalk)
(define-public python-bson
(package
@@ -24726,7 +23737,7 @@ from the header, as well as section details and data available.")
(build-system pyproject-build-system)
(propagated-inputs (list python-numpy))
(native-inputs
- (list python-cython-3
+ (list python-cython
python-pytest
python-setuptools
python-setuptools-scm
@@ -24761,29 +23772,6 @@ Werman's implementation of the Earth Mover's Distance.")
JPEG2000 and GIF files in pure Python.")
(license license:expat)))
-(define-public python-termstyle
- (package
- (name "python-termstyle")
- (version "0.1.11")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "termstyle" version))
- (sha256
- (base32
- "17wzkkcqy5zc0g68xlad3kcv66iw14d2pwqc0h9420gak0vbhx7g"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "python" "test3.py"))))))
- (home-page "https://github.com/gfxmonk/termstyle")
- (synopsis "Console text coloring for Python")
- (description "This package provides console text coloring for Python.")
- (license license:bsd-3)))
-
(define-public python-argcomplete
(package
(name "python-argcomplete")
@@ -26968,37 +25956,6 @@ version of @code{SocksiPy} with bug fixes and extra features.")
@code{ffmpeg} to open various audio formats.")
(license license:expat))) ; MIT license
-(define-public python-tqdm
- (package
- (name "python-tqdm")
- (version "4.67.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tqdm" version))
- (sha256
- (base32 "1wi7cql2fc76b5z9v1sr96ix2gxcb974z8qfydjkmh885k2zkbpq"))))
- (build-system pyproject-build-system)
- (arguments
- (list #:test-flags
- '(list "-o" "asyncio_mode=auto"
- "-k" "not perf and not test_rlock_creation")))
- (native-inputs
- (list python-pytest
- python-pytest-asyncio
- python-pytest-timeout
- python-setuptools
- python-setuptools-scm
- python-toml
- python-wheel))
- (home-page "https://github.com/tqdm/tqdm")
- (synopsis "Fast, extensible progress meter")
- (description
- "Make loops show a progress bar on the console by just wrapping any
-iterable with @code{|tqdm(iterable)|}. Offers many options to define
-design and layout.")
- (license (list license:mpl2.0 license:expat))))
-
(define-public python-pkginfo
(package
(name "python-pkginfo")
@@ -27028,63 +25985,6 @@ distribution, and the *.egg-info stored in a \"development checkout\" (e.g,
created by running @code{python setup.py develop}).")
(license license:expat)))
-(define-public python-twine
- (package
- (name "python-twine")
- (version "6.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "twine" version))
- (sha256
- (base32 "1gcd990456sk0g05ln6x6mwn9z1jybnm3wlkxq3ivyggf9i4ycmy"))))
- (build-system pyproject-build-system)
- (native-inputs
- (list python-pretend
- python-pytest
- python-pytest-socket
- python-setuptools
- python-setuptools-scm))
- (propagated-inputs
- (list python-id
- python-keyring
- python-packaging
- python-readme-renderer
- python-requests
- python-requests-toolbelt
- python-rfc3986
- python-rich
- python-urllib3))
- (home-page "https://github.com/pypa/twine")
- (synopsis "Collection of utilities for interacting with PyPI")
- (description
- "@code{twine} currently supports registering projects and uploading
-distributions. It authenticates the user over HTTPS, allows them to pre-sign
-their files and supports any packaging format (including wheels).")
- (license license:asl2.0)))
-
-(define-public python-tracerite
- (package
- (name "python-tracerite")
- (version "1.1.3")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "tracerite" version))
- (sha256
- (base32
- "07mkg0sl0h335kj6yjvxki2c19gxhb7rkks1zgzh7aj0y83c17qi"))))
- (build-system pyproject-build-system)
- (arguments
- (list #:tests? #f)) ;no tests in PyPI or Git
- (native-inputs (list python-setuptools python-setuptools-scm))
- (propagated-inputs (list python-html5tagger))
- (home-page "https://github.com/sanic-org/tracerite")
- (synopsis "Human-readable HTML tracebacks")
- (description
- "@code{tracerite} converts Python tracebacks into useful error messages
-in human-readable HTML format.")
- (license license:unlicense)))
-
;; XXX: This project was archived by the owner on Oct 4, 2023. It is now
;; read-only. Consider to remvoe when nothing depends on it.
(define-public python-ratelimiter
@@ -27144,7 +26044,7 @@ executed more than a given number of times during a given period.")
(substitute* "pyproject.toml"
((".*addopts.*") "")))))))
(native-inputs
- (list python-cython-3
+ (list python-cython
python-pytest
python-pytest-asyncio
python-pytest-timeout
@@ -27357,59 +26257,6 @@ definitions to simplify the use of C bindings.")
Angus Johnson's polygon clipping Clipper library (ver. 6.4.2).")
(license license:expat)))
-(define-public python-tempdir
- (package
- (name "python-tempdir")
- (version "0.7.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tempdir" version))
- (sha256
- (base32 "13msyyxqbicr111a294x7fsqbkl6a31fyrqflx3q7k547gnq15k8"))))
- (build-system pyproject-build-system)
- (arguments (list #:tests? #f)) ; No tests.
- (native-inputs (list python-setuptools))
- (home-page "https://pypi.org/project/tempdir/")
- (synopsis "Python library for managing temporary directories")
- (description
- "This library manages temporary directories that are automatically
-deleted with all their contents when they are no longer needed. It is
-particularly convenient for use in tests.")
- (license license:expat)))
-
-(define-public python-tempora
- (package
- (name "python-tempora")
- (version "5.8.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tempora" version))
- (sha256
- (base32 "1k9d6qmlp0i4v3d0dcqcsndvmng3lfdh4y0p8gwy9i8cg7ndkddb"))))
- (build-system pyproject-build-system)
- (arguments
- (list
- ;; Do not test the myproject.toml build as it tries to pull dependencies
- ;; from the Internet.
- #:test-flags #~(list "-k" "not project"
- "tests")))
- (native-inputs
- (list python-freezegun
- python-pytest
- python-setuptools
- python-setuptools-scm
- python-tzdata))
- (propagated-inputs (list python-dateutil python-jaraco-functools))
- (home-page "https://github.com/jaraco/tempora")
- (synopsis "Python date and time objects and routines")
- (description "The @code{tempora} Python library contains miscellaneous
-date and time related utilities and constants, routines for measuring,
-profiling, and getting datetime-aware @acronym{UTC, Coordinated Universal
-Time} values as well as an event scheduler.")
- (license license:expat)))
-
(define-public python-semver
(package
(name "python-semver")
@@ -27771,64 +26618,6 @@ a notation for identifying weeks; yyyyWww (where the W is a literal).
Week instances stringify to this form.")
(license license:bsd-3)))
-(define-public python-tokenize-rt
- (package
- (name "python-tokenize-rt")
- (version "6.2.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/asottile/tokenize-rt")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1maa9sifma0a6v7kl7mmyqzj0jdclzlp4wjr0vkdx95raihxx4fv"))))
- (build-system pyproject-build-system)
- (native-inputs (list python-pytest python-setuptools))
- (home-page "https://github.com/asottile/tokenize-rt")
- (synopsis "Wrapper around the stdlib tokenize which roundtrips")
- (description
- "This Python library is a wrapper around @code{tokenize} from the Python
-standard library. It provides two additional tokens @code{ESCAPED_NL} and
-@code{UNIMPORTANT_WS}, and a @code{Token} data type. Use @code{src_to_tokens}
-and @code{tokens_to_src} to roundtrip.")
- (license license:expat)))
-
-(define-public python-towncrier
- (package
- (name "python-towncrier")
- (version "23.6.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "towncrier" version))
- (sha256
- (base32
- "1hbhzxcn30qlnab1rnk2bf09jfy5bpxzfdp6zfn8sz3jnidbsagw"))))
- (build-system pyproject-build-system)
- (arguments
- (list #:test-flags
- ;; TODO: Why is this failing?
- #~'("-k" "not test_version")))
- (propagated-inputs
- (list python-click
- python-click-default-group
- python-incremental
- python-jinja2
- python-tomli))
- (native-inputs
- (list git-minimal/pinned ;tests create git repositories
- python-hatchling
- python-packaging
- python-pytest
- python-twisted))
- (home-page "https://towncrier.readthedocs.io/en/stable/")
- (synopsis "Manage release notes")
- (description
- "@code{towncrier} is a utility to produce useful, summarized news
-files (also known as changelogs) for a project.")
- (license license:expat)))
-
(define-public python-future-fstrings
(package
(name "python-future-fstrings")
@@ -28835,49 +27624,19 @@ a file (or some information about a file), return a set of standardized tags
identifying what the file is.")
(license license:expat)))
-(define-public python-tldextract
+(define-public tldr
(package
- (name "python-tldextract")
- (version "3.3.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tldextract" version))
- (sha256
- (base32 "1wac4yvcpgqjvls770mfx165amvy7gr00nnd2w24bqqwyamj9kdd"))))
- (build-system pyproject-build-system)
- (native-inputs (list nss-certs-for-test
- python-pytest
- python-pytest-mock
- python-responses
- python-setuptools
- python-setuptools-scm
- python-wheel))
- (propagated-inputs (list python-filelock python-idna python-requests
- python-requests-file))
- (home-page "https://github.com/john-kurkowski/tldextract")
- (synopsis
- "Separate the TLD from the registered domain and subdomains of a URL")
- (description
- "TLDExtract accurately separates the TLD from the registered domain and
-subdomains of a URL, using the Public Suffix List. By default, this includes
-the public ICANN TLDs and their exceptions. It can optionally support the
-Public Suffix List's private domains as well.")
- (license license:bsd-3)))
-
-(define-public python-tldr
- (package
- (name "python-tldr")
- (version "3.3.0")
+ (name "tldr")
+ (version "3.4.3")
(source
(origin
- (method git-fetch) ; there's no test in PyPI
+ (method git-fetch)
(uri (git-reference
- (url "https://github.com/tldr-pages/tldr-python-client")
- (commit version)))
+ (url "https://github.com/tldr-pages/tldr-python-client")
+ (commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "15mab6a7ph2rviy5f2ypid6qdbb583fvaf5zhd6q0nrggxx0kkcm"))))
+ (base32 "06rhpywaypqwakw8v187cdf52yl5c7fm19f1q7nbbsydbs0ndmb1"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -28889,12 +27648,10 @@ Public Suffix List's private domains as well.")
(lambda _
(invoke "make" "-C" "docs"))))))
(native-inputs
- (list python-pytest
- python-pytest-runner
- python-setuptools
- python-sphinx-argparse
- python-wheel))
- (propagated-inputs
+ (list python-hatchling
+ python-pytest
+ python-sphinx-argparse))
+ (inputs
(list python-colorama
python-termcolor
python-shtab))
@@ -28903,7 +27660,10 @@ Public Suffix List's private domains as well.")
(description "This package provides the @code{tldr} command allowing users
to view @code{tldr} pages from a shell. The @code{tldr} pages are a community
effort to simplify the man pages with practical examples.")
- (license license:expat))) ; MIT license
+ (license license:expat)))
+
+(define-public python-tldr
+ (deprecated-package "python-tldr" tldr))
(define-public python-nodeenv
(package
@@ -29378,63 +28138,6 @@ library's @code{threading} module.")
instead of pickle.")
(license license:psfl)))
-(define-public python-toolrack
- (package
- (name "python-toolrack")
- (version "4.0.3")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/albertodonato/toolrack")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1aglfj7j25fiwx9jh1rl34mlhfpdhn8yrkn30vhkz9yw7zrx42h0"))))
- (build-system pyproject-build-system)
- (arguments
- (list
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'patch-/bin/sh
- (lambda _
- (substitute* "tests/aio/process_test.py"
- (("/bin/sh")
- (which "sh"))))))))
- (native-inputs (list python-pytest
- python-pytest-asyncio
- python-pytest-mock
- python-setuptools))
- (home-page "https://github.com/albertodonato/toolrack")
- (synopsis "Collection of Python utility functions and classes")
- (description "This package provides a collection of miscellaneous utility
-functions and classes.")
- (license license:lgpl3+)))
-
-(define-public python-toolz
- (package
- (name "python-toolz")
- (version "1.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "toolz" version))
- (sha256
- (base32
- "00ks0jhl1jwm9576c5sh10pnla8ni21yvg4kcxasr627l3cy71ic"))))
- (build-system pyproject-build-system)
- (native-inputs
- (list python-pytest
- python-setuptools
- python-wheel))
- (home-page "https://github.com/pytoolz/toolz/")
- (synopsis "List processing tools and functional utilities")
- (description
- "This package provides a set of utility functions for iterators,
-functions, and dictionaries.")
- (license license:bsd-3)))
-
(define-public python-cytoolz
(package
(name "python-cytoolz")
@@ -29947,186 +28650,6 @@ project.")
;; Either license applies.
(license (list license:expat license:asl2.0))))
-(define-public python-trio
- (package
- (name "python-trio")
- (version "0.28.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "trio" version))
- (sha256
- (base32 "019wqwlbj185skknbjd7paxqqx6vl5gpqk2fwmc5d2lyzsb7hm2f"))))
- (build-system pyproject-build-system)
- (arguments
- (list
- #:test-flags
- `(list "-k"
- (string-append
- ;; This tests times out.
- "not test_ki_protection_works"
- " and not test_KI_interrupts"
- ;; This fails with: signal only works in main thread of the main interpreter
- " and not test_catch_signals_race_condition_on_exit"
- ;; Assertion errors.
- " and not test_named_thread_os"
- " and not test_has_pthread_setname_np"
- " and not test_guest_mode_ki"
- " and not test_run_in_trio_thread_ki"
- " and not test_simple_cancel_scope_usage_doesnt_create\
-_cyclic_garbage"
- " and not test_nursery_cancel_doesnt_create_cyclic_garbage"
- " and not test_cancel_scope_exit_doesnt_create_cyclic_garbage"
- " and not test_locals_destroyed_promptly_on_cancel"
- " and not test_ipython_exc_handler"
- " and not test_for_leaking_fds"
- ;; Signals don’t work in the build sandbox.
- " and not test_open_signal_receiver"
- ;; These try to raise KeyboardInterrupt which does not work
- ;; in the build environment.
- " and not test_ki_self"
- " and not test_ki_wakes_us_up"
- ;; Failure in name resolution.
- " and not test_getnameinfo"
- " and not test_SocketType_resolve"
- ;; OSError: protocol not found.
- " and not test_getprotobyname"
- ;; EOFError: Ran out of input.
- " and not test_static_tool_sees_all_symbols")
- ,@(if (package? (this-package-native-input "python-trustme"))
- '()
- `("--ignore=src/trio/_tests/test_dtls.py"
- "--ignore=src/trio/_tests/test_highlevel_ssl_helpers.py"
- "--ignore=src/trio/_tests/test_ssl.py"))
- ;; It rerquires black and ruff to generate a final report.
- "--ignore=src/trio/_tests/tools/test_gen_exports.py"
- "src/trio/_tests")
- #:phases
- '(modify-phases %standard-phases
- (add-after 'unpack 'ignore-deprecations
- (lambda _
- (substitute* "pyproject.toml"
- ((" \"error\",") " \"ignore\","))))
- (add-before 'check 'set-env
- (lambda _
- ;; Tests require a writable home.
- (setenv "HOME" "/tmp")
- ;; #$output is first in path which causes "import file mismatch"
- (setenv "PYTHONPATH" (string-append (getcwd) "/src:$PYTHONPATH")))))))
- (native-inputs
- (append
- (if (supported-package? python-pyopenssl)
- (list python-pyopenssl)
- '())
- (list python-pytest
- python-setuptools)
- (if (supported-package? python-trustme)
- (list python-trustme)
- '())
- (list python-wheel)))
- (propagated-inputs
- (list python-attrs
- python-cffi
- python-exceptiongroup
- python-idna
- python-outcome
- python-sniffio
- python-sortedcontainers))
- (home-page "https://github.com/python-trio/trio")
- (synopsis "Friendly Python library for async concurrency and I/O")
- (description
- "Trio strives to be a production-quality, async/await-native I/O library
-for Python. Like all async libraries, its main purpose is to help you write
-programs that do multiple things at the same time with parallelized I/O.")
- ;; Either license applies.
- (license (list license:expat license:asl2.0))))
-
-(define-public python-trio-typing
- (package
- (name "python-trio-typing")
- (version "0.10.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "trio-typing" version))
- (sha256
- (base32 "1hvsj3w500i33ykfgh3sfkjnxhxf05incx131smshlkd562fcph6"))))
- (build-system pyproject-build-system)
- (native-inputs (list python-pytest python-setuptools python-wheel))
- (propagated-inputs
- (list python-async-generator
- python-importlib-metadata
- python-mypy-extensions
- python-packaging
- python-trio
- python-typing-extensions))
- (home-page "https://github.com/python-trio/trio-typing")
- (synopsis "Static type checking support for Trio and related projects")
- (description
- "This package provides:
-
-@itemize
-@item PEP 561 typing stubs packages for the Trio project packages:
-
-@itemize
-@item trio (@code{trio-stubs})
-@item outcome (@code{outcome-stubs})
-@item async_generator (@code{async_generator-stubs})
-@end itemize
-
-@item A package @code{trio_typing} containing types that Trio programs often
-want to refer to (@code{AsyncGenerator[Y, S]} and @code{TaskStatus[T])} and
-a mypy plugin that smooths over some limitations in the basic type hints.
-@end itemize")
- ;; Either license applies.
- (license (list license:expat license:asl2.0))))
-
-(define-public python-trio-websocket
- (package
- (name "python-trio-websocket")
- (version "0.11.1")
- (source
- (origin
- (method git-fetch) ;no tests in pypi archive
- (uri (git-reference
- (url "https://github.com/HyperionGray/trio-websocket")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1sw85r8gikd86zc8jaqv0vmgcf2k62v6zjzxiv8xr6zm8ridplkm"))))
- (build-system pyproject-build-system)
- (arguments
- (list
- #:test-flags
- '(list "-k"
- ;; FIXME: These raise nursery exceptions. Perhaps pytest-trio is
- ;; too old?
- (string-append "not test_handshake_exception_before_accept"
- " and not test_reject_handshake"
- " and not test_reject_handshake_invalid_info_status"
- " and not test_client_open_timeout"
- " and not test_client_close_timeout"
- " and not test_client_connect_networking_error"
- " and not test_finalization_dropped_exception"))))
- (native-inputs
- (list python-pytest
- python-pytest-trio
- python-setuptools
- python-trustme
- python-wheel))
- (propagated-inputs (list python-async-generator python-trio python-wsproto))
- (home-page "https://github.com/HyperionGray/trio-websocket")
- (synopsis "WebSocket library for Trio")
- (description "This library implements both server and client aspects of
-the @url{https://tools.ietf.org/html/rfc6455, the WebSocket protocol},
-striving for safety, correctness, and ergonomics. It is based on the
-@url{https://wsproto.readthedocs.io/en/latest/, wsproto project}, which is a
-@url{https://sans-io.readthedocs.io/, Sans-IO} state machine that implements
-the majority of the WebSocket protocol, including framing, codecs, and events.
-This library handles I/O using @url{https://trio.readthedocs.io/en/latest/,
-the Trio framework}.")
- (license license:expat)))
-
(define-public python-humanize
(package
(name "python-humanize")
@@ -30148,26 +28671,6 @@ and dates in \"human readable\" forms. For example, it would display
\"12345591313\" as \"12.3 billion\".")
(license license:expat)))
-(define-public python-toolshed
- (package
- (name "python-toolshed")
- (version "0.4.6")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "toolshed" version))
- (sha256
- (base32
- "14zvz51gzf9i1i3d1sj363ba4rksl6lcf4lz1arl8hpqgcbir8r3"))))
- (build-system python-build-system)
- (native-inputs
- (list python-nose))
- (home-page "https://github.com/brentp/toolshed/")
- (synopsis "Collection of modules and functions for working with data")
- (description "This is a collection of well-tested, simple modules and
-functions that aim to reduce boilerplate when working with data.")
- (license license:bsd-2)))
-
(define-public python-annoy
(package
(name "python-annoy")
@@ -31433,37 +29936,6 @@ dedicated platform. The tool proposes a unified interface for any format and
an upload option to send your work back to the platform.")
(license license:gpl3+)))
-(define-public python-titlecase
- (package
- (name "python-titlecase")
- (version "2.4.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "titlecase" version))
- (sha256
- (base32
- "1x9myq3rlbw6wh946ncch8px7wyabhzacy2fjji13nmvrivs50vx"))))
- (build-system pyproject-build-system)
- (arguments
- (list
- #:phases
- #~(modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? test-flags #:allow-other-keys)
- (when tests?
- (apply invoke "python" "-m" "unittest" test-flags)))))))
- (native-inputs
- (list python-setuptools))
- (home-page "https://github.com/ppannuto/python-titlecase")
- (synopsis "Capitalize strings similar to book titles")
- (description
- "Python-Titlecase is a Python port of John Gruber's titlecase.pl.
-It capitalizes (predominantly English) strings in a way that is similar to
-book titles, using the New York Times Manual of Style to leave certain words
-lowercase.")
- (license license:expat)))
-
(define-public python-pypng
(package
(name "python-pypng")
@@ -33005,33 +31477,6 @@ a Python library to convert RELAX NG schemata in Compact syntax (rnc) to
equivalent schemata in the XML-based default RELAX NG syntax.")
(license license:expat)))
-(define-public python-telethon
- (package
- (name "python-telethon")
- (version "1.41.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/LonamiWebs/Telethon")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0rbzqbxsihqm2w1zrvaaafvzwyqqyjx49wfffxrnsr9m32giwzsp"))))
- (build-system pyproject-build-system)
- (native-inputs
- (list python-pytest
- python-pytest-asyncio-0.26
- python-pytest-trio
- python-setuptools))
- (propagated-inputs
- (list python-rsa python-pyaes))
- (home-page "https://docs.telethon.dev")
- (synopsis "Full-featured Telegram client library for Python 3")
- (description "This library is designed to make it easy to write Python
-programs that can interact with Telegram.")
- (license license:expat)))
-
(define-public python-citeproc-py
(package
(name "python-citeproc-py")
@@ -34582,18 +33027,39 @@ were local.")
(define-public python-nampa
(package
(name "python-nampa")
- (version "0.1.1")
+ ;; PyPI version is 0.1.1 from 2017. Tag 1.0 on git is from 2020 and still
+ ;; has 0.1.1 as version. Latest commit is from 2024.
+ (properties '((commit . "cb6a63aae64324f57bdc296064bc6aa2b99ff99a")
+ (revision . "0")))
+ (version (git-version "1.0.0"
+ (assoc-ref properties 'revision)
+ (assoc-ref properties 'commit)))
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "nampa" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/thebabush/nampa")
+ (commit (assoc-ref properties 'commit))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0k6cq2gflpkm40qhgqbbcjmq5lq589c15bmk567qyh3d08062hvd"))))
+ (base32 "0a3fx0wpch4il1fwv1nan6nsd7bv84b0bs2xxxjacisw3spizlg0"))))
(build-system pyproject-build-system)
(arguments
- (list #:tests? #f)) ;no tests in PyPI archvie, no 0.1.1 tag in Git
+ (list
+ #:test-flags
+ #~(list "-k test_random_values")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-tests
+ (lambda _
+ ;; Unclear why this top-level __init__.py is here. It seems to
+ ;; setup a plugin for binaryninja, which Guix does not package.
+ (delete-file "__init__.py")
+ ;; Yields tests, which is not allowed anymore.
+ (substitute* "tests/test_crc.py"
+ (("yield") "#yield")))))))
(propagated-inputs (list python-future))
- (native-inputs (list python-setuptools))
+ (native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/thebabush/nampa")
(synopsis "Python implementation of IDA Pro's FLIRT technology")
(description
@@ -35260,67 +33726,6 @@ HTML/XML from a Python program in an intuitive, lightweight, customizable and
pythonic way.")
(license license:expat)))
-(define-public python-tablib
- (package
- (name "python-tablib")
- (version "3.8.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "tablib" version))
- (sha256
- (base32 "0ayv93q7kpii6z3n57i6b78mpr1ibwd70nvd981a05d7cpfbrn4l"))))
- (build-system pyproject-build-system)
- (native-inputs
- (list python-pandas
- python-pytest
- python-pytest-cov
- python-setuptools
- python-setuptools-scm
- python-wheel))
- (propagated-inputs
- (list python-markuppy
- python-odfpy
- python-openpyxl
- python-pyyaml
- python-tabulate
- python-xlrd
- python-xlwt))
- (home-page "https://tablib.readthedocs.io")
- (synopsis "Format agnostic tabular data library")
- (description
- "@code{tablib} is a format-agnostic tabular dataset library,
-written in Python. Supported output formats are Excel (Sets + Books),
-JSON (Sets + Books), YAML (Sets + Books), HTML (Sets), Jira (Sets),
-TSV (Sets), ODS (Sets), CSV (Sets), and DBF (Sets).
-
-@code{tablib} also supports Pandas DataFrames (Sets). Anyhow, since pandas is
-quite huge, this Guix package doesn't depend on pandas. In case, just also
-install @code{python-pandas}.")
- (license license:expat)))
-
-(define-public python-taskgroup
- (package
- (name "python-taskgroup")
- (version "0.0.0a4")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "taskgroup" version))
- (sha256
- (base32 "170m7b59nxrhzs0nz6brj9brz4rzvw6k587ja0cnc9qy48nr027b"))))
- (build-system pyproject-build-system)
- (arguments
- (list #:tests? #f)) ; no tests in PyPI and Git checkout
- (native-inputs
- (list python-flit-core))
- (home-page "https://github.com/graingert/taskgroup")
- (synopsis "Backport of asyncio.TaskGroup, asyncio.Runner and asyncio.timeout")
- (description
- "This package provides a backport of @code{asyncio.TaskGroup},
-@code{asyncio.Runner} and @code{asyncio.timeout}.")
- (license license:expat)))
-
(define-public python-csb43
(package
(name "python-csb43")
@@ -35907,8 +34312,8 @@ all the niceties of modern GUI-based debuggers in a more lightweight and
keyboard-friendly package.")
(license license:expat)))
-(define-public pudb
- (deprecated-package "pudb" python-pudb))
+(define-deprecated-package pudb
+ python-pudb)
(define-public python-iwlib
(package
@@ -38114,6 +36519,1571 @@ instance in spelling correction, predictive typing, to help disabled people
write text fast, and for various text generation, statistics, and modeling tasks.")
(license license:expat)))
+(define-public python-tables
+ (package
+ (name "python-tables")
+ (version "3.10.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tables" version))
+ (sha256
+ (base32
+ "0469jrkmp0qv8cmlqkizm3b8imyc97mk9pfn66ldpyl6f4m82i15"))
+ (snippet '(begin
+ (use-modules (guix build utils))
+ ;; TODO: Unbundle.
+ ;; (delete-file-recursively "hdf5-blosc")
+ (delete-file-recursively "c-blosc")))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-tuning
+ (lambda _
+ (substitute* "setup.py"
+ (("cpu_flags = .*")
+ "cpu_flags = ['sse2']\n"))))
+ (add-after 'unpack 'fix-reference-to-blosc2
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "tables/__init__.py"
+ (("( +)os.path.join\\(current_dir, blosc2_lib_hardcoded\\),"
+ m indent)
+ (string-append indent
+ "\""
+ (search-input-file inputs "/lib/libblosc2.so")
+ "\",\n" m)))))
+ (add-before 'build 'pre-build
+ (lambda _
+ (invoke "make" "distclean") ;Regenerate C code with Cython
+ (setenv "BLOSC2_DIR" #$(this-package-input "cblosc2"))
+ (setenv "BLOSC_DIR" #$(this-package-input "c-blosc"))
+ (setenv "BZIP2_DIR" #$(this-package-input "bzip2"))
+ (setenv "HDF5_DIR" #$(this-package-input "hdf5"))
+ (setenv "LZO_DIR" #$(this-package-input "lzo"))))
+ (add-before 'check 'pre-check
+ (lambda _
+ (setenv "HOME" "/tmp")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "/tmp"
+ ;; Performing only a light (yet comprehensive) subset of the
+ ;; test suite. If you want a more complete test, try
+ ;; passing the --heavy flag to this script (or set the
+ ;; 'heavy' parameter in case you are using tables.test()
+ ;; call). The whole suite will take more than 4 hours to
+ ;; complete on a relatively modern CPU and around 512 MB of
+ ;; main memory.
+ (invoke "python" "-m" "tables.tests.test_all"))))))))
+ (native-inputs
+ (list pkg-config
+ python-cython
+ python-pytest
+ python-setuptools
+ python-sphinx))
+ (inputs
+ (list bzip2
+ c-blosc
+ c-blosc2
+ hdf5
+ lzo))
+ (propagated-inputs
+ (list python-blosc2
+ python-numexpr
+ python-numpy
+ python-packaging
+ python-py-cpuinfo
+ python-typing-extensions))
+ (home-page "https://www.pytables.org/")
+ (synopsis "Hierarchical datasets for Python")
+ (description "PyTables is a package for managing hierarchical datasets and
+designed to efficiently cope with extremely large amounts of data.")
+ (license license:bsd-3)))
+
+(define-public python-tablib
+ (package
+ (name "python-tablib")
+ (version "3.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tablib" version))
+ (sha256
+ (base32 "1qjzbpaln1grr5ngcm2apd5dxp0gcrwis5n60hg60d8gvf7bsshv"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-pytest-cov
+ python-setuptools
+ python-setuptools-scm))
+ (inputs ;; [cli]
+ (list python-tabulate))
+ (propagated-inputs
+ (list python-markuppy
+ python-odfpy
+ python-openpyxl
+ python-pyyaml
+ python-xlrd
+ python-xlwt))
+ (home-page "https://tablib.readthedocs.io")
+ (synopsis "Format agnostic tabular data library")
+ (description
+ "@code{tablib} is a format-agnostic tabular dataset library,
+written in Python. Supported output formats are Excel (Sets + Books),
+JSON (Sets + Books), YAML (Sets + Books), HTML (Sets), Jira (Sets),
+TSV (Sets), ODS (Sets), CSV (Sets), and DBF (Sets).
+
+@code{tablib} also supports Pandas DataFrames (Sets). Anyhow, since pandas is
+quite huge, this Guix package doesn't depend on pandas. In case, just also
+install @code{python-pandas}.")
+ (license license:expat)))
+
+(define-public python-tabulate
+ (package
+ (name "python-tabulate")
+ (version "0.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tabulate" version))
+ (sha256
+ (base32 "0g4b0qnbw55igbpxfxzciqvb6w8ncw4gmcgyq0lyavcnylmv3580"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-setuptools-scm
+ python-setuptools
+ python-wheel))
+ (home-page "https://github.com/astanin/python-tabulate")
+ (synopsis "Pretty-print tabular data")
+ (description
+ "Tabulate is a library and command-line utility to pretty-print tabular
+data in Python.")
+ (license license:expat)))
+
+(define-public python-takethetime
+ (package
+ (name "python-takethetime")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "TakeTheTime" version))
+ (sha256
+ (base32 "1y9gzqb9l1f2smx8783ccjzjvby5mphshgrfks7s75mml59h9qyv"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:tests? #f)) ; tests are time dependent and not provided in PyPI
+ (native-inputs
+ (list python-setuptools
+ python-wheel))
+ (home-page "https://github.com/ErikBjare/TakeTheTime")
+ (synopsis "Timing chunks of code")
+ (description
+ "This package implements a functionality for time taking using context
+managers.")
+ (license license:expat)))
+
+(define-public python-taskgroup
+ (package
+ (name "python-taskgroup")
+ (version "0.0.0a4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "taskgroup" version))
+ (sha256
+ (base32 "170m7b59nxrhzs0nz6brj9brz4rzvw6k587ja0cnc9qy48nr027b"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:tests? #f)) ; no tests in PyPI and Git checkout
+ (native-inputs
+ (list python-flit-core))
+ (home-page "https://github.com/graingert/taskgroup")
+ (synopsis "Backport of asyncio.TaskGroup, asyncio.Runner and asyncio.timeout")
+ (description
+ "This package provides a backport of @code{asyncio.TaskGroup},
+@code{asyncio.Runner} and @code{asyncio.timeout}.")
+ (license license:expat)))
+
+(define-public python-tasklogger
+ (package
+ (name "python-tasklogger")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tasklogger" version))
+ (sha256
+ (base32 "1901mibcp6aiyjy8afnybrxnb0dkbdxlbvjqbr3gginlw7dr18xh"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-numpy
+ python-setuptools))
+ (propagated-inputs
+ (list python-deprecated))
+ (home-page "https://github.com/scottgigante/tasklogger")
+ (synopsis "Extension to the core Python logging library")
+ (description "This package provides an extension to the core Python
+logging library for logging the beginning and completion of tasks and
+subtasks.")
+ (license license:gpl2)))
+
+(define-public python-tatsu
+ (package
+ (name "python-tatsu")
+ (version "5.13.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/neogeny/TatSu")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ppgi5r55iirzhnf988b32yvh8ly8lzxbg59y0zgqfaxbma50650"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-setuptools))
+ (home-page "https://tatsu.readthedocs.io/en/stable/")
+ (synopsis "PEG/Packrat Parser generator for Python")
+ (description
+ "TatSu (竜) takes a grammar in a variation of Extended Backus-Naur
+Form (EBNF) as input, and outputs a memoizing Parsing Expression Grammar (PEG)
+or Packrat parser in Python.")
+ (license license:bsd-2)))
+
+(define-public python-tblib
+ (package
+ (name "python-tblib")
+ (version "3.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tblib" version))
+ (sha256
+ (base32 "0lnnbicpxx774s29nkbic4rrqvy4rhxd8skx5pp6zxh7kwn4qh06"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; Don't run benchmark tests.
+ #:test-flags #~(list "--ignore=tests/test_perf.py")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-pytest-config
+ (lambda _
+ (substitute* "pytest.ini"
+ (("--benchmark-disable") "")))))))
+ (native-inputs
+ (list python-pytest
+ python-setuptools))
+ (home-page "https://github.com/ionelmc/python-tblib")
+ (synopsis "Traceback serialization library")
+ (description
+ "Traceback serialization allows you to:
+
+@enumerate
+@item Pickle tracebacks and raise exceptions with pickled tracebacks in
+different processes. This allows better error handling when running code over
+multiple processes (imagine multiprocessing, billiard, futures, celery etc).
+
+@item Parse traceback strings and raise with the parsed tracebacks.
+@end enumerate\n")
+ (license license:bsd-3)))
+
+(define-public python-telethon
+ (package
+ (name "python-telethon")
+ (version "1.41.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/LonamiWebs/Telethon")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0rbzqbxsihqm2w1zrvaaafvzwyqqyjx49wfffxrnsr9m32giwzsp"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-pytest-asyncio-0.26
+ python-pytest-trio
+ python-setuptools))
+ (propagated-inputs
+ (list python-rsa python-pyaes))
+ (home-page "https://docs.telethon.dev")
+ (synopsis "Full-featured Telegram client library for Python 3")
+ (description "This library is designed to make it easy to write Python
+programs that can interact with Telegram.")
+ (license license:expat)))
+
+(define-public python-tempdir
+ (package
+ (name "python-tempdir")
+ (version "0.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tempdir" version))
+ (sha256
+ (base32 "13msyyxqbicr111a294x7fsqbkl6a31fyrqflx3q7k547gnq15k8"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #f)) ; No tests.
+ (native-inputs (list python-setuptools))
+ (home-page "https://pypi.org/project/tempdir/")
+ (synopsis "Python library for managing temporary directories")
+ (description
+ "This library manages temporary directories that are automatically
+deleted with all their contents when they are no longer needed. It is
+particularly convenient for use in tests.")
+ (license license:expat)))
+
+(define-public python-tempora
+ (package
+ (name "python-tempora")
+ (version "5.8.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tempora" version))
+ (sha256
+ (base32 "1k9d6qmlp0i4v3d0dcqcsndvmng3lfdh4y0p8gwy9i8cg7ndkddb"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; Do not test the myproject.toml build as it tries to pull dependencies
+ ;; from the Internet.
+ #:test-flags #~(list "-k" "not project"
+ "tests")))
+ (native-inputs
+ (list python-freezegun
+ python-pytest
+ python-setuptools
+ python-setuptools-scm
+ python-tzdata))
+ (propagated-inputs (list python-dateutil python-jaraco-functools))
+ (home-page "https://github.com/jaraco/tempora")
+ (synopsis "Python date and time objects and routines")
+ (description
+ "The @code{tempora} Python library contains miscellaneous date and time
+related utilities and constants, routines for measuring, profiling, and
+getting datetime-aware @acronym{UTC, Coordinated Universal Time} values as
+well as an event scheduler.")
+ (license license:expat)))
+
+(define-public python-tenacity
+ (package
+ (name "python-tenacity")
+ (version "9.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tenacity" version))
+ (sha256
+ (base32 "0fyp421r038naskvyhj90hkq0az96477njad4rhs6annjz53fzw0"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-setuptools
+ python-setuptools-scm
+ python-tornado-6
+ python-typeguard
+ python-wheel))
+ (home-page "https://github.com/jd/tenacity")
+ (synopsis "Retrying library for python")
+ (description
+ "Tenacity is a general-purpose python library to simplify the task of
+adding retry behavior to just about anything.")
+ (license license:asl2.0)))
+
+(define-public python-term-background
+ (package
+ (name "python-term-background")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "term_background" version))
+ (sha256
+ (base32 "0p674silrwc3jncncmdnj1lr6pl2q5qbx0xi3mzjq9sgcs5vmp4n"))))
+ (arguments
+ (list
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'fix-build
+ (lambda _ (delete-file "setup.py"))))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-setuptools
+ python-setuptools-scm
+ python-wrapper
+ python-wheel))
+ (home-page "http://github.com/rocky/shell-term-background")
+ (synopsis "Determine if shell has a light or dark background")
+ (description "This package determines if shell has a light or dark
+background.")
+ (license license:gpl2+)))
+
+(define-public python-term-image
+ (package
+ (name "python-term-image")
+ (version "0.7.2")
+ (source
+ (origin
+ ;; We need the full repo to run the tests.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/AnonymouX47/term-image")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1lsd5m0k5m99arkca2rzrrlln10c8ax6xfawqwjnspcbf8l3h3dq"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:test-flags
+ #~(list "tests"
+ ;; These tests require network access.
+ "-k" (string-append "not test_from_url"
+ " and not test_source"
+ " and not test_close"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'adjust-dependencies
+ (lambda _
+ (substitute* "setup.py"
+ (("pillow>=9.1,<11") "pillow>=9.1,<12")))))))
+ (propagated-inputs (list python-pillow python-requests))
+ (native-inputs
+ (list python-pytest
+ python-setuptools
+ python-urwid))
+ (home-page "https://github.com/AnonymouX47/term-image")
+ (synopsis "Display images in the terminal")
+ (description "term-image is a library and program to display images on
+compatible terminals.
+
+Features:
+@enumerate
+@item Multiple image formats (basically all formats supported by
+@code{PIL.Image.open()})
+@item Multiple image source types: PIL image instance, local file, URL
+@item Multiple image render styles (with automatic support detection)
+@item Support for multiple terminal graphics protocols, including Kitty
+@item Transparency support (with multiple options)
+@item Animated image support (including transparent ones)
+@item Integration into various TUI / terminal-based output libraries
+@item Terminal size awareness
+@item Automatic and manual image sizing
+@item Horizontal and vertical alignment
+@item Automatic and manual font ratio adjustment (to preserve image aspect
+ratio)
+@end enumerate")
+ (license license:expat)))
+
+(define-public python-termcolor
+ (package
+ (name "python-termcolor")
+ (version "2.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "termcolor" version))
+ (sha256
+ (base32 "0vwaxyr2vk8gi7s1slq74nb0ssbb0wcn208ziqp48j3dv8kqv3cr"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-hatch-vcs
+ python-hatchling
+ python-pytest
+ python-pytest-cov))
+ (home-page "https://pypi.org/project/termcolor/")
+ (synopsis "ANSII Color formatting for terminal output")
+ (description
+ "This package provides ANSII Color formatting for output in terminals.")
+ (license license:expat)))
+
+(define-public python-termcolor-1
+ (package
+ (inherit python-termcolor)
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "termcolor" version))
+ (sha256
+ (base32
+ "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x"))))
+ ;; There are no tests
+ (arguments (list #:tests? #false))
+ (native-inputs
+ (list python-setuptools
+ python-wheel))))
+
+(define-public python-terminaltables
+ (package
+ (name "python-terminaltables")
+ (version "3.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Robpol86/terminaltables")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256 (base32 "1jlm7n6kxypbr8mvwpd7hf9hbfk0a002ad03wqgxlri4aw8pk39a"))))
+ (build-system pyproject-build-system)
+ ;; XXX: A lot of test fail with flaky behavior.
+ (arguments (list #:tests? #f))
+ (native-inputs
+ (list python-colorclass
+ python-colorama
+ python-pytest
+ python-setuptools
+ python-termcolor))
+ (home-page "https://github.com/Robpol86/terminaltables")
+ (synopsis
+ "Generate simple tables in terminals from a nested list of strings")
+ (description
+ "This package makes it easy to draw tables in terminal/console
+applications from a list of lists of strings. It supports multi-line rows.")
+ (license license:expat)))
+
+(define-public python-termstyle
+ (package
+ (name "python-termstyle")
+ (version "0.1.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "termstyle" version))
+ (sha256
+ (base32 "17wzkkcqy5zc0g68xlad3kcv66iw14d2pwqc0h9420gak0vbhx7g"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:test-backend #~'custom
+ #:test-flags #~(list "test3.py")))
+ (native-inputs
+ (list python-setuptools))
+ (home-page "https://github.com/gfxmonk/termstyle")
+ (synopsis "Console text coloring for Python")
+ (description "This package provides console text coloring for Python.")
+ (license license:bsd-3)))
+
+(define-public python-text-unidecode
+ (package
+ (name "python-text-unidecode")
+ (version "1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "text-unidecode" version))
+ (sha256
+ (base32 "14xb99fdv52j21dsljgsbmbaqv10ps4b453p229r29sdn4xn1mms"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-setuptools))
+ (home-page "https://github.com/kmike/text-unidecode/")
+ (synopsis "Decode Unicode data")
+ (description
+ "@code{text-unidecode} is a basic Python port of the @code{Text::Unidecode}
+Perl library. It can create ASCII representations of Unicode data. In general
+users should prefer the @code{python-unidecode} package which offers better
+memory usage and transliteration quality.")
+ ;; The user can choose either license.
+ (license (list license:clarified-artistic license:gpl2+))))
+
+(define-public python-textdistance
+ (package
+ (name "python-textdistance")
+ (version "4.6.3")
+ (source
+ (origin
+ ;; There are no tests in the PyPI tarball.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/life4/textdistance")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1qaplikab46p38jqr93bxd26vvxcnvib15fjxmmp4cbsiy5196sg"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "--numprocesses" (number->string (min 4 (parallel-job-count))))))
+ (native-inputs
+ (list python-numpy
+ python-pytest
+ python-pytest-xdist
+ python-setuptools
+ python-wheel))
+ (propagated-inputs
+ (list python-jellyfish
+ python-distance
+ python-levenshtein
+ python-pylev
+ python-pyxdameraulevenshtein
+ python-rapidfuzz))
+ (home-page "https://github.com/life4/textdistance")
+ (synopsis "Compute distance between the two texts")
+ (description "@code{textdistance} is a pure Python library for comparing
+distance between two or more sequences by many algorithms.")
+ (license license:expat)))
+
+(define-public python-textparser
+ (package
+ (name "python-textparser")
+ (version "0.24.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "textparser" version))
+ (sha256
+ (base32 "0dc3aqbzh0x13i6cmr73q777wv8nxyk3p0kdnynh5l59bbkhixsn"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:test-backend #~'unittest))
+ (native-inputs (list python-setuptools))
+ (home-page "https://github.com/eerimoq/textparser")
+ (synopsis "Fast text parser for Python")
+ (description "This library provides a text parser written in the Python
+language. It aims to be fast.")
+ (license license:expat)))
+
+(define-public python-texttable
+ (package
+ (name "python-texttable")
+ (version "1.6.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/foutaise/texttable/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1lcn76wx6fsj8d79gs985irkqz5qbwq1v9ji9jxsra6dbb643v5j"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:test-flags #~(list "tests.py")))
+ (native-inputs (list python-pytest python-setuptools))
+ (home-page "https://github.com/foutaise/texttable/")
+ (synopsis "Create simple ASCII tables in Python")
+ (description
+ "This package provides a Python module for creating simple ASCII
+tables.")
+ (license license:expat)))
+
+(define-public python-textual
+ (package
+ (name "python-textual")
+ (version "3.5.0")
+ (source
+ (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 "1sldkhy8phk9c7pln70dyb6aya7qpxb5niym9s91z144dv6ykgws"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:test-flags
+ ;; Snapshot tests require python-pytest-textual-snapshot which
+ ;; in turn depends on python-textual.
+ '(list "--ignore=tests/snapshot_tests/test_snapshots.py"
+ "-k" (string-append
+ ;; Broken for unknown reason.
+ "not test_textual_env_var"
+ ;; Tests that require python-treesitter-languages.
+ " and not test_widget_construct"
+ " and not test_setting_builtin_language_via_constructor"
+ " and not test_setting_builtin_language_via_attribute"
+ " and not test_setting_language_to_none"
+ " and not test_setting_unknown_language"
+ " and not test_register_language"
+ " and not test_update_highlight_query"
+ " and not test_default_theme"
+ " and not test_setting_builtin_themes"
+ " and not test_setting_unknown_theme_raises_exception"
+ " and not test_registering_and_setting_theme"))))
+ (propagated-inputs
+ (list python-markdown-it-py
+ python-platformdirs
+ python-rich
+ python-tree-sitter
+ ;; python-tree-sitter-languages ; optional, not packed yet
+ python-typing-extensions))
+ (native-inputs
+ (list python-poetry-core
+ python-pytest
+ python-pytest-asyncio
+ python-pytest-xdist))
+ (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-tftpy
+ (package
+ (name "python-tftpy")
+ (version "0.8.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/msoulier/tftpy")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11cs52skmisg7rlmcxghmpcxfszcwmph6cvmfdn2p0ks6ckfy9q2"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-backend #~'unittest
+ #:test-flags #~(list "tests/test.py")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'configure-tests
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; The default DEBUG logging level is way too verbose.
+ (substitute* "tests/test.py"
+ (("logging\\.DEBUG")
+ "logging.INFO"))))))))
+ (native-inputs (list python-setuptools))
+ (home-page "https://tftpy.sourceforge.net/")
+ (synopsis "Python trivial file transfer protocol (TFTP) library")
+ (description
+ "TFTPy is a trivial file transfer protocol (TFTP) Python library. It can
+be used to act both as a TFTP client or TFTP server.")
+ (license license:expat)))
+
+(define-public python-three-merge
+ (package
+ (name "python-three-merge")
+ (version "0.1.1")
+ (source
+ (origin
+ ;; There are no tests in the PyPI tarball.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/spyder-ide/three-merge")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1fw28swh6jq4myr09j7gv68l241b8vwg470ak5xv0x4xwh2a1m86"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs
+ (list python-diff-match-patch))
+ (native-inputs
+ (list python-pytest python-setuptools python-wheel))
+ (home-page "https://github.com/spyder-ide/three-merge")
+ (synopsis "Library for merging two strings with respect to a base one")
+ (description
+ "This package provides a Python library to perform a 3-way merge between
+strings, based on @code{diff-match-patch}. This library performs merges at a
+character level, as opposed to most VCS systems, which opt for a line-based
+approach.")
+ (license license:expat)))
+
+(define-public python-throttler
+ (package
+ (name "python-throttler")
+ (version "1.2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/uburuntu/throttler")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "1gn21x0zkm7rr7qijlz7nvw7z0mm1j2r0r2lslg7wln1z36gjkbw"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-aiohttp
+ python-codecov
+ python-flake8
+ python-pytest
+ python-pytest-asyncio
+ python-pytest-cov
+ python-setuptools
+ python-wheel))
+ (home-page "https://github.com/uburuntu/throttler")
+ (synopsis "Throttling with asyncio support")
+ (description
+ "This is a Python package for easy throttling with asyncio support.")
+ (license license:expat)))
+
+(define-public python-tifffile
+ (package
+ (name "python-tifffile")
+ (version "2025.10.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tifffile" version))
+ (sha256
+ (base32 "0f1ybmr2jz19gjg92p9vz3qib49m0x4ipxvrvjyfa6r1mcb7qhrf"))))
+ (build-system pyproject-build-system)
+ ;; Tests require lfdfiles, which depends on tifffile
+ (arguments (list #:tests? #f))
+ (propagated-inputs
+ (list python-numpy))
+ (native-inputs
+ (list python-setuptools))
+ (home-page "https://www.lfd.uci.edu/~gohlke/")
+ (synopsis "Read and write TIFF(r) files")
+ (description
+ "This package lets you read image and metadata from many bio-scientific
+formats such as plain TIFF, BigTIFF, OME-TIFF, STK, LSM, SGI,NIH, ImageJ,
+MicroManager, MD GEL, and FluoView files. It also lets you write numpy arrays
+to TIFF, BigTIFF, and ImageJ hyperstack compatible files.")
+ (license license:bsd-3)))
+
+(define-public python-tifffile-for-dask-image
+ ;; It's for python-dask-image@2024.5.3, remove when no longer required.
+ (hidden-package
+ (package
+ (inherit python-tifffile)
+ (name "python-tifffile")
+ (version "2023.12.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tifffile" version))
+ (sha256
+ (base32 "1f6d8qdlq0zlksfdhp1mhj9icpwhw4cz47r4i80m6r0a328xmlcx")))))))
+
+(define-public python-tiktoken
+ (package
+ (name "python-tiktoken")
+ (version "0.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tiktoken" version))
+ (sha256
+ (base32 "0p9cg6n8mzdi4lbbwxrrp26chy5hr14bqmzr3w74kq1qm6k5qanh"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list
+ #:install-source? #false
+ #:imported-modules
+ (append %pyproject-build-system-modules
+ %cargo-build-system-modules)
+ #:modules
+ '((guix build cargo-build-system)
+ ((guix build pyproject-build-system) #:prefix py:)
+ (guix build utils))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'build
+ (assoc-ref py:%standard-phases 'build))
+ (add-after 'install 'wrap
+ (lambda _
+ ;; Collection of python- and pyproject-build-system phases
+ ;; between 'install and 'check.
+ (assoc-ref py:%standard-phases 'add-install-to-pythonpath)
+ (assoc-ref py:%standard-phases 'add-install-to-path)
+ (assoc-ref py:%standard-phases 'wrap)
+ (assoc-ref py:%standard-phases 'create-entrypoints)
+ (assoc-ref py:%standard-phases 'compile-bytecode)))
+ (replace 'install
+ (assoc-ref py:%standard-phases 'install)))))
+ (propagated-inputs (list python-regex python-requests))
+ (inputs (cargo-inputs 'python-tiktoken))
+ (native-inputs
+ (list python-setuptools
+ python-setuptools-rust
+ python-wheel
+ python-wrapper))
+ (home-page "https://github.com/openai/tiktoken/")
+ (synopsis "Fast BPE tokeniser for use with OpenAI's models")
+ (description
+ "Tiktoken is a fast @dfn{byte pair encoding} (BPE) tokeniser for use with
+@code{OpenAI's} models.")
+ (license license:expat)))
+
+(define-public python-timeout-decorator
+ ;; TODO: Remove when python-requests-caches releses a fresh version dropping
+ ;; it, see, <https://github.com/requests-cache/requests-cache/pull/1111>.
+ (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 pyproject-build-system)
+ (arguments (list #:tests? #f))
+ (native-inputs (list python-setuptools python-wheel))
+ (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-titlecase
+ (package
+ (name "python-titlecase")
+ (version "2.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "titlecase" version))
+ (sha256
+ (base32 "1x9myq3rlbw6wh946ncch8px7wyabhzacy2fjji13nmvrivs50vx"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-backend #~'unittest))
+ (native-inputs
+ (list python-setuptools))
+ (home-page "https://github.com/ppannuto/python-titlecase")
+ (synopsis "Capitalize strings similar to book titles")
+ (description
+ "Python-Titlecase is a Python port of John Gruber's titlecase.pl.
+It capitalizes (predominantly English) strings in a way that is similar to
+book titles, using the New York Times Manual of Style to leave certain words
+lowercase.")
+ (license license:expat)))
+
+(define-public python-tlsh
+ (package
+ (name "python-tlsh")
+ (version "4.11.2")
+ (home-page "https://github.com/trendmicro/tlsh")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page) (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1gb5j73nw3nmx030rf8pm75rns5syxhv44zxr6i74kjicyly1i9w"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'configure
+ (lambda _
+ (invoke "cmake" "."))) ;to generate tlsh_version.h
+ (add-after 'configure 'chdir
+ (lambda _
+ (chdir "py_ext")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "../Testing"
+ (invoke "./python_test.sh"))))))))
+ (native-inputs (list cmake-minimal python-setuptools))
+ (synopsis "Fuzzy matching library for Python")
+ (description
+ "Trend Micro Locality Sensitive Hash (TLSH) is a fuzzy matching library.
+Given a byte stream with a minimum length of 256 bytes, TLSH generates a hash
+value which can be used for similarity comparisons. Similar objects have
+similar hash values, which allows for the detection of similar objects by
+comparing their hash values. The byte stream should have a sufficient amount
+of complexity; for example, a byte stream of identical bytes will not generate
+a hash value.")
+ (license license:asl2.0)))
+
+(define-public python-tokenize-rt
+ (package
+ (name "python-tokenize-rt")
+ (version "6.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/asottile/tokenize-rt")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1maa9sifma0a6v7kl7mmyqzj0jdclzlp4wjr0vkdx95raihxx4fv"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools))
+ (home-page "https://github.com/asottile/tokenize-rt")
+ (synopsis "Wrapper around the stdlib tokenize which roundtrips")
+ (description
+ "This Python library is a wrapper around @code{tokenize} from the Python
+standard library. It provides two additional tokens @code{ESCAPED_NL} and
+@code{UNIMPORTANT_WS}, and a @code{Token} data type. Use @code{src_to_tokens}
+and @code{tokens_to_src} to roundtrip.")
+ (license license:expat)))
+
+(define-public python-tomlkit
+ (package
+ (name "python-tomlkit")
+ (version "0.13.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tomlkit" version))
+ (sha256
+ (base32 "18fjmmhiv5jkkg1dwidmxd0sjqnkf675igizxsa2ppspxr3z4323"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-poetry-core
+ python-pytest
+ python-pyyaml))
+ (home-page "https://github.com/sdispater/tomlkit")
+ (synopsis "Style-preserving TOML library")
+ (description
+ "TOML Kit is a 1.0.0rc1-compliant TOML library. It includes a parser that
+preserves all comments, indentations, whitespace and internal element ordering,
+and makes them accessible and editable via an intuitive API. It can also
+create new TOML documents from scratch using the provided helpers. Part of the
+implementation has been adapted, improved, and fixed from Molten.")
+ (license license:expat)))
+
+(define-public python-toolrack
+ (package
+ (name "python-toolrack")
+ (version "4.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/albertodonato/toolrack")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1aglfj7j25fiwx9jh1rl34mlhfpdhn8yrkn30vhkz9yw7zrx42h0"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-/bin/sh
+ (lambda _
+ (substitute* "tests/aio/process_test.py"
+ (("/bin/sh")
+ (which "sh"))))))))
+ (native-inputs
+ (list python-pytest
+ python-pytest-asyncio
+ python-pytest-mock
+ python-setuptools))
+ (home-page "https://github.com/albertodonato/toolrack")
+ (synopsis "Collection of Python utility functions and classes")
+ (description "This package provides a collection of miscellaneous utility
+functions and classes.")
+ (license license:lgpl3+)))
+
+(define-public python-toolshed
+ (package
+ (name "python-toolshed")
+ (version "0.4.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "toolshed" version))
+ (sha256
+ (base32 "14zvz51gzf9i1i3d1sj363ba4rksl6lcf4lz1arl8hpqgcbir8r3"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:tests? #f)) ;tests are not included in PyPI archive
+ (native-inputs
+ (list python-setuptools))
+ (home-page "https://github.com/brentp/toolshed/")
+ (synopsis "Collection of modules and functions for working with data")
+ (description "This is a collection of well-tested, simple modules and
+functions that aim to reduce boilerplate when working with data.")
+ (license license:bsd-2)))
+
+(define-public python-toolz
+ (package
+ (name "python-toolz")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "toolz" version))
+ (sha256
+ (base32 "00ks0jhl1jwm9576c5sh10pnla8ni21yvg4kcxasr627l3cy71ic"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-setuptools
+ python-wheel))
+ (home-page "https://github.com/pytoolz/toolz/")
+ (synopsis "List processing tools and functional utilities")
+ (description
+ "This package provides a set of utility functions for iterators,
+functions, and dictionaries.")
+ (license license:bsd-3)))
+
+(define-public python-toposort
+ (package
+ (name "python-toposort")
+ (version "1.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "toposort" version))
+ (sha256
+ (base32 "1gd66z5dy6j7qs5qkj1pg0vb15rwd571yq02fkm9d9nhaff4gfxz"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:test-backend #~'custom
+ #:test-flags #~(list "-m" "test.test_toposort")))
+ (native-inputs (list python-setuptools))
+ (home-page "https://gitlab.com/ericvsmith/toposort")
+ (synopsis "Topological sort algorithm")
+ (description
+ "This package provides an implementation of a topological sort
+algorithm.")
+ (license license:asl2.0)))
+
+(define-public python-towncrier
+ (package
+ (name "python-towncrier")
+ (version "25.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "towncrier" version))
+ (sha256
+ (base32 "1c8fjjwlx29jgllxvyzby4cn51iraxba0cmfnfmmgb9iz0lnvwgf"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list git-minimal/pinned ;tests create git repositories
+ python-hatchling
+ python-pytest
+ python-twisted))
+ (propagated-inputs
+ (list python-click
+ python-jinja2))
+ (home-page "https://towncrier.readthedocs.io/en/stable/")
+ (synopsis "Manage release notes")
+ (description
+ "@code{towncrier} is a utility to produce useful, summarized news files
+ (also known as changelogs) for a project.")
+ (license license:expat)))
+
+(define-public python-tqdm
+ (package
+ (name "python-tqdm")
+ (version "4.67.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tqdm" version))
+ (sha256
+ (base32 "1wi7cql2fc76b5z9v1sr96ix2gxcb974z8qfydjkmh885k2zkbpq"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:test-flags
+ '(list "-o" "asyncio_mode=auto"
+ "-k" "not perf and not test_rlock_creation")))
+ (native-inputs
+ (list python-pytest
+ python-pytest-asyncio
+ python-pytest-timeout
+ python-setuptools
+ python-setuptools-scm
+ python-toml
+ python-wheel))
+ (home-page "https://github.com/tqdm/tqdm")
+ (synopsis "Fast, extensible progress meter")
+ (description
+ "Make loops show a progress bar on the console by just wrapping any
+iterable with @code{|tqdm(iterable)|}. Offers many options to define
+design and layout.")
+ (license (list license:mpl2.0 license:expat))))
+
+(define-public python-traitlets
+ (package
+ (name "python-traitlets")
+ (version "5.14.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "traitlets" version))
+ (sha256
+ (base32 "0zjj8ha4z5lbhhmvcl3q8wp5qmwqq0lwxma3d8qvh10s6xdi11c5"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ '(list "-k" "not mypy_list_typing and not mypy_dict_typing")))
+ (native-inputs
+ (list python-argcomplete
+ python-hatchling
+ python-mypy
+ python-pytest
+ python-pytest-mock
+ python-pytest-mypy-testing))
+ (home-page "https://ipython.org")
+ (synopsis "Configuration system for Python applications")
+ (description
+ "Traitlets is a framework that lets Python classes have attributes with
+type checking, dynamically calculated default values, and ‘on change’
+callbacks. The package also includes a mechanism to use traitlets for
+configuration, loading values from files or from command line arguments. This
+is a distinct layer on top of traitlets, so you can use traitlets in your code
+without using the configuration machinery.")
+ (license license:bsd-3)))
+
+(define-public python-translitcodec
+ (package
+ (name "python-translitcodec")
+ (version "0.7.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/claudep/translitcodec")
+ (commit (string-append "version-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1cj11sa5hy8ga7p0dgwi4g4gv0qx6c1yi2csgnvxiir16ywslhpw"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools))
+ (home-page "https://github.com/claudep/translitcodec")
+ (synopsis "Unicode to 8-bit charset transliteration codec")
+ (description
+ "This package contains codecs for transliterating ISO 10646 texts into
+best-effort representations using smaller coded character sets (ASCII,
+ISO 8859, etc.).")
+ (license license:expat)))
+
+(define-public python-treelib
+ (package
+ (name "python-treelib")
+ (version "1.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/caesar0301/treelib")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0jd3rdaq8v7ykb626cm1gxa03higqnn2pmnv46fc0lc55xbrkxlf"))
+ (patches
+ (search-patches "python-treelib-remove-python2-compat.patch"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-poetry-core python-pytest))
+ (home-page "https://github.com/caesar0301/treelib")
+ (synopsis "Implementation of a tree structure in Python")
+ (description
+ "This package provides a Python implementation of a tree structure.")
+ (license license:asl2.0)))
+
+(define-public python-trio
+ (package
+ (name "python-trio")
+ (version "0.28.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "trio" version))
+ (sha256
+ (base32 "019wqwlbj185skknbjd7paxqqx6vl5gpqk2fwmc5d2lyzsb7hm2f"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ `(list "-k"
+ (string-append
+ ;; This tests times out.
+ "not test_ki_protection_works"
+ " and not test_KI_interrupts"
+ ;; This fails with: signal only works in main thread of the main interpreter
+ " and not test_catch_signals_race_condition_on_exit"
+ ;; Assertion errors.
+ " and not test_named_thread_os"
+ " and not test_has_pthread_setname_np"
+ " and not test_guest_mode_ki"
+ " and not test_run_in_trio_thread_ki"
+ " and not test_simple_cancel_scope_usage_doesnt_create\
+_cyclic_garbage"
+ " and not test_nursery_cancel_doesnt_create_cyclic_garbage"
+ " and not test_cancel_scope_exit_doesnt_create_cyclic_garbage"
+ " and not test_locals_destroyed_promptly_on_cancel"
+ " and not test_ipython_exc_handler"
+ " and not test_for_leaking_fds"
+ ;; Signals don’t work in the build sandbox.
+ " and not test_open_signal_receiver"
+ ;; These try to raise KeyboardInterrupt which does not work
+ ;; in the build environment.
+ " and not test_ki_self"
+ " and not test_ki_wakes_us_up"
+ ;; Failure in name resolution.
+ " and not test_getnameinfo"
+ " and not test_SocketType_resolve"
+ ;; OSError: protocol not found.
+ " and not test_getprotobyname"
+ ;; EOFError: Ran out of input.
+ " and not test_static_tool_sees_all_symbols")
+ ,@(if (package? (this-package-native-input "python-trustme"))
+ '()
+ `("--ignore=src/trio/_tests/test_dtls.py"
+ "--ignore=src/trio/_tests/test_highlevel_ssl_helpers.py"
+ "--ignore=src/trio/_tests/test_ssl.py"))
+ ;; It rerquires black and ruff to generate a final report.
+ "--ignore=src/trio/_tests/tools/test_gen_exports.py"
+ "src/trio/_tests")
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'ignore-deprecations
+ (lambda _
+ (substitute* "pyproject.toml"
+ ((" \"error\",") " \"ignore\","))))
+ (add-before 'check 'set-env
+ (lambda _
+ ;; Tests require a writable home.
+ (setenv "HOME" "/tmp")
+ ;; #$output is first in path which causes "import file mismatch"
+ (setenv "PYTHONPATH" (string-append (getcwd) "/src:$PYTHONPATH")))))))
+ (native-inputs
+ (append
+ (if (supported-package? python-pyopenssl)
+ (list python-pyopenssl)
+ '())
+ (list python-pytest
+ python-setuptools)
+ (if (supported-package? python-trustme)
+ (list python-trustme)
+ '())
+ (list python-wheel)))
+ (propagated-inputs
+ (list python-attrs
+ python-cffi
+ python-exceptiongroup
+ python-idna
+ python-outcome
+ python-sniffio
+ python-sortedcontainers))
+ (home-page "https://github.com/python-trio/trio")
+ (synopsis "Friendly Python library for async concurrency and I/O")
+ (description
+ "Trio strives to be a production-quality, async/await-native I/O library
+for Python. Like all async libraries, its main purpose is to help you write
+programs that do multiple things at the same time with parallelized I/O.")
+ ;; Either license applies.
+ (license (list license:expat license:asl2.0))))
+
+(define-public python-trio-typing
+ (package
+ (name "python-trio-typing")
+ (version "0.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "trio-typing" version))
+ (sha256
+ (base32 "1hvsj3w500i33ykfgh3sfkjnxhxf05incx131smshlkd562fcph6"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools python-wheel))
+ (propagated-inputs
+ (list python-async-generator
+ python-importlib-metadata
+ python-mypy-extensions
+ python-packaging
+ python-trio
+ python-typing-extensions))
+ (home-page "https://github.com/python-trio/trio-typing")
+ (synopsis "Static type checking support for Trio and related projects")
+ (description
+ "This package provides:
+
+@itemize
+@item PEP 561 typing stubs packages for the Trio project packages:
+
+@itemize
+@item trio (@code{trio-stubs})
+@item outcome (@code{outcome-stubs})
+@item async_generator (@code{async_generator-stubs})
+@end itemize
+
+@item A package @code{trio_typing} containing types that Trio programs often
+want to refer to (@code{AsyncGenerator[Y, S]} and @code{TaskStatus[T])} and
+a mypy plugin that smooths over some limitations in the basic type hints.
+@end itemize")
+ ;; Either license applies.
+ (license (list license:expat license:asl2.0))))
+
+(define-public python-trubar
+ (package
+ (name "python-trubar")
+ (version "0.3.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "trubar" version))
+ (sha256
+ (base32 "149l5wid1b41gmfzsrhapcigcbcsflviz8p1pfa937443fxw1dkd"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k" (string-join
+ ;; AttributeError: module 'libcst' has no attribute
+ ;; 'FlattenSentinel'. Did you mean: 'MaybeSentinel'?
+ (list "not test_import_from_future"
+ "test_inport_after_docstring"
+ ;; AssertionError: Items in the second set but not
+ ;; the first
+ "test_walk_files")
+ " and not "))))
+ (native-inputs
+ (list python-pytest
+ python-setuptools
+ python-wheel))
+ (propagated-inputs
+ (list python-libcst
+ python-pyyaml))
+ (home-page "https://github.com/janezd/trubar")
+ (synopsis "Utility for translation of Python sources")
+ (description
+ "This package provides a tool for translation and localization of Python
+programs via modification of source files. Trubar supports f-strings and does
+not require any changes to the original source code, such as marking strings
+for translation.")
+ (license license:expat)))
+
+(define-public python-twine
+ (package
+ (name "python-twine")
+ (version "6.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "twine" version))
+ (sha256
+ (base32 "1kvm9cdvbnh232wafww1w5scaic9kkrwhlff1mvmk68cswphvvg5"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; tests: 228 passed, 1 deselected
+ #:test-flags
+ ;; Assertion is not equal for one tests.
+ #~(list "--deselect=tests/test_check.py::test_fails_rst_syntax_error")))
+ (native-inputs
+ (list python-pretend
+ python-pytest
+ python-pytest-socket
+ python-setuptools
+ python-setuptools-scm))
+ (propagated-inputs
+ (list python-id
+ python-keyring
+ python-packaging
+ python-readme-renderer
+ python-requests
+ python-requests-toolbelt
+ python-rfc3986
+ python-rich
+ python-urllib3))
+ (home-page "https://github.com/pypa/twine")
+ (synopsis "Collection of utilities for interacting with PyPI")
+ (description
+ "@code{twine} currently supports registering projects and uploading
+distributions. It authenticates the user over HTTPS, allows them to pre-sign
+their files and supports any packaging format (including wheels).")
+ (license license:asl2.0)))
+
+(define-public python-twisted
+ (package
+ (name "python-twisted")
+ (version "24.11.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/twisted/twisted")
+ (commit (string-append "twisted-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0k4rd5bpx40j1k0mgbhzqa35dyni0kk7pxjr8x3pm1iaka1718rh"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; tests: skips=638, successes=9759
+ #:test-backend #~'custom
+ #:test-flags
+ #~(list "-m" "twisted.trial"
+ "--temp-directory=/tmp/_trial_temp"
+ (string-append "-j" (number->string (min 8 (parallel-job-count))))
+ "twisted")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-broken-tests
+ (lambda _
+ (for-each delete-file
+ (list
+ ;; No idea why they fail
+ "src/twisted/test/test_log.py"
+ ;; Network tests
+ "src/twisted/conch/test/test_cftp.py"
+ "src/twisted/internet/test/test_endpoints.py"
+ "src/twisted/protocols/test/test_tls.py"
+ "src/twisted/test/test_sslverify.py"
+ "src/twisted/web/test/test_agent.py"
+ "src/twisted/web/test/test_tap.py"
+ ;; These need a git executable
+ "src/twisted/python/test/test_release.py"
+ ;; These leave behind a socket file, which breaks the
+ ;; build with "...has an unsupported type"
+ "src/twisted/internet/test/test_unix.py"
+ "src/twisted/test/test_unix.py"
+ ;; These complain about missing test modules.
+ "src/twisted/test/test_failure.py"
+ "src/twisted/web/test/test_http2.py"
+ "src/twisted/conch/test/test_forwarding.py")))))))
+ (propagated-inputs
+ (list python-attrs
+ python-automat
+ python-bcrypt
+ python-constantly
+ python-hyperlink
+ python-incremental
+ python-typing-extensions
+ python-zope-interface
+ ;; [conch]
+ python-appdirs
+ python-bcrypt
+ python-cryptography
+ ;; [http2]
+ python-h2
+ python-priority
+ ;; [tls]
+ python-idna
+ python-pyopenssl
+ python-service-identity
+ ;; [serial]
+ python-pyserial))
+ (native-inputs
+ (list glibc-utf8-locales ;for OpenTestLogTests.test_utf8
+ python-hatch-fancy-pypi-readme
+ python-hatchling
+ python-httpx
+ python-hypothesis
+ python-incremental
+ python-pyhamcrest
+ python-pytest))
+ (home-page "https://twistedmatrix.com/")
+ (synopsis "Asynchronous networking framework written in Python")
+ (description
+ "Twisted is an extensible framework for Python programming, with special
+focus on event-based network programming and multiprotocol integration.")
+ (license license:expat)))
+
(define-public python-typeapi
(package
(name "python-typeapi")