Add comments when subclassing Any (#9732)

This commit is contained in:
Avasam
2023-02-14 08:11:56 -05:00
committed by GitHub
parent c437f5ba06
commit 140bba3425
5 changed files with 13 additions and 2 deletions

View File

@@ -6,6 +6,8 @@ from ..cmd import Command
_Reporter: TypeAlias = Any # really docutils.utils.Reporter
# Only defined if docutils is installed.
# Depends on a third-party stub. Since distutils is deprecated anyway,
# it's easier to just suppress the "any subclassing" error.
class SilentReporter(_Reporter):
messages: Any
def __init__(

View File

@@ -101,6 +101,8 @@ class _CallList(list[_Call]):
class Base:
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
# We subclass with "Any" because mocks are explicitly designed to stand in for other types,
# something that can't be expressed with our static type system.
class NonCallableMock(Base, Any):
def __new__(__cls, *args: Any, **kw: Any) -> Self: ...
def __init__(

View File

@@ -3,7 +3,10 @@ from typing_extensions import Literal, TypeAlias
from .Image import Image
_QImage: TypeAlias = Any # imported from either of {PyQt6,PySide6,PyQt5,PySide2}.QtGui
# imported from either of {PyQt6,PySide6,PyQt5,PySide2}.QtGui
# These are way too complex, with 4 different possible sources (2 deprecated)
# And we don't want to force the user to install PyQt or Pyside when they may not even use it.
_QImage: TypeAlias = Any
_QPixmap: TypeAlias = Any
qt_versions: Any

View File

@@ -81,6 +81,8 @@ class _CallList(list[_Call]):
class Base:
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
# We subclass with "Any" because mocks are explicitly designed to stand in for other types,
# something that can't be expressed with our static type system.
class NonCallableMock(Base, Any):
def __new__(
cls: type[Self],

View File

@@ -263,7 +263,9 @@ def run_mypy(
# Stub completion is checked by pyright (--allow-*-defs)
"--allow-untyped-defs",
"--allow-incomplete-defs",
"--allow-subclassing-any", # See #9491
# See https://github.com/python/typeshed/pull/9491#issuecomment-1381574946
# for discussion and reasoning to keep "--allow-subclassing-any"
"--allow-subclassing-any",
"--enable-error-code",
"ignore-without-code",
"--config-file",