|
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 @@ def __unicode__(self):
|
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,
|
|
0 commit comments