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}