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.scm314
1 files changed, 296 insertions, 18 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2afce6c667..46a5e81cb4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -145,7 +145,7 @@
;;; Copyright © c4droid <c4droid@foxmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
-;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
+;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2250,25 +2250,21 @@ library.")
(version "3.8.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "h5py" version))
- (sha256
- (base32
- "0pyr6z4h2xqbp49yx2i1401gl6yqh03h771zslwcy0201hpxiskg"))))
+ (method url-fetch)
+ (uri (pypi-uri "h5py" version))
+ (sha256
+ (base32 "0pyr6z4h2xqbp49yx2i1401gl6yqh03h771zslwcy0201hpxiskg"))))
(build-system python-build-system)
(arguments
- `(#:tests? #f ; no test target
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-hdf5-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "HDF5_DIR" (assoc-ref inputs "hdf5")))))))
- (propagated-inputs
- (list python-six python-numpy))
- (inputs
- (list hdf5-1.10))
- (native-inputs
- (list python-cython python-pkgconfig pkg-config))
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'fix-hdf5-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "HDF5_DIR"
+ (assoc-ref inputs "hdf5")))))))
+ (propagated-inputs (list python-six python-numpy))
+ (inputs (list hdf5-1.10))
+ (native-inputs (list pkg-config python-cython python-ipython
+ python-pkgconfig python-pytest))
(home-page "https://www.h5py.org/")
(synopsis "Read and write HDF5 files from Python")
(description
@@ -2279,6 +2275,30 @@ access to HDF5 files, datasets and groups using established Python and NumPy
concepts.")
(license license:bsd-3)))
+(define-public python-hdf5storage
+ (package
+ (name "python-hdf5storage")
+ (version "0.1.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "hdf5storage" version))
+ (sha256
+ (base32 "11pgxsqap9l7jsf52649q9mpj8a0w6p9im929lpr9s26ynnnn6ks"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-h5py python-numpy))
+ (native-inputs (list python-nose))
+ (home-page "https://github.com/frejanordsiek/hdf5storage")
+ (synopsis "Read and write Python data types from and to HDF5 files")
+ (description
+ "This Python package provides high-level utilities to read and write a
+variety of Python types from and to @acronym{HDF5, Hierarchical Data Format}
+formatted files. This package also provides support for MATLAB MAT v7.3
+formatted files, which are HDF5 files with a different extension and some
+extra metadata. Because HDF5 and MAT files might need to be read from
+untrusted sources, pickling is avoided in this package.")
+ (license license:bsd-2)))
+
(define-public python-hjson
;; Using commit from master branch as the PyPI version does not contain
;; the hjson/tests/ directory.
@@ -9236,6 +9256,105 @@ converting, and viewing many of the proprietary file formats used to store
experimental data and metadata at the Laboratory for Fluorescence Dynamics.")
(license license:bsd-3)))
+(define-public python-av
+ (package
+ (name "python-av")
+ (version "10.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "av" version))
+ (sha256
+ (base32 "01byqsjclkg65mhr6b4i2r2n4y7af9kdd2c35lxny27121b3vzca"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list
+ ;; Tests require outbound access to download data samples from
+ ;; http://fate.ffmpeg.org/fate-suite:
+ ;;
+ ;; E urllib.error.URLError: <urlopen error [Errno -3]
+ ;; Temporary failure in name resolution>
+ ;;
+ "--ignore=tests/test_doctests.py"
+ "--ignore=tests/test_timeout.py"
+ "-k"
+ (string-append
+ "not test_data"
+ " and not test_container_probing"
+ " and not test_stream_probing"
+ " and not test_transcode"
+ " and not test_codec_tag"
+ " and not test_parse"
+ " and not test_decode_audio_sample_count"
+ " and not test_decoded_motion_vectors"
+ " and not test_decoded_motion_vectors_no_flag"
+ " and not test_decoded_time_base"
+ " and not test_decoded_video_frame_count"
+ " and not test_encoding_aac"
+ " and not test_encoding_dnxhd"
+ " and not test_encoding_dvvideo"
+ " and not test_encoding_h264"
+ " and not test_encoding_mjpeg"
+ " and not test_encoding_mp2"
+ " and not test_encoding_mpeg1video"
+ " and not test_encoding_mpeg4"
+ " and not test_encoding_pcm_s24le"
+ " and not test_encoding_png"
+ " and not test_encoding_tiff"
+ " and not test_encoding_xvid"
+ " and not test_reading_from_buffer"
+ " and not test_reading_from_buffer_no_seek"
+ " and not test_reading_from_file"
+ " and not test_reading_from_pipe_readonly"
+ " and not test_reading_from_write_readonly"
+ " and not test_writing_to_custom_io_dash"
+ " and not test_writing_to_custom_io_image2"
+ " and not test_decode_half"
+ " and not test_seek_end"
+ " and not test_seek_float"
+ " and not test_seek_int64"
+ " and not test_seek_middle"
+ " and not test_seek_start"
+ " and not test_stream_seek"
+ " and not test_selection"
+ " and not test_stream_tuples"
+ " and not test_movtext"
+ " and not test_vobsub"
+ " and not test_roundtrip"
+ " and not test_stream_probing"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'build-extensions
+ (lambda _
+ (invoke "python" "setup.py" "build_ext" "--inplace"))))))
+ (native-inputs
+ (list pkg-config
+ python-cython
+ python-editorconfig
+ python-numpy
+ python-pillow
+ python-pytest))
+ (inputs
+ ;; XXX: Build is failing with FFmpeg 6.0, unresolved upstream.
+ ;; See https://github.com/PyAV-Org/PyAV/issues/1106
+ (list ffmpeg-5))
+ (home-page "https://github.com/PyAV-Org/PyAV")
+ (synopsis "Pythonic bindings for FFmpeg's libraries")
+ (description
+ "PyAV is a Python library that allows for direct and precise manipulation
+of media through containers, streams, packets, codecs, and frames. It provides
+access to the powerful FFmpeg libraries while managing the complex details as
+much as possible.
+PyAV also facilitates data transformation and integration with
+other packages such as Numpy and Pillow. However, working with media is a
+challenging task and PyAV cannot abstract it away or make all the best decisions
+for you. If you can accomplish your tasks with the ffmpeg command, PyAV may not
+be necessary. Nonetheless, PyAV is an essential tool when working with media
+that requires its specific capabilities.")
+ (license license:bsd-3)))
+
(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"))
@@ -10275,6 +10394,67 @@ finding unresolved symbols in Python code and their corresponding imports.")
class constructs.")
(license license:expat)))
+(define-public python-jaraco-collections
+ (package
+ (name "python-jaraco-collections")
+ (version "5.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jaraco.collections" version))
+ (sha256
+ (base32 "0s7y3jr7c173k38pck1b17kxnvx2fl0qh9m9gdf64pr9kz8fi00n"))))
+ (build-system pyproject-build-system)
+ ;; Do not test pyproject.toml with python-pytest-checkdocs as it tries to
+ ;; download dependencies.
+ (arguments
+ '(#:test-flags '("-k" "not project")))
+ (propagated-inputs (list python-jaraco-text))
+ ;; TODO: Add python-pytest-ruff to native-inputs once it has been
+ ;; packaged.
+ (native-inputs (list python-pytest
+ python-pytest-black
+ python-pytest-checkdocs
+ python-pytest-cov
+ python-pytest-enabler
+ python-pytest-mypy))
+ (home-page "https://github.com/jaraco/jaraco.collections")
+ (synopsis "Provides various collection objects")
+ (description
+ "This package provides models and classes to supplement the
+standard library @code{collections} module. Examples include
+@itemize
+@item
+RangeMap: A mapping that accepts a range of values for keys.
+@item
+Projection: A subset over an existing mapping.
+@item
+KeyTransformingDict: Generalized mapping with keys transformed by a function.
+@item
+FoldedCaseKeyedDict: A dict whose string keys are case-insensitive.
+@item
+BijectiveMap: A map where keys map to values and values back to their keys.
+@item
+ItemsAsAttributes: A mapping mix-in exposing items as attributes.
+@item
+IdentityOverrideMap: A map whose keys map by default to themselves unless overridden.
+@item
+FrozenDict: A hashable, immutable map.
+@item
+Enumeration: An object whose keys are enumerated.
+@item
+Everything: A container that contains all things.
+@item
+Least, Greatest: Objects that are always less than or greater than any other.
+@item
+pop_all: Return all items from the mutable sequence and remove them from that sequence.
+@item
+DictStack: A stack of dicts, great for sharing scopes.
+@item
+WeightedLookup: A specialized RangeMap for selecting an item by weights.
+@end itemize")
+ (license license:expat)))
+
;;; Variant used to break a cycle with python-pytest-enabler.
(define-public python-jaraco-context-bootstrap
(hidden-package
@@ -10439,6 +10619,41 @@ releases.")
(description "This package provides testing support by jaraco.")
(license license:expat)))
+(define-public python-jaraco-text
+ (package
+ (name "python-jaraco-text")
+ (version "3.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jaraco.text" version))
+ (sha256
+ (base32 "0b2rmx0sa61f75lkkr4nfaj3mkgmn3x9c1akpwarfbmksk42b7iq"))))
+ (build-system pyproject-build-system)
+ ;; Do not test pyproject.toml with python-pytest-checkdocs as it tries to
+ ;; download dependencies.
+ (arguments
+ '(#:test-flags '("-k" "not project")))
+ (propagated-inputs (list python-autocommand python-inflect
+ python-jaraco-context python-jaraco-functools
+ python-more-itertools))
+ ;; TODO: Add python-pytest-ruff to native-inputs once it has been
+ ;; packaged.
+ (native-inputs (list python-pytest
+ python-pytest-black
+ python-pytest-checkdocs
+ python-pytest-cov
+ python-pytest-enabler
+ python-pytest-mypy))
+ (home-page "https://github.com/jaraco/jaraco.text")
+ (synopsis "Provides various routines for text manipulation")
+ (description
+ "This package provides handy routines for dealing with text,
+such as wrapping, substitution, trimming, stripping, prefix and suffix
+removal, line continuation, indentation, comment processing, identifier
+processing, values parsing, case insensitive comparison, and more.")
+ (license license:expat)))
+
(define-public python-simplegeneric
(package
(name "python-simplegeneric")
@@ -30176,6 +30391,45 @@ heterogeneous and multi-platform clusters (including clusters running other
applications with variable CPU loads).")
(license license:bsd-3)))
+(define-public python-djitellopy
+ (package
+ (name "python-djitellopy")
+ (version "2.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "djitellopy" version))
+ (sha256
+ (base32 "1kc0syb4hpn7fay0rxpazmczag6jw3pncrrc6v762jj0afiwkrps"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no test suite
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; OpenCV does not ship metadata files for its Python library, which
+ ;; makes it invisible to the sanity_check script (see:
+ ;; https://github.com/opencv/opencv/issues/24810).
+ (delete 'sanity-check))))
+ (propagated-inputs
+ (list opencv ;for opencv-python
+ python-av
+ python-numpy
+ python-pillow))
+ (home-page "https://github.com/damiafuentes/DJITelloPy")
+ (synopsis
+ "DJI Tello drone video streaming, swarms and state packets library")
+ (description
+ "DJI Tello drone Python interface using the official Tello SDK and Tello
+EDU SDK. This library has the following features:
+@itemize
+@item Implementation of all tello commands
+@item Retrieve a video stream easily
+@item Receive and parse state packets
+@item Control a swarm of drones.
+@end itemize")
+ (license license:expat)))
+
(define-public python-djvulibre
(package
(name "python-djvulibre")
@@ -31490,6 +31744,30 @@ graph can be output for rendering by GraphViz or yEd.")
function implementations based on the types of the arguments.")
(license license:bsd-3)))
+(define-public python-multimethod
+ (package
+ (name "python-multimethod")
+ (version "1.10")
+ (source
+ (origin
+ ;; No tests in the PyPI tarball.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/coady/multimethod")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "07xv92q7f4bkp6dzkqvcv0zxr11729qdak4s3ldmbhdwgsf44g5h"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/coady/multimethod")
+ (synopsis "Python support for multiple argument dispatching")
+ (description
+ "This package provides a decorator for adding multiple argument
+dispatching to functions. The decorator creates a multimethod object as
+needed and registers the function with its annotations.")
+ (license license:asl2.0)))
+
(define-public python-logical-unification
(package
(name "python-logical-unification")