biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / development / python-modules / ffmpy / default.nix
blobec639f9ef821c15fb74cc4ba188b623f5b3c33b8
2   lib,
3   stdenv,
4   buildPythonPackage,
5   fetchFromGitHub,
6   pythonOlder,
7   poetry-core,
8   pytestCheckHook,
9   go,
10   ffmpeg-headless,
13 buildPythonPackage rec {
14   pname = "ffmpy";
15   version = "0.4.0";
16   pyproject = true;
18   disabled = pythonOlder "3.8.1";
20   src = fetchFromGitHub {
21     owner = "Ch00k";
22     repo = "ffmpy";
23     rev = "refs/tags/${version}";
24     hash = "sha256-XWI0Hq4vf9Q0/dRzmu1B7EQHdQRkWaNJaBaqusWW7YM=";
25   };
27   postPatch = ''
28     # default to store ffmpeg
29     substituteInPlace ffmpy.py \
30       --replace-fail \
31         'executable: str = "ffmpeg",' \
32         'executable: str = "${ffmpeg-headless}/bin/ffmpeg",'
34     #  The tests test a mock that does not behave like ffmpeg. If we default to the nix-store ffmpeg they fail.
35     for fname in tests/*.py; do
36       echo 'FFmpeg.__init__.__defaults__ = ("ffmpeg", *FFmpeg.__init__.__defaults__[1:])' >>"$fname"
37     done
38   '';
40   pythonImportsCheck = [ "ffmpy" ];
42   nativeBuildInputs = [ poetry-core ];
44   nativeCheckInputs = [
45     pytestCheckHook
46     go
47   ];
49   disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [
50     # expects a FFExecutableNotFoundError, gets a NotADirectoryError raised by os
51     "test_invalid_executable_path"
52   ];
54   # the vendored ffmpeg mock binary assumes FHS
55   preCheck = ''
56     rm -v tests/ffmpeg/ffmpeg
57     echo Building tests/ffmpeg/ffmpeg...
58     HOME=$(mktemp -d) go build -o tests/ffmpeg/ffmpeg tests/ffmpeg/ffmpeg.go
59   '';
61   meta = with lib; {
62     description = "Simple python interface for FFmpeg/FFprobe";
63     homepage = "https://github.com/Ch00k/ffmpy";
64     license = licenses.mit;
65     maintainers = with maintainers; [ pbsds ];
66   };