Sphinx 8.2.0rc2__py3-none-any.whl → 8.2.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.

Files changed (150) hide show
  1. sphinx/__init__.py +2 -2
  2. sphinx/ext/autodoc/__init__.py +1 -1
  3. sphinx/ext/autodoc/directive.py +1 -1
  4. sphinx/ext/autodoc/mock.py +1 -1
  5. sphinx/ext/napoleon/__init__.py +23 -24
  6. sphinx/ext/viewcode.py +12 -8
  7. sphinx/highlighting.py +1 -1
  8. sphinx/locale/ar/LC_MESSAGES/sphinx.mo +0 -0
  9. sphinx/locale/ar/LC_MESSAGES/sphinx.po +2155 -2050
  10. sphinx/locale/bg/LC_MESSAGES/sphinx.mo +0 -0
  11. sphinx/locale/bg/LC_MESSAGES/sphinx.po +2045 -1940
  12. sphinx/locale/bn/LC_MESSAGES/sphinx.mo +0 -0
  13. sphinx/locale/bn/LC_MESSAGES/sphinx.po +2175 -2070
  14. sphinx/locale/ca/LC_MESSAGES/sphinx.js +3 -3
  15. sphinx/locale/ca/LC_MESSAGES/sphinx.mo +0 -0
  16. sphinx/locale/ca/LC_MESSAGES/sphinx.po +2690 -2585
  17. sphinx/locale/ca@valencia/LC_MESSAGES/sphinx.js +63 -0
  18. sphinx/locale/ca@valencia/LC_MESSAGES/sphinx.mo +0 -0
  19. sphinx/locale/ca@valencia/LC_MESSAGES/sphinx.po +4216 -0
  20. sphinx/locale/cak/LC_MESSAGES/sphinx.mo +0 -0
  21. sphinx/locale/cak/LC_MESSAGES/sphinx.po +2096 -1991
  22. sphinx/locale/cs/LC_MESSAGES/sphinx.mo +0 -0
  23. sphinx/locale/cs/LC_MESSAGES/sphinx.po +2248 -2143
  24. sphinx/locale/cy/LC_MESSAGES/sphinx.mo +0 -0
  25. sphinx/locale/cy/LC_MESSAGES/sphinx.po +2201 -2096
  26. sphinx/locale/da/LC_MESSAGES/sphinx.mo +0 -0
  27. sphinx/locale/da/LC_MESSAGES/sphinx.po +2282 -2177
  28. sphinx/locale/de/LC_MESSAGES/sphinx.mo +0 -0
  29. sphinx/locale/de/LC_MESSAGES/sphinx.po +2261 -2156
  30. sphinx/locale/de_DE/LC_MESSAGES/sphinx.mo +0 -0
  31. sphinx/locale/de_DE/LC_MESSAGES/sphinx.po +2045 -1940
  32. sphinx/locale/el/LC_MESSAGES/sphinx.mo +0 -0
  33. sphinx/locale/el/LC_MESSAGES/sphinx.po +2604 -2499
  34. sphinx/locale/en_DE/LC_MESSAGES/sphinx.mo +0 -0
  35. sphinx/locale/en_DE/LC_MESSAGES/sphinx.po +2045 -1940
  36. sphinx/locale/en_FR/LC_MESSAGES/sphinx.mo +0 -0
  37. sphinx/locale/en_FR/LC_MESSAGES/sphinx.po +2045 -1940
  38. sphinx/locale/en_GB/LC_MESSAGES/sphinx.mo +0 -0
  39. sphinx/locale/en_GB/LC_MESSAGES/sphinx.po +2631 -2526
  40. sphinx/locale/en_HK/LC_MESSAGES/sphinx.mo +0 -0
  41. sphinx/locale/en_HK/LC_MESSAGES/sphinx.po +2045 -1940
  42. sphinx/locale/eo/LC_MESSAGES/sphinx.mo +0 -0
  43. sphinx/locale/eo/LC_MESSAGES/sphinx.po +2078 -1973
  44. sphinx/locale/es/LC_MESSAGES/sphinx.mo +0 -0
  45. sphinx/locale/es/LC_MESSAGES/sphinx.po +2633 -2528
  46. sphinx/locale/es_CO/LC_MESSAGES/sphinx.mo +0 -0
  47. sphinx/locale/es_CO/LC_MESSAGES/sphinx.po +2045 -1940
  48. sphinx/locale/et/LC_MESSAGES/sphinx.mo +0 -0
  49. sphinx/locale/et/LC_MESSAGES/sphinx.po +2449 -2344
  50. sphinx/locale/eu/LC_MESSAGES/sphinx.mo +0 -0
  51. sphinx/locale/eu/LC_MESSAGES/sphinx.po +2241 -2136
  52. sphinx/locale/fa/LC_MESSAGES/sphinx.mo +0 -0
  53. sphinx/locale/fa/LC_MESSAGES/sphinx.po +504 -500
  54. sphinx/locale/fi/LC_MESSAGES/sphinx.mo +0 -0
  55. sphinx/locale/fi/LC_MESSAGES/sphinx.po +499 -495
  56. sphinx/locale/fr/LC_MESSAGES/sphinx.mo +0 -0
  57. sphinx/locale/fr/LC_MESSAGES/sphinx.po +513 -509
  58. sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mo +0 -0
  59. sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po +499 -495
  60. sphinx/locale/gl/LC_MESSAGES/sphinx.mo +0 -0
  61. sphinx/locale/gl/LC_MESSAGES/sphinx.po +2644 -2539
  62. sphinx/locale/he/LC_MESSAGES/sphinx.mo +0 -0
  63. sphinx/locale/he/LC_MESSAGES/sphinx.po +499 -495
  64. sphinx/locale/hi/LC_MESSAGES/sphinx.mo +0 -0
  65. sphinx/locale/hi/LC_MESSAGES/sphinx.po +504 -500
  66. sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mo +0 -0
  67. sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po +499 -495
  68. sphinx/locale/hr/LC_MESSAGES/sphinx.mo +0 -0
  69. sphinx/locale/hr/LC_MESSAGES/sphinx.po +501 -497
  70. sphinx/locale/hu/LC_MESSAGES/sphinx.mo +0 -0
  71. sphinx/locale/hu/LC_MESSAGES/sphinx.po +499 -495
  72. sphinx/locale/id/LC_MESSAGES/sphinx.mo +0 -0
  73. sphinx/locale/id/LC_MESSAGES/sphinx.po +2609 -2504
  74. sphinx/locale/is/LC_MESSAGES/sphinx.mo +0 -0
  75. sphinx/locale/is/LC_MESSAGES/sphinx.po +499 -495
  76. sphinx/locale/it/LC_MESSAGES/sphinx.mo +0 -0
  77. sphinx/locale/it/LC_MESSAGES/sphinx.po +2265 -2160
  78. sphinx/locale/ja/LC_MESSAGES/sphinx.mo +0 -0
  79. sphinx/locale/ja/LC_MESSAGES/sphinx.po +2621 -2516
  80. sphinx/locale/ka/LC_MESSAGES/sphinx.mo +0 -0
  81. sphinx/locale/ka/LC_MESSAGES/sphinx.po +2567 -2462
  82. sphinx/locale/ko/LC_MESSAGES/sphinx.mo +0 -0
  83. sphinx/locale/ko/LC_MESSAGES/sphinx.po +2631 -2526
  84. sphinx/locale/lt/LC_MESSAGES/sphinx.mo +0 -0
  85. sphinx/locale/lt/LC_MESSAGES/sphinx.po +2214 -2109
  86. sphinx/locale/lv/LC_MESSAGES/sphinx.mo +0 -0
  87. sphinx/locale/lv/LC_MESSAGES/sphinx.po +2218 -2113
  88. sphinx/locale/mk/LC_MESSAGES/sphinx.mo +0 -0
  89. sphinx/locale/mk/LC_MESSAGES/sphinx.po +2088 -1983
  90. sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo +0 -0
  91. sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po +2247 -2142
  92. sphinx/locale/ne/LC_MESSAGES/sphinx.mo +0 -0
  93. sphinx/locale/ne/LC_MESSAGES/sphinx.po +2227 -2122
  94. sphinx/locale/nl/LC_MESSAGES/sphinx.mo +0 -0
  95. sphinx/locale/nl/LC_MESSAGES/sphinx.po +2316 -2211
  96. sphinx/locale/pl/LC_MESSAGES/sphinx.js +2 -2
  97. sphinx/locale/pl/LC_MESSAGES/sphinx.mo +0 -0
  98. sphinx/locale/pl/LC_MESSAGES/sphinx.po +2442 -2336
  99. sphinx/locale/pt/LC_MESSAGES/sphinx.mo +0 -0
  100. sphinx/locale/pt/LC_MESSAGES/sphinx.po +2045 -1940
  101. sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo +0 -0
  102. sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po +2657 -2552
  103. sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mo +0 -0
  104. sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po +2243 -2138
  105. sphinx/locale/ro/LC_MESSAGES/sphinx.mo +0 -0
  106. sphinx/locale/ro/LC_MESSAGES/sphinx.po +2244 -2139
  107. sphinx/locale/ru/LC_MESSAGES/sphinx.js +1 -1
  108. sphinx/locale/ru/LC_MESSAGES/sphinx.mo +0 -0
  109. sphinx/locale/ru/LC_MESSAGES/sphinx.po +2660 -2555
  110. sphinx/locale/si/LC_MESSAGES/sphinx.mo +0 -0
  111. sphinx/locale/si/LC_MESSAGES/sphinx.po +2134 -2029
  112. sphinx/locale/sk/LC_MESSAGES/sphinx.mo +0 -0
  113. sphinx/locale/sk/LC_MESSAGES/sphinx.po +2614 -2509
  114. sphinx/locale/sl/LC_MESSAGES/sphinx.mo +0 -0
  115. sphinx/locale/sl/LC_MESSAGES/sphinx.po +2167 -2062
  116. sphinx/locale/sphinx.pot +2069 -1964
  117. sphinx/locale/sq/LC_MESSAGES/sphinx.mo +0 -0
  118. sphinx/locale/sq/LC_MESSAGES/sphinx.po +2661 -2556
  119. sphinx/locale/sr/LC_MESSAGES/sphinx.mo +0 -0
  120. sphinx/locale/sr/LC_MESSAGES/sphinx.po +2213 -2108
  121. sphinx/locale/sv/LC_MESSAGES/sphinx.mo +0 -0
  122. sphinx/locale/sv/LC_MESSAGES/sphinx.po +2229 -2124
  123. sphinx/locale/te/LC_MESSAGES/sphinx.mo +0 -0
  124. sphinx/locale/te/LC_MESSAGES/sphinx.po +2045 -1940
  125. sphinx/locale/tr/LC_MESSAGES/sphinx.mo +0 -0
  126. sphinx/locale/tr/LC_MESSAGES/sphinx.po +2608 -2503
  127. sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo +0 -0
  128. sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po +2167 -2062
  129. sphinx/locale/ur/LC_MESSAGES/sphinx.mo +0 -0
  130. sphinx/locale/ur/LC_MESSAGES/sphinx.po +2045 -1940
  131. sphinx/locale/vi/LC_MESSAGES/sphinx.mo +0 -0
  132. sphinx/locale/vi/LC_MESSAGES/sphinx.po +2204 -2099
  133. sphinx/locale/yue/LC_MESSAGES/sphinx.mo +0 -0
  134. sphinx/locale/yue/LC_MESSAGES/sphinx.po +2045 -1940
  135. sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mo +0 -0
  136. sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po +2045 -1940
  137. sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo +0 -0
  138. sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po +2659 -2554
  139. sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mo +0 -0
  140. sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po +2045 -1940
  141. sphinx/testing/path.py +8 -0
  142. sphinx/themes/basic/static/basic.css.jinja +0 -8
  143. sphinx/util/_files.py +2 -2
  144. sphinx/util/fileutil.py +2 -1
  145. sphinx/util/osutil.py +6 -1
  146. {sphinx-8.2.0rc2.dist-info → sphinx-8.2.1.dist-info}/METADATA +6 -5
  147. {sphinx-8.2.0rc2.dist-info → sphinx-8.2.1.dist-info}/RECORD +150 -147
  148. {sphinx-8.2.0rc2.dist-info → sphinx-8.2.1.dist-info}/WHEEL +1 -1
  149. {sphinx-8.2.0rc2.dist-info → sphinx-8.2.1.dist-info}/entry_points.txt +0 -0
  150. {sphinx-8.2.0rc2.dist-info → sphinx-8.2.1.dist-info/licenses}/LICENSE.rst +0 -0
