1{
2 lib,
3 buildPythonPackage,
4 defcon,
5 fetchPypi,
6 fonttools,
7 gflanguages,
8 glyphslib,
9 pytestCheckHook,
10 pythonOlder,
11 pyyaml,
12 requests,
13 setuptools-scm,
14 setuptools,
15 unicodedata2,
16}:
17
18buildPythonPackage rec {
19 pname = "glyphsets";
20 version = "1.0.0";
21 pyproject = true;
22
23 disabled = pythonOlder "3.8";
24
25 src = fetchPypi {
26 inherit pname version;
27 hash = "sha256-fa+W1IGIZcn1P1xNKm1Yb/TOuf4QdDVnIvlDkOLOcLY=";
28 };
29
30 env.PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = "python";
31
32 postPatch = ''
33 substituteInPlace setup.py \
34 --replace-fail "setuptools_scm>=8.0.4,<8.1" "setuptools_scm"
35 '';
36
37 build-system = [
38 setuptools
39 setuptools-scm
40 ];
41
42 dependencies = [
43 defcon
44 fonttools
45 gflanguages
46 glyphslib
47 pyyaml
48 requests
49 unicodedata2
50 ];
51
52 nativeCheckInputs = [ pytestCheckHook ];
53
54 preCheck = ''
55 export PATH="$out/bin:$PATH"
56 '';
57
58 disabledTests = [
59 # This "test" just tries to connect to PyPI and look for newer releases. Not needed.
60 "test_dependencies"
61 # AssertionError
62 "test_definitions"
63 ];
64
65 meta = with lib; {
66 description = "Google Fonts glyph set metadata";
67 homepage = "https://github.com/googlefonts/glyphsets";
68 changelog = "https://github.com/googlefonts/glyphsets/blob/v${version}/CHANGELOG.md";
69 license = licenses.asl20;
70 maintainers = with maintainers; [ danc86 ];
71 mainProgram = "glyphsets";
72 };
73}