|
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