Upgrade mypy to version 0.931 (#12030)
Upgrade mypy to 0.931, mypy-zope to 0.3.5 and fix new complaints.
This commit is contained in:
parent
eb609c65d0
commit
e6acd3cf4f
|
@ -0,0 +1 @@
|
||||||
|
Upgrade mypy to version 0.931.
|
4
setup.py
4
setup.py
|
@ -103,8 +103,8 @@ CONDITIONAL_REQUIREMENTS["lint"] = [
|
||||||
]
|
]
|
||||||
|
|
||||||
CONDITIONAL_REQUIREMENTS["mypy"] = [
|
CONDITIONAL_REQUIREMENTS["mypy"] = [
|
||||||
"mypy==0.910",
|
"mypy==0.931",
|
||||||
"mypy-zope==0.3.2",
|
"mypy-zope==0.3.5",
|
||||||
"types-bleach>=4.1.0",
|
"types-bleach>=4.1.0",
|
||||||
"types-jsonschema>=3.2.0",
|
"types-jsonschema>=3.2.0",
|
||||||
"types-opentracing>=2.4.2",
|
"types-opentracing>=2.4.2",
|
||||||
|
|
|
@ -66,13 +66,18 @@ class SortedDict(Dict[_KT, _VT]):
|
||||||
def __copy__(self: _SD) -> _SD: ...
|
def __copy__(self: _SD) -> _SD: ...
|
||||||
@classmethod
|
@classmethod
|
||||||
@overload
|
@overload
|
||||||
def fromkeys(cls, seq: Iterable[_T_h]) -> SortedDict[_T_h, None]: ...
|
def fromkeys(
|
||||||
|
cls, seq: Iterable[_T_h], value: None = ...
|
||||||
|
) -> SortedDict[_T_h, None]: ...
|
||||||
@classmethod
|
@classmethod
|
||||||
@overload
|
@overload
|
||||||
def fromkeys(cls, seq: Iterable[_T_h], value: _S) -> SortedDict[_T_h, _S]: ...
|
def fromkeys(cls, seq: Iterable[_T_h], value: _S) -> SortedDict[_T_h, _S]: ...
|
||||||
def keys(self) -> SortedKeysView[_KT]: ...
|
# As of Python 3.10, `dict_{keys,items,values}` have an extra `mapping` attribute and so
|
||||||
def items(self) -> SortedItemsView[_KT, _VT]: ...
|
# `Sorted{Keys,Items,Values}View` are no longer compatible with them.
|
||||||
def values(self) -> SortedValuesView[_VT]: ...
|
# See https://github.com/python/typeshed/issues/6837
|
||||||
|
def keys(self) -> SortedKeysView[_KT]: ... # type: ignore[override]
|
||||||
|
def items(self) -> SortedItemsView[_KT, _VT]: ... # type: ignore[override]
|
||||||
|
def values(self) -> SortedValuesView[_VT]: ... # type: ignore[override]
|
||||||
@overload
|
@overload
|
||||||
def pop(self, key: _KT) -> _VT: ...
|
def pop(self, key: _KT) -> _VT: ...
|
||||||
@overload
|
@overload
|
||||||
|
|
|
@ -654,7 +654,7 @@ class SearchHandler:
|
||||||
self.storage, user.to_string(), res.events_after
|
self.storage, user.to_string(), res.events_after
|
||||||
)
|
)
|
||||||
|
|
||||||
context = {
|
context: JsonDict = {
|
||||||
"events_before": events_before,
|
"events_before": events_before,
|
||||||
"events_after": events_after,
|
"events_after": events_after,
|
||||||
"start": await now_token.copy_and_replace(
|
"start": await now_token.copy_and_replace(
|
||||||
|
|
|
@ -130,7 +130,9 @@ def make_base_prepend_rules(
|
||||||
return rules
|
return rules
|
||||||
|
|
||||||
|
|
||||||
BASE_APPEND_CONTENT_RULES = [
|
# We have to annotate these types, otherwise mypy infers them as
|
||||||
|
# `List[Dict[str, Sequence[Collection[str]]]]`.
|
||||||
|
BASE_APPEND_CONTENT_RULES: List[Dict[str, Any]] = [
|
||||||
{
|
{
|
||||||
"rule_id": "global/content/.m.rule.contains_user_name",
|
"rule_id": "global/content/.m.rule.contains_user_name",
|
||||||
"conditions": [
|
"conditions": [
|
||||||
|
@ -149,7 +151,7 @@ BASE_APPEND_CONTENT_RULES = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
BASE_PREPEND_OVERRIDE_RULES = [
|
BASE_PREPEND_OVERRIDE_RULES: List[Dict[str, Any]] = [
|
||||||
{
|
{
|
||||||
"rule_id": "global/override/.m.rule.master",
|
"rule_id": "global/override/.m.rule.master",
|
||||||
"enabled": False,
|
"enabled": False,
|
||||||
|
@ -159,7 +161,7 @@ BASE_PREPEND_OVERRIDE_RULES = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
BASE_APPEND_OVERRIDE_RULES = [
|
BASE_APPEND_OVERRIDE_RULES: List[Dict[str, Any]] = [
|
||||||
{
|
{
|
||||||
"rule_id": "global/override/.m.rule.suppress_notices",
|
"rule_id": "global/override/.m.rule.suppress_notices",
|
||||||
"conditions": [
|
"conditions": [
|
||||||
|
@ -278,7 +280,7 @@ BASE_APPEND_OVERRIDE_RULES = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
BASE_APPEND_UNDERRIDE_RULES = [
|
BASE_APPEND_UNDERRIDE_RULES: List[Dict[str, Any]] = [
|
||||||
{
|
{
|
||||||
"rule_id": "global/underride/.m.rule.call",
|
"rule_id": "global/underride/.m.rule.call",
|
||||||
"conditions": [
|
"conditions": [
|
||||||
|
|
|
@ -325,7 +325,7 @@ class HttpPusher(Pusher):
|
||||||
# This was checked in the __init__, but mypy doesn't seem to know that.
|
# This was checked in the __init__, but mypy doesn't seem to know that.
|
||||||
assert self.data is not None
|
assert self.data is not None
|
||||||
if self.data.get("format") == "event_id_only":
|
if self.data.get("format") == "event_id_only":
|
||||||
d = {
|
d: Dict[str, Any] = {
|
||||||
"notification": {
|
"notification": {
|
||||||
"event_id": event.event_id,
|
"event_id": event.event_id,
|
||||||
"room_id": event.room_id,
|
"room_id": event.room_id,
|
||||||
|
|
|
@ -37,14 +37,16 @@ class _EventSourcesInner:
|
||||||
account_data: AccountDataEventSource
|
account_data: AccountDataEventSource
|
||||||
|
|
||||||
def get_sources(self) -> Iterator[Tuple[str, EventSource]]:
|
def get_sources(self) -> Iterator[Tuple[str, EventSource]]:
|
||||||
for attribute in _EventSourcesInner.__attrs_attrs__: # type: ignore[attr-defined]
|
for attribute in attr.fields(_EventSourcesInner):
|
||||||
yield attribute.name, getattr(self, attribute.name)
|
yield attribute.name, getattr(self, attribute.name)
|
||||||
|
|
||||||
|
|
||||||
class EventSources:
|
class EventSources:
|
||||||
def __init__(self, hs: "HomeServer"):
|
def __init__(self, hs: "HomeServer"):
|
||||||
self.sources = _EventSourcesInner(
|
self.sources = _EventSourcesInner(
|
||||||
*(attribute.type(hs) for attribute in _EventSourcesInner.__attrs_attrs__) # type: ignore[attr-defined]
|
# mypy thinks attribute.type is `Optional`, but we know it's never `None` here since
|
||||||
|
# all the attributes of `_EventSourcesInner` are annotated.
|
||||||
|
*(attribute.type(hs) for attribute in attr.fields(_EventSourcesInner)) # type: ignore[misc]
|
||||||
)
|
)
|
||||||
self.store = hs.get_datastore()
|
self.store = hs.get_datastore()
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ import os
|
||||||
import signal
|
import signal
|
||||||
import sys
|
import sys
|
||||||
from types import FrameType, TracebackType
|
from types import FrameType, TracebackType
|
||||||
from typing import NoReturn, Type
|
from typing import NoReturn, Optional, Type
|
||||||
|
|
||||||
|
|
||||||
def daemonize_process(pid_file: str, logger: logging.Logger, chdir: str = "/") -> None:
|
def daemonize_process(pid_file: str, logger: logging.Logger, chdir: str = "/") -> None:
|
||||||
|
@ -100,7 +100,9 @@ def daemonize_process(pid_file: str, logger: logging.Logger, chdir: str = "/") -
|
||||||
# also catch any other uncaught exceptions before we get that far.)
|
# also catch any other uncaught exceptions before we get that far.)
|
||||||
|
|
||||||
def excepthook(
|
def excepthook(
|
||||||
type_: Type[BaseException], value: BaseException, traceback: TracebackType
|
type_: Type[BaseException],
|
||||||
|
value: BaseException,
|
||||||
|
traceback: Optional[TracebackType],
|
||||||
) -> None:
|
) -> None:
|
||||||
logger.critical("Unhanded exception", exc_info=(type_, value, traceback))
|
logger.critical("Unhanded exception", exc_info=(type_, value, traceback))
|
||||||
|
|
||||||
|
@ -123,7 +125,7 @@ def daemonize_process(pid_file: str, logger: logging.Logger, chdir: str = "/") -
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
# write a log line on SIGTERM.
|
# write a log line on SIGTERM.
|
||||||
def sigterm(signum: signal.Signals, frame: FrameType) -> NoReturn:
|
def sigterm(signum: int, frame: Optional[FrameType]) -> NoReturn:
|
||||||
logger.warning("Caught signal %s. Stopping daemon." % signum)
|
logger.warning("Caught signal %s. Stopping daemon." % signum)
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
import functools
|
import functools
|
||||||
import sys
|
import sys
|
||||||
from typing import Any, Callable, Generator, List, TypeVar
|
from typing import Any, Callable, Generator, List, TypeVar, cast
|
||||||
|
|
||||||
from twisted.internet import defer
|
from twisted.internet import defer
|
||||||
from twisted.internet.defer import Deferred
|
from twisted.internet.defer import Deferred
|
||||||
|
@ -174,7 +174,9 @@ def _check_yield_points(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
changes.append(err)
|
changes.append(err)
|
||||||
return getattr(e, "value", None)
|
# The `StopIteration` or `_DefGen_Return` contains the return value from the
|
||||||
|
# generator.
|
||||||
|
return cast(T, e.value)
|
||||||
|
|
||||||
frame = gen.gi_frame
|
frame = gen.gi_frame
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue