diff mbox series

[bug#64732,v2,1/2] gnu: Add python-ffmpeg-python.

Message ID eb3eaaa0e7f3d610c6ea0bcc8e170c9544397520.1689868307.git.poomklao@yahoo.com
State New
Headers show
Series [bug#64732,v2,1/2] gnu: Add python-ffmpeg-python. | expand

Commit Message

Parnikkapore July 20, 2023, 3:51 p.m. UTC
* gnu/packages/python-xyz.scm (python-ffmpeg-python): New variable.
---
 gnu/packages/python-xyz.scm | 50 +++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)


base-commit: 1d837aaa32a3a2de8f4a1ac391f92effba50834e

Comments

jgart July 20, 2023, 5 p.m. UTC | #1
Hi Parnikkapore,

Thanks for v2.

From a quick glance at the patch are you aware of the -k flag in Pytest that allows to disable tests?

https://docs.pytest.org/en/7.4.x/reference/reference.html#command-line-flags

It is a common pattern to use that flag in Guix Python packages for this purpose. I would look in (gnu packages python-xyz) for examples.

Is there some other reason why you're using substitute* to disable the tests?

all best,

jgart
diff mbox series

Patch

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 755b0af4b6..9097f3f027 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -139,6 +139,7 @@ 
 ;;; Copyright © 2023 Dominik Delgado Steuter <d@delgado.nrw>
 ;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net>
 ;;; Copyright © 2023 Ontje Lünsdorf <ontje.luensdorf@dlr.de>
+;;; Copyright © 2023 Parnikkapore <poomklao@yahoo.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -8918,6 +8919,55 @@  (define-public python-lfdfiles
 experimental data and metadata at the Laboratory for Fluorescence Dynamics.")
     (license license:bsd-3)))
 
+(define-public python-ffmpeg-python
+  (package
+    (name "python-ffmpeg-python")
+    (version "0.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/kkroening/ffmpeg-python.git")
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+                (base32
+                  "0mmydmfz3yiclbgi4lqrv9fh2nalafg4bkm92y2qi50mwqgffk8f"))
+              (snippet
+                #~(begin
+                    (use-modules (guix build utils))
+                    (substitute* "ffmpeg/_run.py"
+                      (("collections\\.Iterable")
+                        "collections.abc.Iterable"))))))
+    (build-system python-build-system)
+    (arguments
+      (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'disable-failing-tests
+              (lambda* _
+                (substitute* "ffmpeg/tests/test_ffmpeg.py"
+                  (("([ \t]*)def test_pipe\\(" all indent)
+                   (string-append indent
+                                  "@pytest.mark.skip"
+                                  "(reason=\"Not working under FFmpeg 5+\")\n"
+                                  all))
+                  (("([ \t]*)def test__probe\\(" all indent)
+                   (string-append indent
+                                  "@pytest.mark.skip"
+                                  "(reason=\"Not working under FFmpeg 5+\")\n"
+                                  all))))))))
+    (inputs (list python-future))
+    (propagated-inputs (list ffmpeg))
+    (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
+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)))
+
 (define-public python-imageio-ffmpeg
   (package
    (name "python-imageio-ffmpeg")