Fix several mypy errors when run on the 3.11 stdlib (#7389)

This commit is contained in:
Alex Waygood
2022-02-27 01:49:36 +00:00
committed by GitHub
parent 95df201a78
commit 2d6ab4d3bf
3 changed files with 29 additions and 48 deletions

View File

@@ -136,17 +136,19 @@ if sys.version_info >= (3, 11):
# In 3.11 `EnumMeta` metaclass is renamed to `EnumType`, but old name also exists.
EnumType = EnumMeta
class property(types.DynamicClassAttribute):
def __set_name__(self, ownerclass: type[Enum], name: str) -> None: ...
name: str
clsname: str
_magic_enum_attr = property
else:
_magic_enum_attr = types.DynamicClassAttribute
class Enum(metaclass=EnumMeta):
if sys.version_info >= (3, 11):
@property
def name(self) -> str: ...
@property
def value(self) -> Any: ...
else:
@types.DynamicClassAttribute
def name(self) -> str: ...
@types.DynamicClassAttribute
def value(self) -> Any: ...
@_magic_enum_attr
def name(self) -> str: ...
@_magic_enum_attr
def value(self) -> Any: ...
_name_: str
_value_: Any
if sys.version_info >= (3, 7):
@@ -165,20 +167,15 @@ class Enum(metaclass=EnumMeta):
if sys.version_info >= (3, 11):
class ReprEnum(Enum): ...
if sys.version_info >= (3, 11):
class IntEnum(int, ReprEnum):
_value_: int
@property
def value(self) -> int: ...
def __new__(cls: type[Self], value: int) -> Self: ...
_IntEnumBase = ReprEnum
else:
class IntEnum(int, Enum):
_value_: int
@types.DynamicClassAttribute
def value(self) -> int: ...
def __new__(cls: type[Self], value: int) -> Self: ...
_IntEnumBase = Enum
class IntEnum(int, _IntEnumBase):
_value_: int
@_magic_enum_attr
def value(self) -> int: ...
def __new__(cls: type[Self], value: int) -> Self: ...
def unique(enumeration: _EnumerationT) -> _EnumerationT: ...
@@ -187,29 +184,17 @@ _auto_null: Any
# subclassing IntFlag so it picks up all implemented base functions, best modeling behavior of enum.auto()
class auto(IntFlag):
_value_: Any
if sys.version_info >= (3, 11):
@property
def value(self) -> Any: ...
else:
@types.DynamicClassAttribute
def value(self) -> Any: ...
@_magic_enum_attr
def value(self) -> Any: ...
def __new__(cls: type[Self]) -> Self: ...
class Flag(Enum):
_name_: str | None # type: ignore[assignment]
_value_: int
if sys.version_info >= (3, 11):
@property
def name(self) -> str | None: ... # type: ignore[override]
@property
def value(self) -> int: ...
else:
@types.DynamicClassAttribute
def name(self) -> str | None: ... # type: ignore[override]
@types.DynamicClassAttribute
def value(self) -> int: ...
@_magic_enum_attr
def name(self) -> str | None: ... # type: ignore[override]
@_magic_enum_attr
def value(self) -> int: ...
def __contains__(self: Self, other: Self) -> bool: ...
def __bool__(self) -> bool: ...
def __or__(self: Self, other: Self) -> Self: ...
@@ -230,7 +215,7 @@ if sys.version_info >= (3, 11):
class StrEnum(str, ReprEnum):
def __new__(cls: type[Self], value: str) -> Self: ...
_value_: str
@property
@_magic_enum_attr
def value(self) -> str: ...
class EnumCheck(StrEnum):
@@ -255,10 +240,6 @@ if sys.version_info >= (3, 11):
EJECT = FlagBoundary.EJECT
KEEP = FlagBoundary.KEEP
class property(types.DynamicClassAttribute):
def __set_name__(self, ownerclass: type[Enum], name: str) -> None: ...
name: str
clsname: str
def global_str(self: Enum) -> str: ...
def global_enum(cls: _EnumerationT, update_str: bool = ...) -> _EnumerationT: ...
def global_enum_repr(self: Enum) -> str: ...