depot/third_party/nixpkgs/pkgs/development/python-modules/abjad/default.nix
Default email 504525a148 Project import generated by Copybara.
GitOrigin-RevId: bd645e8668ec6612439a9ee7e71f7eac4099d4f6
2024-01-02 12:29:13 +01:00

67 lines
1.7 KiB
Nix

{ lib
, buildPythonPackage
, fetchPypi
, ply
, roman
, uqbar
, pythonOlder
, pytestCheckHook
, lilypond
}:
buildPythonPackage rec {
pname = "abjad";
version = "3.19";
format = "setuptools";
disabled = pythonOlder "3.10";
src = fetchPypi {
inherit pname version;
hash = "sha256-I9t3ORUKFFlMfXJsAzXhCzl1B4a9/ZNmvSX2/R44TPs=";
};
propagatedBuildInputs = [
ply
roman
uqbar
];
buildInputs = [
lilypond
];
nativeCheckInputs = [
pytestCheckHook
];
postPatch = ''
substituteInPlace abjad/io.py \
--replace 'lilypond_path = self.get_lilypond_path()' \
'lilypond_path = "${lilypond}/bin/lilypond"'
# general invocations of binary for IO purposes
substituteInPlace abjad/configuration.py \
--replace '["lilypond"' '["${lilypond}/bin/lilypond"'
# get_lilypond_version_string
'';
pythonImportsCheck = [ "abjad" ];
meta = {
description = "GNU LilyPond wrapper for Python";
longDescription = ''
Abjad helps composers build up complex pieces of music notation in
iterative and incremental ways. Use Abjad to create a symbolic
representation of all the notes, rests, chords, tuplets, beams and slurs
in any score. Because Abjad extends the Python programming language, you
can use Abjad to make systematic changes to music as you work. Because
Abjad wraps the LilyPond music notation package, you can use Abjad to
control the typographic detail of symbols on the page.
'';
license = lib.licenses.mit;
homepage = "https://abjad.github.io/";
changelog = "https://abjad.github.io/appendices/changes.html";
maintainers = [ lib.maintainers.davisrichard437 ];
};
}