Sphinx 8.0.2__py3-none-any.whl → 8.1.1__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 +6 -3
- sphinx/_cli/__init__.py +40 -20
- sphinx/_cli/util/colour.py +5 -4
- sphinx/_cli/util/errors.py +28 -11
- sphinx/application.py +361 -38
- sphinx/builders/__init__.py +229 -83
- sphinx/builders/_epub_base.py +118 -71
- sphinx/builders/changes.py +39 -21
- sphinx/builders/dirhtml.py +4 -4
- sphinx/builders/dummy.py +2 -5
- sphinx/builders/epub3.py +43 -22
- sphinx/builders/gettext.py +43 -25
- sphinx/builders/html/__init__.py +284 -218
- sphinx/builders/html/_assets.py +62 -26
- sphinx/builders/html/_build_info.py +76 -0
- sphinx/builders/html/transforms.py +11 -9
- sphinx/builders/latex/__init__.py +139 -81
- sphinx/builders/latex/constants.py +7 -7
- sphinx/builders/latex/nodes.py +3 -2
- sphinx/builders/latex/theming.py +7 -5
- sphinx/builders/latex/transforms.py +27 -19
- sphinx/builders/linkcheck.py +146 -72
- sphinx/builders/manpage.py +30 -13
- sphinx/builders/singlehtml.py +22 -14
- sphinx/builders/texinfo.py +67 -37
- sphinx/builders/text.py +5 -5
- sphinx/builders/xml.py +6 -9
- sphinx/cmd/build.py +282 -103
- sphinx/cmd/make_mode.py +106 -63
- sphinx/cmd/quickstart.py +341 -145
- sphinx/config.py +45 -12
- sphinx/deprecation.py +8 -2
- sphinx/directives/__init__.py +28 -19
- sphinx/directives/code.py +86 -56
- sphinx/directives/other.py +50 -36
- sphinx/directives/patches.py +29 -19
- sphinx/domains/__init__.py +20 -120
- sphinx/domains/_domains_container.py +281 -0
- sphinx/domains/_index.py +110 -0
- sphinx/domains/c/__init__.py +3 -3
- sphinx/domains/c/_parser.py +10 -6
- sphinx/domains/changeset.py +5 -3
- sphinx/domains/citation.py +5 -3
- sphinx/domains/cpp/__init__.py +9 -11
- sphinx/domains/cpp/_parser.py +8 -7
- sphinx/domains/index.py +3 -3
- sphinx/domains/javascript.py +12 -7
- sphinx/domains/math.py +2 -2
- sphinx/domains/python/__init__.py +10 -5
- sphinx/domains/python/_object.py +1 -1
- sphinx/domains/rst.py +5 -5
- sphinx/domains/std/__init__.py +16 -11
- sphinx/environment/__init__.py +202 -146
- sphinx/environment/adapters/asset.py +3 -2
- sphinx/environment/adapters/indexentries.py +74 -33
- sphinx/environment/adapters/toctree.py +100 -43
- sphinx/environment/collectors/__init__.py +19 -8
- sphinx/environment/collectors/asset.py +47 -15
- sphinx/environment/collectors/dependencies.py +8 -4
- sphinx/environment/collectors/metadata.py +7 -2
- sphinx/environment/collectors/title.py +7 -2
- sphinx/environment/collectors/toctree.py +54 -22
- sphinx/errors.py +4 -1
- sphinx/events.py +314 -7
- sphinx/ext/apidoc.py +42 -18
- sphinx/ext/autodoc/__init__.py +52 -24
- sphinx/ext/autodoc/importer.py +6 -9
- sphinx/ext/autosectionlabel.py +1 -2
- sphinx/ext/autosummary/__init__.py +3 -1
- sphinx/ext/autosummary/generate.py +28 -14
- sphinx/ext/coverage.py +7 -7
- sphinx/ext/doctest.py +4 -8
- sphinx/ext/duration.py +6 -5
- sphinx/ext/inheritance_diagram.py +1 -1
- sphinx/ext/intersphinx/_cli.py +6 -4
- sphinx/ext/intersphinx/_load.py +77 -32
- sphinx/ext/intersphinx/_resolve.py +173 -79
- sphinx/ext/intersphinx/_shared.py +7 -5
- sphinx/ext/linkcode.py +7 -1
- sphinx/ext/mathjax.py +1 -2
- sphinx/ext/napoleon/__init__.py +37 -24
- sphinx/ext/napoleon/docstring.py +202 -134
- sphinx/ext/todo.py +5 -3
- sphinx/highlighting.py +9 -2
- sphinx/io.py +1 -1
- sphinx/jinja2glue.py +27 -6
- sphinx/locale/__init__.py +6 -2
- sphinx/locale/ar/LC_MESSAGES/sphinx.js +8 -1
- sphinx/locale/ar/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ar/LC_MESSAGES/sphinx.po +2246 -2288
- sphinx/locale/bg/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/bg/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/bg/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/bn/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/bn/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/bn/LC_MESSAGES/sphinx.po +2349 -2395
- sphinx/locale/ca/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/ca/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ca/LC_MESSAGES/sphinx.po +2846 -2892
- sphinx/locale/cak/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/cak/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cak/LC_MESSAGES/sphinx.po +2213 -2259
- sphinx/locale/cs/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/cs/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cs/LC_MESSAGES/sphinx.po +2225 -2269
- sphinx/locale/cy/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/cy/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cy/LC_MESSAGES/sphinx.po +2403 -2447
- sphinx/locale/da/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/da/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/da/LC_MESSAGES/sphinx.po +2214 -2260
- sphinx/locale/de/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/de/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/de/LC_MESSAGES/sphinx.po +2230 -2276
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/el/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/el/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/el/LC_MESSAGES/sphinx.po +2619 -2665
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.po +2519 -2565
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/eo/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/eo/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/eo/LC_MESSAGES/sphinx.po +2232 -2278
- sphinx/locale/es/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/es/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/es/LC_MESSAGES/sphinx.po +2516 -2561
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.po +2114 -2159
- sphinx/locale/et/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/et/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/et/LC_MESSAGES/sphinx.po +2317 -2363
- sphinx/locale/eu/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/eu/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/eu/LC_MESSAGES/sphinx.po +2218 -2264
- sphinx/locale/fa/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/fa/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fa/LC_MESSAGES/sphinx.po +2505 -2551
- sphinx/locale/fi/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/fi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fi/LC_MESSAGES/sphinx.po +2303 -2349
- sphinx/locale/fr/LC_MESSAGES/sphinx.js +6 -2
- sphinx/locale/fr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fr/LC_MESSAGES/sphinx.po +2863 -2908
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po +2114 -2159
- sphinx/locale/gl/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/gl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/gl/LC_MESSAGES/sphinx.po +2571 -2617
- sphinx/locale/he/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/he/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/he/LC_MESSAGES/sphinx.po +2307 -2352
- sphinx/locale/hi/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/hi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hi/LC_MESSAGES/sphinx.po +2580 -2626
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/hr/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/hr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hr/LC_MESSAGES/sphinx.po +2238 -2283
- sphinx/locale/hu/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/hu/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hu/LC_MESSAGES/sphinx.po +2228 -2274
- sphinx/locale/id/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/id/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/id/LC_MESSAGES/sphinx.po +2787 -2834
- sphinx/locale/is/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/is/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/is/LC_MESSAGES/sphinx.po +2224 -2270
- sphinx/locale/it/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/it/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/it/LC_MESSAGES/sphinx.po +2231 -2276
- sphinx/locale/ja/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/ja/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ja/LC_MESSAGES/sphinx.po +2507 -2554
- sphinx/locale/ka/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/ka/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ka/LC_MESSAGES/sphinx.po +2428 -2474
- sphinx/locale/ko/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/ko/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ko/LC_MESSAGES/sphinx.po +2516 -2563
- sphinx/locale/lt/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/lt/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/lt/LC_MESSAGES/sphinx.po +2425 -2469
- sphinx/locale/lv/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/lv/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/lv/LC_MESSAGES/sphinx.po +2362 -2407
- sphinx/locale/mk/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/mk/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/mk/LC_MESSAGES/sphinx.po +2121 -2167
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po +2220 -2266
- sphinx/locale/ne/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/ne/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ne/LC_MESSAGES/sphinx.po +2221 -2267
- sphinx/locale/nl/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/nl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/nl/LC_MESSAGES/sphinx.po +2240 -2286
- sphinx/locale/pl/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/pl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pl/LC_MESSAGES/sphinx.po +2319 -2363
- sphinx/locale/pt/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/pt/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt/LC_MESSAGES/sphinx.po +2114 -2159
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po +2854 -2899
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po +2224 -2269
- sphinx/locale/ro/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/ro/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ro/LC_MESSAGES/sphinx.po +2226 -2271
- sphinx/locale/ru/LC_MESSAGES/sphinx.js +8 -3
- sphinx/locale/ru/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ru/LC_MESSAGES/sphinx.po +2841 -2885
- sphinx/locale/si/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/si/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/si/LC_MESSAGES/sphinx.po +2294 -2340
- sphinx/locale/sk/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/sk/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sk/LC_MESSAGES/sphinx.po +2497 -2541
- sphinx/locale/sl/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/sl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sl/LC_MESSAGES/sphinx.po +2331 -2375
- sphinx/locale/sphinx.pot +2121 -2167
- sphinx/locale/sq/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/sq/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sq/LC_MESSAGES/sphinx.po +2855 -2901
- sphinx/locale/sr/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/sr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sr/LC_MESSAGES/sphinx.po +2203 -2248
- 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.js +4 -1
- sphinx/locale/sv/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sv/LC_MESSAGES/sphinx.po +2423 -2469
- sphinx/locale/te/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/te/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/te/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/tr/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/tr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/tr/LC_MESSAGES/sphinx.po +2443 -2489
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po +2329 -2373
- sphinx/locale/ur/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/ur/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ur/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/vi/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/vi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/vi/LC_MESSAGES/sphinx.po +2199 -2246
- sphinx/locale/yue/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/yue/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/yue/LC_MESSAGES/sphinx.po +2112 -2159
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po +2112 -2159
- sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po +2845 -2892
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po +2112 -2159
- sphinx/parsers.py +3 -1
- sphinx/project.py +6 -2
- sphinx/pycode/__init__.py +11 -4
- sphinx/pycode/ast.py +58 -58
- sphinx/pycode/parser.py +49 -28
- sphinx/pygments_styles.py +49 -49
- sphinx/registry.py +8 -3
- sphinx/roles.py +136 -13
- sphinx/search/__init__.py +146 -87
- sphinx/search/da.py +2 -4
- sphinx/search/de.py +2 -4
- sphinx/search/en.py +4 -4
- sphinx/search/es.py +2 -4
- sphinx/search/fi.py +2 -4
- sphinx/search/fr.py +2 -4
- sphinx/search/hu.py +2 -4
- sphinx/search/it.py +2 -4
- sphinx/search/ja.py +55 -32
- sphinx/search/nl.py +2 -4
- sphinx/search/no.py +2 -4
- sphinx/search/pt.py +2 -4
- sphinx/search/ro.py +0 -2
- sphinx/search/ru.py +2 -4
- sphinx/search/sv.py +2 -4
- sphinx/search/tr.py +0 -2
- sphinx/search/zh.py +18 -13
- sphinx/templates/graphviz/graphviz.css +0 -7
- sphinx/testing/fixtures.py +6 -5
- sphinx/testing/path.py +7 -5
- sphinx/testing/util.py +63 -29
- sphinx/texinputs/sphinx.sty +115 -50
- sphinx/texinputs/sphinxlatexadmonitions.sty +56 -38
- sphinx/texinputs/sphinxlatexcontainers.sty +1 -1
- sphinx/texinputs/sphinxlatexgraphics.sty +3 -2
- sphinx/texinputs/sphinxlatexindbibtoc.sty +1 -1
- sphinx/texinputs/sphinxlatexlists.sty +1 -1
- sphinx/texinputs/sphinxlatexliterals.sty +4 -1
- sphinx/texinputs/sphinxlatexnumfig.sty +22 -9
- sphinx/texinputs/sphinxlatexobjects.sty +1 -1
- sphinx/texinputs/sphinxlatexshadowbox.sty +72 -10
- sphinx/texinputs/sphinxlatexstyleheadings.sty +7 -2
- sphinx/texinputs/sphinxlatexstylepage.sty +2 -8
- sphinx/texinputs/sphinxlatexstyletext.sty +2 -4
- sphinx/texinputs/sphinxlatextables.sty +1 -1
- sphinx/texinputs/sphinxoptionsgeometry.sty +1 -1
- sphinx/texinputs/sphinxoptionshyperref.sty +1 -1
- sphinx/themes/agogo/layout.html +1 -10
- sphinx/themes/agogo/static/agogo.css.jinja +0 -7
- sphinx/themes/basic/defindex.html +1 -8
- sphinx/themes/basic/domainindex.html +1 -9
- sphinx/themes/basic/genindex-single.html +1 -9
- sphinx/themes/basic/genindex-split.html +1 -9
- sphinx/themes/basic/genindex.html +1 -9
- sphinx/themes/basic/globaltoc.html +1 -9
- sphinx/themes/basic/layout.html +1 -9
- sphinx/themes/basic/localtoc.html +1 -9
- sphinx/themes/basic/page.html +1 -9
- sphinx/themes/basic/relations.html +1 -9
- sphinx/themes/basic/search.html +1 -9
- sphinx/themes/basic/searchbox.html +1 -9
- sphinx/themes/basic/searchfield.html +4 -10
- sphinx/themes/basic/sourcelink.html +1 -9
- sphinx/themes/basic/static/basic.css.jinja +2 -13
- sphinx/themes/basic/static/doctools.js +0 -7
- sphinx/themes/basic/static/language_data.js.jinja +0 -7
- sphinx/themes/basic/static/searchtools.js +25 -13
- sphinx/themes/bizstyle/layout.html +1 -9
- sphinx/themes/bizstyle/static/bizstyle.css.jinja +0 -7
- sphinx/themes/bizstyle/static/bizstyle.js.jinja +5 -11
- sphinx/themes/classic/layout.html +1 -9
- sphinx/themes/classic/static/classic.css.jinja +0 -7
- sphinx/themes/classic/static/sidebar.js.jinja +0 -6
- sphinx/themes/epub/epub-cover.html +1 -9
- sphinx/themes/epub/layout.html +1 -9
- sphinx/themes/epub/static/epub.css.jinja +0 -7
- sphinx/themes/haiku/layout.html +1 -9
- sphinx/themes/haiku/static/haiku.css.jinja +0 -6
- sphinx/themes/nature/static/nature.css.jinja +0 -7
- sphinx/themes/nonav/layout.html +1 -9
- sphinx/themes/nonav/static/nonav.css.jinja +0 -7
- sphinx/themes/pyramid/static/epub.css.jinja +0 -7
- sphinx/themes/pyramid/static/pyramid.css.jinja +0 -7
- sphinx/themes/scrolls/layout.html +1 -10
- sphinx/themes/scrolls/static/scrolls.css.jinja +0 -7
- sphinx/themes/sphinxdoc/static/sphinxdoc.css.jinja +2 -7
- sphinx/themes/traditional/static/traditional.css.jinja +0 -7
- sphinx/theming.py +18 -6
- sphinx/transforms/__init__.py +56 -35
- sphinx/transforms/compact_bullet_list.py +3 -2
- sphinx/transforms/i18n.py +132 -50
- sphinx/transforms/post_transforms/__init__.py +94 -43
- sphinx/transforms/post_transforms/code.py +7 -6
- sphinx/transforms/post_transforms/images.py +71 -54
- sphinx/transforms/references.py +1 -2
- sphinx/util/__init__.py +23 -194
- sphinx/util/_files.py +80 -0
- sphinx/util/_importer.py +27 -0
- sphinx/util/_io.py +1 -2
- sphinx/util/_lines.py +26 -0
- sphinx/util/_pathlib.py +5 -2
- sphinx/util/_serialise.py +53 -0
- sphinx/util/_timestamps.py +2 -1
- sphinx/util/_uri.py +16 -0
- sphinx/util/cfamily.py +48 -25
- sphinx/util/console.py +1 -0
- sphinx/util/display.py +1 -1
- sphinx/util/docfields.py +125 -45
- sphinx/util/docstrings.py +1 -1
- sphinx/util/docutils.py +118 -44
- sphinx/util/exceptions.py +11 -5
- sphinx/util/fileutil.py +53 -32
- sphinx/util/http_date.py +9 -7
- sphinx/util/i18n.py +49 -16
- sphinx/util/images.py +7 -6
- sphinx/util/inspect.py +29 -12
- sphinx/util/inventory.py +47 -29
- sphinx/util/logging.py +58 -85
- sphinx/util/matching.py +3 -3
- sphinx/util/math.py +1 -1
- sphinx/util/nodes.py +176 -108
- sphinx/util/osutil.py +13 -10
- sphinx/util/parallel.py +5 -4
- sphinx/util/parsing.py +5 -3
- sphinx/util/png.py +3 -3
- sphinx/util/requests.py +8 -4
- sphinx/util/rst.py +5 -3
- sphinx/util/tags.py +5 -2
- sphinx/util/template.py +26 -11
- sphinx/util/texescape.py +2 -2
- sphinx/util/typing.py +89 -38
- sphinx/versioning.py +3 -1
- sphinx/writers/html.py +22 -7
- sphinx/writers/html5.py +113 -64
- sphinx/writers/latex.py +408 -221
- sphinx/writers/manpage.py +25 -15
- sphinx/writers/texinfo.py +94 -82
- sphinx/writers/text.py +87 -53
- sphinx/writers/xml.py +5 -4
- sphinx-8.1.1.dist-info/LICENSE.rst +31 -0
- {sphinx-8.0.2.dist-info → sphinx-8.1.1.dist-info}/METADATA +13 -11
- sphinx-8.1.1.dist-info/RECORD +598 -0
- sphinx-8.0.2.dist-info/LICENSE.rst +0 -67
- sphinx-8.0.2.dist-info/RECORD +0 -590
- {sphinx-8.0.2.dist-info → sphinx-8.1.1.dist-info}/WHEEL +0 -0
- {sphinx-8.0.2.dist-info → sphinx-8.1.1.dist-info}/entry_points.txt +0 -0
sphinx/application.py
CHANGED
|
@@ -10,15 +10,11 @@ import os
|
|
|
10
10
|
import pickle
|
|
11
11
|
import sys
|
|
12
12
|
from collections import deque
|
|
13
|
-
from collections.abc import Callable, Collection, Sequence # NoQA: TCH003
|
|
14
13
|
from io import StringIO
|
|
15
14
|
from os import path
|
|
16
|
-
from typing import
|
|
15
|
+
from typing import TYPE_CHECKING, overload
|
|
17
16
|
|
|
18
|
-
from docutils.nodes import TextElement # NoQA: TCH002
|
|
19
17
|
from docutils.parsers.rst import Directive, roles
|
|
20
|
-
from docutils.transforms import Transform # NoQA: TCH002
|
|
21
|
-
from pygments.lexer import Lexer # NoQA: TCH002
|
|
22
18
|
|
|
23
19
|
import sphinx
|
|
24
20
|
from sphinx import locale, package_dir
|
|
@@ -41,14 +37,22 @@ from sphinx.util.osutil import ensuredir, relpath
|
|
|
41
37
|
from sphinx.util.tags import Tags
|
|
42
38
|
|
|
43
39
|
if TYPE_CHECKING:
|
|
40
|
+
from collections.abc import Callable, Collection, Iterable, Sequence, Set
|
|
41
|
+
from pathlib import Path
|
|
42
|
+
from typing import IO, Any, Final, Literal
|
|
43
|
+
|
|
44
44
|
from docutils import nodes
|
|
45
45
|
from docutils.nodes import Element, Node
|
|
46
46
|
from docutils.parsers import Parser
|
|
47
|
+
from docutils.transforms import Transform
|
|
48
|
+
from pygments.lexer import Lexer
|
|
47
49
|
|
|
50
|
+
from sphinx import addnodes
|
|
48
51
|
from sphinx.builders import Builder
|
|
49
52
|
from sphinx.domains import Domain, Index
|
|
50
53
|
from sphinx.environment.collectors import EnvironmentCollector
|
|
51
|
-
from sphinx.ext.autodoc import Documenter
|
|
54
|
+
from sphinx.ext.autodoc import Documenter, _AutodocProcessDocstringListener
|
|
55
|
+
from sphinx.ext.todo import todo_node
|
|
52
56
|
from sphinx.extension import Extension
|
|
53
57
|
from sphinx.roles import XRefRole
|
|
54
58
|
from sphinx.search import SearchLanguage
|
|
@@ -134,7 +138,7 @@ class Sphinx:
|
|
|
134
138
|
:ivar outdir: Directory for storing build documents.
|
|
135
139
|
"""
|
|
136
140
|
|
|
137
|
-
warningiserror:
|
|
141
|
+
warningiserror: Final = False
|
|
138
142
|
_warncount: int
|
|
139
143
|
|
|
140
144
|
def __init__(self, srcdir: str | os.PathLike[str], confdir: str | os.PathLike[str] | None,
|
|
@@ -144,7 +148,7 @@ class Sphinx:
|
|
|
144
148
|
freshenv: bool = False, warningiserror: bool = False,
|
|
145
149
|
tags: Sequence[str] = (),
|
|
146
150
|
verbosity: int = 0, parallel: int = 0, keep_going: bool = False,
|
|
147
|
-
pdb: bool = False) -> None:
|
|
151
|
+
pdb: bool = False, exception_on_warning: bool = False) -> None:
|
|
148
152
|
"""Initialize the Sphinx application.
|
|
149
153
|
|
|
150
154
|
:param srcdir: The path to the source directory.
|
|
@@ -163,8 +167,9 @@ class Sphinx:
|
|
|
163
167
|
:param verbosity: The verbosity level.
|
|
164
168
|
:param parallel: The maximum number of parallel jobs to use
|
|
165
169
|
when reading/writing documents.
|
|
166
|
-
:param keep_going:
|
|
170
|
+
:param keep_going: Unused.
|
|
167
171
|
:param pdb: If true, enable the Python debugger on an exception.
|
|
172
|
+
:param exception_on_warning: If true, raise an exception on warnings.
|
|
168
173
|
"""
|
|
169
174
|
self.phase = BuildPhase.INITIALIZATION
|
|
170
175
|
self.verbosity = verbosity
|
|
@@ -203,19 +208,17 @@ class Sphinx:
|
|
|
203
208
|
else:
|
|
204
209
|
self._warning = warning
|
|
205
210
|
self._warncount = 0
|
|
206
|
-
self.keep_going = warningiserror
|
|
207
|
-
|
|
208
|
-
self.warningiserror = False
|
|
209
|
-
else:
|
|
210
|
-
self.warningiserror = warningiserror
|
|
211
|
+
self.keep_going = bool(warningiserror) # Unused
|
|
212
|
+
self._fail_on_warnings = bool(warningiserror)
|
|
211
213
|
self.pdb = pdb
|
|
214
|
+
self._exception_on_warning = exception_on_warning
|
|
212
215
|
logging.setup(self, self._status, self._warning)
|
|
213
216
|
|
|
214
217
|
self.events = EventManager(self)
|
|
215
218
|
|
|
216
219
|
# keep last few messages for traceback
|
|
217
220
|
# This will be filled by sphinx.util.logging.LastMessagesWriter
|
|
218
|
-
self.messagelog: deque = deque(maxlen=10)
|
|
221
|
+
self.messagelog: deque[str] = deque(maxlen=10)
|
|
219
222
|
|
|
220
223
|
# say hello to the world
|
|
221
224
|
logger.info(bold(__('Running Sphinx v%s')), sphinx.__display_version__)
|
|
@@ -386,26 +389,31 @@ class Sphinx:
|
|
|
386
389
|
self.events.emit('build-finished', err)
|
|
387
390
|
raise
|
|
388
391
|
|
|
389
|
-
if self._warncount
|
|
390
|
-
self.statuscode
|
|
391
|
-
|
|
392
|
-
status = (__('succeeded') if self.statuscode == 0
|
|
393
|
-
else __('finished with problems'))
|
|
394
|
-
if self._warncount:
|
|
395
|
-
if self.warningiserror:
|
|
396
|
-
if self._warncount == 1:
|
|
397
|
-
msg = __('build %s, %s warning (with warnings treated as errors).')
|
|
398
|
-
else:
|
|
399
|
-
msg = __('build %s, %s warnings (with warnings treated as errors).')
|
|
392
|
+
if self._warncount == 0:
|
|
393
|
+
if self.statuscode != 0:
|
|
394
|
+
logger.info(bold(__('build finished with problems.')))
|
|
400
395
|
else:
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
396
|
+
logger.info(bold(__('build succeeded.')))
|
|
397
|
+
elif self._warncount == 1:
|
|
398
|
+
if self._fail_on_warnings:
|
|
399
|
+
self.statuscode = 1
|
|
400
|
+
msg = __('build finished with problems, 1 warning '
|
|
401
|
+
'(with warnings treated as errors).')
|
|
402
|
+
elif self.statuscode != 0:
|
|
403
|
+
msg = __('build finished with problems, 1 warning.')
|
|
404
|
+
else:
|
|
405
|
+
msg = __('build succeeded, 1 warning.')
|
|
406
|
+
logger.info(bold(msg))
|
|
407
407
|
else:
|
|
408
|
-
|
|
408
|
+
if self._fail_on_warnings:
|
|
409
|
+
self.statuscode = 1
|
|
410
|
+
msg = __('build finished with problems, %s warnings '
|
|
411
|
+
'(with warnings treated as errors).')
|
|
412
|
+
elif self.statuscode != 0:
|
|
413
|
+
msg = __('build finished with problems, %s warnings.')
|
|
414
|
+
else:
|
|
415
|
+
msg = __('build succeeded, %s warnings.')
|
|
416
|
+
logger.info(bold(msg), self._warncount)
|
|
409
417
|
|
|
410
418
|
if self.statuscode == 0 and self.builder.epilog:
|
|
411
419
|
logger.info('')
|
|
@@ -450,6 +458,319 @@ class Sphinx:
|
|
|
450
458
|
req = f'{major}.{minor}'
|
|
451
459
|
raise VersionRequirementError(req)
|
|
452
460
|
|
|
461
|
+
# ---- Core events -------------------------------------------------------
|
|
462
|
+
|
|
463
|
+
@overload
|
|
464
|
+
def connect(
|
|
465
|
+
self,
|
|
466
|
+
event: Literal['config-inited'],
|
|
467
|
+
callback: Callable[[Sphinx, Config], None],
|
|
468
|
+
priority: int = 500
|
|
469
|
+
) -> int:
|
|
470
|
+
...
|
|
471
|
+
|
|
472
|
+
@overload
|
|
473
|
+
def connect(
|
|
474
|
+
self,
|
|
475
|
+
event: Literal['builder-inited'],
|
|
476
|
+
callback: Callable[[Sphinx], None],
|
|
477
|
+
priority: int = 500
|
|
478
|
+
) -> int:
|
|
479
|
+
...
|
|
480
|
+
|
|
481
|
+
@overload
|
|
482
|
+
def connect(
|
|
483
|
+
self,
|
|
484
|
+
event: Literal['env-get-outdated'],
|
|
485
|
+
callback: Callable[
|
|
486
|
+
[Sphinx, BuildEnvironment, Set[str], Set[str], Set[str]], Sequence[str]
|
|
487
|
+
],
|
|
488
|
+
priority: int = 500
|
|
489
|
+
) -> int:
|
|
490
|
+
...
|
|
491
|
+
|
|
492
|
+
@overload
|
|
493
|
+
def connect(
|
|
494
|
+
self,
|
|
495
|
+
event: Literal['env-before-read-docs'],
|
|
496
|
+
callback: Callable[[Sphinx, BuildEnvironment, list[str]], None],
|
|
497
|
+
priority: int = 500
|
|
498
|
+
) -> int:
|
|
499
|
+
...
|
|
500
|
+
|
|
501
|
+
@overload
|
|
502
|
+
def connect(
|
|
503
|
+
self,
|
|
504
|
+
event: Literal['env-purge-doc'],
|
|
505
|
+
callback: Callable[[Sphinx, BuildEnvironment, str], None],
|
|
506
|
+
priority: int = 500
|
|
507
|
+
) -> int:
|
|
508
|
+
...
|
|
509
|
+
|
|
510
|
+
@overload
|
|
511
|
+
def connect(
|
|
512
|
+
self,
|
|
513
|
+
event: Literal['source-read'],
|
|
514
|
+
callback: Callable[[Sphinx, str, list[str]], None],
|
|
515
|
+
priority: int = 500
|
|
516
|
+
) -> int:
|
|
517
|
+
...
|
|
518
|
+
|
|
519
|
+
@overload
|
|
520
|
+
def connect(
|
|
521
|
+
self,
|
|
522
|
+
event: Literal['include-read'],
|
|
523
|
+
callback: Callable[[Sphinx, Path, str, list[str]], None],
|
|
524
|
+
priority: int = 500
|
|
525
|
+
) -> int:
|
|
526
|
+
...
|
|
527
|
+
|
|
528
|
+
@overload
|
|
529
|
+
def connect(
|
|
530
|
+
self,
|
|
531
|
+
event: Literal['doctree-read'],
|
|
532
|
+
callback: Callable[[Sphinx, nodes.document], None],
|
|
533
|
+
priority: int = 500
|
|
534
|
+
) -> int:
|
|
535
|
+
...
|
|
536
|
+
|
|
537
|
+
@overload
|
|
538
|
+
def connect(
|
|
539
|
+
self,
|
|
540
|
+
event: Literal['env-merge-info'],
|
|
541
|
+
callback: Callable[
|
|
542
|
+
[Sphinx, BuildEnvironment, list[str], BuildEnvironment], None
|
|
543
|
+
],
|
|
544
|
+
priority: int = 500
|
|
545
|
+
) -> int:
|
|
546
|
+
...
|
|
547
|
+
|
|
548
|
+
@overload
|
|
549
|
+
def connect(
|
|
550
|
+
self,
|
|
551
|
+
event: Literal['env-updated'],
|
|
552
|
+
callback: Callable[[Sphinx, BuildEnvironment], str],
|
|
553
|
+
priority: int = 500
|
|
554
|
+
) -> int:
|
|
555
|
+
...
|
|
556
|
+
|
|
557
|
+
@overload
|
|
558
|
+
def connect(
|
|
559
|
+
self,
|
|
560
|
+
event: Literal['env-get-updated'],
|
|
561
|
+
callback: Callable[[Sphinx, BuildEnvironment], Iterable[str]],
|
|
562
|
+
priority: int = 500
|
|
563
|
+
) -> int:
|
|
564
|
+
...
|
|
565
|
+
|
|
566
|
+
@overload
|
|
567
|
+
def connect(
|
|
568
|
+
self,
|
|
569
|
+
event: Literal['env-check-consistency'],
|
|
570
|
+
callback: Callable[[Sphinx, BuildEnvironment], None],
|
|
571
|
+
priority: int = 500
|
|
572
|
+
) -> int:
|
|
573
|
+
...
|
|
574
|
+
|
|
575
|
+
@overload
|
|
576
|
+
def connect(
|
|
577
|
+
self,
|
|
578
|
+
event: Literal['write-started'],
|
|
579
|
+
callback: Callable[[Sphinx, Builder], None],
|
|
580
|
+
priority: int = 500
|
|
581
|
+
) -> int:
|
|
582
|
+
...
|
|
583
|
+
|
|
584
|
+
@overload
|
|
585
|
+
def connect(
|
|
586
|
+
self,
|
|
587
|
+
event: Literal['doctree-resolved'],
|
|
588
|
+
callback: Callable[[Sphinx, nodes.document, str], None],
|
|
589
|
+
priority: int = 500
|
|
590
|
+
) -> int:
|
|
591
|
+
...
|
|
592
|
+
|
|
593
|
+
@overload
|
|
594
|
+
def connect(
|
|
595
|
+
self,
|
|
596
|
+
event: Literal['missing-reference'],
|
|
597
|
+
callback: Callable[
|
|
598
|
+
[Sphinx, BuildEnvironment, addnodes.pending_xref, nodes.TextElement],
|
|
599
|
+
nodes.reference | None,
|
|
600
|
+
],
|
|
601
|
+
priority: int = 500
|
|
602
|
+
) -> int:
|
|
603
|
+
...
|
|
604
|
+
|
|
605
|
+
@overload
|
|
606
|
+
def connect(
|
|
607
|
+
self,
|
|
608
|
+
event: Literal['warn-missing-reference'],
|
|
609
|
+
callback: Callable[[Sphinx, Domain, addnodes.pending_xref], bool | None],
|
|
610
|
+
priority: int = 500
|
|
611
|
+
) -> int:
|
|
612
|
+
...
|
|
613
|
+
|
|
614
|
+
@overload
|
|
615
|
+
def connect(
|
|
616
|
+
self,
|
|
617
|
+
event: Literal['build-finished'],
|
|
618
|
+
callback: Callable[[Sphinx, Exception | None], None],
|
|
619
|
+
priority: int = 500
|
|
620
|
+
) -> int:
|
|
621
|
+
...
|
|
622
|
+
|
|
623
|
+
# ---- Events from builtin builders --------------------------------------
|
|
624
|
+
|
|
625
|
+
@overload
|
|
626
|
+
def connect(
|
|
627
|
+
self,
|
|
628
|
+
event: Literal['html-collect-pages'],
|
|
629
|
+
callback: Callable[[Sphinx], Iterable[tuple[str, dict[str, Any], str]]],
|
|
630
|
+
priority: int = 500
|
|
631
|
+
) -> int:
|
|
632
|
+
...
|
|
633
|
+
|
|
634
|
+
@overload
|
|
635
|
+
def connect(
|
|
636
|
+
self,
|
|
637
|
+
event: Literal['html-page-context'],
|
|
638
|
+
callback: Callable[
|
|
639
|
+
[Sphinx, str, str, dict[str, Any], nodes.document], str | None
|
|
640
|
+
],
|
|
641
|
+
priority: int = 500
|
|
642
|
+
) -> int:
|
|
643
|
+
...
|
|
644
|
+
|
|
645
|
+
@overload
|
|
646
|
+
def connect(
|
|
647
|
+
self,
|
|
648
|
+
event: Literal['linkcheck-process-uri'],
|
|
649
|
+
callback: Callable[[Sphinx, str], str | None],
|
|
650
|
+
priority: int = 500
|
|
651
|
+
) -> int:
|
|
652
|
+
...
|
|
653
|
+
|
|
654
|
+
# ---- Events from builtin extensions-- ----------------------------------
|
|
655
|
+
|
|
656
|
+
@overload
|
|
657
|
+
def connect(
|
|
658
|
+
self,
|
|
659
|
+
event: Literal['object-description-transform'],
|
|
660
|
+
callback: Callable[[Sphinx, str, str, addnodes.desc_content], None],
|
|
661
|
+
priority: int = 500
|
|
662
|
+
) -> int:
|
|
663
|
+
...
|
|
664
|
+
|
|
665
|
+
# ---- Events from first-party extensions --------------------------------
|
|
666
|
+
|
|
667
|
+
@overload
|
|
668
|
+
def connect(
|
|
669
|
+
self,
|
|
670
|
+
event: Literal['autodoc-process-docstring'],
|
|
671
|
+
callback: _AutodocProcessDocstringListener,
|
|
672
|
+
priority: int = 500
|
|
673
|
+
) -> int:
|
|
674
|
+
...
|
|
675
|
+
|
|
676
|
+
@overload
|
|
677
|
+
def connect(
|
|
678
|
+
self,
|
|
679
|
+
event: Literal['autodoc-before-process-signature'],
|
|
680
|
+
callback: Callable[[Sphinx, Any, bool], None],
|
|
681
|
+
priority: int = 500
|
|
682
|
+
) -> int:
|
|
683
|
+
...
|
|
684
|
+
|
|
685
|
+
@overload
|
|
686
|
+
def connect(
|
|
687
|
+
self,
|
|
688
|
+
event: Literal['autodoc-process-signature'],
|
|
689
|
+
callback: Callable[
|
|
690
|
+
[
|
|
691
|
+
Sphinx,
|
|
692
|
+
Literal['module', 'class', 'exception', 'function', 'method', 'attribute'],
|
|
693
|
+
str,
|
|
694
|
+
Any,
|
|
695
|
+
dict[str, bool],
|
|
696
|
+
str | None,
|
|
697
|
+
str | None,
|
|
698
|
+
],
|
|
699
|
+
tuple[str | None, str | None] | None,
|
|
700
|
+
],
|
|
701
|
+
priority: int = 500
|
|
702
|
+
) -> int:
|
|
703
|
+
...
|
|
704
|
+
|
|
705
|
+
@overload
|
|
706
|
+
def connect(
|
|
707
|
+
self,
|
|
708
|
+
event: Literal['autodoc-process-bases'],
|
|
709
|
+
callback: Callable[[Sphinx, str, Any, dict[str, bool], list[str]], None],
|
|
710
|
+
priority: int = 500
|
|
711
|
+
) -> int:
|
|
712
|
+
...
|
|
713
|
+
|
|
714
|
+
@overload
|
|
715
|
+
def connect(
|
|
716
|
+
self,
|
|
717
|
+
event: Literal['autodoc-skip-member'],
|
|
718
|
+
callback: Callable[
|
|
719
|
+
[
|
|
720
|
+
Sphinx,
|
|
721
|
+
Literal['module', 'class', 'exception', 'function', 'method', 'attribute'],
|
|
722
|
+
str,
|
|
723
|
+
Any,
|
|
724
|
+
bool,
|
|
725
|
+
dict[str, bool],
|
|
726
|
+
],
|
|
727
|
+
bool,
|
|
728
|
+
],
|
|
729
|
+
priority: int = 500
|
|
730
|
+
) -> int:
|
|
731
|
+
...
|
|
732
|
+
|
|
733
|
+
@overload
|
|
734
|
+
def connect(
|
|
735
|
+
self,
|
|
736
|
+
event: Literal['todo-defined'],
|
|
737
|
+
callback: Callable[[Sphinx, todo_node], None],
|
|
738
|
+
priority: int = 500,
|
|
739
|
+
) -> int:
|
|
740
|
+
...
|
|
741
|
+
|
|
742
|
+
@overload
|
|
743
|
+
def connect(
|
|
744
|
+
self,
|
|
745
|
+
event: Literal['viewcode-find-source'],
|
|
746
|
+
callback: Callable[
|
|
747
|
+
[Sphinx, str],
|
|
748
|
+
tuple[str, dict[str, tuple[Literal['class', 'def', 'other'], int, int]]],
|
|
749
|
+
],
|
|
750
|
+
priority: int = 500,
|
|
751
|
+
) -> int:
|
|
752
|
+
...
|
|
753
|
+
|
|
754
|
+
@overload
|
|
755
|
+
def connect(
|
|
756
|
+
self,
|
|
757
|
+
event: Literal['viewcode-follow-imported'],
|
|
758
|
+
callback: Callable[[Sphinx, str, str], str | None],
|
|
759
|
+
priority: int = 500,
|
|
760
|
+
) -> int:
|
|
761
|
+
...
|
|
762
|
+
|
|
763
|
+
# ---- Catch-all ---------------------------------------------------------
|
|
764
|
+
|
|
765
|
+
@overload
|
|
766
|
+
def connect(
|
|
767
|
+
self,
|
|
768
|
+
event: str,
|
|
769
|
+
callback: Callable[..., Any],
|
|
770
|
+
priority: int = 500
|
|
771
|
+
) -> int:
|
|
772
|
+
...
|
|
773
|
+
|
|
453
774
|
# event interface
|
|
454
775
|
def connect(self, event: str, callback: Callable, priority: int = 500) -> int:
|
|
455
776
|
"""Register *callback* to be called when *event* is emitted.
|
|
@@ -845,7 +1166,7 @@ class Sphinx:
|
|
|
845
1166
|
|
|
846
1167
|
def add_object_type(self, directivename: str, rolename: str, indextemplate: str = '',
|
|
847
1168
|
parse_node: Callable | None = None,
|
|
848
|
-
ref_nodeclass: type[TextElement] | None = None,
|
|
1169
|
+
ref_nodeclass: type[nodes.TextElement] | None = None,
|
|
849
1170
|
objname: str = '', doc_field_types: Sequence = (),
|
|
850
1171
|
override: bool = False,
|
|
851
1172
|
) -> None:
|
|
@@ -912,9 +1233,11 @@ class Sphinx:
|
|
|
912
1233
|
ref_nodeclass, objname, doc_field_types,
|
|
913
1234
|
override=override)
|
|
914
1235
|
|
|
915
|
-
def add_crossref_type(
|
|
916
|
-
|
|
917
|
-
|
|
1236
|
+
def add_crossref_type(
|
|
1237
|
+
self, directivename: str, rolename: str, indextemplate: str = '',
|
|
1238
|
+
ref_nodeclass: type[nodes.TextElement] | None = None, objname: str = '',
|
|
1239
|
+
override: bool = False,
|
|
1240
|
+
) -> None:
|
|
918
1241
|
"""Register a new crossref object type.
|
|
919
1242
|
|
|
920
1243
|
This method is very similar to :meth:`~Sphinx.add_object_type` except that the
|
|
@@ -1385,7 +1708,7 @@ class TemplateBridge:
|
|
|
1385
1708
|
"""
|
|
1386
1709
|
return 0
|
|
1387
1710
|
|
|
1388
|
-
def render(self, template: str, context: dict) -> None:
|
|
1711
|
+
def render(self, template: str, context: dict[str, Any]) -> None:
|
|
1389
1712
|
"""Called by the builder to render a template given as a filename with
|
|
1390
1713
|
a specified context (a Python dictionary).
|
|
1391
1714
|
"""
|