Subject: [bug#50505] [PATCH v2 13/13] gnu: Add python-manim 0.9.0.

From: Daniel Meißner<[email-masked]>
Date: Wed, 15 Sep 2021 17:25:19 +0200

* gnu/packages/python-science.scm (python-manim): New variable.
---
 gnu/packages/python-science.scm | 64 +++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index fcd983520c..df105d5103 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -36,6 +36,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gtk)
@@ -55,6 +56,7 @@
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages time)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -1010,3 +1012,65 @@ pandas code.")
      "These are Python bindings for Pango to be used with the mathematical
 animation software Manim.")
     (license license:gpl3+)))
+
+(define-public python-manim
+  (package
+    (name "python-manim")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "manim" version))
+       (sha256
+        (base32
+         "0ksp57wcy45xkjips5i4wwm690mhbs2dmlcgsbmiwx78mfk4z0r3"))))
+    (build-system python-build-system)
+    (arguments '(#:phases
+                 (modify-phases %standard-phases
+                   (add-before 'build 'fix-ffmpeg-path
+                     (lambda* (#:key inputs outputs #:allow-other-keys)
+                       (substitute* '("manim/constants.py")
+                         (("FFMPEG_BIN: str = \"ffmpeg\"")
+                          (string-append "FFMPEG_BIN: str = \""
+                                         (assoc-ref inputs "ffmpeg")
+                                         "/bin/ffmpeg\"")))))
+                   ;; PyPI package contains no tests for manim but the
+                   ;; setup.py test command fails, so remove it
+                   (delete 'check))))
+    (propagated-inputs
+     `(("python-click" ,python-click)
+       ("python-click-default-group"
+        ,python-click-default-group)
+       ("python-cloup" ,python-cloup-0.7)
+       ("python-colour" ,python-colour)
+       ("python-decorator" ,python-decorator)
+       ("python-manimpango" ,python-manimpango)
+       ("python-mapbox-earcut" ,python-mapbox-earcut)
+       ("python-moderngl" ,python-moderngl)
+       ("python-moderngl-window"
+        ,python-moderngl-window)
+       ("python-networkx" ,python-networkx)
+       ("python-numpy" ,python-numpy)
+       ("python-pillow" ,python-pillow)
+       ("python-pycairo" ,python-pycairo)
+       ("python-pydub" ,python-pydub)
+       ("python-pygments" ,python-pygments)
+       ("python-requests" ,python-requests)
+       ("python-rich" ,python-rich)
+       ("python-scipy" ,python-scipy)
+       ("python-screeninfo" ,python-screeninfo-0.6)
+       ("python-tqdm" ,python-tqdm)
+       ("python-watchdog" ,python-watchdog)))
+    (inputs
+     `(("ffmpeg" ,ffmpeg)))
+    (native-inputs
+     `(("python-wheel" ,python-wheel)))
+    (home-page "https://www.manim.community/")
+    (synopsis
+     "Python animation engine for explanatory math videos")
+    (description
+     "Manim is a Python library for creating mathematical animations.  The
+animations are written as Python code which is based on predefined objects.
+You can make animations with maths formulas (LaTeX-based), simple shapes, 3D
+objects, function graphs and more.")
+    (license license:expat)))
-- 
2.33.0