sphinx/__init__.py CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- __version__ = '8.2.0rc2'
5
+ __version__ = '8.2.1'
6
6
  __display_version__ = __version__ # used for command line version
7
7
 
8
8
  # Keep this file executable as-is in Python 3!
@@ -34,7 +34,7 @@ warnings.filterwarnings(
34
34
  #:
35
35
  #: .. versionadded:: 1.2
36
36
  #: Before version 1.2, check the string ``sphinx.__version__``.
37
- version_info = (8, 2, 0, 'candidate', 2)
37
+ version_info = (8, 2, 1, 'final', 0)
38
38
 
39
39
  package_dir = _StrPath(__file__).resolve().parent
40
40
 
@@ -291,7 +291,7 @@ def between(
291
291
  # This class is used only in ``sphinx.ext.autodoc.directive``,
292
292
  # But we define this class here to keep compatibility
293
293
  # See: https://github.com/sphinx-doc/sphinx/issues/4538
294
- class Options(dict[str, Any]):
294
+ class Options(dict[str, Any]): # NoQA: FURB189
295
295
  """A dict/attribute hybrid that returns None on nonexisting keys."""
296
296
 
297
297
  def copy(self) -> Options:
@@ -52,7 +52,7 @@ AUTODOC_EXTENDABLE_OPTIONS = frozenset({
52
52
  })
53
53
 
54
54
 
55
- class DummyOptionSpec(dict[str, Callable[[str], str]]):
55
+ class DummyOptionSpec(dict[str, Callable[[str], str]]): # NoQA: FURB189
56
56
  """An option_spec allows any options."""
57
57
 
58
58
  def __bool__(self) -> bool:
@@ -30,7 +30,7 @@ class _MockObject:
30
30
  __sphinx_mock__ = True
31
31
  __sphinx_decorator_args__: tuple[Any, ...] = ()
32
32
 
33
- def __new__(cls, *args: Any, **kwargs: Any) -> Any:
33
+ def __new__(cls, *args: Any, **kwargs: Any) -> Any: # NoQA: ARG004
34
34
  if len(args) == 3 and isinstance(args[1], tuple):
35
35
  superclass = args[1][-1].__class__
36
36
  if superclass is cls:
@@ -11,6 +11,7 @@ from sphinx.ext.napoleon.docstring import GoogleDocstring, NumpyDocstring
11
11
  from sphinx.util import inspect
12
12
 
13
13
  if TYPE_CHECKING:
14
+ from collections.abc import Sequence, Set
14
15
  from typing import Any
15
16
 
16
17
  from sphinx.config import _ConfigRebuild
@@ -270,27 +271,27 @@ class Config:
270
271
 
271
272
  """
272
273
 
273
- _config_values: dict[str, tuple[Any, _ConfigRebuild]] = {
274
- 'napoleon_google_docstring': (True, 'env'),
275
- 'napoleon_numpy_docstring': (True, 'env'),
276
- 'napoleon_include_init_with_doc': (False, 'env'),
277
- 'napoleon_include_private_with_doc': (False, 'env'),
278
- 'napoleon_include_special_with_doc': (False, 'env'),
279
- 'napoleon_use_admonition_for_examples': (False, 'env'),
280
- 'napoleon_use_admonition_for_notes': (False, 'env'),
281
- 'napoleon_use_admonition_for_references': (False, 'env'),
282
- 'napoleon_use_ivar': (False, 'env'),
283
- 'napoleon_use_param': (True, 'env'),
284
- 'napoleon_use_rtype': (True, 'env'),
285
- 'napoleon_use_keyword': (True, 'env'),
286
- 'napoleon_preprocess_types': (False, 'env'),
287
- 'napoleon_type_aliases': (None, 'env'),
288
- 'napoleon_custom_sections': (None, 'env'),
289
- 'napoleon_attr_annotations': (True, 'env'),
290
- }
274
+ _config_values: Sequence[tuple[str, bool | None, _ConfigRebuild, Set[type]]] = (
275
+ ('napoleon_google_docstring', True, 'env', frozenset({bool})),
276
+ ('napoleon_numpy_docstring', True, 'env', frozenset({bool})),
277
+ ('napoleon_include_init_with_doc', False, 'env', frozenset({bool})),
278
+ ('napoleon_include_private_with_doc', False, 'env', frozenset({bool})),
279
+ ('napoleon_include_special_with_doc', False, 'env', frozenset({bool})),
280
+ ('napoleon_use_admonition_for_examples', False, 'env', frozenset({bool})),
281
+ ('napoleon_use_admonition_for_notes', False, 'env', frozenset({bool})),
282
+ ('napoleon_use_admonition_for_references', False, 'env', frozenset({bool})),
283
+ ('napoleon_use_ivar', False, 'env', frozenset({bool})),
284
+ ('napoleon_use_param', True, 'env', frozenset({bool})),
285
+ ('napoleon_use_rtype', True, 'env', frozenset({bool})),
286
+ ('napoleon_use_keyword', True, 'env', frozenset({bool})),
287
+ ('napoleon_preprocess_types', False, 'env', frozenset({bool})),
288
+ ('napoleon_type_aliases', None, 'env', frozenset({dict, NoneType})),
289
+ ('napoleon_custom_sections', None, 'env', frozenset({list, tuple, NoneType})),
290
+ ('napoleon_attr_annotations', True, 'env', frozenset({bool})),
291
+ )
291
292
 
292
293
  def __init__(self, **settings: Any) -> None:
293
- for name, (default, _rebuild) in self._config_values.items():
294
+ for name, default, _rebuild, _types in self._config_values:
294
295
  setattr(self, name, default)
295
296
  for name, value in settings.items():
296
297
  setattr(self, name, value)
@@ -331,11 +332,9 @@ def setup(app: Sphinx) -> ExtensionMetadata:
331
332
  app.connect('autodoc-process-docstring', _process_docstring)
332
333
  app.connect('autodoc-skip-member', _skip_member)
333
334
 
334
- for name, (default, rebuild) in Config._config_values.items():
335
- if isinstance(default, bool):
336
- app.add_config_value(name, default, rebuild, types=frozenset({bool}))
337
- else:
338
- app.add_config_value(name, default, rebuild, types=frozenset({NoneType}))
335
+ for name, default, rebuild, types in Config._config_values:
336
+ app.add_config_value(name, default, rebuild, types=types)
337
+
339
338
  return {
340
339
  'version': sphinx.__display_version__,
341
340
  'parallel_read_safe': True,
sphinx/ext/viewcode.py CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- import importlib.util
5
+ import importlib
6
6
  import operator
7
7
  import posixpath
8
8
  import traceback
@@ -62,16 +62,20 @@ def _get_full_modname(modname: str, attribute: str) -> str | None:
62
62
  num_parts = len(module_path)
63
63
  for i in range(num_parts, 0, -1):
64
64
  mod_root = '.'.join(module_path[:i])
65
- module_spec = importlib.util.find_spec(mod_root)
66
- if module_spec is not None:
65
+ try:
66
+ # import_module() caches the module in sys.modules
67
+ module = importlib.import_module(mod_root)
67
68
  break
69
+ except ModuleNotFoundError:
70
+ continue
71
+ except BaseException as exc:
72
+ # Importing modules may cause any side effects, including
73
+ # SystemExit, so we need to catch all errors.
74
+ msg = f"viewcode failed to import '{mod_root}'."
75
+ raise ImportError(msg) from exc
68
76
  else:
69
77
  return None
70
- # Load and execute the module
71
- module = importlib.util.module_from_spec(module_spec)
72
- if module_spec.loader is None:
73
- return None
74
- module_spec.loader.exec_module(module)
78
+
75
79
  if i != num_parts:
76
80
  for mod in module_path[i:]:
77
81
  module = getattr(module, mod)
sphinx/highlighting.py CHANGED
@@ -171,7 +171,7 @@ class PygmentsBridge:
171
171
  lang,
172
172
  location=location,
173
173
  type='misc',
174
- subtype='higlighting_failure',
174
+ subtype='highlighting_failure',
175
175
  )
176
176
  lexer = lexer_classes['none'](**opts)
177
177
 
Binary file