@@ -42,6 +42,7 @@
(define-module (gnu packages python-science)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
+ #:use-module (gnu packages astronomy)
#:use-module (gnu packages base)
#:use-module (gnu packages bioinformatics)
#:use-module (gnu packages boost)
@@ -1217,6 +1218,34 @@ (define-public python-statannot
annotations on an existing boxplots and barplots generated by seaborn.")
(license license:expat)))
+(define-public python-unyt
+ (package
+ (name "python-unyt")
+ (version "3.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "unyt" version))
+ (sha256
+ (base32 "00900bw24rxgcgwgxp9xlx0l5im96r1n5hn0r3mxvbdgc3lyyq48"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-h5py ;optional import
+ python-matplotlib ;optional import
+ python-numpy
+ python-sympy))
+ ;; python-astropy and python-pint are also optional imports, but we do not
+ ;; propagate them due to their sizes.
+ (native-inputs (list python-astropy python-pint python-pytest))
+ (home-page "https://unyt.readthedocs.io")
+ (synopsis "Library for working with data that has physical units")
+ (description
+ "Writing code that deals with data with physical units can be confusing.
+A function might return an array but at least with plain @code{numpy}, there
+is no way to easily tell what the units of the data are without somehow
+knowing a priori. @code{unyt} handles this problem by providing a subclass of
+the @code{ndarray} class in @code{numpy} that is unit aware.")
+ (license license:bsd-3)))
+
(define-public python-upsetplot
(package
(name "python-upsetplot")