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