1{
2 lib,
3 stdenv,
4 fetchPypi,
5 buildPythonPackage,
6 libmediainfo,
7 pdm-backend,
8 pytest,
9 pythonOlder,
10}:
11
12buildPythonPackage rec {
13 pname = "pymediainfo";
14 version = "7.0.1";
15 pyproject = true;
16
17 disabled = pythonOlder "3.9";
18
19 src = fetchPypi {
20 inherit pname version;
21 hash = "sha256-DV31nsxhXiTFbzA7j2UVecasyrcmVxXl1CkYbXuiFRQ=";
22 };
23
24 postPatch = ''
25 substituteInPlace src/pymediainfo/__init__.py \
26 --replace "libmediainfo.0.dylib" \
27 "${libmediainfo}/lib/libmediainfo.0${stdenv.hostPlatform.extensions.sharedLibrary}" \
28 --replace "libmediainfo.dylib" \
29 "${libmediainfo}/lib/libmediainfo${stdenv.hostPlatform.extensions.sharedLibrary}" \
30 --replace "libmediainfo.so.0" \
31 "${libmediainfo}/lib/libmediainfo${stdenv.hostPlatform.extensions.sharedLibrary}.0"
32 '';
33
34 build-system = [ pdm-backend ];
35
36 nativeCheckInputs = [
37 pytest
38 ];
39
40 checkPhase = ''
41 py.test -k 'not test_parse_url' tests
42 '';
43
44 pythonImportsCheck = [ "pymediainfo" ];
45
46 meta = {
47 description = "Python wrapper for the mediainfo library";
48 homepage = "https://github.com/sbraz/pymediainfo";
49 changelog = "https://github.com/sbraz/pymediainfo/releases/tag/v${version}";
50 license = lib.licenses.mit;
51 maintainers = with lib.maintainers; [ philipdb ];
52 };
53}