1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 gflanguages,
6 num2words,
7 protobuf,
8 pytestCheckHook,
9 pythonOlder,
10 pyyaml,
11 setuptools-scm,
12 setuptools,
13 strictyaml,
14 termcolor,
15 ufo2ft,
16 vharfbuzz,
17 youseedee,
18}:
19
20buildPythonPackage rec {
21 pname = "shaperglot";
22 version = "0.6.4";
23 pyproject = true;
24
25 disabled = pythonOlder "3.7";
26
27 src = fetchFromGitHub {
28 owner = "googlefonts";
29 repo = "shaperglot";
30 tag = "v${version}";
31 hash = "sha256-O6z7TJpC54QkqX5/G1HKSvaDYty7B9BnCQ4FpsLsEMs=";
32 };
33
34 env.PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = "python";
35
36 postPatch = ''
37 substituteInPlace pyproject.toml \
38 --replace-fail "setuptools>=75.0.0" "setuptools"
39 '';
40
41 build-system = [
42 setuptools
43 setuptools-scm
44 ];
45
46 dependencies = [
47 gflanguages
48 num2words
49 protobuf
50 pyyaml
51 strictyaml
52 termcolor
53 ufo2ft
54 vharfbuzz
55 youseedee
56 ];
57
58 nativeCheckInputs = [ pytestCheckHook ];
59
60 pythonImportsCheck = [ "shaperglot" ];
61
62 meta = with lib; {
63 description = "Tool to test OpenType fonts for language support";
64 homepage = "https://github.com/googlefonts/shaperglot";
65 changelog = "https://github.com/googlefonts/shaperglot/releases/tag/v${version}";
66 license = licenses.asl20;
67 maintainers = with maintainers; [ danc86 ];
68 mainProgram = "shaperglot";
69 };
70}