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