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/cmd/build.py
CHANGED
|
@@ -21,19 +21,19 @@ from sphinx import __display_version__
|
|
|
21
21
|
from sphinx.application import Sphinx
|
|
22
22
|
from sphinx.errors import SphinxError, SphinxParallelError
|
|
23
23
|
from sphinx.locale import __
|
|
24
|
-
from sphinx.util import
|
|
25
|
-
from sphinx.util.console import
|
|
26
|
-
color_terminal,
|
|
27
|
-
nocolor,
|
|
28
|
-
red,
|
|
29
|
-
terminal_safe,
|
|
30
|
-
)
|
|
24
|
+
from sphinx.util._io import TeeStripANSI
|
|
25
|
+
from sphinx.util.console import color_terminal, nocolor, red, terminal_safe
|
|
31
26
|
from sphinx.util.docutils import docutils_namespace, patch_docutils
|
|
32
27
|
from sphinx.util.exceptions import format_exception_cut_frames, save_traceback
|
|
33
28
|
from sphinx.util.osutil import ensuredir
|
|
34
29
|
|
|
35
30
|
if TYPE_CHECKING:
|
|
36
31
|
from collections.abc import Sequence
|
|
32
|
+
from typing import Protocol
|
|
33
|
+
|
|
34
|
+
class SupportsWrite(Protocol):
|
|
35
|
+
def write(self, text: str, /) -> int | None:
|
|
36
|
+
...
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
def handle_exception(
|
|
@@ -133,75 +133,79 @@ files can be built by specifying individual filenames.
|
|
|
133
133
|
"""))
|
|
134
134
|
|
|
135
135
|
parser.add_argument('--version', action='version', dest='show_version',
|
|
136
|
-
version='
|
|
136
|
+
version=f'%(prog)s {__display_version__}')
|
|
137
137
|
|
|
138
|
-
parser.add_argument('sourcedir',
|
|
138
|
+
parser.add_argument('sourcedir', metavar='SOURCE_DIR',
|
|
139
139
|
help=__('path to documentation source files'))
|
|
140
|
-
parser.add_argument('outputdir',
|
|
140
|
+
parser.add_argument('outputdir', metavar='OUTPUT_DIR',
|
|
141
141
|
help=__('path to output directory'))
|
|
142
142
|
parser.add_argument('filenames', nargs='*',
|
|
143
|
-
help=__('a list of specific files to rebuild.
|
|
144
|
-
'if -
|
|
143
|
+
help=__('(optional) a list of specific files to rebuild. '
|
|
144
|
+
'Ignored if --write-all is specified'))
|
|
145
145
|
|
|
146
146
|
group = parser.add_argument_group(__('general options'))
|
|
147
|
-
group.add_argument('-b', metavar='BUILDER', dest='builder',
|
|
147
|
+
group.add_argument('--builder', '-b', metavar='BUILDER', dest='builder',
|
|
148
148
|
default='html',
|
|
149
|
-
help=__(
|
|
150
|
-
group.add_argument('
|
|
149
|
+
help=__("builder to use (default: 'html')"))
|
|
150
|
+
group.add_argument('--jobs', '-j', metavar='N', default=1, type=jobs_argument,
|
|
151
|
+
dest='jobs',
|
|
152
|
+
help=__('run in parallel with N processes, when possible. '
|
|
153
|
+
"'auto' uses the number of CPU cores"))
|
|
154
|
+
group.add_argument('--write-all', '-a', action='store_true', dest='force_all',
|
|
151
155
|
help=__('write all files (default: only write new and '
|
|
152
156
|
'changed files)'))
|
|
153
|
-
group.add_argument('-E', action='store_true', dest='freshenv',
|
|
157
|
+
group.add_argument('--fresh-env', '-E', action='store_true', dest='freshenv',
|
|
154
158
|
help=__("don't use a saved environment, always read "
|
|
155
159
|
'all files'))
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
160
|
+
|
|
161
|
+
group = parser.add_argument_group(__('path options'))
|
|
162
|
+
group.add_argument('--doctree-dir', '-d', metavar='PATH', dest='doctreedir',
|
|
163
|
+
help=__('directory for doctree and environment files '
|
|
164
|
+
'(default: OUTPUT_DIR/.doctrees)'))
|
|
165
|
+
group.add_argument('--conf-dir', '-c', metavar='PATH', dest='confdir',
|
|
166
|
+
help=__('directory for the configuration file (conf.py) '
|
|
167
|
+
'(default: SOURCE_DIR)'))
|
|
168
|
+
|
|
163
169
|
group = parser.add_argument_group('build configuration options')
|
|
164
|
-
group.add_argument('-
|
|
165
|
-
help=__('
|
|
166
|
-
|
|
167
|
-
group.add_argument('-C', action='store_true', dest='noconfig',
|
|
168
|
-
help=__('use no config file at all, only -D options'))
|
|
169
|
-
group.add_argument('-D', metavar='setting=value', action='append',
|
|
170
|
+
group.add_argument('--isolated', '-C', action='store_true', dest='noconfig',
|
|
171
|
+
help=__('use no configuration file, only use settings from -D options'))
|
|
172
|
+
group.add_argument('--define', '-D', metavar='setting=value', action='append',
|
|
170
173
|
dest='define', default=[],
|
|
171
174
|
help=__('override a setting in configuration file'))
|
|
172
|
-
group.add_argument('-A', metavar='name=value', action='append',
|
|
175
|
+
group.add_argument('--html-define', '-A', metavar='name=value', action='append',
|
|
173
176
|
dest='htmldefine', default=[],
|
|
174
177
|
help=__('pass a value into HTML templates'))
|
|
175
|
-
group.add_argument('-t', metavar='TAG', action='append',
|
|
178
|
+
group.add_argument('--tag', '-t', metavar='TAG', action='append',
|
|
176
179
|
dest='tags', default=[],
|
|
177
180
|
help=__('define tag: include "only" blocks with TAG'))
|
|
178
|
-
group.add_argument('-n', action='store_true', dest='nitpicky',
|
|
179
|
-
help=__('nit-picky mode
|
|
180
|
-
'references'))
|
|
181
|
+
group.add_argument('--nitpicky', '-n', action='store_true', dest='nitpicky',
|
|
182
|
+
help=__('nit-picky mode: warn about all missing references'))
|
|
181
183
|
|
|
182
184
|
group = parser.add_argument_group(__('console output options'))
|
|
183
|
-
group.add_argument('-v', action='count', dest='verbosity',
|
|
185
|
+
group.add_argument('--verbose', '-v', action='count', dest='verbosity',
|
|
186
|
+
default=0,
|
|
184
187
|
help=__('increase verbosity (can be repeated)'))
|
|
185
|
-
group.add_argument('-q', action='store_true', dest='quiet',
|
|
188
|
+
group.add_argument('--quiet', '-q', action='store_true', dest='quiet',
|
|
186
189
|
help=__('no output on stdout, just warnings on stderr'))
|
|
187
|
-
group.add_argument('-Q', action='store_true', dest='really_quiet',
|
|
190
|
+
group.add_argument('--silent', '-Q', action='store_true', dest='really_quiet',
|
|
188
191
|
help=__('no output at all, not even warnings'))
|
|
189
|
-
group.add_argument('--color', action='store_const',
|
|
190
|
-
default='auto',
|
|
192
|
+
group.add_argument('--color', action='store_const', dest='color',
|
|
193
|
+
const='yes', default='auto',
|
|
191
194
|
help=__('do emit colored output (default: auto-detect)'))
|
|
192
|
-
group.add_argument('-
|
|
195
|
+
group.add_argument('--no-color', '-N', action='store_const', dest='color',
|
|
193
196
|
const='no',
|
|
194
|
-
help=__('do not emit colored output (default: '
|
|
195
|
-
|
|
196
|
-
group.
|
|
197
|
+
help=__('do not emit colored output (default: auto-detect)'))
|
|
198
|
+
|
|
199
|
+
group = parser.add_argument_group(__('warning control options'))
|
|
200
|
+
group.add_argument('--warning-file', '-w', metavar='FILE', dest='warnfile',
|
|
197
201
|
help=__('write warnings (and errors) to given file'))
|
|
198
|
-
group.add_argument('-W', action='store_true', dest='warningiserror',
|
|
202
|
+
group.add_argument('--fail-on-warning', '-W', action='store_true', dest='warningiserror',
|
|
199
203
|
help=__('turn warnings into errors'))
|
|
200
204
|
group.add_argument('--keep-going', action='store_true', dest='keep_going',
|
|
201
|
-
help=__("with -
|
|
202
|
-
group.add_argument('-T', action='store_true', dest='traceback',
|
|
205
|
+
help=__("with --fail-on-warning, keep going when getting warnings"))
|
|
206
|
+
group.add_argument('--show-traceback', '-T', action='store_true', dest='traceback',
|
|
203
207
|
help=__('show full traceback on exception'))
|
|
204
|
-
group.add_argument('-P', action='store_true', dest='pdb',
|
|
208
|
+
group.add_argument('--pdb', '-P', action='store_true', dest='pdb',
|
|
205
209
|
help=__('run Pdb on exception'))
|
|
206
210
|
|
|
207
211
|
return parser
|
|
@@ -213,58 +217,86 @@ def make_main(argv: Sequence[str]) -> int:
|
|
|
213
217
|
return make_mode.run_make_mode(argv[1:])
|
|
214
218
|
|
|
215
219
|
|
|
216
|
-
def _parse_arguments(
|
|
217
|
-
|
|
220
|
+
def _parse_arguments(parser: argparse.ArgumentParser,
|
|
221
|
+
argv: Sequence[str]) -> argparse.Namespace:
|
|
218
222
|
args = parser.parse_args(argv)
|
|
223
|
+
return args
|
|
224
|
+
|
|
219
225
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
226
|
+
def _parse_confdir(noconfig: bool, confdir: str, sourcedir: str) -> str | None:
|
|
227
|
+
if noconfig:
|
|
228
|
+
return None
|
|
229
|
+
elif not confdir:
|
|
230
|
+
return sourcedir
|
|
231
|
+
return confdir
|
|
224
232
|
|
|
225
|
-
if not args.doctreedir:
|
|
226
|
-
args.doctreedir = os.path.join(args.outputdir, '.doctrees')
|
|
227
233
|
|
|
228
|
-
|
|
234
|
+
def _parse_doctreedir(doctreedir: str, outputdir: str) -> str:
|
|
235
|
+
if doctreedir:
|
|
236
|
+
return doctreedir
|
|
237
|
+
return os.path.join(outputdir, '.doctrees')
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
def _validate_filenames(
|
|
241
|
+
parser: argparse.ArgumentParser, force_all: bool, filenames: list[str],
|
|
242
|
+
) -> None:
|
|
243
|
+
if force_all and filenames:
|
|
229
244
|
parser.error(__('cannot combine -a option and filenames'))
|
|
230
245
|
|
|
231
|
-
|
|
246
|
+
|
|
247
|
+
def _validate_colour_support(colour: str) -> None:
|
|
248
|
+
if colour == 'no' or (colour == 'auto' and not color_terminal()):
|
|
232
249
|
nocolor()
|
|
233
250
|
|
|
251
|
+
|
|
252
|
+
def _parse_logging(
|
|
253
|
+
parser: argparse.ArgumentParser,
|
|
254
|
+
quiet: bool,
|
|
255
|
+
really_quiet: bool,
|
|
256
|
+
warnfile: str | None,
|
|
257
|
+
) -> tuple[TextIO | None, TextIO | None, TextIO, TextIO | None]:
|
|
234
258
|
status: TextIO | None = sys.stdout
|
|
235
259
|
warning: TextIO | None = sys.stderr
|
|
236
260
|
error = sys.stderr
|
|
237
261
|
|
|
238
|
-
if
|
|
262
|
+
if quiet:
|
|
239
263
|
status = None
|
|
240
264
|
|
|
241
|
-
if
|
|
265
|
+
if really_quiet:
|
|
242
266
|
status = warning = None
|
|
243
267
|
|
|
244
|
-
|
|
268
|
+
warnfp = None
|
|
269
|
+
if warning and warnfile:
|
|
245
270
|
try:
|
|
246
|
-
warnfile = path.abspath(
|
|
271
|
+
warnfile = path.abspath(warnfile)
|
|
247
272
|
ensuredir(path.dirname(warnfile))
|
|
248
|
-
|
|
273
|
+
# the caller is responsible for closing this file descriptor
|
|
274
|
+
warnfp = open(warnfile, 'w', encoding="utf-8") # NoQA: SIM115
|
|
249
275
|
except Exception as exc:
|
|
250
276
|
parser.error(__('cannot open warning file %r: %s') % (
|
|
251
|
-
|
|
252
|
-
warning =
|
|
277
|
+
warnfile, exc))
|
|
278
|
+
warning = TeeStripANSI(warning, warnfp) # type: ignore[assignment]
|
|
253
279
|
error = warning
|
|
254
280
|
|
|
255
|
-
|
|
256
|
-
args.warning = warning
|
|
257
|
-
args.error = error
|
|
281
|
+
return status, warning, error, warnfp
|
|
258
282
|
|
|
259
|
-
|
|
260
|
-
|
|
283
|
+
|
|
284
|
+
def _parse_confoverrides(
|
|
285
|
+
parser: argparse.ArgumentParser,
|
|
286
|
+
define: list[str],
|
|
287
|
+
htmldefine: list[str],
|
|
288
|
+
nitpicky: bool,
|
|
289
|
+
) -> dict[str, Any]:
|
|
290
|
+
confoverrides: dict[str, Any] = {}
|
|
291
|
+
val: Any
|
|
292
|
+
for val in define:
|
|
261
293
|
try:
|
|
262
294
|
key, val = val.split('=', 1)
|
|
263
295
|
except ValueError:
|
|
264
296
|
parser.error(__('-D option argument must be in the form name=value'))
|
|
265
297
|
confoverrides[key] = val
|
|
266
298
|
|
|
267
|
-
for val in
|
|
299
|
+
for val in htmldefine:
|
|
268
300
|
try:
|
|
269
301
|
key, val = val.split('=')
|
|
270
302
|
except ValueError:
|
|
@@ -272,19 +304,26 @@ def _parse_arguments(argv: Sequence[str]) -> argparse.Namespace:
|
|
|
272
304
|
with contextlib.suppress(ValueError):
|
|
273
305
|
val = int(val)
|
|
274
306
|
|
|
275
|
-
confoverrides['html_context
|
|
307
|
+
confoverrides[f'html_context.{key}'] = val
|
|
276
308
|
|
|
277
|
-
if
|
|
309
|
+
if nitpicky:
|
|
278
310
|
confoverrides['nitpicky'] = True
|
|
279
311
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
return args
|
|
312
|
+
return confoverrides
|
|
283
313
|
|
|
284
314
|
|
|
285
315
|
def build_main(argv: Sequence[str]) -> int:
|
|
286
316
|
"""Sphinx build "main" command-line entry."""
|
|
287
|
-
|
|
317
|
+
parser = get_parser()
|
|
318
|
+
args = _parse_arguments(parser, argv)
|
|
319
|
+
args.confdir = _parse_confdir(args.noconfig, args.confdir, args.sourcedir)
|
|
320
|
+
args.doctreedir = _parse_doctreedir(args.doctreedir, args.outputdir)
|
|
321
|
+
_validate_filenames(parser, args.force_all, args.filenames)
|
|
322
|
+
_validate_colour_support(args.color)
|
|
323
|
+
args.status, args.warning, args.error, warnfp = _parse_logging(
|
|
324
|
+
parser, args.quiet, args.really_quiet, args.warnfile)
|
|
325
|
+
args.confoverrides = _parse_confoverrides(
|
|
326
|
+
parser, args.define, args.htmldefine, args.nitpicky)
|
|
288
327
|
|
|
289
328
|
app = None
|
|
290
329
|
try:
|
|
@@ -300,6 +339,10 @@ def build_main(argv: Sequence[str]) -> int:
|
|
|
300
339
|
except (Exception, KeyboardInterrupt) as exc:
|
|
301
340
|
handle_exception(app, args, exc, args.error)
|
|
302
341
|
return 2
|
|
342
|
+
finally:
|
|
343
|
+
if warnfp is not None:
|
|
344
|
+
# close the file descriptor for the warnings file opened by Sphinx
|
|
345
|
+
warnfp.close()
|
|
303
346
|
|
|
304
347
|
|
|
305
348
|
def _bug_report_info() -> int:
|
sphinx/cmd/make_mode.py
CHANGED
|
@@ -17,17 +17,12 @@ from typing import TYPE_CHECKING
|
|
|
17
17
|
|
|
18
18
|
import sphinx
|
|
19
19
|
from sphinx.cmd.build import build_main
|
|
20
|
-
from sphinx.util.console import
|
|
21
|
-
blue,
|
|
22
|
-
bold,
|
|
23
|
-
color_terminal,
|
|
24
|
-
nocolor,
|
|
25
|
-
)
|
|
20
|
+
from sphinx.util.console import blue, bold, color_terminal, nocolor
|
|
26
21
|
from sphinx.util.osutil import rmtree
|
|
27
22
|
|
|
28
|
-
|
|
29
|
-
from contextlib import chdir
|
|
30
|
-
|
|
23
|
+
if sys.version_info >= (3, 11):
|
|
24
|
+
from contextlib import chdir
|
|
25
|
+
else:
|
|
31
26
|
from sphinx.util.osutil import _chdir as chdir
|
|
32
27
|
|
|
33
28
|
if TYPE_CHECKING:
|
|
@@ -67,7 +62,6 @@ class Make:
|
|
|
67
62
|
self.srcdir = srcdir
|
|
68
63
|
self.builddir = builddir
|
|
69
64
|
self.opts = [*opts]
|
|
70
|
-
self.makecmd = os.environ.get('MAKE', 'make') # refer $MAKE to determine make command
|
|
71
65
|
|
|
72
66
|
def builddir_join(self, *comps: str) -> str:
|
|
73
67
|
return path.join(self.builddir, *comps)
|
|
@@ -105,10 +99,11 @@ class Make:
|
|
|
105
99
|
if self.run_generic_build('latex') > 0:
|
|
106
100
|
return 1
|
|
107
101
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
102
|
+
# Use $MAKE to determine the make command
|
|
103
|
+
make_fallback = 'make.bat' if sys.platform == 'win32' else 'make'
|
|
104
|
+
makecmd = os.environ.get('MAKE', make_fallback)
|
|
105
|
+
if not makecmd.lower().startswith('make'):
|
|
106
|
+
raise RuntimeError('Invalid $MAKE command: %r' % makecmd)
|
|
112
107
|
try:
|
|
113
108
|
with chdir(self.builddir_join('latex')):
|
|
114
109
|
return subprocess.call([makecmd, 'all-pdf'])
|
|
@@ -120,10 +115,11 @@ class Make:
|
|
|
120
115
|
if self.run_generic_build('latex') > 0:
|
|
121
116
|
return 1
|
|
122
117
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
118
|
+
# Use $MAKE to determine the make command
|
|
119
|
+
make_fallback = 'make.bat' if sys.platform == 'win32' else 'make'
|
|
120
|
+
makecmd = os.environ.get('MAKE', make_fallback)
|
|
121
|
+
if not makecmd.lower().startswith('make'):
|
|
122
|
+
raise RuntimeError('Invalid $MAKE command: %r' % makecmd)
|
|
127
123
|
try:
|
|
128
124
|
with chdir(self.builddir_join('latex')):
|
|
129
125
|
return subprocess.call([makecmd, 'all-pdf'])
|
|
@@ -134,11 +130,16 @@ class Make:
|
|
|
134
130
|
def build_info(self) -> int:
|
|
135
131
|
if self.run_generic_build('texinfo') > 0:
|
|
136
132
|
return 1
|
|
133
|
+
|
|
134
|
+
# Use $MAKE to determine the make command
|
|
135
|
+
makecmd = os.environ.get('MAKE', 'make')
|
|
136
|
+
if not makecmd.lower().startswith('make'):
|
|
137
|
+
raise RuntimeError('Invalid $MAKE command: %r' % makecmd)
|
|
137
138
|
try:
|
|
138
139
|
with chdir(self.builddir_join('texinfo')):
|
|
139
|
-
return subprocess.call([
|
|
140
|
+
return subprocess.call([makecmd, 'info'])
|
|
140
141
|
except OSError:
|
|
141
|
-
print('Error: Failed to run: %s' %
|
|
142
|
+
print('Error: Failed to run: %s' % makecmd)
|
|
142
143
|
return 1
|
|
143
144
|
|
|
144
145
|
def build_gettext(self) -> int:
|
sphinx/cmd/quickstart.py
CHANGED
|
@@ -31,13 +31,7 @@ from docutils.utils import column_width
|
|
|
31
31
|
import sphinx.locale
|
|
32
32
|
from sphinx import __display_version__, package_dir
|
|
33
33
|
from sphinx.locale import __
|
|
34
|
-
from sphinx.util.console import
|
|
35
|
-
bold,
|
|
36
|
-
color_terminal,
|
|
37
|
-
colorize,
|
|
38
|
-
nocolor,
|
|
39
|
-
red,
|
|
40
|
-
)
|
|
34
|
+
from sphinx.util.console import bold, color_terminal, colorize, nocolor, red
|
|
41
35
|
from sphinx.util.osutil import ensuredir
|
|
42
36
|
from sphinx.util.template import SphinxRenderer
|
|
43
37
|
|
|
@@ -211,7 +205,6 @@ def ask_user(d: dict[str, Any]) -> None:
|
|
|
211
205
|
* makefile: make Makefile
|
|
212
206
|
* batchfile: make command file
|
|
213
207
|
"""
|
|
214
|
-
|
|
215
208
|
print(bold(__('Welcome to the Sphinx %s quickstart utility.')) % __display_version__)
|
|
216
209
|
print()
|
|
217
210
|
print(__('Please enter values for the following settings (just press Enter to\n'
|
|
@@ -246,9 +239,9 @@ def ask_user(d: dict[str, Any]) -> None:
|
|
|
246
239
|
|
|
247
240
|
if 'dot' not in d:
|
|
248
241
|
print()
|
|
249
|
-
print(__('Inside the root directory, two more directories will be created; "_templates"\n' #
|
|
250
|
-
'for custom HTML templates and "_static" for custom stylesheets and other static\n' #
|
|
251
|
-
'files. You can enter another prefix (such as ".") to replace the underscore.')) #
|
|
242
|
+
print(__('Inside the root directory, two more directories will be created; "_templates"\n' # NoQA: E501
|
|
243
|
+
'for custom HTML templates and "_static" for custom stylesheets and other static\n' # NoQA: E501
|
|
244
|
+
'files. You can enter another prefix (such as ".") to replace the underscore.')) # NoQA: E501
|
|
252
245
|
d['dot'] = do_prompt(__('Name prefix for templates and static dir'), '_', ok)
|
|
253
246
|
|
|
254
247
|
if 'project' not in d:
|
|
@@ -396,10 +389,13 @@ def generate(
|
|
|
396
389
|
else:
|
|
397
390
|
write_file(masterfile, template.render('quickstart/root_doc.rst_t', d))
|
|
398
391
|
|
|
399
|
-
if d.get('make_mode')
|
|
392
|
+
if d.get('make_mode'):
|
|
400
393
|
makefile_template = 'quickstart/Makefile.new_t'
|
|
401
394
|
batchfile_template = 'quickstart/make.bat.new_t'
|
|
402
395
|
else:
|
|
396
|
+
# xref RemovedInSphinx80Warning
|
|
397
|
+
msg = "Support for '--no-use-make-mode' will be removed in Sphinx 8."
|
|
398
|
+
print(colorize('red', msg))
|
|
403
399
|
makefile_template = 'quickstart/Makefile_t'
|
|
404
400
|
batchfile_template = 'quickstart/make.bat_t'
|
|
405
401
|
|
|
@@ -432,6 +428,10 @@ def generate(
|
|
|
432
428
|
print(__('where "builder" is one of the supported builders, '
|
|
433
429
|
'e.g. html, latex or linkcheck.'))
|
|
434
430
|
print()
|
|
431
|
+
if not d.get('make_mode'):
|
|
432
|
+
# xref RemovedInSphinx80Warning
|
|
433
|
+
msg = "Support for '--no-use-make-mode' will be removed in Sphinx 8."
|
|
434
|
+
print(colorize('red', msg))
|
|
435
435
|
|
|
436
436
|
|
|
437
437
|
def valid_dir(d: dict) -> bool:
|
|
@@ -457,10 +457,7 @@ def valid_dir(d: dict) -> bool:
|
|
|
457
457
|
d['dot'] + 'templates',
|
|
458
458
|
d['master'] + d['suffix'],
|
|
459
459
|
]
|
|
460
|
-
|
|
461
|
-
return False
|
|
462
|
-
|
|
463
|
-
return True
|
|
460
|
+
return not set(reserved_names) & set(os.listdir(dir))
|
|
464
461
|
|
|
465
462
|
|
|
466
463
|
def get_parser() -> argparse.ArgumentParser:
|