{ lib, buildPythonPackage, fetchFromGitHub, importlib-metadata, jinja2, markdown, markupsafe, mkdocs, mkdocs-autorefs, pdm-backend, pymdown-extensions, pytestCheckHook, pythonOlder, dirty-equals, }: buildPythonPackage rec { pname = "mkdocstrings"; version = "0.30.1"; pyproject = true; src = fetchFromGitHub { owner = "mkdocstrings"; repo = "mkdocstrings"; tag = version; hash = "sha256-BfqxL35prq+pvD21w0BOJx/ls8og+LjtGdOAZlHYGVE="; }; postPatch = '' substituteInPlace pyproject.toml \ --replace-fail 'dynamic = ["version"]' 'version = "${version}"' ''; build-system = [ pdm-backend ]; dependencies = [ jinja2 markdown markupsafe mkdocs mkdocs-autorefs pymdown-extensions ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; nativeCheckInputs = [ pytestCheckHook dirty-equals ]; pythonImportsCheck = [ "mkdocstrings" ]; disabledTestPaths = [ # Circular dependencies "tests/test_api.py" "tests/test_extension.py" ]; disabledTests = [ # Not all requirements are available "test_disabling_plugin" # Circular dependency on mkdocstrings-python "test_extended_templates" "test_nested_autodoc[ext_markdown0]" ]; meta = { description = "Automatic documentation from sources for MkDocs"; homepage = "https://github.com/mkdocstrings/mkdocstrings"; changelog = "https://github.com/mkdocstrings/mkdocstrings/blob/${src.tag}/CHANGELOG.md"; license = lib.licenses.isc; maintainers = with lib.maintainers; [ fab ]; }; }