1{ lib
2, attrs
3, bidict
4, bitstruct
5, buildPythonPackage
6, fetchFromGitHub
7, fetchpatch
8, more-itertools
9, poetry-core
10, pprintpp
11, pythonOlder
12, pythonRelaxDepsHook
13, tbm-utils
14}:
15
16buildPythonPackage rec {
17 pname = "audio-metadata";
18 version = "0.11.1";
19 format = "pyproject";
20
21 disabled = pythonOlder "3.7";
22
23 src = fetchFromGitHub {
24 owner = "thebigmunch";
25 repo = pname;
26 rev = "refs/tags/${version}";
27 hash = "sha256-5ZX4HwbuB9ZmFfHuxaMCrn3R7/znuDsoyqqLql2Nizg=";
28 };
29
30 patches = [
31 # Switch to poetry-core, https://github.com/thebigmunch/audio-metadata/pull/41
32 (fetchpatch {
33 name = "switch-to-poetry-core.patch";
34 url = "https://github.com/thebigmunch/audio-metadata/commit/dfe91a69ee37e9dcefb692165eb0f9cd36a7e5b8.patch";
35 hash = "sha256-ut3mqgZQu0YFbsTEA13Ch0+aSNl17ndMV0fuIu3n5tc=";
36 })
37 ];
38
39 pythonRelaxDeps = [
40 "attrs"
41 "more-itertools"
42 ];
43
44 nativeBuildInputs = [
45 poetry-core
46 pythonRelaxDepsHook
47 ];
48
49 propagatedBuildInputs = [
50 attrs
51 bidict
52 bitstruct
53 more-itertools
54 pprintpp
55 tbm-utils
56 ];
57
58 # Tests require ward which is not ready to be used
59 doCheck = false;
60
61 pythonImportsCheck = [
62 "audio_metadata"
63 ];
64
65 meta = with lib; {
66 homepage = "https://github.com/thebigmunch/audio-metadata";
67 description = "A library for reading and, in the future, writing metadata from audio files";
68 changelog = "https://github.com/thebigmunch/audio-metadata/blob/${version}/CHANGELOG.md";
69 license = licenses.mit;
70 maintainers = with maintainers; [ jakewaksbaum ];
71 };
72}