Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / fontbakery / default.nix
blob3076e6a4c469c02c98cb7cd8fc81987d266ebd06
1 { lib
2 , buildPythonPackage
3 , callPackage
4 , fetchpatch
5 , fetchPypi
6 , axisregistry
7 , babelfont
8 , beautifulsoup4
9 , beziers
10 , cmarkgfm
11 , collidoscope
12 , defcon
13 , dehinter
14 , fonttools
15 , font-v
16 , freetype-py
17 , gflanguages
18 , gfsubsets
19 , git
20 , glyphsets
21 , lxml
22 , installShellFiles
23 , jinja2
24 , munkres
25 , opentypespec
26 , ots-python
27 , packaging
28 , pip-api
29 , protobuf
30 , pytestCheckHook
31 , pytest-xdist
32 , pythonRelaxDepsHook
33 , pyyaml
34 , requests
35 , requests-mock
36 , rich
37 , setuptools
38 , setuptools-scm
39 , shaperglot
40 , stringbrewer
41 , toml
42 , unicodedata2
43 , ufo2ft
44 , ufolint
45 , vharfbuzz
48 buildPythonPackage rec {
49   pname = "fontbakery";
50   version = "0.11.2";
52   src = fetchPypi {
53     inherit pname version;
54     hash = "sha256-61EXlf+d5kJeUF41OEnGNLaOcSvFWUDFgarVvHQZYmw=";
55   };
57   pyproject = true;
59   dependencies = [
60     axisregistry
61     babelfont
62     beautifulsoup4
63     beziers
64     cmarkgfm
65     collidoscope
66     defcon
67     dehinter
68     fonttools
69     font-v
70     freetype-py
71     gflanguages
72     gfsubsets
73     glyphsets
74     lxml
75     jinja2
76     munkres
77     ots-python
78     opentypespec
79     packaging
80     pip-api
81     protobuf
82     pyyaml
83     requests
84     rich
85     shaperglot
86     stringbrewer
87     toml
88     ufolint
89     unicodedata2
90     vharfbuzz
91     ufo2ft
92   ];
93   build-system = [
94     setuptools
95     setuptools-scm
96   ];
97   nativeBuildInputs = [
98     installShellFiles
99     pythonRelaxDepsHook
100   ];
102   pythonRelaxDeps = [
103     "collidoscope"
104     "protobuf"
105     "vharfbuzz"
106   ];
108   doCheck = true;
109   nativeCheckInputs = [
110     git
111     pytestCheckHook
112     pytest-xdist
113     requests-mock
114     ufolint
115   ];
116   preCheck = ''
117     # Let the tests invoke 'fontbakery' command.
118     export PATH="$out/bin:$PATH"
119     # font-v tests assume they are running from a git checkout, although they
120     # don't care which one. Create a dummy git repo to satisfy the tests:
121     git init -b main
122     git config user.email test@example.invalid
123     git config user.name Test
124     git commit --allow-empty --message 'Dummy commit for tests'
125   '';
126   disabledTests = [
127     # These require network access:
128     "test_check_description_broken_links"
129     "test_check_description_family_update"
130     "test_check_metadata_designer_profiles"
131     "test_check_metadata_has_tags"
132     "test_check_metadata_includes_production_subsets"
133     "test_check_vertical_metrics"
134     "test_check_vertical_metrics_regressions"
135     "test_check_cjk_vertical_metrics"
136     "test_check_cjk_vertical_metrics_regressions"
137     "test_check_fontbakery_version_live_apis"
138   ];
140   postInstall = ''
141     installShellCompletion --bash --name fontbakery \
142       snippets/fontbakery.bash-completion
143   '';
145   passthru.tests.simple = callPackage ./tests.nix { };
147   meta = with lib; {
148     description = "Tool for checking the quality of font projects";
149     homepage = "https://github.com/googlefonts/fontbakery";
150     license = licenses.asl20;
151     maintainers = with maintainers; [ danc86 ];
152   };