Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 buildPythonPackage, 4 fetchPypi, 5 ply, 6 roman, 7 uqbar, 8 pythonOlder, 9 pytestCheckHook, 10 lilypond, 11 typing-extensions, 12}: 13 14buildPythonPackage rec { 15 pname = "abjad"; 16 version = "3.19"; 17 format = "setuptools"; 18 19 disabled = pythonOlder "3.10"; 20 21 src = fetchPypi { 22 inherit pname version; 23 hash = "sha256-I9t3ORUKFFlMfXJsAzXhCzl1B4a9/ZNmvSX2/R44TPs="; 24 }; 25 26 propagatedBuildInputs = [ 27 ply 28 roman 29 uqbar 30 typing-extensions 31 ]; 32 33 buildInputs = [ lilypond ]; 34 35 nativeCheckInputs = [ pytestCheckHook ]; 36 37 postPatch = '' 38 substituteInPlace abjad/io.py \ 39 --replace-fail 'lilypond_path = self.get_lilypond_path()' \ 40 'lilypond_path = "${lilypond}/bin/lilypond"' 41 # general invocations of binary for IO purposes 42 43 substituteInPlace abjad/configuration.py \ 44 --replace-fail '["lilypond"' '["${lilypond}/bin/lilypond"' 45 # get_lilypond_version_string 46 ''; 47 48 pythonImportsCheck = [ "abjad" ]; 49 50 meta = { 51 description = "GNU LilyPond wrapper for Python"; 52 longDescription = '' 53 Abjad helps composers build up complex pieces of music notation in 54 iterative and incremental ways. Use Abjad to create a symbolic 55 representation of all the notes, rests, chords, tuplets, beams and slurs 56 in any score. Because Abjad extends the Python programming language, you 57 can use Abjad to make systematic changes to music as you work. Because 58 Abjad wraps the LilyPond music notation package, you can use Abjad to 59 control the typographic detail of symbols on the page. 60 ''; 61 license = lib.licenses.mit; 62 homepage = "https://abjad.github.io/"; 63 changelog = "https://abjad.github.io/appendices/changes.html"; 64 maintainers = [ lib.maintainers.davisrichard437 ]; 65 }; 66}