1{
2 lib,
3 booleanoperations,
4 buildPythonPackage,
5 cffsubr,
6 compreffor,
7 cu2qu,
8 defcon,
9 fetchPypi,
10 fontmath,
11 fonttools,
12 pytestCheckHook,
13 pythonOlder,
14 pythonRelaxDepsHook,
15 setuptools-scm,
16 skia-pathops,
17 ufolib2,
18}:
19
20buildPythonPackage rec {
21 pname = "ufo2ft";
22 version = "3.2.2";
23 pyproject = true;
24
25 disabled = pythonOlder "3.8";
26
27 src = fetchPypi {
28 inherit pname version;
29 hash = "sha256-5HWhRxKs4KQdC1v0LaLgndgMwtcGKLVz9tYtesdJ8Oo=";
30 };
31
32 nativeBuildInputs = [
33 setuptools-scm
34 pythonRelaxDepsHook
35 ];
36
37 pythonRelaxDeps = [ "cffsubr" ];
38
39 propagatedBuildInputs = [
40 cu2qu
41 fontmath
42 fonttools
43 defcon
44 compreffor
45 booleanoperations
46 cffsubr
47 ufolib2
48 skia-pathops
49 ] ++ fonttools.optional-dependencies.lxml ++ fonttools.optional-dependencies.ufo;
50
51 nativeCheckInputs = [ pytestCheckHook ];
52
53 disabledTests = [
54 # Do not depend on skia.
55 "test_removeOverlaps_CFF_pathops"
56 "test_removeOverlaps_pathops"
57 "test_custom_filters_as_argument"
58 "test_custom_filters_as_argument"
59 # Some integration tests fail
60 "test_compileVariableCFF2"
61 "test_compileVariableTTF"
62 "test_drop_glyph_names_variable"
63 "test_drop_glyph_names_variable"
64 ];
65
66 pythonImportsCheck = [ "ufo2ft" ];
67
68 meta = with lib; {
69 description = "Bridge from UFOs to FontTools objects";
70 homepage = "https://github.com/googlefonts/ufo2ft";
71 changelog = "https://github.com/googlefonts/ufo2ft/releases/tag/v${version}";
72 license = licenses.mit;
73 maintainers = with maintainers; [ ];
74 };
75}