Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, jinja2
5, markdown
6, markupsafe
7, mkdocs
8, mkdocs-autorefs
9, pymdown-extensions
10, pytestCheckHook
11, pdm-pep517
12, pythonOlder
13}:
14
15buildPythonPackage rec {
16 pname = "mkdocstrings";
17 version = "0.19.1";
18 format = "pyproject";
19
20 disabled = pythonOlder "3.7";
21
22 src = fetchFromGitHub {
23 owner = "mkdocstrings";
24 repo = pname;
25 rev = version;
26 sha256 = "sha256-VCWUV+3vXmKbAXImAqY/K4vsA64gHBg83VkxbJua/ao=";
27 };
28
29 nativeBuildInputs = [
30 pdm-pep517
31 ];
32
33 propagatedBuildInputs = [
34 jinja2
35 markdown
36 markupsafe
37 mkdocs
38 mkdocs-autorefs
39 pymdown-extensions
40 ];
41
42 checkInputs = [
43 pytestCheckHook
44 ];
45
46 postPatch = ''
47 substituteInPlace pyproject.toml \
48 --replace 'dynamic = ["version"]' 'version = "${version}"' \
49 --replace 'license = "ISC"' 'license = {text = "ISC"}'
50 '';
51
52 pythonImportsCheck = [
53 "mkdocstrings"
54 ];
55
56 disabledTestPaths = [
57 # Circular dependencies
58 "tests/test_extension.py"
59 ];
60
61 meta = with lib; {
62 description = "Automatic documentation from sources for MkDocs";
63 homepage = "https://github.com/mkdocstrings/mkdocstrings";
64 changelog = "https://github.com/mkdocstrings/mkdocstrings/blob/${version}/CHANGELOG.md";
65 license = licenses.isc;
66 maintainers = with maintainers; [ fab ];
67 };
68}