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