summaryrefslogtreecommitdiffstats
path: root/sphinx/environment/collectors
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-05 16:20:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-05 16:20:58 +0000
commit5bb0bb4be543fd5eca41673696a62ed80d493591 (patch)
treead2c464f140e86c7f178a6276d7ea4a93e3e6c92 /sphinx/environment/collectors
parentAdding upstream version 7.2.6. (diff)
downloadsphinx-upstream.tar.xz
sphinx-upstream.zip
Adding upstream version 7.3.7.upstream/7.3.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sphinx/environment/collectors')
-rw-r--r--sphinx/environment/collectors/__init__.py9
-rw-r--r--sphinx/environment/collectors/asset.py7
-rw-r--r--sphinx/environment/collectors/dependencies.py5
-rw-r--r--sphinx/environment/collectors/metadata.py11
-rw-r--r--sphinx/environment/collectors/title.py5
-rw-r--r--sphinx/environment/collectors/toctree.py9
6 files changed, 27 insertions, 19 deletions
diff --git a/sphinx/environment/collectors/__init__.py b/sphinx/environment/collectors/__init__.py
index c7e069a..c12dd50 100644
--- a/sphinx/environment/collectors/__init__.py
+++ b/sphinx/environment/collectors/__init__.py
@@ -41,19 +41,22 @@ class EnvironmentCollector:
def clear_doc(self, app: Sphinx, env: BuildEnvironment, docname: str) -> None:
"""Remove specified data of a document.
- This method is called on the removal of the document."""
+ This method is called on the removal of the document.
+ """
raise NotImplementedError
def merge_other(self, app: Sphinx, env: BuildEnvironment,
docnames: set[str], other: BuildEnvironment) -> None:
"""Merge in specified data regarding docnames from a different `BuildEnvironment`
- object which coming from a subprocess in parallel builds."""
+ object which coming from a subprocess in parallel builds.
+ """
raise NotImplementedError
def process_doc(self, app: Sphinx, doctree: nodes.document) -> None:
"""Process a document and gather specific data from it.
- This method is called after the document is read."""
+ This method is called after the document is read.
+ """
raise NotImplementedError
def get_updated_docs(self, app: Sphinx, env: BuildEnvironment) -> list[str]:
diff --git a/sphinx/environment/collectors/asset.py b/sphinx/environment/collectors/asset.py
index c2066f4..451d659 100644
--- a/sphinx/environment/collectors/asset.py
+++ b/sphinx/environment/collectors/asset.py
@@ -5,7 +5,7 @@ from __future__ import annotations
import os
from glob import glob
from os import path
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from docutils import nodes
from docutils.utils import relative_path
@@ -22,6 +22,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -121,7 +122,7 @@ class DownloadFileCollector(EnvironmentCollector):
env.dlfiles.merge_other(docnames, other.dlfiles)
def process_doc(self, app: Sphinx, doctree: nodes.document) -> None:
- """Process downloadable file paths. """
+ """Process downloadable file paths."""
for node in doctree.findall(addnodes.download_reference):
targetname = node['reftarget']
if '://' in targetname:
@@ -136,7 +137,7 @@ class DownloadFileCollector(EnvironmentCollector):
node['filename'] = app.env.dlfiles.add_file(app.env.docname, rel_filename)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_env_collector(ImageCollector)
app.add_env_collector(DownloadFileCollector)
diff --git a/sphinx/environment/collectors/dependencies.py b/sphinx/environment/collectors/dependencies.py
index df1f0c1..33b54b8 100644
--- a/sphinx/environment/collectors/dependencies.py
+++ b/sphinx/environment/collectors/dependencies.py
@@ -4,7 +4,7 @@ from __future__ import annotations
import os
from os import path
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from docutils.utils import relative_path
@@ -16,6 +16,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
class DependenciesCollector(EnvironmentCollector):
@@ -47,7 +48,7 @@ class DependenciesCollector(EnvironmentCollector):
app.env.dependencies[app.env.docname].add(relpath)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_env_collector(DependenciesCollector)
return {
diff --git a/sphinx/environment/collectors/metadata.py b/sphinx/environment/collectors/metadata.py
index 5f737a9..bef3511 100644
--- a/sphinx/environment/collectors/metadata.py
+++ b/sphinx/environment/collectors/metadata.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any, cast
+from typing import TYPE_CHECKING, cast
from docutils import nodes
@@ -11,6 +11,7 @@ from sphinx.environment.collectors import EnvironmentCollector
if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
class MetadataCollector(EnvironmentCollector):
@@ -29,7 +30,7 @@ class MetadataCollector(EnvironmentCollector):
Keep processing minimal -- just return what docutils says.
"""
- index = doctree.first_child_not_matching_class(nodes.PreBibliographic)
+ index = doctree.first_child_not_matching_class(nodes.PreBibliographic) # type: ignore[arg-type]
if index is None:
return
elif isinstance(doctree[index], nodes.docinfo):
@@ -46,11 +47,11 @@ class MetadataCollector(EnvironmentCollector):
md[field_name.astext()] = field_body.astext()
elif isinstance(node, nodes.TextElement):
# other children must be TextElement
- # see: https://docutils.sourceforge.io/docs/ref/doctree.html#bibliographic-elements # noqa: E501
+ # see: https://docutils.sourceforge.io/docs/ref/doctree.html#bibliographic-elements # NoQA: E501
md[node.__class__.__name__] = node.astext()
for name, value in md.items():
- if name in ('tocdepth',):
+ if name == 'tocdepth':
try:
value = int(value)
except ValueError:
@@ -60,7 +61,7 @@ class MetadataCollector(EnvironmentCollector):
doctree.pop(index)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_env_collector(MetadataCollector)
return {
diff --git a/sphinx/environment/collectors/title.py b/sphinx/environment/collectors/title.py
index 014d77a..0760557 100644
--- a/sphinx/environment/collectors/title.py
+++ b/sphinx/environment/collectors/title.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from docutils import nodes
@@ -12,6 +12,7 @@ from sphinx.transforms import SphinxContentsFilter
if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
class TitleCollector(EnvironmentCollector):
@@ -51,7 +52,7 @@ class TitleCollector(EnvironmentCollector):
app.env.longtitles[app.env.docname] = longtitlenode
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_env_collector(TitleCollector)
return {
diff --git a/sphinx/environment/collectors/toctree.py b/sphinx/environment/collectors/toctree.py
index 772591e..6ea148c 100644
--- a/sphinx/environment/collectors/toctree.py
+++ b/sphinx/environment/collectors/toctree.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any, TypeVar, cast
+from typing import TYPE_CHECKING, TypeVar, cast
from docutils import nodes
@@ -20,6 +20,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
N = TypeVar('N')
@@ -201,7 +202,7 @@ class TocTreeCollector(EnvironmentCollector):
numstack[-1] += 1
reference = cast(nodes.reference, subnode[0])
if depth > 0:
- number = list(numstack)
+ number = numstack.copy()
secnums[reference['anchorname']] = tuple(numstack)
else:
number = None
@@ -283,7 +284,7 @@ class TocTreeCollector(EnvironmentCollector):
secnum = secnum[:env.config.numfig_secnum_depth]
counter[secnum] = counter.get(secnum, 0) + 1
- return secnum + (counter[secnum],)
+ return (*secnum, counter[secnum])
def register_fignumber(docname: str, secnum: tuple[int, ...],
figtype: str, fignode: Element) -> None:
@@ -345,7 +346,7 @@ def _make_anchor_name(ids: list[str], num_entries: list[int]) -> str:
return anchorname
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_env_collector(TocTreeCollector)
return {