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