Sphinx 7.2.5__py3-none-any.whl → 7.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Sphinx might be problematic. Click here for more details.
- sphinx/__init__.py +8 -9
- sphinx/addnodes.py +31 -28
- sphinx/application.py +9 -15
- sphinx/builders/__init__.py +5 -6
- sphinx/builders/_epub_base.py +17 -9
- sphinx/builders/changes.py +10 -5
- sphinx/builders/dirhtml.py +4 -2
- sphinx/builders/dummy.py +3 -2
- sphinx/builders/epub3.py +5 -3
- sphinx/builders/gettext.py +24 -7
- sphinx/builders/html/__init__.py +88 -96
- sphinx/builders/html/_assets.py +16 -16
- sphinx/builders/html/transforms.py +4 -2
- sphinx/builders/latex/__init__.py +40 -33
- sphinx/builders/latex/nodes.py +6 -2
- sphinx/builders/latex/transforms.py +17 -8
- sphinx/builders/latex/util.py +1 -1
- sphinx/builders/linkcheck.py +86 -27
- sphinx/builders/manpage.py +8 -6
- sphinx/builders/singlehtml.py +5 -4
- sphinx/builders/texinfo.py +18 -14
- sphinx/builders/text.py +3 -2
- sphinx/builders/xml.py +5 -2
- sphinx/cmd/build.py +119 -76
- sphinx/cmd/make_mode.py +21 -20
- sphinx/cmd/quickstart.py +13 -16
- sphinx/config.py +432 -250
- sphinx/deprecation.py +23 -13
- sphinx/directives/__init__.py +8 -8
- sphinx/directives/code.py +7 -7
- sphinx/directives/other.py +23 -13
- sphinx/directives/patches.py +7 -6
- sphinx/domains/__init__.py +2 -2
- sphinx/domains/c/__init__.py +796 -0
- sphinx/domains/c/_ast.py +1421 -0
- sphinx/domains/c/_ids.py +65 -0
- sphinx/domains/c/_parser.py +1048 -0
- sphinx/domains/c/_symbol.py +700 -0
- sphinx/domains/changeset.py +11 -7
- sphinx/domains/citation.py +5 -2
- sphinx/domains/cpp/__init__.py +1089 -0
- sphinx/domains/cpp/_ast.py +3635 -0
- sphinx/domains/cpp/_ids.py +537 -0
- sphinx/domains/cpp/_parser.py +2117 -0
- sphinx/domains/cpp/_symbol.py +1092 -0
- sphinx/domains/index.py +6 -4
- sphinx/domains/javascript.py +16 -13
- sphinx/domains/math.py +9 -4
- sphinx/domains/python/__init__.py +890 -0
- sphinx/domains/python/_annotations.py +507 -0
- sphinx/domains/python/_object.py +426 -0
- sphinx/domains/rst.py +12 -7
- sphinx/domains/{std.py → std/__init__.py} +19 -16
- sphinx/environment/__init__.py +21 -19
- sphinx/environment/adapters/indexentries.py +2 -2
- sphinx/environment/adapters/toctree.py +10 -9
- sphinx/environment/collectors/__init__.py +6 -3
- sphinx/environment/collectors/asset.py +4 -3
- sphinx/environment/collectors/dependencies.py +3 -2
- sphinx/environment/collectors/metadata.py +6 -5
- sphinx/environment/collectors/title.py +3 -2
- sphinx/environment/collectors/toctree.py +5 -4
- sphinx/errors.py +13 -2
- sphinx/events.py +14 -9
- sphinx/ext/apidoc.py +9 -11
- sphinx/ext/autodoc/__init__.py +105 -71
- sphinx/ext/autodoc/directive.py +7 -6
- sphinx/ext/autodoc/importer.py +132 -52
- sphinx/ext/autodoc/mock.py +7 -5
- sphinx/ext/autodoc/preserve_defaults.py +4 -3
- sphinx/ext/autodoc/type_comment.py +2 -1
- sphinx/ext/autodoc/typehints.py +5 -4
- sphinx/ext/autosectionlabel.py +3 -2
- sphinx/ext/autosummary/__init__.py +21 -17
- sphinx/ext/autosummary/generate.py +9 -9
- sphinx/ext/coverage.py +26 -20
- sphinx/ext/doctest.py +38 -33
- sphinx/ext/duration.py +1 -0
- sphinx/ext/extlinks.py +4 -3
- sphinx/ext/githubpages.py +3 -2
- sphinx/ext/graphviz.py +10 -7
- sphinx/ext/ifconfig.py +5 -5
- sphinx/ext/imgconverter.py +6 -5
- sphinx/ext/imgmath.py +9 -8
- sphinx/ext/inheritance_diagram.py +31 -31
- sphinx/ext/intersphinx.py +140 -23
- sphinx/ext/linkcode.py +3 -2
- sphinx/ext/mathjax.py +2 -1
- sphinx/ext/napoleon/__init__.py +12 -7
- sphinx/ext/napoleon/docstring.py +34 -32
- sphinx/ext/todo.py +10 -7
- sphinx/ext/viewcode.py +12 -11
- sphinx/extension.py +18 -8
- sphinx/highlighting.py +39 -20
- sphinx/io.py +17 -8
- sphinx/jinja2glue.py +16 -15
- sphinx/locale/__init__.py +30 -23
- sphinx/locale/ar/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ar/LC_MESSAGES/sphinx.po +818 -761
- sphinx/locale/bg/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/bg/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/bn/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/bn/LC_MESSAGES/sphinx.po +835 -778
- sphinx/locale/ca/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ca/LC_MESSAGES/sphinx.po +864 -807
- sphinx/locale/cak/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cak/LC_MESSAGES/sphinx.po +816 -759
- sphinx/locale/cs/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cs/LC_MESSAGES/sphinx.po +837 -780
- sphinx/locale/cy/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cy/LC_MESSAGES/sphinx.po +819 -762
- sphinx/locale/da/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/da/LC_MESSAGES/sphinx.po +838 -781
- sphinx/locale/de/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/de/LC_MESSAGES/sphinx.po +838 -781
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/el/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/el/LC_MESSAGES/sphinx.po +853 -796
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.po +856 -799
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/eo/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/eo/LC_MESSAGES/sphinx.po +820 -763
- sphinx/locale/es/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/es/LC_MESSAGES/sphinx.po +856 -799
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/et/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/et/LC_MESSAGES/sphinx.po +845 -788
- sphinx/locale/eu/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/eu/LC_MESSAGES/sphinx.po +837 -780
- sphinx/locale/fa/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fa/LC_MESSAGES/sphinx.po +854 -797
- sphinx/locale/fi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fi/LC_MESSAGES/sphinx.po +816 -759
- sphinx/locale/fr/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/fr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fr/LC_MESSAGES/sphinx.po +904 -847
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/gl/LC_MESSAGES/sphinx.js +54 -54
- sphinx/locale/gl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/gl/LC_MESSAGES/sphinx.po +1506 -1449
- sphinx/locale/he/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/he/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/he/LC_MESSAGES/sphinx.po +823 -766
- sphinx/locale/hi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hi/LC_MESSAGES/sphinx.po +853 -796
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/hr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hr/LC_MESSAGES/sphinx.po +844 -787
- sphinx/locale/hu/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hu/LC_MESSAGES/sphinx.po +837 -780
- sphinx/locale/id/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/id/LC_MESSAGES/sphinx.po +854 -797
- sphinx/locale/is/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/is/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/it/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/it/LC_MESSAGES/sphinx.po +837 -780
- sphinx/locale/ja/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ja/LC_MESSAGES/sphinx.po +853 -796
- sphinx/locale/ka/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ka/LC_MESSAGES/sphinx.po +848 -791
- sphinx/locale/ko/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ko/LC_MESSAGES/sphinx.po +855 -798
- sphinx/locale/lt/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/lt/LC_MESSAGES/sphinx.po +837 -780
- sphinx/locale/lv/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/lv/LC_MESSAGES/sphinx.po +837 -780
- sphinx/locale/mk/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/mk/LC_MESSAGES/sphinx.po +825 -768
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js +27 -27
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po +876 -818
- sphinx/locale/ne/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ne/LC_MESSAGES/sphinx.po +837 -780
- sphinx/locale/nl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/nl/LC_MESSAGES/sphinx.po +844 -787
- sphinx/locale/pl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pl/LC_MESSAGES/sphinx.po +845 -788
- sphinx/locale/pt/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po +908 -851
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po +837 -780
- sphinx/locale/ro/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ro/LC_MESSAGES/sphinx.po +837 -780
- sphinx/locale/ru/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ru/LC_MESSAGES/sphinx.po +838 -781
- sphinx/locale/si/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/si/LC_MESSAGES/sphinx.po +823 -766
- sphinx/locale/sk/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sk/LC_MESSAGES/sphinx.po +854 -797
- sphinx/locale/sl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sl/LC_MESSAGES/sphinx.po +832 -775
- sphinx/locale/sphinx.pot +813 -755
- sphinx/locale/sq/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/sq/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sq/LC_MESSAGES/sphinx.po +865 -808
- sphinx/locale/sr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sr/LC_MESSAGES/sphinx.po +835 -778
- sphinx/locale/sr@latin/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sr_RS/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sv/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sv/LC_MESSAGES/sphinx.po +837 -780
- sphinx/locale/ta/LC_MESSAGES/sphinx.js +54 -54
- sphinx/locale/ta/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ta/LC_MESSAGES/sphinx.po +1530 -1473
- sphinx/locale/te/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/te/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/tr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/tr/LC_MESSAGES/sphinx.po +853 -796
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po +833 -776
- sphinx/locale/ur/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ur/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/vi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/vi/LC_MESSAGES/sphinx.po +837 -780
- sphinx/locale/yue/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/yue/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po +855 -798
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po +811 -754
- sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po +879 -822
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po +811 -754
- sphinx/parsers.py +7 -5
- sphinx/project.py +18 -11
- sphinx/pycode/__init__.py +6 -5
- sphinx/pycode/ast.py +23 -8
- sphinx/pycode/parser.py +6 -5
- sphinx/registry.py +12 -6
- sphinx/roles.py +103 -57
- sphinx/search/__init__.py +17 -18
- sphinx/search/da.py +2 -2
- sphinx/search/de.py +2 -2
- sphinx/search/en.py +1 -1
- sphinx/search/es.py +2 -2
- sphinx/search/fi.py +2 -2
- sphinx/search/fr.py +2 -2
- sphinx/search/hu.py +2 -2
- sphinx/search/it.py +2 -2
- sphinx/search/ja.py +13 -22
- sphinx/search/nl.py +2 -2
- sphinx/search/no.py +2 -2
- sphinx/search/pt.py +2 -2
- sphinx/search/ro.py +1 -1
- sphinx/search/ru.py +2 -2
- sphinx/search/sv.py +2 -2
- sphinx/search/tr.py +1 -1
- sphinx/search/zh.py +2 -3
- sphinx/templates/graphviz/graphviz.css +1 -1
- sphinx/testing/fixtures.py +41 -24
- sphinx/testing/path.py +1 -1
- sphinx/testing/util.py +142 -53
- sphinx/texinputs/sphinx.xdy +1 -1
- sphinx/texinputs/sphinxlatextables.sty +1 -1
- sphinx/texinputs/sphinxpackagesubstitutefont.sty +21 -0
- sphinx/themes/agogo/layout.html +4 -4
- sphinx/themes/agogo/static/agogo.css_t +1 -1
- sphinx/themes/agogo/theme.toml +22 -0
- sphinx/themes/basic/defindex.html +1 -1
- sphinx/themes/basic/domainindex.html +1 -1
- sphinx/themes/basic/genindex-single.html +1 -1
- sphinx/themes/basic/genindex-split.html +1 -1
- sphinx/themes/basic/genindex.html +1 -1
- sphinx/themes/basic/globaltoc.html +1 -1
- sphinx/themes/basic/layout.html +1 -1
- sphinx/themes/basic/localtoc.html +1 -1
- sphinx/themes/basic/page.html +1 -1
- sphinx/themes/basic/relations.html +1 -1
- sphinx/themes/basic/search.html +5 -20
- sphinx/themes/basic/searchbox.html +3 -3
- sphinx/themes/basic/searchfield.html +3 -3
- sphinx/themes/basic/sourcelink.html +1 -1
- sphinx/themes/basic/static/basic.css_t +1 -1
- sphinx/themes/basic/static/doctools.js +1 -1
- sphinx/themes/basic/static/language_data.js_t +2 -2
- sphinx/themes/basic/static/searchtools.js +105 -60
- sphinx/themes/basic/theme.toml +23 -0
- sphinx/themes/bizstyle/layout.html +1 -6
- sphinx/themes/bizstyle/static/bizstyle.css_t +1 -1
- sphinx/themes/bizstyle/static/bizstyle.js_t +1 -1
- sphinx/themes/bizstyle/static/css3-mediaqueries_src.js +3 -3
- sphinx/themes/bizstyle/theme.toml +12 -0
- sphinx/themes/classic/layout.html +1 -1
- sphinx/themes/classic/static/classic.css_t +1 -1
- sphinx/themes/classic/static/sidebar.js_t +1 -1
- sphinx/themes/classic/theme.toml +34 -0
- sphinx/themes/default/theme.toml +2 -0
- sphinx/themes/epub/epub-cover.html +1 -1
- sphinx/themes/epub/layout.html +1 -1
- sphinx/themes/epub/static/epub.css_t +1 -1
- sphinx/themes/epub/theme.toml +10 -0
- sphinx/themes/haiku/layout.html +3 -3
- sphinx/themes/haiku/static/haiku.css_t +2 -2
- sphinx/themes/haiku/theme.toml +16 -0
- sphinx/themes/nature/static/nature.css_t +1 -1
- sphinx/themes/nature/theme.toml +6 -0
- sphinx/themes/nonav/layout.html +1 -1
- sphinx/themes/nonav/static/nonav.css_t +1 -1
- sphinx/themes/nonav/theme.toml +10 -0
- sphinx/themes/pyramid/static/epub.css_t +1 -1
- sphinx/themes/pyramid/static/pyramid.css_t +1 -1
- sphinx/themes/pyramid/theme.toml +6 -0
- sphinx/themes/scrolls/artwork/logo.svg +1 -1
- sphinx/themes/scrolls/layout.html +2 -2
- sphinx/themes/scrolls/static/scrolls.css_t +1 -1
- sphinx/themes/scrolls/theme.toml +15 -0
- sphinx/themes/sphinxdoc/static/sphinxdoc.css_t +1 -1
- sphinx/themes/sphinxdoc/theme.toml +6 -0
- sphinx/themes/traditional/static/traditional.css_t +1 -1
- sphinx/themes/traditional/theme.toml +9 -0
- sphinx/theming.py +427 -131
- sphinx/transforms/__init__.py +21 -24
- sphinx/transforms/compact_bullet_list.py +5 -5
- sphinx/transforms/i18n.py +30 -28
- sphinx/transforms/post_transforms/__init__.py +9 -7
- sphinx/transforms/post_transforms/code.py +4 -1
- sphinx/transforms/post_transforms/images.py +17 -13
- sphinx/transforms/references.py +3 -1
- sphinx/util/__init__.py +15 -11
- sphinx/util/_io.py +34 -0
- sphinx/util/_pathlib.py +23 -18
- sphinx/util/build_phase.py +1 -0
- sphinx/util/cfamily.py +19 -11
- sphinx/util/console.py +101 -21
- sphinx/util/display.py +3 -2
- sphinx/util/docfields.py +12 -8
- sphinx/util/docutils.py +21 -35
- sphinx/util/exceptions.py +3 -2
- sphinx/util/fileutil.py +5 -5
- sphinx/util/http_date.py +9 -2
- sphinx/util/i18n.py +40 -9
- sphinx/util/inspect.py +317 -245
- sphinx/util/inventory.py +22 -5
- sphinx/util/logging.py +81 -7
- sphinx/util/matching.py +2 -1
- sphinx/util/math.py +1 -2
- sphinx/util/nodes.py +39 -29
- sphinx/util/osutil.py +25 -6
- sphinx/util/parallel.py +6 -1
- sphinx/util/requests.py +8 -5
- sphinx/util/rst.py +8 -6
- sphinx/util/tags.py +3 -3
- sphinx/util/template.py +8 -3
- sphinx/util/typing.py +76 -42
- sphinx/versioning.py +6 -2
- sphinx/writers/html.py +1 -1
- sphinx/writers/html5.py +17 -13
- sphinx/writers/latex.py +12 -12
- sphinx/writers/manpage.py +13 -7
- sphinx/writers/texinfo.py +13 -10
- sphinx/writers/text.py +13 -23
- sphinx/writers/xml.py +1 -1
- sphinx-7.2.5.dist-info/LICENSE → sphinx-7.3.0.dist-info/LICENSE.rst +1 -1
- {sphinx-7.2.5.dist-info → sphinx-7.3.0.dist-info}/METADATA +13 -12
- sphinx-7.3.0.dist-info/RECORD +581 -0
- sphinx/domains/c.py +0 -3906
- sphinx/domains/cpp.py +0 -8233
- sphinx/domains/python.py +0 -1769
- sphinx/themes/agogo/theme.conf +0 -20
- sphinx/themes/basic/theme.conf +0 -16
- sphinx/themes/bizstyle/theme.conf +0 -10
- sphinx/themes/classic/theme.conf +0 -32
- sphinx/themes/default/theme.conf +0 -2
- sphinx/themes/epub/theme.conf +0 -8
- sphinx/themes/haiku/theme.conf +0 -14
- sphinx/themes/nature/theme.conf +0 -4
- sphinx/themes/nonav/theme.conf +0 -8
- sphinx/themes/pyramid/theme.conf +0 -4
- sphinx/themes/scrolls/theme.conf +0 -13
- sphinx/themes/sphinxdoc/theme.conf +0 -4
- sphinx/themes/traditional/theme.conf +0 -7
- sphinx-7.2.5.dist-info/RECORD +0 -569
- {sphinx-7.2.5.dist-info → sphinx-7.3.0.dist-info}/WHEEL +0 -0
- {sphinx-7.2.5.dist-info → sphinx-7.3.0.dist-info}/entry_points.txt +0 -0
sphinx/jinja2glue.py
CHANGED
|
@@ -8,17 +8,12 @@ from typing import TYPE_CHECKING, Any, Callable
|
|
|
8
8
|
|
|
9
9
|
from jinja2 import BaseLoader, FileSystemLoader, TemplateNotFound
|
|
10
10
|
from jinja2.sandbox import SandboxedEnvironment
|
|
11
|
-
from jinja2.utils import open_if_exists
|
|
11
|
+
from jinja2.utils import open_if_exists, pass_context
|
|
12
12
|
|
|
13
13
|
from sphinx.application import TemplateBridge
|
|
14
14
|
from sphinx.util import logging
|
|
15
15
|
from sphinx.util.osutil import mtimes_of_files
|
|
16
16
|
|
|
17
|
-
try:
|
|
18
|
-
from jinja2.utils import pass_context
|
|
19
|
-
except ImportError:
|
|
20
|
-
from jinja2 import contextfunction as pass_context
|
|
21
|
-
|
|
22
17
|
if TYPE_CHECKING:
|
|
23
18
|
from collections.abc import Iterator
|
|
24
19
|
|
|
@@ -60,7 +55,7 @@ def _todim(val: int | str) -> str:
|
|
|
60
55
|
|
|
61
56
|
|
|
62
57
|
def _slice_index(values: list, slices: int) -> Iterator[list]:
|
|
63
|
-
seq =
|
|
58
|
+
seq = values.copy()
|
|
64
59
|
length = 0
|
|
65
60
|
for value in values:
|
|
66
61
|
length += 1 + len(value[1][1]) # count includes subitems
|
|
@@ -70,7 +65,7 @@ def _slice_index(values: list, slices: int) -> Iterator[list]:
|
|
|
70
65
|
count = 0
|
|
71
66
|
start = offset
|
|
72
67
|
if slices == slice_number + 1: # last column
|
|
73
|
-
offset = len(seq) #
|
|
68
|
+
offset = len(seq) # NoQA: SIM113
|
|
74
69
|
else:
|
|
75
70
|
for value in values[offset:]:
|
|
76
71
|
count += 1 + len(value[1][1])
|
|
@@ -100,6 +95,7 @@ class idgen:
|
|
|
100
95
|
def __next__(self) -> int:
|
|
101
96
|
self.id += 1
|
|
102
97
|
return self.id
|
|
98
|
+
|
|
103
99
|
next = __next__ # Python 2/Jinja compatibility
|
|
104
100
|
|
|
105
101
|
|
|
@@ -138,6 +134,7 @@ class SphinxFileSystemLoader(FileSystemLoader):
|
|
|
138
134
|
return path.getmtime(filename) == mtime
|
|
139
135
|
except OSError:
|
|
140
136
|
return False
|
|
137
|
+
|
|
141
138
|
return contents, filename, uptodate
|
|
142
139
|
|
|
143
140
|
|
|
@@ -170,8 +167,9 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
|
|
|
170
167
|
# prepend explicit template paths
|
|
171
168
|
self.templatepathlen = len(builder.config.templates_path)
|
|
172
169
|
if builder.config.templates_path:
|
|
173
|
-
cfg_templates_path = [
|
|
174
|
-
|
|
170
|
+
cfg_templates_path = [
|
|
171
|
+
path.join(builder.confdir, tp) for tp in builder.config.templates_path
|
|
172
|
+
]
|
|
175
173
|
pathchain[0:0] = cfg_templates_path
|
|
176
174
|
loaderchain[0:0] = cfg_templates_path
|
|
177
175
|
|
|
@@ -183,8 +181,7 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
|
|
|
183
181
|
|
|
184
182
|
use_i18n = builder.app.translator is not None
|
|
185
183
|
extensions = ['jinja2.ext.i18n'] if use_i18n else []
|
|
186
|
-
self.environment = SandboxedEnvironment(loader=self,
|
|
187
|
-
extensions=extensions)
|
|
184
|
+
self.environment = SandboxedEnvironment(loader=self, extensions=extensions)
|
|
188
185
|
self.environment.filters['tobool'] = _tobool
|
|
189
186
|
self.environment.filters['toint'] = _toint
|
|
190
187
|
self.environment.filters['todim'] = _todim
|
|
@@ -194,7 +191,10 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
|
|
|
194
191
|
self.environment.globals['accesskey'] = pass_context(accesskey)
|
|
195
192
|
self.environment.globals['idgen'] = idgen
|
|
196
193
|
if use_i18n:
|
|
197
|
-
|
|
194
|
+
# ``install_gettext_translations`` is injected by the ``jinja2.ext.i18n`` extension
|
|
195
|
+
self.environment.install_gettext_translations( # type: ignore[attr-defined]
|
|
196
|
+
builder.app.translator
|
|
197
|
+
)
|
|
198
198
|
|
|
199
199
|
def render(self, template: str, context: dict) -> str: # type: ignore[override]
|
|
200
200
|
return self.environment.get_template(template).render(context)
|
|
@@ -211,11 +211,12 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
|
|
|
211
211
|
loaders = self.loaders
|
|
212
212
|
# exclamation mark starts search from theme
|
|
213
213
|
if template.startswith('!'):
|
|
214
|
-
loaders = loaders[self.templatepathlen:]
|
|
214
|
+
loaders = loaders[self.templatepathlen :]
|
|
215
215
|
template = template[1:]
|
|
216
216
|
for loader in loaders:
|
|
217
217
|
try:
|
|
218
218
|
return loader.get_source(environment, template)
|
|
219
219
|
except TemplateNotFound:
|
|
220
220
|
pass
|
|
221
|
-
|
|
221
|
+
msg = f'{template!r} not found in {self.environment.loader.pathchain}' # type: ignore[union-attr]
|
|
222
|
+
raise TemplateNotFound(msg)
|
sphinx/locale/__init__.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import locale
|
|
6
|
+
import sys
|
|
6
7
|
from gettext import NullTranslations, translation
|
|
7
8
|
from os import path
|
|
8
9
|
from typing import TYPE_CHECKING
|
|
@@ -17,6 +18,7 @@ class _TranslationProxy:
|
|
|
17
18
|
The proxy implementation attempts to be as complete as possible, so that
|
|
18
19
|
the lazy objects should mostly work as expected, for example for sorting.
|
|
19
20
|
"""
|
|
21
|
+
|
|
20
22
|
__slots__ = '_catalogue', '_namespace', '_message'
|
|
21
23
|
|
|
22
24
|
def __init__(self, catalogue: str, namespace: str, message: str) -> None:
|
|
@@ -50,8 +52,10 @@ class _TranslationProxy:
|
|
|
50
52
|
try:
|
|
51
53
|
return f'i{self.__str__()!r}'
|
|
52
54
|
except Exception:
|
|
53
|
-
return (
|
|
54
|
-
|
|
55
|
+
return (
|
|
56
|
+
self.__class__.__name__
|
|
57
|
+
+ f'({self._catalogue}, {self._namespace}, {self._message})'
|
|
58
|
+
)
|
|
55
59
|
|
|
56
60
|
def __add__(self, other: str) -> str:
|
|
57
61
|
return self.__str__() + other
|
|
@@ -71,22 +75,22 @@ class _TranslationProxy:
|
|
|
71
75
|
def __rmul__(self, other: Any) -> str:
|
|
72
76
|
return other * self.__str__()
|
|
73
77
|
|
|
74
|
-
def __hash__(self):
|
|
78
|
+
def __hash__(self) -> int:
|
|
75
79
|
return hash(self.__str__())
|
|
76
80
|
|
|
77
|
-
def __eq__(self, other):
|
|
81
|
+
def __eq__(self, other: object) -> bool:
|
|
78
82
|
return self.__str__() == other
|
|
79
83
|
|
|
80
|
-
def __lt__(self, string):
|
|
84
|
+
def __lt__(self, string: str) -> bool:
|
|
81
85
|
return self.__str__() < string
|
|
82
86
|
|
|
83
|
-
def __contains__(self, char):
|
|
87
|
+
def __contains__(self, char: str) -> bool:
|
|
84
88
|
return char in self.__str__()
|
|
85
89
|
|
|
86
|
-
def __len__(self):
|
|
90
|
+
def __len__(self) -> int:
|
|
87
91
|
return len(self.__str__())
|
|
88
92
|
|
|
89
|
-
def __getitem__(self, index):
|
|
93
|
+
def __getitem__(self, index: int | slice) -> str:
|
|
90
94
|
return self.__str__()[index]
|
|
91
95
|
|
|
92
96
|
|
|
@@ -153,13 +157,15 @@ def init_console(
|
|
|
153
157
|
"""
|
|
154
158
|
if locale_dir is None:
|
|
155
159
|
locale_dir = _LOCALE_DIR
|
|
156
|
-
|
|
157
|
-
# encoding is ignored
|
|
158
|
-
language, _ = locale.getlocale(locale.LC_MESSAGES)
|
|
159
|
-
except AttributeError:
|
|
160
|
-
# LC_MESSAGES is not always defined. Fallback to the default language
|
|
161
|
-
# in case it is not.
|
|
160
|
+
if sys.platform == 'win32':
|
|
162
161
|
language = None
|
|
162
|
+
else:
|
|
163
|
+
try:
|
|
164
|
+
# encoding is ignored
|
|
165
|
+
language, _ = locale.getlocale(locale.LC_MESSAGES)
|
|
166
|
+
except AttributeError:
|
|
167
|
+
# Fallback to the default language in case LC_MESSAGES is not defined.
|
|
168
|
+
language = None
|
|
163
169
|
return init([locale_dir], language, catalog, 'console')
|
|
164
170
|
|
|
165
171
|
|
|
@@ -196,10 +202,11 @@ def get_translation(catalog: str, namespace: str = 'general') -> Callable[[str],
|
|
|
196
202
|
|
|
197
203
|
.. versionadded:: 1.8
|
|
198
204
|
"""
|
|
205
|
+
|
|
199
206
|
def gettext(message: str) -> str:
|
|
200
207
|
if not is_translator_registered(catalog, namespace):
|
|
201
208
|
# not initialized yet
|
|
202
|
-
return _TranslationProxy(catalog, namespace, message) # type: ignore[return-value] #
|
|
209
|
+
return _TranslationProxy(catalog, namespace, message) # type: ignore[return-value] # NoQA: E501
|
|
203
210
|
else:
|
|
204
211
|
translator = get_translator(catalog, namespace)
|
|
205
212
|
return translator.gettext(message)
|
|
@@ -219,13 +226,13 @@ __ = get_translation('sphinx', 'console')
|
|
|
219
226
|
# labels
|
|
220
227
|
admonitionlabels = {
|
|
221
228
|
'attention': _('Attention'),
|
|
222
|
-
'caution':
|
|
223
|
-
'danger':
|
|
224
|
-
'error':
|
|
225
|
-
'hint':
|
|
229
|
+
'caution': _('Caution'),
|
|
230
|
+
'danger': _('Danger'),
|
|
231
|
+
'error': _('Error'),
|
|
232
|
+
'hint': _('Hint'),
|
|
226
233
|
'important': _('Important'),
|
|
227
|
-
'note':
|
|
228
|
-
'seealso':
|
|
229
|
-
'tip':
|
|
230
|
-
'warning':
|
|
234
|
+
'note': _('Note'),
|
|
235
|
+
'seealso': _('See also'),
|
|
236
|
+
'tip': _('Tip'),
|
|
237
|
+
'warning': _('Warning'),
|
|
231
238
|
}
|
|
Binary file
|