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