disnake
34 строки · 963.0 Байт
1# SPDX-License-Identifier: MIT
2from __future__ import annotations3
4import logging5from typing import TYPE_CHECKING6
7from sphinx.util import logging as sphinx_logging8
9if TYPE_CHECKING:10from sphinx.application import Sphinx11
12from ._types import SphinxExtensionMeta13
14
15class NitpickFileIgnorer(logging.Filter):16def __init__(self, app: Sphinx) -> None:17self.app = app18super().__init__()19
20def filter(self, record: sphinx_logging.SphinxLogRecord) -> bool:21if getattr(record, "type", None) == "ref":22return record.location.get("refdoc") not in self.app.config.nitpick_ignore_files23return True24
25
26def setup(app: Sphinx) -> SphinxExtensionMeta:27app.add_config_value("nitpick_ignore_files", [], "")28f = NitpickFileIgnorer(app)29sphinx_logging.getLogger("sphinx.transforms.post_transforms").logger.addFilter(f)30
31return {32"parallel_read_safe": True,33"parallel_write_safe": True,34}35