Sphinx 7.3.7__py3-none-any.whl → 7.4.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 +5 -6
- sphinx/_cli/__init__.py +296 -0
- sphinx/_cli/util/__init__.py +0 -0
- sphinx/_cli/util/colour.py +103 -0
- sphinx/_cli/util/errors.py +165 -0
- sphinx/application.py +78 -43
- sphinx/builders/__init__.py +59 -15
- sphinx/builders/_epub_base.py +11 -5
- sphinx/builders/changes.py +2 -2
- sphinx/builders/epub3.py +2 -2
- sphinx/builders/gettext.py +10 -10
- sphinx/builders/html/__init__.py +56 -54
- sphinx/builders/latex/__init__.py +5 -5
- sphinx/builders/latex/constants.py +5 -0
- sphinx/builders/linkcheck.py +73 -38
- sphinx/builders/texinfo.py +1 -1
- sphinx/cmd/build.py +1 -1
- sphinx/cmd/quickstart.py +11 -11
- sphinx/config.py +57 -38
- sphinx/directives/__init__.py +7 -9
- sphinx/directives/code.py +12 -15
- sphinx/directives/other.py +12 -15
- sphinx/directives/patches.py +26 -0
- sphinx/domains/__init__.py +1 -1
- sphinx/domains/c/__init__.py +5 -5
- sphinx/domains/c/_ast.py +436 -12
- sphinx/domains/c/_symbol.py +89 -134
- sphinx/domains/changeset.py +3 -4
- sphinx/domains/cpp/__init__.py +5 -6
- sphinx/domains/cpp/_ast.py +822 -25
- sphinx/domains/cpp/_symbol.py +3 -0
- sphinx/domains/javascript.py +3 -6
- sphinx/domains/math.py +3 -2
- sphinx/domains/python/__init__.py +44 -6
- sphinx/domains/python/_object.py +7 -5
- sphinx/domains/rst.py +2 -2
- sphinx/domains/std/__init__.py +95 -14
- sphinx/environment/__init__.py +35 -15
- sphinx/environment/adapters/indexentries.py +71 -24
- sphinx/environment/adapters/toctree.py +1 -1
- sphinx/environment/collectors/__init__.py +18 -4
- sphinx/environment/collectors/asset.py +4 -4
- sphinx/environment/collectors/toctree.py +27 -14
- sphinx/events.py +7 -6
- sphinx/ext/apidoc.py +377 -170
- sphinx/ext/autodoc/__init__.py +13 -13
- sphinx/ext/autodoc/directive.py +10 -13
- sphinx/ext/autodoc/mock.py +10 -7
- sphinx/ext/autodoc/preserve_defaults.py +1 -1
- sphinx/ext/autodoc/typehints.py +2 -2
- sphinx/ext/autosummary/__init__.py +15 -9
- sphinx/ext/autosummary/generate.py +270 -154
- sphinx/ext/coverage.py +108 -18
- sphinx/ext/duration.py +10 -3
- sphinx/ext/extlinks.py +3 -2
- sphinx/ext/graphviz.py +3 -3
- sphinx/ext/ifconfig.py +1 -2
- sphinx/ext/imgconverter.py +1 -0
- sphinx/ext/imgmath.py +7 -6
- sphinx/ext/inheritance_diagram.py +3 -3
- sphinx/ext/intersphinx/__init__.py +81 -0
- sphinx/ext/intersphinx/__main__.py +10 -0
- sphinx/ext/intersphinx/_cli.py +44 -0
- sphinx/ext/intersphinx/_load.py +253 -0
- sphinx/ext/{intersphinx.py → intersphinx/_resolve.py} +17 -368
- sphinx/ext/intersphinx/_shared.py +53 -0
- sphinx/ext/mathjax.py +1 -1
- sphinx/ext/todo.py +2 -2
- sphinx/io.py +2 -6
- sphinx/locale/__init__.py +1 -5
- sphinx/locale/ar/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/ar/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ar/LC_MESSAGES/sphinx.po +678 -471
- sphinx/locale/bg/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/bg/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/bg/LC_MESSAGES/sphinx.po +684 -476
- sphinx/locale/bn/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/bn/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/bn/LC_MESSAGES/sphinx.po +679 -472
- sphinx/locale/ca/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/ca/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ca/LC_MESSAGES/sphinx.po +681 -474
- sphinx/locale/cak/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/cak/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cak/LC_MESSAGES/sphinx.po +678 -471
- sphinx/locale/cs/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/cs/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cs/LC_MESSAGES/sphinx.po +679 -472
- sphinx/locale/cy/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/cy/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cy/LC_MESSAGES/sphinx.po +679 -472
- sphinx/locale/da/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/da/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/da/LC_MESSAGES/sphinx.po +679 -472
- sphinx/locale/de/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/de/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/de/LC_MESSAGES/sphinx.po +679 -472
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.po +678 -471
- sphinx/locale/el/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/el/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/el/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/eo/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/eo/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/eo/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/es/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/es/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/es/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/et/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/et/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/et/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/eu/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/eu/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/eu/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/fa/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/fa/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fa/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/fi/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/fi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fi/LC_MESSAGES/sphinx.po +700 -493
- 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 +725 -518
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/gl/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/gl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/gl/LC_MESSAGES/sphinx.po +701 -494
- 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 +700 -493
- sphinx/locale/hi/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/hi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hi/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/hr/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/hr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hr/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/hu/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/hu/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hu/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/id/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/id/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/id/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/is/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/is/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/is/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/it/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/it/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/it/LC_MESSAGES/sphinx.po +708 -500
- sphinx/locale/ja/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/ja/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ja/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/ka/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/ka/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ka/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/ko/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/ko/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ko/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/lt/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/lt/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/lt/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/lv/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/lv/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/lv/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/mk/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/mk/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/mk/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/ne/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/ne/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ne/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/nl/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/nl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/nl/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/pl/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/pl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pl/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/pt/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/pt/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po +705 -498
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/ro/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/ro/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ro/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/ru/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/ru/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ru/LC_MESSAGES/sphinx.po +890 -680
- sphinx/locale/si/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/si/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/si/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/sk/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/sk/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sk/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/sl/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/sl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sl/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/sphinx.pot +702 -494
- 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 +704 -497
- sphinx/locale/sr/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/sr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sr/LC_MESSAGES/sphinx.po +700 -493
- 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 +1 -1
- sphinx/locale/sv/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sv/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/ta/LC_MESSAGES/sphinx.po +1016 -808
- sphinx/locale/te/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/te/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/te/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/tr/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/tr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/tr/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/ur/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/ur/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ur/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/vi/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/vi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/vi/LC_MESSAGES/sphinx.po +701 -494
- sphinx/locale/yue/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/yue/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/yue/LC_MESSAGES/sphinx.po +700 -493
- sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po +704 -496
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po +700 -493
- 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 +729 -522
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.js +1 -1
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po +700 -493
- sphinx/roles.py +1 -1
- sphinx/search/__init__.py +17 -9
- sphinx/templates/quickstart/{root_doc.rst_t → root_doc.rst.jinja} +7 -10
- sphinx/testing/fixtures.py +22 -20
- sphinx/testing/path.py +6 -2
- sphinx/testing/util.py +8 -13
- sphinx/texinputs/sphinx.sty +449 -332
- sphinx/texinputs/sphinxlatexadmonitions.sty +209 -66
- sphinx/texinputs/sphinxlatexliterals.sty +9 -16
- sphinx/texinputs/sphinxlatexstyletext.sty +4 -38
- sphinx/texinputs/sphinxlatextables.sty +6 -14
- sphinx/texinputs/sphinxpackageboxes.sty +15 -42
- sphinx/texinputs/sphinxpackagefootnote.sty +4 -3
- sphinx/themes/agogo/layout.html +3 -3
- sphinx/themes/basic/genindex-single.html +2 -1
- sphinx/themes/basic/layout.html +3 -6
- sphinx/themes/basic/static/searchtools.js +4 -3
- sphinx/themes/haiku/layout.html +4 -4
- sphinx/themes/pyramid/layout.html +1 -1
- sphinx/themes/scrolls/layout.html +2 -2
- sphinx/theming.py +3 -3
- sphinx/transforms/__init__.py +34 -20
- sphinx/transforms/i18n.py +8 -7
- sphinx/transforms/post_transforms/__init__.py +1 -1
- sphinx/transforms/post_transforms/images.py +7 -10
- sphinx/util/_pathlib.py +2 -2
- sphinx/util/cfamily.py +52 -30
- sphinx/util/console.py +1 -1
- sphinx/util/display.py +16 -11
- sphinx/util/docutils.py +88 -40
- sphinx/util/fileutil.py +15 -3
- sphinx/util/images.py +1 -0
- sphinx/util/inspect.py +66 -22
- sphinx/util/inventory.py +15 -0
- sphinx/util/logging.py +14 -21
- sphinx/util/math.py +3 -1
- sphinx/util/nodes.py +9 -12
- sphinx/util/osutil.py +5 -5
- sphinx/util/parsing.py +93 -0
- sphinx/util/tags.py +71 -47
- sphinx/util/typing.py +261 -143
- sphinx/versioning.py +17 -17
- sphinx/writers/html5.py +26 -19
- sphinx/writers/latex.py +58 -28
- sphinx/writers/manpage.py +4 -3
- sphinx/writers/texinfo.py +19 -14
- {sphinx-7.3.7.dist-info → sphinx-7.4.0.dist-info}/METADATA +21 -20
- sphinx-7.4.0.dist-info/RECORD +591 -0
- sphinx-7.3.7.dist-info/RECORD +0 -581
- /sphinx/templates/apidoc/{module.rst_t → module.rst.jinja} +0 -0
- /sphinx/templates/apidoc/{package.rst_t → package.rst.jinja} +0 -0
- /sphinx/templates/apidoc/{toc.rst_t → toc.rst.jinja} +0 -0
- /sphinx/templates/epub3/{content.opf_t → content.opf.jinja} +0 -0
- /sphinx/templates/epub3/{nav.xhtml_t → nav.xhtml.jinja} +0 -0
- /sphinx/templates/epub3/{toc.ncx_t → toc.ncx.jinja} +0 -0
- /sphinx/templates/gettext/{message.pot_t → message.pot.jinja} +0 -0
- /sphinx/templates/imgmath/{preview.tex_t → preview.tex.jinja} +0 -0
- /sphinx/templates/imgmath/{template.tex_t → template.tex.jinja} +0 -0
- /sphinx/templates/latex/{latex.tex_t → latex.tex.jinja} +0 -0
- /sphinx/templates/latex/{longtable.tex_t → longtable.tex.jinja} +0 -0
- /sphinx/templates/latex/{sphinxmessages.sty_t → sphinxmessages.sty.jinja} +0 -0
- /sphinx/templates/latex/{tabular.tex_t → tabular.tex.jinja} +0 -0
- /sphinx/templates/latex/{tabulary.tex_t → tabulary.tex.jinja} +0 -0
- /sphinx/templates/quickstart/{Makefile_t → Makefile.jinja} +0 -0
- /sphinx/templates/quickstart/{Makefile.new_t → Makefile.new.jinja} +0 -0
- /sphinx/templates/quickstart/{conf.py_t → conf.py.jinja} +0 -0
- /sphinx/templates/quickstart/{make.bat_t → make.bat.jinja} +0 -0
- /sphinx/templates/quickstart/{make.bat.new_t → make.bat.new.jinja} +0 -0
- /sphinx/texinputs/{Makefile_t → Makefile.jinja} +0 -0
- /sphinx/texinputs/{latexmkjarc_t → latexmkjarc.jinja} +0 -0
- /sphinx/texinputs/{latexmkrc_t → latexmkrc.jinja} +0 -0
- /sphinx/texinputs/{make.bat_t → make.bat.jinja} +0 -0
- /sphinx/texinputs_win/{Makefile_t → Makefile.jinja} +0 -0
- /sphinx/themes/agogo/static/{agogo.css_t → agogo.css.jinja} +0 -0
- /sphinx/themes/basic/static/{basic.css_t → basic.css.jinja} +0 -0
- /sphinx/themes/basic/static/{documentation_options.js_t → documentation_options.js.jinja} +0 -0
- /sphinx/themes/basic/static/{language_data.js_t → language_data.js.jinja} +0 -0
- /sphinx/themes/bizstyle/static/{bizstyle.css_t → bizstyle.css.jinja} +0 -0
- /sphinx/themes/bizstyle/static/{bizstyle.js_t → bizstyle.js.jinja} +0 -0
- /sphinx/themes/classic/static/{classic.css_t → classic.css.jinja} +0 -0
- /sphinx/themes/classic/static/{sidebar.js_t → sidebar.js.jinja} +0 -0
- /sphinx/themes/epub/static/{epub.css_t → epub.css.jinja} +0 -0
- /sphinx/themes/haiku/static/{haiku.css_t → haiku.css.jinja} +0 -0
- /sphinx/themes/nature/static/{nature.css_t → nature.css.jinja} +0 -0
- /sphinx/themes/nonav/static/{nonav.css_t → nonav.css.jinja} +0 -0
- /sphinx/themes/pyramid/static/{epub.css_t → epub.css.jinja} +0 -0
- /sphinx/themes/pyramid/static/{pyramid.css_t → pyramid.css.jinja} +0 -0
- /sphinx/themes/scrolls/static/{scrolls.css_t → scrolls.css.jinja} +0 -0
- /sphinx/themes/sphinxdoc/static/{sphinxdoc.css_t → sphinxdoc.css.jinja} +0 -0
- /sphinx/themes/traditional/static/{traditional.css_t → traditional.css.jinja} +0 -0
- {sphinx-7.3.7.dist-info → sphinx-7.4.0.dist-info}/LICENSE.rst +0 -0
- {sphinx-7.3.7.dist-info → sphinx-7.4.0.dist-info}/WHEEL +0 -0
- {sphinx-7.3.7.dist-info → sphinx-7.4.0.dist-info}/entry_points.txt +0 -0
sphinx/writers/html5.py
CHANGED
|
@@ -59,7 +59,6 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
|
|
|
59
59
|
|
|
60
60
|
self.highlighter = self.builder.highlighter
|
|
61
61
|
self.docnames = [self.builder.current_docname] # for singlehtml builder
|
|
62
|
-
self.manpages_url = self.config.manpages_url
|
|
63
62
|
self.protect_literal_text = 0
|
|
64
63
|
self.secnumber_suffix = self.config.html_secnumber_suffix
|
|
65
64
|
self.param_separator = ''
|
|
@@ -325,6 +324,8 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
|
|
|
325
324
|
atts['title'] = node['reftitle']
|
|
326
325
|
if 'target' in node:
|
|
327
326
|
atts['target'] = node['target']
|
|
327
|
+
if 'rel' in node:
|
|
328
|
+
atts['rel'] = node['rel']
|
|
328
329
|
self.body.append(self.starttag(node, 'a', '', **atts))
|
|
329
330
|
|
|
330
331
|
if node.get('secnumber'):
|
|
@@ -508,6 +509,30 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
|
|
|
508
509
|
|
|
509
510
|
super().depart_title(node)
|
|
510
511
|
|
|
512
|
+
# overwritten
|
|
513
|
+
def visit_rubric(self, node: Element) -> None:
|
|
514
|
+
if "level" in node:
|
|
515
|
+
level = node["level"]
|
|
516
|
+
if level in (1, 2, 3, 4, 5, 6):
|
|
517
|
+
self.body.append(self.starttag(node, f'h{level}', '', CLASS='rubric'))
|
|
518
|
+
else:
|
|
519
|
+
logger.warning(
|
|
520
|
+
__('unsupported rubric heading level: %s'),
|
|
521
|
+
level,
|
|
522
|
+
type='html',
|
|
523
|
+
location=node
|
|
524
|
+
)
|
|
525
|
+
super().visit_rubric(node)
|
|
526
|
+
else:
|
|
527
|
+
super().visit_rubric(node)
|
|
528
|
+
|
|
529
|
+
# overwritten
|
|
530
|
+
def depart_rubric(self, node: Element) -> None:
|
|
531
|
+
if level := node.get("level"):
|
|
532
|
+
self.body.append(f'</h{level}>\n')
|
|
533
|
+
else:
|
|
534
|
+
super().depart_rubric(node)
|
|
535
|
+
|
|
511
536
|
# overwritten
|
|
512
537
|
def visit_literal_block(self, node: Element) -> None:
|
|
513
538
|
if node.rawsource != node.astext():
|
|
@@ -694,24 +719,6 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
|
|
|
694
719
|
if 'height' not in node:
|
|
695
720
|
node['height'] = str(size[1])
|
|
696
721
|
|
|
697
|
-
uri = node['uri']
|
|
698
|
-
if uri.lower().endswith(('svg', 'svgz')):
|
|
699
|
-
atts = {'src': uri}
|
|
700
|
-
if 'width' in node:
|
|
701
|
-
atts['width'] = node['width']
|
|
702
|
-
if 'height' in node:
|
|
703
|
-
atts['height'] = node['height']
|
|
704
|
-
if 'scale' in node:
|
|
705
|
-
if 'width' in atts:
|
|
706
|
-
atts['width'] = multiply_length(atts['width'], node['scale'])
|
|
707
|
-
if 'height' in atts:
|
|
708
|
-
atts['height'] = multiply_length(atts['height'], node['scale'])
|
|
709
|
-
atts['alt'] = node.get('alt', uri)
|
|
710
|
-
if 'align' in node:
|
|
711
|
-
atts['class'] = 'align-%s' % node['align']
|
|
712
|
-
self.body.append(self.emptytag(node, 'img', '', **atts))
|
|
713
|
-
return
|
|
714
|
-
|
|
715
722
|
super().visit_image(node)
|
|
716
723
|
|
|
717
724
|
# overwritten
|
sphinx/writers/latex.py
CHANGED
|
@@ -332,8 +332,8 @@ class LaTeXTranslator(SphinxTranslator):
|
|
|
332
332
|
self.top_sectionlevel = \
|
|
333
333
|
self.sectionnames.index(self.config.latex_toplevel_sectioning)
|
|
334
334
|
except ValueError:
|
|
335
|
-
logger.warning(__('unknown %r toplevel_sectioning for class %r')
|
|
336
|
-
|
|
335
|
+
logger.warning(__('unknown %r toplevel_sectioning for class %r'),
|
|
336
|
+
self.config.latex_toplevel_sectioning, self.theme.docclass)
|
|
337
337
|
|
|
338
338
|
if self.config.numfig:
|
|
339
339
|
self.numfig_secnum_depth = self.config.numfig_secnum_depth
|
|
@@ -437,7 +437,7 @@ class LaTeXTranslator(SphinxTranslator):
|
|
|
437
437
|
'body': ''.join(self.body),
|
|
438
438
|
'indices': self.generate_indices(),
|
|
439
439
|
})
|
|
440
|
-
return self.render('latex.
|
|
440
|
+
return self.render('latex.tex.jinja', self.elements)
|
|
441
441
|
|
|
442
442
|
def hypertarget(self, id: str, withdoc: bool = True, anchor: bool = True) -> str:
|
|
443
443
|
if withdoc:
|
|
@@ -497,20 +497,23 @@ class LaTeXTranslator(SphinxTranslator):
|
|
|
497
497
|
|
|
498
498
|
ret = []
|
|
499
499
|
# latex_domain_indices can be False/True or a list of index names
|
|
500
|
-
indices_config
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
if not
|
|
500
|
+
if indices_config := self.config.latex_domain_indices:
|
|
501
|
+
if not isinstance(indices_config, bool):
|
|
502
|
+
check_names = True
|
|
503
|
+
indices_config = frozenset(indices_config)
|
|
504
|
+
else:
|
|
505
|
+
check_names = False
|
|
506
|
+
for domain_name in sorted(self.builder.env.domains):
|
|
507
|
+
domain = self.builder.env.domains[domain_name]
|
|
508
|
+
for index_cls in domain.indices:
|
|
509
|
+
index_name = f'{domain.name}-{index_cls.name}'
|
|
510
|
+
if check_names and index_name not in indices_config:
|
|
511
511
|
continue
|
|
512
|
-
|
|
513
|
-
|
|
512
|
+
content, collapsed = index_cls(domain).generate(
|
|
513
|
+
self.builder.docnames)
|
|
514
|
+
if content:
|
|
515
|
+
ret.append(r'\renewcommand{\indexname}{%s}' % index_cls.localname + CR)
|
|
516
|
+
generate(content, collapsed)
|
|
514
517
|
|
|
515
518
|
return ''.join(ret)
|
|
516
519
|
|
|
@@ -521,6 +524,12 @@ class LaTeXTranslator(SphinxTranslator):
|
|
|
521
524
|
template_name)
|
|
522
525
|
if path.exists(template):
|
|
523
526
|
return renderer.render(template, variables)
|
|
527
|
+
elif template.endswith('.jinja'):
|
|
528
|
+
legacy_template = template.removesuffix('.jinja') + '_t'
|
|
529
|
+
if path.exists(legacy_template):
|
|
530
|
+
logger.warning(__('template %s not found; loading from legacy %s instead'),
|
|
531
|
+
template_name, legacy_template)
|
|
532
|
+
return renderer.render(legacy_template, variables)
|
|
524
533
|
|
|
525
534
|
return renderer.render(template_name, variables)
|
|
526
535
|
|
|
@@ -715,19 +724,21 @@ class LaTeXTranslator(SphinxTranslator):
|
|
|
715
724
|
return e.get('multi_line_parameter_list')
|
|
716
725
|
|
|
717
726
|
self.has_tp_list = False
|
|
727
|
+
self.orphan_tp_list = False
|
|
718
728
|
|
|
719
729
|
for child in node:
|
|
720
730
|
if isinstance(child, addnodes.desc_type_parameter_list):
|
|
721
731
|
self.has_tp_list = True
|
|
722
|
-
# recall that return annotations must follow an argument list,
|
|
723
|
-
# so signatures of the form "foo[tp_list] -> retann" will not
|
|
724
|
-
# be encountered (if they should, the `domains.python.py_sig_re`
|
|
725
|
-
# pattern must be modified accordingly)
|
|
726
|
-
arglist = next_sibling(child)
|
|
727
|
-
assert isinstance(arglist, addnodes.desc_parameterlist)
|
|
728
|
-
# tp_list + arglist: \macro{name}{tp_list}{arglist}{return}
|
|
729
732
|
multi_tp_list = has_multi_line(child)
|
|
730
|
-
|
|
733
|
+
arglist = next_sibling(child)
|
|
734
|
+
if isinstance(arglist, addnodes.desc_parameterlist):
|
|
735
|
+
# tp_list + arglist: \macro{name}{tp_list}{arglist}{retann}
|
|
736
|
+
multi_arglist = has_multi_line(arglist)
|
|
737
|
+
else:
|
|
738
|
+
# orphan tp_list: \macro{name}{tp_list}{}{retann}
|
|
739
|
+
# see: https://github.com/sphinx-doc/sphinx/issues/12543
|
|
740
|
+
self.orphan_tp_list = True
|
|
741
|
+
multi_arglist = False
|
|
731
742
|
|
|
732
743
|
if multi_tp_list:
|
|
733
744
|
if multi_arglist:
|
|
@@ -742,7 +753,7 @@ class LaTeXTranslator(SphinxTranslator):
|
|
|
742
753
|
break
|
|
743
754
|
|
|
744
755
|
if isinstance(child, addnodes.desc_parameterlist):
|
|
745
|
-
# arglist only: \macro{name}{arglist}{
|
|
756
|
+
# arglist only: \macro{name}{arglist}{retann}
|
|
746
757
|
if has_multi_line(child):
|
|
747
758
|
self.body.append(CR + r'\pysigwithonelineperarg{')
|
|
748
759
|
else:
|
|
@@ -848,7 +859,13 @@ class LaTeXTranslator(SphinxTranslator):
|
|
|
848
859
|
self.multi_line_parameter_list = node.get('multi_line_parameter_list', False)
|
|
849
860
|
|
|
850
861
|
def visit_desc_parameterlist(self, node: Element) -> None:
|
|
851
|
-
if
|
|
862
|
+
if self.has_tp_list:
|
|
863
|
+
if self.orphan_tp_list:
|
|
864
|
+
# close type parameters list (#2)
|
|
865
|
+
self.body.append('}{')
|
|
866
|
+
# empty parameters list argument (#3)
|
|
867
|
+
return
|
|
868
|
+
else:
|
|
852
869
|
# close name argument (#1), open parameters list argument (#2)
|
|
853
870
|
self.body.append('}{')
|
|
854
871
|
self._visit_sig_parameter_list(node, addnodes.desc_parameter)
|
|
@@ -958,7 +975,20 @@ class LaTeXTranslator(SphinxTranslator):
|
|
|
958
975
|
def visit_rubric(self, node: Element) -> None:
|
|
959
976
|
if len(node) == 1 and node.astext() in ('Footnotes', _('Footnotes')):
|
|
960
977
|
raise nodes.SkipNode
|
|
961
|
-
|
|
978
|
+
tag = 'subsubsection'
|
|
979
|
+
if "level" in node:
|
|
980
|
+
level = node["level"]
|
|
981
|
+
try:
|
|
982
|
+
tag = self.sectionnames[self.top_sectionlevel - 1 + level]
|
|
983
|
+
except Exception:
|
|
984
|
+
logger.warning(
|
|
985
|
+
__('unsupported rubric heading level: %s'),
|
|
986
|
+
level,
|
|
987
|
+
type='latex',
|
|
988
|
+
location=node
|
|
989
|
+
)
|
|
990
|
+
|
|
991
|
+
self.body.append(rf'\{tag}*{{')
|
|
962
992
|
self.context.append('}' + CR)
|
|
963
993
|
self.in_title = 1
|
|
964
994
|
|
|
@@ -1033,7 +1063,7 @@ class LaTeXTranslator(SphinxTranslator):
|
|
|
1033
1063
|
assert self.table is not None
|
|
1034
1064
|
labels = self.hypertarget_to(node)
|
|
1035
1065
|
table_type = self.table.get_table_type()
|
|
1036
|
-
table = self.render(table_type + '.
|
|
1066
|
+
table = self.render(table_type + '.tex.jinja',
|
|
1037
1067
|
{'table': self.table, 'labels': labels})
|
|
1038
1068
|
self.body.append(BLANKLINE)
|
|
1039
1069
|
self.body.append(table)
|
sphinx/writers/manpage.py
CHANGED
|
@@ -309,7 +309,8 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
|
|
|
309
309
|
# overwritten -- don't visit inner marked up nodes
|
|
310
310
|
def visit_reference(self, node: Element) -> None:
|
|
311
311
|
uri = node.get('refuri', '')
|
|
312
|
-
|
|
312
|
+
is_safe_to_click = uri.startswith(('mailto:', 'http:', 'https:', 'ftp:'))
|
|
313
|
+
if is_safe_to_click:
|
|
313
314
|
# OSC 8 link start (using groff's device control directive).
|
|
314
315
|
self.body.append(fr"\X'tty: link {uri}'")
|
|
315
316
|
|
|
@@ -319,7 +320,7 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
|
|
|
319
320
|
self.visit_Text(node)
|
|
320
321
|
self.body.append(self.defs['reference'][1])
|
|
321
322
|
|
|
322
|
-
if uri.startswith(
|
|
323
|
+
if uri and not uri.startswith('#'):
|
|
323
324
|
# if configured, put the URL after the link
|
|
324
325
|
if self.config.man_show_urls and node.astext() != uri:
|
|
325
326
|
if uri.startswith('mailto:'):
|
|
@@ -328,7 +329,7 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
|
|
|
328
329
|
' <',
|
|
329
330
|
self.defs['strong'][0], uri, self.defs['strong'][1],
|
|
330
331
|
'>'])
|
|
331
|
-
if
|
|
332
|
+
if is_safe_to_click:
|
|
332
333
|
# OSC 8 link end.
|
|
333
334
|
self.body.append(r"\X'tty: link'")
|
|
334
335
|
raise nodes.SkipNode
|
sphinx/writers/texinfo.py
CHANGED
|
@@ -476,20 +476,25 @@ class TexinfoTranslator(SphinxTranslator):
|
|
|
476
476
|
ret.append('@end menu\n')
|
|
477
477
|
return ''.join(ret)
|
|
478
478
|
|
|
479
|
-
indices_config
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
if not
|
|
479
|
+
if indices_config := self.config.texinfo_domain_indices:
|
|
480
|
+
if not isinstance(indices_config, bool):
|
|
481
|
+
check_names = True
|
|
482
|
+
indices_config = frozenset(indices_config)
|
|
483
|
+
else:
|
|
484
|
+
check_names = False
|
|
485
|
+
for domain_name in sorted(self.builder.env.domains):
|
|
486
|
+
domain = self.builder.env.domains[domain_name]
|
|
487
|
+
for index_cls in domain.indices:
|
|
488
|
+
index_name = f'{domain.name}-{index_cls.name}'
|
|
489
|
+
if check_names and index_name not in indices_config:
|
|
490
490
|
continue
|
|
491
|
-
|
|
492
|
-
|
|
491
|
+
content, collapsed = index_cls(domain).generate(
|
|
492
|
+
self.builder.docnames)
|
|
493
|
+
if content:
|
|
494
|
+
self.indices.append((
|
|
495
|
+
index_cls.localname,
|
|
496
|
+
generate(content, collapsed),
|
|
497
|
+
))
|
|
493
498
|
# only add the main Index if it's not empty
|
|
494
499
|
domain = cast(IndexDomain, self.builder.env.get_domain('index'))
|
|
495
500
|
for docname in self.builder.docnames:
|
|
@@ -691,7 +696,7 @@ class TexinfoTranslator(SphinxTranslator):
|
|
|
691
696
|
# cases for the sake of appearance
|
|
692
697
|
if isinstance(node.parent, (nodes.title, addnodes.desc_type)):
|
|
693
698
|
return
|
|
694
|
-
if isinstance(node[0], nodes.image):
|
|
699
|
+
if len(node) != 0 and isinstance(node[0], nodes.image):
|
|
695
700
|
return
|
|
696
701
|
name = node.get('name', node.astext()).strip()
|
|
697
702
|
uri = node.get('refuri', '')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: Sphinx
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.4.0
|
|
4
4
|
Summary: Python documentation generator
|
|
5
5
|
Author-email: Georg Brandl <georg@python.org>
|
|
6
6
|
Requires-Python: >=3.9
|
|
@@ -48,32 +48,33 @@ Requires-Dist: sphinxcontrib-jsmath
|
|
|
48
48
|
Requires-Dist: sphinxcontrib-htmlhelp>=2.0.0
|
|
49
49
|
Requires-Dist: sphinxcontrib-serializinghtml>=1.1.9
|
|
50
50
|
Requires-Dist: sphinxcontrib-qthelp
|
|
51
|
-
Requires-Dist: Jinja2>=3.
|
|
52
|
-
Requires-Dist: Pygments>=2.
|
|
53
|
-
Requires-Dist: docutils>=0.
|
|
54
|
-
Requires-Dist: snowballstemmer>=2.
|
|
55
|
-
Requires-Dist: babel>=2.
|
|
51
|
+
Requires-Dist: Jinja2>=3.1
|
|
52
|
+
Requires-Dist: Pygments>=2.17
|
|
53
|
+
Requires-Dist: docutils>=0.20,<0.22
|
|
54
|
+
Requires-Dist: snowballstemmer>=2.2
|
|
55
|
+
Requires-Dist: babel>=2.13
|
|
56
56
|
Requires-Dist: alabaster~=0.7.14
|
|
57
57
|
Requires-Dist: imagesize>=1.3
|
|
58
|
-
Requires-Dist: requests>=2.
|
|
59
|
-
Requires-Dist: packaging>=
|
|
60
|
-
Requires-Dist: importlib-metadata>=
|
|
58
|
+
Requires-Dist: requests>=2.30.0
|
|
59
|
+
Requires-Dist: packaging>=23.0
|
|
60
|
+
Requires-Dist: importlib-metadata>=6.0; python_version < '3.10'
|
|
61
61
|
Requires-Dist: tomli>=2; python_version < '3.11'
|
|
62
|
-
Requires-Dist: colorama>=0.4.
|
|
62
|
+
Requires-Dist: colorama>=0.4.6; sys_platform == 'win32'
|
|
63
63
|
Requires-Dist: sphinxcontrib-websupport ; extra == "docs"
|
|
64
|
-
Requires-Dist: flake8>=
|
|
65
|
-
Requires-Dist: ruff==0.
|
|
66
|
-
Requires-Dist: mypy==1.
|
|
67
|
-
Requires-Dist: sphinx-lint ; extra == "lint"
|
|
68
|
-
Requires-Dist: types-docutils ; extra == "lint"
|
|
69
|
-
Requires-Dist: types-requests ; extra == "lint"
|
|
70
|
-
Requires-Dist:
|
|
71
|
-
Requires-Dist: tomli ; extra == "lint"
|
|
64
|
+
Requires-Dist: flake8>=6.0 ; extra == "lint"
|
|
65
|
+
Requires-Dist: ruff==0.5.2 ; extra == "lint"
|
|
66
|
+
Requires-Dist: mypy==1.10.1 ; extra == "lint"
|
|
67
|
+
Requires-Dist: sphinx-lint>=0.9 ; extra == "lint"
|
|
68
|
+
Requires-Dist: types-docutils==0.21.0.20240711 ; extra == "lint"
|
|
69
|
+
Requires-Dist: types-requests>=2.30.0 ; extra == "lint"
|
|
70
|
+
Requires-Dist: importlib-metadata>=6.0 ; extra == "lint"
|
|
71
|
+
Requires-Dist: tomli>=2 ; extra == "lint"
|
|
72
72
|
Requires-Dist: pytest>=6.0 ; extra == "lint"
|
|
73
|
-
Requires-Dist: pytest>=
|
|
73
|
+
Requires-Dist: pytest>=8.0 ; extra == "test"
|
|
74
74
|
Requires-Dist: defusedxml>=0.7.1 ; extra == "test"
|
|
75
75
|
Requires-Dist: cython>=3.0 ; extra == "test"
|
|
76
|
-
Requires-Dist: setuptools>=
|
|
76
|
+
Requires-Dist: setuptools>=70.0 ; extra == "test"
|
|
77
|
+
Requires-Dist: typing_extensions>=4.9 ; extra == "test"
|
|
77
78
|
Project-URL: Changelog, https://www.sphinx-doc.org/en/master/changes.html
|
|
78
79
|
Project-URL: Code, https://github.com/sphinx-doc/sphinx
|
|
79
80
|
Project-URL: Download, https://pypi.org/project/Sphinx/
|