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.17.1";
20 format = "pyproject";
21
22 src = fetchFromGitHub {
23 owner = "fonttools";
24 repo = "ufoLib2";
25 tag = "v${version}";
26 hash = "sha256-pVwQOVtUUDphBZIUoiIf19DdZ+t7uS32Ery8+e2ZLlE=";
27 };
28
29 build-system = [ setuptools-scm ];
30
31 dependencies = [
32 attrs
33 fonttools
34 ] ++ fonttools.optional-dependencies.ufo;
35
36 optional-dependencies = {
37 lxml = [ lxml ];
38 converters = [ cattrs ];
39 json = [
40 cattrs
41 orjson
42 ];
43 msgpack = [
44 cattrs
45 msgpack
46 ];
47 };
48
49 nativeCheckInputs = [
50 pytestCheckHook
51 ] ++ lib.flatten (lib.attrValues optional-dependencies);
52
53 pythonImportsCheck = [ "ufoLib2" ];
54
55 meta = with lib; {
56 changelog = "https://github.com/fonttools/ufoLib2/releases/tag/${src.tag}";
57 description = "Library to deal with UFO font sources";
58 homepage = "https://github.com/fonttools/ufoLib2";
59 license = licenses.mit;
60 maintainers = [ ];
61 };
62}