1{ lib
2, stdenv
3, alabaster
4, alsa-lib
5, buildPythonPackage
6, CoreAudio
7, CoreMIDI
8, CoreServices
9, Foundation
10, cython_3
11, fetchPypi
12, flake8
13, libjack2
14, meson-python
15, ninja
16, pkg-config
17, pythonOlder
18, tox
19, wheel
20}:
21
22buildPythonPackage rec {
23 pname = "python-rtmidi";
24 version = "1.5.7";
25 format = "pyproject";
26
27 disabled = pythonOlder "3.8";
28
29 src = fetchPypi {
30 pname = "python_rtmidi";
31 inherit version;
32 hash = "sha256-3vsaSyrob/OYwjLFPu2lVOJKSfZ96ELnnOuos8p3N00=";
33 };
34
35 nativeBuildInputs = [
36 cython_3
37 meson-python
38 ninja
39 pkg-config
40 wheel
41 ];
42
43 buildInputs = [
44 ] ++ lib.optionals stdenv.isLinux [
45 libjack2
46 alsa-lib
47 ] ++ lib.optionals stdenv.isDarwin [
48 CoreAudio
49 CoreMIDI
50 CoreServices
51 Foundation
52 ];
53
54 nativeCheckInputs = [
55 tox
56 flake8
57 alabaster
58 ];
59
60 pythonImportsCheck = [
61 "rtmidi"
62 ];
63
64 meta = with lib; {
65 description = "A Python binding for the RtMidi C++ library implemented using Cython";
66 homepage = "https://github.com/SpotlightKid/python-rtmidi";
67 changelog = "https://github.com/SpotlightKid/python-rtmidi/blob/${version}/CHANGELOG.md";
68 license = licenses.mit;
69 maintainers = with maintainers; [ hexa ];
70 };
71}