Sphinx 8.1.3__py3-none-any.whl → 8.2.0rc1__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.

Files changed (193) hide show
  1. sphinx/__init__.py +8 -4
  2. sphinx/__main__.py +2 -0
  3. sphinx/_cli/__init__.py +2 -5
  4. sphinx/_cli/util/colour.py +34 -11
  5. sphinx/_cli/util/errors.py +128 -61
  6. sphinx/addnodes.py +51 -35
  7. sphinx/application.py +362 -230
  8. sphinx/builders/__init__.py +87 -64
  9. sphinx/builders/_epub_base.py +65 -56
  10. sphinx/builders/changes.py +17 -23
  11. sphinx/builders/dirhtml.py +8 -13
  12. sphinx/builders/epub3.py +70 -38
  13. sphinx/builders/gettext.py +93 -73
  14. sphinx/builders/html/__init__.py +240 -186
  15. sphinx/builders/html/_assets.py +9 -2
  16. sphinx/builders/html/_build_info.py +3 -0
  17. sphinx/builders/latex/__init__.py +64 -54
  18. sphinx/builders/latex/constants.py +14 -11
  19. sphinx/builders/latex/nodes.py +2 -0
  20. sphinx/builders/latex/theming.py +8 -9
  21. sphinx/builders/latex/transforms.py +7 -5
  22. sphinx/builders/linkcheck.py +193 -149
  23. sphinx/builders/manpage.py +17 -17
  24. sphinx/builders/singlehtml.py +28 -16
  25. sphinx/builders/texinfo.py +28 -21
  26. sphinx/builders/text.py +10 -15
  27. sphinx/builders/xml.py +10 -19
  28. sphinx/cmd/build.py +49 -119
  29. sphinx/cmd/make_mode.py +35 -31
  30. sphinx/cmd/quickstart.py +78 -62
  31. sphinx/config.py +265 -163
  32. sphinx/directives/__init__.py +51 -54
  33. sphinx/directives/admonitions.py +107 -0
  34. sphinx/directives/code.py +24 -19
  35. sphinx/directives/other.py +21 -42
  36. sphinx/directives/patches.py +28 -16
  37. sphinx/domains/__init__.py +54 -31
  38. sphinx/domains/_domains_container.py +22 -17
  39. sphinx/domains/_index.py +5 -8
  40. sphinx/domains/c/__init__.py +366 -245
  41. sphinx/domains/c/_ast.py +378 -256
  42. sphinx/domains/c/_ids.py +89 -31
  43. sphinx/domains/c/_parser.py +283 -214
  44. sphinx/domains/c/_symbol.py +269 -198
  45. sphinx/domains/changeset.py +39 -24
  46. sphinx/domains/citation.py +54 -24
  47. sphinx/domains/cpp/__init__.py +517 -362
  48. sphinx/domains/cpp/_ast.py +999 -682
  49. sphinx/domains/cpp/_ids.py +133 -65
  50. sphinx/domains/cpp/_parser.py +746 -588
  51. sphinx/domains/cpp/_symbol.py +692 -489
  52. sphinx/domains/index.py +10 -8
  53. sphinx/domains/javascript.py +152 -74
  54. sphinx/domains/math.py +48 -40
  55. sphinx/domains/python/__init__.py +402 -211
  56. sphinx/domains/python/_annotations.py +114 -57
  57. sphinx/domains/python/_object.py +151 -67
  58. sphinx/domains/rst.py +94 -49
  59. sphinx/domains/std/__init__.py +510 -249
  60. sphinx/environment/__init__.py +345 -61
  61. sphinx/environment/adapters/asset.py +7 -1
  62. sphinx/environment/adapters/indexentries.py +15 -20
  63. sphinx/environment/adapters/toctree.py +19 -9
  64. sphinx/environment/collectors/__init__.py +3 -1
  65. sphinx/environment/collectors/asset.py +18 -15
  66. sphinx/environment/collectors/dependencies.py +8 -10
  67. sphinx/environment/collectors/metadata.py +6 -4
  68. sphinx/environment/collectors/title.py +3 -1
  69. sphinx/environment/collectors/toctree.py +4 -4
  70. sphinx/errors.py +1 -3
  71. sphinx/events.py +4 -4
  72. sphinx/ext/apidoc/__init__.py +21 -0
  73. sphinx/ext/apidoc/__main__.py +9 -0
  74. sphinx/ext/apidoc/_cli.py +356 -0
  75. sphinx/ext/apidoc/_generate.py +356 -0
  76. sphinx/ext/apidoc/_shared.py +66 -0
  77. sphinx/ext/autodoc/__init__.py +829 -480
  78. sphinx/ext/autodoc/directive.py +57 -21
  79. sphinx/ext/autodoc/importer.py +184 -67
  80. sphinx/ext/autodoc/mock.py +25 -10
  81. sphinx/ext/autodoc/preserve_defaults.py +17 -9
  82. sphinx/ext/autodoc/type_comment.py +56 -29
  83. sphinx/ext/autodoc/typehints.py +49 -26
  84. sphinx/ext/autosectionlabel.py +28 -11
  85. sphinx/ext/autosummary/__init__.py +271 -143
  86. sphinx/ext/autosummary/generate.py +121 -51
  87. sphinx/ext/coverage.py +152 -91
  88. sphinx/ext/doctest.py +169 -101
  89. sphinx/ext/duration.py +12 -6
  90. sphinx/ext/extlinks.py +33 -21
  91. sphinx/ext/githubpages.py +8 -8
  92. sphinx/ext/graphviz.py +175 -109
  93. sphinx/ext/ifconfig.py +11 -6
  94. sphinx/ext/imgconverter.py +48 -25
  95. sphinx/ext/imgmath.py +127 -97
  96. sphinx/ext/inheritance_diagram.py +177 -103
  97. sphinx/ext/intersphinx/__init__.py +22 -13
  98. sphinx/ext/intersphinx/__main__.py +3 -1
  99. sphinx/ext/intersphinx/_cli.py +18 -14
  100. sphinx/ext/intersphinx/_load.py +91 -82
  101. sphinx/ext/intersphinx/_resolve.py +108 -74
  102. sphinx/ext/intersphinx/_shared.py +2 -2
  103. sphinx/ext/linkcode.py +28 -12
  104. sphinx/ext/mathjax.py +60 -29
  105. sphinx/ext/napoleon/__init__.py +19 -7
  106. sphinx/ext/napoleon/docstring.py +229 -231
  107. sphinx/ext/todo.py +44 -49
  108. sphinx/ext/viewcode.py +105 -57
  109. sphinx/extension.py +3 -1
  110. sphinx/highlighting.py +13 -7
  111. sphinx/io.py +9 -13
  112. sphinx/jinja2glue.py +29 -26
  113. sphinx/locale/__init__.py +8 -9
  114. sphinx/parsers.py +8 -7
  115. sphinx/project.py +2 -2
  116. sphinx/pycode/__init__.py +31 -21
  117. sphinx/pycode/ast.py +6 -3
  118. sphinx/pycode/parser.py +14 -8
  119. sphinx/pygments_styles.py +4 -5
  120. sphinx/registry.py +192 -92
  121. sphinx/roles.py +58 -7
  122. sphinx/search/__init__.py +75 -54
  123. sphinx/search/en.py +11 -13
  124. sphinx/search/fi.py +1 -1
  125. sphinx/search/ja.py +8 -6
  126. sphinx/search/nl.py +1 -1
  127. sphinx/search/zh.py +19 -21
  128. sphinx/testing/fixtures.py +26 -29
  129. sphinx/testing/path.py +26 -62
  130. sphinx/testing/restructuredtext.py +14 -8
  131. sphinx/testing/util.py +21 -19
  132. sphinx/texinputs/make.bat.jinja +50 -50
  133. sphinx/texinputs/sphinx.sty +4 -3
  134. sphinx/texinputs/sphinxlatexadmonitions.sty +1 -1
  135. sphinx/texinputs/sphinxlatexobjects.sty +29 -10
  136. sphinx/themes/basic/static/searchtools.js +8 -5
  137. sphinx/theming.py +49 -61
  138. sphinx/transforms/__init__.py +17 -38
  139. sphinx/transforms/compact_bullet_list.py +5 -3
  140. sphinx/transforms/i18n.py +8 -21
  141. sphinx/transforms/post_transforms/__init__.py +142 -93
  142. sphinx/transforms/post_transforms/code.py +5 -5
  143. sphinx/transforms/post_transforms/images.py +28 -24
  144. sphinx/transforms/references.py +3 -1
  145. sphinx/util/__init__.py +109 -60
  146. sphinx/util/_files.py +39 -23
  147. sphinx/util/_importer.py +4 -1
  148. sphinx/util/_inventory_file_reader.py +76 -0
  149. sphinx/util/_io.py +2 -2
  150. sphinx/util/_lines.py +6 -3
  151. sphinx/util/_pathlib.py +40 -2
  152. sphinx/util/build_phase.py +2 -0
  153. sphinx/util/cfamily.py +19 -14
  154. sphinx/util/console.py +44 -179
  155. sphinx/util/display.py +9 -10
  156. sphinx/util/docfields.py +140 -122
  157. sphinx/util/docstrings.py +1 -1
  158. sphinx/util/docutils.py +118 -77
  159. sphinx/util/fileutil.py +25 -26
  160. sphinx/util/http_date.py +2 -0
  161. sphinx/util/i18n.py +77 -64
  162. sphinx/util/images.py +8 -6
  163. sphinx/util/inspect.py +147 -38
  164. sphinx/util/inventory.py +215 -116
  165. sphinx/util/logging.py +33 -33
  166. sphinx/util/matching.py +12 -4
  167. sphinx/util/nodes.py +18 -13
  168. sphinx/util/osutil.py +38 -39
  169. sphinx/util/parallel.py +22 -13
  170. sphinx/util/parsing.py +2 -1
  171. sphinx/util/png.py +6 -2
  172. sphinx/util/requests.py +33 -2
  173. sphinx/util/rst.py +3 -2
  174. sphinx/util/tags.py +1 -1
  175. sphinx/util/template.py +18 -10
  176. sphinx/util/texescape.py +8 -6
  177. sphinx/util/typing.py +148 -122
  178. sphinx/versioning.py +3 -3
  179. sphinx/writers/html.py +3 -1
  180. sphinx/writers/html5.py +61 -50
  181. sphinx/writers/latex.py +80 -65
  182. sphinx/writers/manpage.py +19 -38
  183. sphinx/writers/texinfo.py +44 -45
  184. sphinx/writers/text.py +48 -30
  185. sphinx/writers/xml.py +11 -8
  186. {sphinx-8.1.3.dist-info → sphinx-8.2.0rc1.dist-info}/LICENSE.rst +1 -1
  187. {sphinx-8.1.3.dist-info → sphinx-8.2.0rc1.dist-info}/METADATA +23 -15
  188. {sphinx-8.1.3.dist-info → sphinx-8.2.0rc1.dist-info}/RECORD +190 -186
  189. {sphinx-8.1.3.dist-info → sphinx-8.2.0rc1.dist-info}/WHEEL +1 -1
  190. sphinx/builders/html/transforms.py +0 -90
  191. sphinx/ext/apidoc.py +0 -721
  192. sphinx/util/exceptions.py +0 -74
  193. {sphinx-8.1.3.dist-info → sphinx-8.2.0rc1.dist-info}/entry_points.txt +0 -0
