1{
2 lib,
3 appdirs,
4 buildPythonPackage,
5 click,
6 diskcache,
7 fetchPypi,
8 jinja2,
9 jsonschema,
10 pytestCheckHook,
11 pythonOlder,
12 pyyaml,
13 setuptools,
14 setuptools-scm,
15 yamllint,
16}:
17
18buildPythonPackage rec {
19 pname = "glean-parser";
20 version = "14.1.2";
21 format = "setuptools";
22
23 disabled = pythonOlder "3.8";
24
25 src = fetchPypi {
26 pname = "glean_parser";
27 inherit version;
28 hash = "sha256-OL59Tg+rD4M0DjQnkU4IqGMcf6sIioxg6bVDyrbqgww=";
29 };
30
31 postPatch = ''
32 substituteInPlace setup.py \
33 --replace "pytest-runner" "" \
34 --replace "MarkupSafe>=1.1.1,<=2.0.1" "MarkupSafe>=1.1.1"
35 '';
36
37 nativeBuildInputs = [ setuptools-scm ];
38
39 propagatedBuildInputs = [
40 appdirs
41 click
42 diskcache
43 jinja2
44 jsonschema
45 pyyaml
46 setuptools
47 yamllint
48 ];
49
50 nativeCheckInputs = [ pytestCheckHook ];
51
52 preCheck = ''
53 export HOME=$TMPDIR
54 '';
55
56 disabledTests = [
57 # Network access
58 "test_validate_ping"
59 "test_logging"
60 # Fails since yamllint 1.27.x
61 "test_yaml_lint"
62 ];
63
64 pythonImportsCheck = [ "glean_parser" ];
65
66 meta = with lib; {
67 description = "Tools for parsing the metadata for Mozilla's glean telemetry SDK";
68 mainProgram = "glean_parser";
69 homepage = "https://github.com/mozilla/glean_parser";
70 changelog = "https://github.com/mozilla/glean_parser/blob/v${version}/CHANGELOG.md";
71 license = licenses.mpl20;
72 maintainers = [ ];
73 };
74}