Disallow implicit re-export (#12653)

This commit is contained in:
danieleades
2024-07-23 02:38:45 +01:00
committed by GitHub
parent 58d4224227
commit 2f9a79c3b2
16 changed files with 35 additions and 27 deletions

View File

@@ -207,11 +207,7 @@ exclude = [
# tests/test_writers # tests/test_writers
] ]
check_untyped_defs = true check_untyped_defs = true
disallow_incomplete_defs = true
disallow_subclassing_any = true
disallow_untyped_defs = true
python_version = "3.10" python_version = "3.10"
disallow_untyped_calls = true
show_column_numbers = true show_column_numbers = true
show_error_context = true show_error_context = true
strict_optional = true strict_optional = true
@@ -219,6 +215,12 @@ warn_redundant_casts = true
warn_unused_configs = true warn_unused_configs = true
warn_unused_ignores = true warn_unused_ignores = true
disallow_any_generics = true disallow_any_generics = true
disallow_incomplete_defs = true
disallow_subclassing_any = true
disallow_untyped_calls = true
disallow_untyped_decorators = true
disallow_untyped_defs = true
no_implicit_reexport = true
extra_checks = true extra_checks = true
enable_error_code = [ enable_error_code = [
"type-arg", "type-arg",

View File

@@ -19,7 +19,7 @@ from sphinx.domains.c._ids import _macroKeywords, _max_id
from sphinx.domains.c._parser import DefinitionParser from sphinx.domains.c._parser import DefinitionParser
from sphinx.domains.c._symbol import Symbol, _DuplicateSymbolError from sphinx.domains.c._symbol import Symbol, _DuplicateSymbolError
from sphinx.locale import _, __ from sphinx.locale import _, __
from sphinx.roles import SphinxRole, XRefRole from sphinx.roles import XRefRole
from sphinx.transforms import SphinxTransform from sphinx.transforms import SphinxTransform
from sphinx.transforms.post_transforms import ReferencesResolver from sphinx.transforms.post_transforms import ReferencesResolver
from sphinx.util import logging from sphinx.util import logging
@@ -29,7 +29,7 @@ from sphinx.util.cfamily import (
anon_identifier_re, anon_identifier_re,
) )
from sphinx.util.docfields import Field, GroupedField, TypedField from sphinx.util.docfields import Field, GroupedField, TypedField
from sphinx.util.docutils import SphinxDirective from sphinx.util.docutils import SphinxDirective, SphinxRole
from sphinx.util.nodes import make_refnode from sphinx.util.nodes import make_refnode
if TYPE_CHECKING: if TYPE_CHECKING:

View File

@@ -23,7 +23,7 @@ from sphinx.domains.cpp._parser import DefinitionParser
from sphinx.domains.cpp._symbol import Symbol, _DuplicateSymbolError from sphinx.domains.cpp._symbol import Symbol, _DuplicateSymbolError
from sphinx.errors import NoUri from sphinx.errors import NoUri
from sphinx.locale import _, __ from sphinx.locale import _, __
from sphinx.roles import SphinxRole, XRefRole from sphinx.roles import XRefRole
from sphinx.transforms import SphinxTransform from sphinx.transforms import SphinxTransform
from sphinx.transforms.post_transforms import ReferencesResolver from sphinx.transforms.post_transforms import ReferencesResolver
from sphinx.util import logging from sphinx.util import logging
@@ -33,7 +33,7 @@ from sphinx.util.cfamily import (
anon_identifier_re, anon_identifier_re,
) )
from sphinx.util.docfields import Field, GroupedField from sphinx.util.docfields import Field, GroupedField
from sphinx.util.docutils import SphinxDirective from sphinx.util.docutils import SphinxDirective, SphinxRole
from sphinx.util.nodes import make_refnode from sphinx.util.nodes import make_refnode
if TYPE_CHECKING: if TYPE_CHECKING:

View File

