1{
2 lib,
3 attrs,
4 buildPythonPackage,
5 cattrs,
6 exceptiongroup,
7 fetchFromGitHub,
8 fonttools,
9 fs,
10 importlib-metadata,
11 poetry-core,
12 pytestCheckHook,
13 pythonOlder,
14 ufo2ft,
15 ufolib2,
16}:
17
18buildPythonPackage rec {
19 pname = "statmake";
20 version = "0.6.0";
21 format = "pyproject";
22
23 disabled = pythonOlder "3.7";
24
25 src = fetchFromGitHub {
26 owner = "daltonmaag";
27 repo = pname;
28 rev = "refs/tags/v${version}";
29 hash = "sha256-3BZ71JVvj7GCojM8ycu160viPj8BLJ1SiW86Df2fzsw=";
30 };
31
32 nativeBuildInputs = [ poetry-core ];
33
34 propagatedBuildInputs =
35 [
36 attrs
37 cattrs
38 fonttools
39 # required by fonttools[ufo]
40 fs
41 ]
42 ++ lib.optionals (pythonOlder "3.11") [ exceptiongroup ]
43 ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
44
45 nativeCheckInputs = [
46 pytestCheckHook
47 ufo2ft
48 ufolib2
49 ];
50
51 pythonImportsCheck = [ "statmake" ];
52
53 disabledTests = [
54 # Test requires an update as later cattrs is present in Nixpkgs
55 # https://github.com/daltonmaag/statmake/issues/42
56 "test_load_stylespace_broken_range"
57 ];
58
59 meta = with lib; {
60 description = "Applies STAT information from a Stylespace to a variable font";
61 mainProgram = "statmake";
62 homepage = "https://github.com/daltonmaag/statmake";
63 changelog = "https://github.com/daltonmaag/statmake/releases/tag/v${version}";
64 license = licenses.mit;
65 maintainers = [ ];
66 };
67}