sphinx/domains/c/_ids.py CHANGED
@@ -1,52 +1,108 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import re
4
+ from typing import TYPE_CHECKING
5
+
6
+ if TYPE_CHECKING:
7
+ from collections.abc import Sequence, Set
4
8
 
5
9
  # https://en.cppreference.com/w/c/keyword
6
- _keywords = [
7
- 'auto', 'break', 'case', 'char', 'const', 'continue', 'default', 'do', 'double',
8
- 'else', 'enum', 'extern', 'float', 'for', 'goto', 'if', 'inline', 'int', 'long',
9
- 'register', 'restrict', 'return', 'short', 'signed', 'sizeof', 'static', 'struct',
10
- 'switch', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'while',
11
- '_Alignas', '_Alignof', '_Atomic', '_Bool', '_Complex',
10
+ _keywords: Set[str] = frozenset({
11
+ 'auto',
12
+ 'break',
13
+ 'case', 'char', 'const', 'continue',
14
+ 'default', 'do', 'double',
15
+ 'else', 'enum', 'extern',
16
+ 'float', 'for',
17
+ 'goto',
18
+ 'if', 'inline', 'int',
19
+ 'long',
20
+ 'register', 'restrict', 'return',
21
+ 'short', 'signed', 'sizeof', 'static', 'struct', 'switch',
22
+ 'typedef',
23
+ 'union', 'unsigned',
24
+ 'void', 'volatile',
25
+ 'while',
26
+ '_Alignas', '_Alignof', '_Atomic',
27
+ '_Bool',
28
+ '_Complex',
12
29
  '_Decimal32', '_Decimal64', '_Decimal128',
13
- '_Generic', '_Imaginary', '_Noreturn', '_Static_assert', '_Thread_local',
14
- ]
30
+ '_Generic',
31
+ '_Imaginary',
32
+ '_Noreturn',
33
+ '_Static_assert',
34
+ '_Thread_local',
35
+ }) # fmt: skip
15
36
  # These are only keyword'y when the corresponding headers are included.