@@ -17,10 +17,11 @@ from docutils.statemachine import StringList
import sphinx import sphinx
from sphinx.config import ENUM, Config from sphinx.config import ENUM, Config
from sphinx.errors import PycodeError
from sphinx.ext.autodoc.importer import get_class_members, import_module, import_object from sphinx.ext.autodoc.importer import get_class_members, import_module, import_object
from sphinx.ext.autodoc.mock import ismock, mock, undecorate from sphinx.ext.autodoc.mock import ismock, mock, undecorate
from sphinx.locale import _, __ from sphinx.locale import _, __
from sphinx.pycode import ModuleAnalyzer, PycodeError from sphinx.pycode import ModuleAnalyzer
from sphinx.util import inspect, logging from sphinx.util import inspect, logging
from sphinx.util.docstrings import prepare_docstring, separate_metadata from sphinx.util.docstrings import prepare_docstring, separate_metadata
from sphinx.util.inspect import ( from sphinx.util.inspect import (

View File

@@ -11,8 +11,9 @@ import typing
from enum import Enum from enum import Enum
from typing import TYPE_CHECKING, NamedTuple from typing import TYPE_CHECKING, NamedTuple
from sphinx.errors import PycodeError
from sphinx.ext.autodoc.mock import ismock, undecorate from sphinx.ext.autodoc.mock import ismock, undecorate
from sphinx.pycode import ModuleAnalyzer, PycodeError from sphinx.pycode import ModuleAnalyzer
from sphinx.util import logging from sphinx.util import logging
from sphinx.util.inspect import ( from sphinx.util.inspect import (
getannotations, getannotations,

View File

@@ -69,13 +69,14 @@ import sphinx
from sphinx import addnodes from sphinx import addnodes
from sphinx.config import Config from sphinx.config import Config
from sphinx.environment import BuildEnvironment from sphinx.environment import BuildEnvironment
from sphinx.ext.autodoc import INSTANCEATTR, Documenter from sphinx.errors import PycodeError
from sphinx.ext.autodoc.directive import DocumenterBridge, Options from sphinx.ext.autodoc import INSTANCEATTR, Documenter, Options
from sphinx.ext.autodoc.directive import DocumenterBridge
from sphinx.ext.autodoc.importer import import_module from sphinx.ext.autodoc.importer import import_module
from sphinx.ext.autodoc.mock import mock from sphinx.ext.autodoc.mock import mock
from sphinx.locale import __ from sphinx.locale import __
from sphinx.project import Project from sphinx.project import Project
from sphinx.pycode import ModuleAnalyzer, PycodeError from sphinx.pycode import ModuleAnalyzer
from sphinx.registry import SphinxComponentRegistry from sphinx.registry import SphinxComponentRegistry
from sphinx.util import logging, rst from sphinx.util import logging, rst
from sphinx.util.docutils import ( from sphinx.util.docutils import (
@@ -97,7 +98,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx from sphinx.application import Sphinx
from sphinx.extension import Extension from sphinx.extension import Extension
from sphinx.util.typing import ExtensionMetadata, OptionSpec from sphinx.util.typing import ExtensionMetadata, OptionSpec
from sphinx.writers.html import HTML5Translator from sphinx.writers.html5 import HTML5Translator
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@@ -34,6 +34,7 @@ import sphinx.locale
from sphinx import __display_version__, package_dir from sphinx import __display_version__, package_dir
from sphinx.builders import Builder from sphinx.builders import Builder
from sphinx.config import Config from sphinx.config import Config
from sphinx.errors import PycodeError
from sphinx.ext.autodoc.importer import import_module from sphinx.ext.autodoc.importer import import_module
from sphinx.ext.autosummary import ( from sphinx.ext.autosummary import (
ImportExceptionGroup, ImportExceptionGroup,
@@ -42,7 +43,7 @@ from sphinx.ext.autosummary import (
import_ivar_by_name, import_ivar_by_name,
) )
from sphinx.locale import __ from sphinx.locale import __
from sphinx.pycode import ModuleAnalyzer, PycodeError from sphinx.pycode import ModuleAnalyzer
from sphinx.registry import SphinxComponentRegistry from sphinx.registry import SphinxComponentRegistry
from sphinx.util import logging, rst from sphinx.util import logging, rst
from sphinx.util.inspect import getall, safe_getattr from sphinx.util.inspect import getall, safe_getattr
@@ -392,7 +393,7 @@ def _skip_member(app: Sphinx, obj: Any, name: str, objtype: str) -> bool:
def _get_class_members(obj: Any) -> dict[str, Any]: def _get_class_members(obj: Any) -> dict[str, Any]:
members = sphinx.ext.autodoc.get_class_members(obj, None, safe_getattr) members = sphinx.ext.autodoc.importer.get_class_members(obj, None, safe_getattr)
return {name: member.object for name, member in members.items()} return {name: member.object for name, member in members.items()}

View File

@@ -32,7 +32,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx from sphinx.application import Sphinx
from sphinx.config import Config from sphinx.config import Config
from sphinx.util.typing import ExtensionMetadata, OptionSpec from sphinx.util.typing import ExtensionMetadata, OptionSpec
from sphinx.writers.html import HTML5Translator from sphinx.writers.html5 import HTML5Translator
from sphinx.writers.latex import LaTeXTranslator from sphinx.writers.latex import LaTeXTranslator
from sphinx.writers.manpage import ManualPageTranslator from sphinx.writers.manpage import ManualPageTranslator
from sphinx.writers.texinfo import TexinfoTranslator from sphinx.writers.texinfo import TexinfoTranslator

View File

@@ -36,7 +36,7 @@ if TYPE_CHECKING:
from sphinx.builders import Builder from sphinx.builders import Builder
from sphinx.config import Config from sphinx.config import Config
from sphinx.util.typing import ExtensionMetadata from sphinx.util.typing import ExtensionMetadata
from sphinx.writers.html import HTML5Translator from sphinx.writers.html5 import HTML5Translator
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@@ -59,7 +59,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment from sphinx.environment import BuildEnvironment
from sphinx.util.typing import ExtensionMetadata, OptionSpec from sphinx.util.typing import ExtensionMetadata, OptionSpec
from sphinx.writers.html import HTML5Translator from sphinx.writers.html5 import HTML5Translator
from sphinx.writers.latex import LaTeXTranslator from sphinx.writers.latex import LaTeXTranslator
from sphinx.writers.texinfo import TexinfoTranslator from sphinx.writers.texinfo import TexinfoTranslator

View File

@@ -22,7 +22,7 @@ from sphinx.util.math import get_node_equation_number
if TYPE_CHECKING: if TYPE_CHECKING:
from sphinx.application import Sphinx from sphinx.application import Sphinx
from sphinx.util.typing import ExtensionMetadata from sphinx.util.typing import ExtensionMetadata
from sphinx.writers.html import HTML5Translator from sphinx.writers.html5 import HTML5Translator
# more information for mathjax secure url is here: # more information for mathjax secure url is here:
# https://docs.mathjax.org/en/latest/web/start.html#using-mathjax-from-a-content-delivery-network-cdn # https://docs.mathjax.org/en/latest/web/start.html#using-mathjax-from-a-content-delivery-network-cdn

View File

@@ -29,7 +29,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment from sphinx.environment import BuildEnvironment
from sphinx.util.typing import ExtensionMetadata, OptionSpec from sphinx.util.typing import ExtensionMetadata, OptionSpec
from sphinx.writers.html import HTML5Translator from sphinx.writers.html5 import HTML5Translator
from sphinx.writers.latex import LaTeXTranslator from sphinx.writers.latex import LaTeXTranslator
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@@ -17,11 +17,11 @@ from importlib import import_module
from inspect import Parameter, Signature from inspect import Parameter, Signature
from io import StringIO from io import StringIO
from types import ClassMethodDescriptorType, MethodDescriptorType, WrapperDescriptorType from types import ClassMethodDescriptorType, MethodDescriptorType, WrapperDescriptorType
from typing import TYPE_CHECKING, Any from typing import TYPE_CHECKING, Any, ForwardRef
from sphinx.pycode.ast import unparse as ast_unparse from sphinx.pycode.ast import unparse as ast_unparse
from sphinx.util import logging from sphinx.util import logging
from sphinx.util.typing import ForwardRef, stringify_annotation from sphinx.util.typing import stringify_annotation
if TYPE_CHECKING: if TYPE_CHECKING:
from collections.abc import Callable, Sequence from collections.abc import Callable, Sequence

View File

@@ -7,7 +7,7 @@ from typing import TYPE_CHECKING
if TYPE_CHECKING: if TYPE_CHECKING:
from docutils import nodes from docutils import nodes
from sphinx.builders.html import HTML5Translator from sphinx.writers.html5 import HTML5Translator
def get_node_equation_number(writer: HTML5Translator, node: nodes.math_block) -> str: def get_node_equation_number(writer: HTML5Translator, node: nodes.math_block) -> str:

View File

@@ -1,5 +1,6 @@
from __future__ import annotations from __future__ import annotations
import gettext
import os import os
import sys import sys
from pathlib import Path from pathlib import Path
@@ -19,14 +20,14 @@ if TYPE_CHECKING:
def _init_console( def _init_console(
locale_dir: str | None = sphinx.locale._LOCALE_DIR, catalog: str = 'sphinx', locale_dir: str | None = sphinx.locale._LOCALE_DIR, catalog: str = 'sphinx',
) -> tuple[sphinx.locale.NullTranslations, bool]: ) -> tuple[gettext.NullTranslations, bool]:
"""Monkeypatch ``init_console`` to skip its action. """Monkeypatch ``init_console`` to skip its action.
Some tests rely on warning messages in English. We don't want Some tests rely on warning messages in English. We don't want
CLI tests to bleed over those tests and make their warnings CLI tests to bleed over those tests and make their warnings
translated. translated.
""" """
return sphinx.locale.NullTranslations(), False return gettext.NullTranslations(), False
sphinx.locale.init_console = _init_console sphinx.locale.init_console = _init_console

View File

@@ -6,7 +6,8 @@ import tempfile
import pytest import pytest
from sphinx.errors import ExtensionError from sphinx.errors import ExtensionError
from sphinx.util import encode_uri, ensuredir, import_object, parselinenos from sphinx.util import encode_uri, import_object, parselinenos
from sphinx.util.osutil import ensuredir
def test_encode_uri(): def test_encode_uri():