vuls: init at 0.27.0 (#348530)
[NixPkgs.git] / pkgs / tools / nix / nixos-render-docs / default.nix
blob956e0fcfc6e09f2351c90d27d7e7b6a1148b1ff8
1 { lib
2 , python3
3 , runCommand
4 }:
6 let
7   python = python3.override {
8     self = python;
9     packageOverrides = final: prev: {
10       markdown-it-py = prev.markdown-it-py.overridePythonAttrs (_: {
11         doCheck = false;
12       });
13       mdit-py-plugins = prev.mdit-py-plugins.overridePythonAttrs (_: {
14         doCheck = false;
15       });
16     };
17   };
20 python.pkgs.buildPythonApplication rec {
21   pname = "nixos-render-docs";
22   version = "0.0";
23   format = "pyproject";
25   src = lib.cleanSourceWith {
26     filter = name: type:
27       lib.cleanSourceFilter name type
28       && ! (type == "directory"
29             && builtins.elem
30               (baseNameOf name)
31               [
32                 ".pytest_cache"
33                 ".mypy_cache"
34                 "__pycache__"
35               ]);
36     src = ./src;
37   };
39   nativeBuildInputs = with python.pkgs; [
40     setuptools
41     pytestCheckHook
42   ];
44   propagatedBuildInputs = with python.pkgs; [
45     markdown-it-py
46     mdit-py-plugins
47   ];
49   pytestFlagsArray = [ "-vvrP" "tests/" ];
51   # NOTE this is a CI test rather than a build-time test because we want to keep the
52   # build closures small. mypy has an unreasonably large build closure for docs builds.
53   passthru.tests.typing = runCommand "${pname}-mypy" {
54     nativeBuildInputs = [
55       (python3.withPackages (ps: with ps; [ mypy pytest markdown-it-py mdit-py-plugins ]))
56     ];
57   } ''
58     mypy --strict ${src}
59     touch $out
60   '';
62   meta = with lib; {
63     description = "Renderer for NixOS manual and option docs";
64     mainProgram = "nixos-render-docs";
65     license = licenses.mit;
66     maintainers = [ ];
67   };