16
37
  # They are used as default value for c_extra_keywords.
17
- _macroKeywords = [
18
- 'alignas', 'alignof', 'bool', 'complex', 'imaginary', 'noreturn', 'static_assert',
38
+ _macro_keywords: Set[str] = frozenset({
39
+ 'alignas',
40
+ 'alignof',
41
+ 'bool',
42
+ 'complex',
43
+ 'imaginary',
44
+ 'noreturn',
45
+ 'static_assert',
19
46
  'thread_local',
20
- ]
47
+ })
21
48
 
22
49
  # these are ordered by precedence
23
- _expression_bin_ops = [
24
- ['||', 'or'],
25
- ['&&', 'and'],
26
- ['|', 'bitor'],
27
- ['^', 'xor'],
28
- ['&', 'bitand'],
29
- ['==', '!=', 'not_eq'],
30
- ['<=', '>=', '<', '>'],
31
- ['<<', '>>'],
32
- ['+', '-'],
33
- ['*', '/', '%'],
34
- ['.*', '->*'],
50
+ _expression_bin_ops: Sequence[tuple[str, ...]] = [
51
+ ('||', 'or'),
52
+ ('&&', 'and'),
53
+ ('|', 'bitor'),
54
+ ('^', 'xor'),
55
+ ('&', 'bitand'),
56
+ ('==', '!=', 'not_eq'),
57
+ ('<=', '>=', '<', '>'),
58
+ ('<<', '>>'),
59
+ ('+', '-'),
60
+ ('*', '/', '%'),
61
+ ('.*', '->*'),
62
+ ]
63
+ _expression_unary_ops: Sequence[str] = [
64
+ '++',
65
+ '--',
66
+ '*',
67
+ '&',
68
+ '+',
69
+ '-',
70
+ '!',
71
+ 'not',
72
+ '~',
73
+ 'compl',
74
+ ]
75
+ _expression_assignment_ops: Sequence[str] = [
76
+ '=',
77
+ '*=',
78
+ '/=',
79
+ '%=',
80
+ '+=',
81
+ '-=',
82
+ '>>=',
83
+ '<<=',
84
+ '&=',
85
+ 'and_eq',
86
+ '^=',
87
+ 'xor_eq',
88
+ '|=',
89
+ 'or_eq',
35
90
  ]
36
- _expression_unary_ops = ["++", "--", "*", "&", "+", "-", "!", "not", "~", "compl"]
37
- _expression_assignment_ops = ["=", "*=", "/=", "%=", "+=", "-=",
38
- ">>=", "<<=", "&=", "and_eq", "^=", "xor_eq", "|=", "or_eq"]
39
91
 
40
92
  _max_id = 1
41
- _id_prefix = [None, 'c.', 'Cv2.']
93
+ _id_prefix: Sequence[str] = ('', 'c.', 'Cv2.')
42
94
  # Ids are used in lookup keys which are used across pickled files,
43
95
  # so when _max_id changes, make sure to update the ENV_VERSION.
44
96
 
45
- _string_re = re.compile(r"[LuU8]?('([^'\\]*(?:\\.[^'\\]*)*)'"
46
- r'|"([^"\\]*(?:\\.[^"\\]*)*)")', re.DOTALL)
97
+ _string_re = re.compile(
98
+ r"[LuU8]?('([^'\\]*(?:\\.[^'\\]*)*)'"
99
+ r'|"([^"\\]*(?:\\.[^"\\]*)*)")',
100
+ re.DOTALL,
101
+ )
47
102
 
48
103
  # bool, complex, and imaginary are macro "keywords", so they are handled separately
49
- _simple_type_specifiers_re = re.compile(r"""
104
+ _simple_type_specifiers_re = re.compile(
105
+ r"""
50
106
  \b(
51
107
  void|_Bool
52
108
  |signed|unsigned
@@ -62,4 +118,6 @@ _simple_type_specifiers_re = re.compile(r"""
62
118
  |__fp16 # extension
63
119
  |_Sat|_Fract|fract|_Accum|accum # extension
64
120
  )\b
65
- """, re.VERBOSE)
121
+ """,
122
+ re.VERBOSE,
123
+ )