Skip to content

Commit

Permalink
Fix the valid types check for Any in sphinx.config
Browse files Browse the repository at this point in the history
  • Loading branch information
AA-Turner committed Apr 17, 2024
1 parent 1e98161 commit 7bf847d
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
3 changes: 3 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ Release 7.3.3 (in development)
Bugs fixed
----------

* #12290: Fix a false-positive warning when setting a configuration value
with ``Any`` as the valid type to a type other than the value's default.
Patch by Adam Turner.

Release 7.3.2 (released Apr 17, 2024)
=====================================
Expand Down
2 changes: 1 addition & 1 deletion sphinx/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -658,7 +658,7 @@ def check_confval_types(app: Sphinx | None, config: Config) -> None:
if default is None and not valid_types:
continue # neither inferable nor explicitly annotated types

if valid_types is Any: # any type of value is accepted
if valid_types == frozenset({Any}): # any type of value is accepted
continue

if isinstance(valid_types, ENUM):
Expand Down
10 changes: 9 additions & 1 deletion tests/test_config/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import time
from collections import Counter
from pathlib import Path
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, Any
from unittest import mock

import pytest
Expand Down Expand Up @@ -552,6 +552,14 @@ def test_check_enum_for_list_failed(logger):
assert logger.warning.called


@mock.patch("sphinx.config.logger")
def test_check_any(logger):
config = Config({'value': None})
config.add('value', 'default', '', Any)
check_confval_types(None, config)
logger.warning.assert_not_called() # not warned


nitpick_warnings = [
"WARNING: py:const reference target not found: prefix.anything.postfix",
"WARNING: py:class reference target not found: prefix.anything",
Expand Down

0 comments on commit 7bf847d

Please sign in to comment.