1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 attrs,
6 fonttools,
7 pytestCheckHook,
8 setuptools-scm,
9
10 # optionals
11 cattrs,
12 lxml,
13 orjson,
14 msgpack,
15}:
16
17buildPythonPackage rec {
18 pname = "ufolib2";
19 version = "0.18.1";
20 format = "pyproject";
21
22 src = fetchFromGitHub {
23 owner = "fonttools";
24 repo = "ufoLib2";
25 tag = "v${version}";
26 hash = "sha256-YFGgPpiEurPaTUFaSMsVBKS4Ob+vPyZhputfRE39wtg=";
27 };
28
29 build-system = [ setuptools-scm ];
30
31 dependencies = [
32 attrs
33 fonttools
34 ]
35 ++ fonttools.optional-dependencies.ufo;
36
37 optional-dependencies = {
38 lxml = [ lxml ];
39 converters = [ cattrs ];
40 json = [
41 cattrs
42 orjson
43 ];
44 msgpack = [
45 cattrs
46 msgpack
47 ];
48 };
49
50 nativeCheckInputs = [
51 pytestCheckHook
52 ]
53 ++ lib.flatten (lib.attrValues optional-dependencies);
54
55 pythonImportsCheck = [ "ufoLib2" ];
56
57 meta = with lib; {
58 changelog = "https://github.com/fonttools/ufoLib2/releases/tag/${src.tag}";
59 description = "Library to deal with UFO font sources";
60 homepage = "https://github.com/fonttools/ufoLib2";
61 license = licenses.mit;
62 maintainers = [ ];
63 };
64}