Переглянути джерело

Upgrade mypy to version 0.931 (#12030)

Upgrade mypy to 0.931, mypy-zope to 0.3.5 and fix new complaints.
tags/v1.54.0rc1
Sean Quah 2 роки тому
committed by GitHub
джерело
коміт
e6acd3cf4f
Не вдалося знайти GPG ключ що відповідає даному підпису Ідентифікатор GPG ключа: 4AEE18F83AFDEB23
9 змінених файлів з 33 додано та 19 видалено
  1. +1
    -0
      changelog.d/12030.misc
  2. +2
    -2
      setup.py
  3. +9
    -4
      stubs/sortedcontainers/sorteddict.pyi
  4. +1
    -1
      synapse/handlers/search.py
  5. +6
    -4
      synapse/push/baserules.py
  6. +1
    -1
      synapse/push/httppusher.py
  7. +4
    -2
      synapse/streams/events.py
  8. +5
    -3
      synapse/util/daemonize.py
  9. +4
    -2
      synapse/util/patch_inline_callbacks.py

+ 1
- 0
changelog.d/12030.misc Переглянути файл

@@ -0,0 +1 @@
Upgrade mypy to version 0.931.

+ 2
- 2
setup.py Переглянути файл

@@ -103,8 +103,8 @@ CONDITIONAL_REQUIREMENTS["lint"] = [
]

CONDITIONAL_REQUIREMENTS["mypy"] = [
"mypy==0.910",
"mypy-zope==0.3.2",
"mypy==0.931",
"mypy-zope==0.3.5",
"types-bleach>=4.1.0",
"types-jsonschema>=3.2.0",
"types-opentracing>=2.4.2",


+ 9
- 4
stubs/sortedcontainers/sorteddict.pyi Переглянути файл

@@ -66,13 +66,18 @@ class SortedDict(Dict[_KT, _VT]):
def __copy__(self: _SD) -> _SD: ...
@classmethod
@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
@overload
def fromkeys(cls, seq: Iterable[_T_h], value: _S) -> SortedDict[_T_h, _S]: ...
def keys(self) -> SortedKeysView[_KT]: ...
def items(self) -> SortedItemsView[_KT, _VT]: ...
def values(self) -> SortedValuesView[_VT]: ...
# As of Python 3.10, `dict_{keys,items,values}` have an extra `mapping` attribute and so
# `Sorted{Keys,Items,Values}View` are no longer compatible with them.
# 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
def pop(self, key: _KT) -> _VT: ...
@overload


+ 1
- 1
synapse/handlers/search.py Переглянути файл

@@ -654,7 +654,7 @@ class SearchHandler:
self.storage, user.to_string(), res.events_after
)

context = {
context: JsonDict = {
"events_before": events_before,
"events_after": events_after,
"start": await now_token.copy_and_replace(


+ 6
- 4
synapse/push/baserules.py Переглянути файл

@@ -130,7 +130,9 @@ def make_base_prepend_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",
"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",
"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",
"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",
"conditions": [


+ 1
- 1
synapse/push/httppusher.py Переглянути файл

@@ -325,7 +325,7 @@ class HttpPusher(Pusher):
# This was checked in the __init__, but mypy doesn't seem to know that.
assert self.data is not None
if self.data.get("format") == "event_id_only":
d = {
d: Dict[str, Any] = {
"notification": {
"event_id": event.event_id,
"room_id": event.room_id,


+ 4
- 2
synapse/streams/events.py Переглянути файл

@@ -37,14 +37,16 @@ class _EventSourcesInner:
account_data: AccountDataEventSource

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)


class EventSources:
def __init__(self, hs: "HomeServer"):
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()



+ 5
- 3
synapse/util/daemonize.py Переглянути файл

@@ -20,7 +20,7 @@ import os
import signal
import sys
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:
@@ -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.)

def excepthook(
type_: Type[BaseException], value: BaseException, traceback: TracebackType
type_: Type[BaseException],
value: BaseException,
traceback: Optional[TracebackType],
) -> None:
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)

# 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)
sys.exit(0)



+ 4
- 2
synapse/util/patch_inline_callbacks.py Переглянути файл

@@ -14,7 +14,7 @@

import functools
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.defer import Deferred
@@ -174,7 +174,9 @@ def _check_yield_points(
)
)
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



Завантаження…
Відмінити
Зберегти