mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-22 01:25:44 +03:00
Bump mypy from 1.5.1 to 1.8.0 (#16901)
This commit is contained in:
parent
f4e12ceb1f
commit
e161103b46
12 changed files with 49 additions and 59 deletions
57
poetry.lock
generated
57
poetry.lock
generated
|
@ -1472,38 +1472,38 @@ files = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mypy"
|
name = "mypy"
|
||||||
version = "1.5.1"
|
version = "1.8.0"
|
||||||
description = "Optional static typing for Python"
|
description = "Optional static typing for Python"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "mypy-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f33592ddf9655a4894aef22d134de7393e95fcbdc2d15c1ab65828eee5c66c70"},
|
{file = "mypy-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:485a8942f671120f76afffff70f259e1cd0f0cfe08f81c05d8816d958d4577d3"},
|
||||||
{file = "mypy-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:258b22210a4a258ccd077426c7a181d789d1121aca6db73a83f79372f5569ae0"},
|
{file = "mypy-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:df9824ac11deaf007443e7ed2a4a26bebff98d2bc43c6da21b2b64185da011c4"},
|
||||||
{file = "mypy-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9ec1f695f0c25986e6f7f8778e5ce61659063268836a38c951200c57479cc12"},
|
{file = "mypy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2afecd6354bbfb6e0160f4e4ad9ba6e4e003b767dd80d85516e71f2e955ab50d"},
|
||||||
{file = "mypy-1.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:abed92d9c8f08643c7d831300b739562b0a6c9fcb028d211134fc9ab20ccad5d"},
|
{file = "mypy-1.8.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8963b83d53ee733a6e4196954502b33567ad07dfd74851f32be18eb932fb1cb9"},
|
||||||
{file = "mypy-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a156e6390944c265eb56afa67c74c0636f10283429171018446b732f1a05af25"},
|
{file = "mypy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:e46f44b54ebddbeedbd3d5b289a893219065ef805d95094d16a0af6630f5d410"},
|
||||||
{file = "mypy-1.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6ac9c21bfe7bc9f7f1b6fae441746e6a106e48fc9de530dea29e8cd37a2c0cc4"},
|
{file = "mypy-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:855fe27b80375e5c5878492f0729540db47b186509c98dae341254c8f45f42ae"},
|
||||||
{file = "mypy-1.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51cb1323064b1099e177098cb939eab2da42fea5d818d40113957ec954fc85f4"},
|
{file = "mypy-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c886c6cce2d070bd7df4ec4a05a13ee20c0aa60cb587e8d1265b6c03cf91da3"},
|
||||||
{file = "mypy-1.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:596fae69f2bfcb7305808c75c00f81fe2829b6236eadda536f00610ac5ec2243"},
|
{file = "mypy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d19c413b3c07cbecf1f991e2221746b0d2a9410b59cb3f4fb9557f0365a1a817"},
|
||||||
{file = "mypy-1.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:32cb59609b0534f0bd67faebb6e022fe534bdb0e2ecab4290d683d248be1b275"},
|
{file = "mypy-1.8.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9261ed810972061388918c83c3f5cd46079d875026ba97380f3e3978a72f503d"},
|
||||||
{file = "mypy-1.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:159aa9acb16086b79bbb0016145034a1a05360626046a929f84579ce1666b315"},
|
{file = "mypy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:51720c776d148bad2372ca21ca29256ed483aa9a4cdefefcef49006dff2a6835"},
|
||||||
{file = "mypy-1.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f6b0e77db9ff4fda74de7df13f30016a0a663928d669c9f2c057048ba44f09bb"},
|
{file = "mypy-1.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:52825b01f5c4c1c4eb0db253ec09c7aa17e1a7304d247c48b6f3599ef40db8bd"},
|
||||||
{file = "mypy-1.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26f71b535dfc158a71264e6dc805a9f8d2e60b67215ca0bfa26e2e1aa4d4d373"},
|
{file = "mypy-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f5ac9a4eeb1ec0f1ccdc6f326bcdb464de5f80eb07fb38b5ddd7b0de6bc61e55"},
|
||||||
{file = "mypy-1.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc3a600f749b1008cc75e02b6fb3d4db8dbcca2d733030fe7a3b3502902f161"},
|
{file = "mypy-1.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afe3fe972c645b4632c563d3f3eff1cdca2fa058f730df2b93a35e3b0c538218"},
|
||||||
{file = "mypy-1.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:26fb32e4d4afa205b24bf645eddfbb36a1e17e995c5c99d6d00edb24b693406a"},
|
{file = "mypy-1.8.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:42c6680d256ab35637ef88891c6bd02514ccb7e1122133ac96055ff458f93fc3"},
|
||||||
{file = "mypy-1.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:82cb6193de9bbb3844bab4c7cf80e6227d5225cc7625b068a06d005d861ad5f1"},
|
{file = "mypy-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:720a5ca70e136b675af3af63db533c1c8c9181314d207568bbe79051f122669e"},
|
||||||
{file = "mypy-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a465ea2ca12804d5b34bb056be3a29dc47aea5973b892d0417c6a10a40b2d65"},
|
{file = "mypy-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:028cf9f2cae89e202d7b6593cd98db6759379f17a319b5faf4f9978d7084cdc6"},
|
||||||
{file = "mypy-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9fece120dbb041771a63eb95e4896791386fe287fefb2837258925b8326d6160"},
|
{file = "mypy-1.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4e6d97288757e1ddba10dd9549ac27982e3e74a49d8d0179fc14d4365c7add66"},
|
||||||
{file = "mypy-1.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d28ddc3e3dfeab553e743e532fb95b4e6afad51d4706dd22f28e1e5e664828d2"},
|
{file = "mypy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f1478736fcebb90f97e40aff11a5f253af890c845ee0c850fe80aa060a267c6"},
|
||||||
{file = "mypy-1.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:57b10c56016adce71fba6bc6e9fd45d8083f74361f629390c556738565af8eeb"},
|
{file = "mypy-1.8.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42419861b43e6962a649068a61f4a4839205a3ef525b858377a960b9e2de6e0d"},
|
||||||
{file = "mypy-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:ff0cedc84184115202475bbb46dd99f8dcb87fe24d5d0ddfc0fe6b8575c88d2f"},
|
{file = "mypy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:2b5b6c721bd4aabaadead3a5e6fa85c11c6c795e0c81a7215776ef8afc66de02"},
|
||||||
{file = "mypy-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8f772942d372c8cbac575be99f9cc9d9fb3bd95c8bc2de6c01411e2c84ebca8a"},
|
{file = "mypy-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5c1538c38584029352878a0466f03a8ee7547d7bd9f641f57a0f3017a7c905b8"},
|
||||||
{file = "mypy-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5d627124700b92b6bbaa99f27cbe615c8ea7b3402960f6372ea7d65faf376c14"},
|
{file = "mypy-1.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ef4be7baf08a203170f29e89d79064463b7fc7a0908b9d0d5114e8009c3a259"},
|
||||||
{file = "mypy-1.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:361da43c4f5a96173220eb53340ace68cda81845cd88218f8862dfb0adc8cddb"},
|
{file = "mypy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7178def594014aa6c35a8ff411cf37d682f428b3b5617ca79029d8ae72f5402b"},
|
||||||
{file = "mypy-1.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:330857f9507c24de5c5724235e66858f8364a0693894342485e543f5b07c8693"},
|
{file = "mypy-1.8.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab3c84fa13c04aeeeabb2a7f67a25ef5d77ac9d6486ff33ded762ef353aa5592"},
|
||||||
{file = "mypy-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:c543214ffdd422623e9fedd0869166c2f16affe4ba37463975043ef7d2ea8770"},
|
{file = "mypy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:99b00bc72855812a60d253420d8a2eae839b0afa4938f09f4d2aa9bb4654263a"},
|
||||||
{file = "mypy-1.5.1-py3-none-any.whl", hash = "sha256:f757063a83970d67c444f6e01d9550a7402322af3557ce7630d3c957386fa8f5"},
|
{file = "mypy-1.8.0-py3-none-any.whl", hash = "sha256:538fd81bb5e430cc1381a443971c0475582ff9f434c16cd46d2c66763ce85d9d"},
|
||||||
{file = "mypy-1.5.1.tar.gz", hash = "sha256:b031b9601f1060bf1281feab89697324726ba0c0bae9d7cd7ab4b690940f0b92"},
|
{file = "mypy-1.8.0.tar.gz", hash = "sha256:6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
|
@ -1514,6 +1514,7 @@ typing-extensions = ">=4.1.0"
|
||||||
[package.extras]
|
[package.extras]
|
||||||
dmypy = ["psutil (>=4.0)"]
|
dmypy = ["psutil (>=4.0)"]
|
||||||
install-types = ["pip"]
|
install-types = ["pip"]
|
||||||
|
mypyc = ["setuptools (>=50)"]
|
||||||
reports = ["lxml"]
|
reports = ["lxml"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
@ -2185,7 +2185,7 @@ class PasswordAuthProvider:
|
||||||
# result is always the right type, but as it is 3rd party code it might not be
|
# result is always the right type, but as it is 3rd party code it might not be
|
||||||
|
|
||||||
if not isinstance(result, tuple) or len(result) != 2:
|
if not isinstance(result, tuple) or len(result) != 2:
|
||||||
logger.warning(
|
logger.warning( # type: ignore[unreachable]
|
||||||
"Wrong type returned by module API callback %s: %s, expected"
|
"Wrong type returned by module API callback %s: %s, expected"
|
||||||
" Optional[Tuple[str, Optional[Callable]]]",
|
" Optional[Tuple[str, Optional[Callable]]]",
|
||||||
callback,
|
callback,
|
||||||
|
@ -2248,7 +2248,7 @@ class PasswordAuthProvider:
|
||||||
# result is always the right type, but as it is 3rd party code it might not be
|
# result is always the right type, but as it is 3rd party code it might not be
|
||||||
|
|
||||||
if not isinstance(result, tuple) or len(result) != 2:
|
if not isinstance(result, tuple) or len(result) != 2:
|
||||||
logger.warning(
|
logger.warning( # type: ignore[unreachable]
|
||||||
"Wrong type returned by module API callback %s: %s, expected"
|
"Wrong type returned by module API callback %s: %s, expected"
|
||||||
" Optional[Tuple[str, Optional[Callable]]]",
|
" Optional[Tuple[str, Optional[Callable]]]",
|
||||||
callback,
|
callback,
|
||||||
|
|
|
@ -150,7 +150,7 @@ class UserAttributes:
|
||||||
display_name: Optional[str] = None
|
display_name: Optional[str] = None
|
||||||
picture: Optional[str] = None
|
picture: Optional[str] = None
|
||||||
# mypy thinks these are incompatible for some reason.
|
# mypy thinks these are incompatible for some reason.
|
||||||
emails: StrCollection = attr.Factory(list) # type: ignore[assignment]
|
emails: StrCollection = attr.Factory(list)
|
||||||
|
|
||||||
|
|
||||||
@attr.s(slots=True, auto_attribs=True)
|
@attr.s(slots=True, auto_attribs=True)
|
||||||
|
|
|
@ -776,11 +776,7 @@ def run_in_background(
|
||||||
) -> "defer.Deferred[R]": ...
|
) -> "defer.Deferred[R]": ...
|
||||||
|
|
||||||
|
|
||||||
def run_in_background( # type: ignore[misc]
|
def run_in_background(
|
||||||
# The `type: ignore[misc]` above suppresses
|
|
||||||
# "Overloaded function implementation does not accept all possible arguments of signature 1"
|
|
||||||
# "Overloaded function implementation does not accept all possible arguments of signature 2"
|
|
||||||
# which seems like a bug in mypy.
|
|
||||||
f: Union[
|
f: Union[
|
||||||
Callable[P, R],
|
Callable[P, R],
|
||||||
Callable[P, Awaitable[R]],
|
Callable[P, Awaitable[R]],
|
||||||
|
|
|
@ -455,7 +455,7 @@ class SpamCheckerModuleApiCallbacks:
|
||||||
# mypy complains that we can't reach this code because of the
|
# mypy complains that we can't reach this code because of the
|
||||||
# return type in CHECK_EVENT_FOR_SPAM_CALLBACK, but we don't know
|
# return type in CHECK_EVENT_FOR_SPAM_CALLBACK, but we don't know
|
||||||
# for sure that the module actually returns it.
|
# for sure that the module actually returns it.
|
||||||
logger.warning(
|
logger.warning( # type: ignore[unreachable]
|
||||||
"Module returned invalid value, rejecting message as spam"
|
"Module returned invalid value, rejecting message as spam"
|
||||||
)
|
)
|
||||||
res = "This message has been rejected as probable spam"
|
res = "This message has been rejected as probable spam"
|
||||||
|
|
|
@ -913,9 +913,9 @@ class DatabasePool:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with opentracing.start_active_span(f"db.{desc}"):
|
with opentracing.start_active_span(f"db.{desc}"):
|
||||||
result = await self.runWithConnection(
|
result: R = await self.runWithConnection(
|
||||||
# mypy seems to have an issue with this, maybe a bug?
|
# mypy seems to have an issue with this, maybe a bug?
|
||||||
self.new_transaction, # type: ignore[arg-type]
|
self.new_transaction,
|
||||||
desc,
|
desc,
|
||||||
after_callbacks,
|
after_callbacks,
|
||||||
async_after_callbacks,
|
async_after_callbacks,
|
||||||
|
@ -934,7 +934,7 @@ class DatabasePool:
|
||||||
await async_callback(*async_args, **async_kwargs)
|
await async_callback(*async_args, **async_kwargs)
|
||||||
for after_callback, after_args, after_kwargs in after_callbacks:
|
for after_callback, after_args, after_kwargs in after_callbacks:
|
||||||
after_callback(*after_args, **after_kwargs)
|
after_callback(*after_args, **after_kwargs)
|
||||||
return cast(R, result)
|
return result
|
||||||
except Exception:
|
except Exception:
|
||||||
for exception_callback, after_args, after_kwargs in exception_callbacks:
|
for exception_callback, after_args, after_kwargs in exception_callbacks:
|
||||||
exception_callback(*after_args, **after_kwargs)
|
exception_callback(*after_args, **after_kwargs)
|
||||||
|
|
|
@ -1876,7 +1876,7 @@ class EventsWorkerStore(SQLBaseStore):
|
||||||
# Type safety: iterating over `txn` yields `Tuple`, i.e.
|
# Type safety: iterating over `txn` yields `Tuple`, i.e.
|
||||||
# `Tuple[Any, ...]` of arbitrary length. Mypy detects assigning a
|
# `Tuple[Any, ...]` of arbitrary length. Mypy detects assigning a
|
||||||
# variadic tuple to a fixed length tuple and flags it up as an error.
|
# variadic tuple to a fixed length tuple and flags it up as an error.
|
||||||
for row in txn: # type: ignore[assignment]
|
for row in txn:
|
||||||
new_event_updates.append((row[0], row[1:]))
|
new_event_updates.append((row[0], row[1:]))
|
||||||
|
|
||||||
limited = False
|
limited = False
|
||||||
|
@ -1903,7 +1903,7 @@ class EventsWorkerStore(SQLBaseStore):
|
||||||
# Type safety: iterating over `txn` yields `Tuple`, i.e.
|
# Type safety: iterating over `txn` yields `Tuple`, i.e.
|
||||||
# `Tuple[Any, ...]` of arbitrary length. Mypy detects assigning a
|
# `Tuple[Any, ...]` of arbitrary length. Mypy detects assigning a
|
||||||
# variadic tuple to a fixed length tuple and flags it up as an error.
|
# variadic tuple to a fixed length tuple and flags it up as an error.
|
||||||
for row in txn: # type: ignore[assignment]
|
for row in txn:
|
||||||
new_event_updates.append((row[0], row[1:]))
|
new_event_updates.append((row[0], row[1:]))
|
||||||
|
|
||||||
if len(new_event_updates) >= limit:
|
if len(new_event_updates) >= limit:
|
||||||
|
|
|
@ -57,12 +57,13 @@ class _EventSourcesInner:
|
||||||
class EventSources:
|
class EventSources:
|
||||||
def __init__(self, hs: "HomeServer"):
|
def __init__(self, hs: "HomeServer"):
|
||||||
self.sources = _EventSourcesInner(
|
self.sources = _EventSourcesInner(
|
||||||
# mypy previously warned that attribute.type is `Optional`, but we know it's
|
# attribute.type is `Optional`, but we know it's
|
||||||
# never `None` here since all the attributes of `_EventSourcesInner` are
|
# never `None` here since all the attributes of `_EventSourcesInner` are
|
||||||
# annotated.
|
# annotated.
|
||||||
# As of the stubs in attrs 22.1.0, `attr.fields()` now returns Any,
|
*(
|
||||||
# so the call to `attribute.type` is not checked.
|
attribute.type(hs) # type: ignore[misc]
|
||||||
*(attribute.type(hs) for attribute in attr.fields(_EventSourcesInner))
|
for attribute in attr.fields(_EventSourcesInner)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.store = hs.get_datastores().main
|
self.store = hs.get_datastores().main
|
||||||
self._instance_name = hs.get_instance_name()
|
self._instance_name = hs.get_instance_name()
|
||||||
|
|
|
@ -284,15 +284,7 @@ async def yieldable_gather_results(
|
||||||
try:
|
try:
|
||||||
return await make_deferred_yieldable(
|
return await make_deferred_yieldable(
|
||||||
defer.gatherResults(
|
defer.gatherResults(
|
||||||
# type-ignore: mypy reports two errors:
|
[run_in_background(func, item, *args, **kwargs) for item in iter],
|
||||||
# error: Argument 1 to "run_in_background" has incompatible type
|
|
||||||
# "Callable[[T, **P], Awaitable[R]]"; expected
|
|
||||||
# "Callable[[T, **P], Awaitable[R]]" [arg-type]
|
|
||||||
# error: Argument 2 to "run_in_background" has incompatible type
|
|
||||||
# "T"; expected "[T, **P.args]" [arg-type]
|
|
||||||
# The former looks like a mypy bug, and the latter looks like a
|
|
||||||
# false positive.
|
|
||||||
[run_in_background(func, item, *args, **kwargs) for item in iter], # type: ignore[arg-type]
|
|
||||||
consumeErrors=True,
|
consumeErrors=True,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -338,7 +330,7 @@ async def yieldable_gather_results_delaying_cancellation(
|
||||||
return await make_deferred_yieldable(
|
return await make_deferred_yieldable(
|
||||||
delay_cancellation(
|
delay_cancellation(
|
||||||
defer.gatherResults(
|
defer.gatherResults(
|
||||||
[run_in_background(func, item, *args, **kwargs) for item in iter], # type: ignore[arg-type]
|
[run_in_background(func, item, *args, **kwargs) for item in iter],
|
||||||
consumeErrors=True,
|
consumeErrors=True,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -229,7 +229,7 @@ class DictionaryCache(Generic[KT, DKT, DV]):
|
||||||
for dict_key in missing:
|
for dict_key in missing:
|
||||||
# We explicitly add each dict key to the cache, so that cache hit
|
# We explicitly add each dict key to the cache, so that cache hit
|
||||||
# rates and LRU times for each key can be tracked separately.
|
# rates and LRU times for each key can be tracked separately.
|
||||||
value = entry.get(dict_key, _Sentinel.sentinel) # type: ignore[arg-type]
|
value = entry.get(dict_key, _Sentinel.sentinel)
|
||||||
self.cache[(key, dict_key)] = _PerKeyValue(value)
|
self.cache[(key, dict_key)] = _PerKeyValue(value)
|
||||||
|
|
||||||
if value is not _Sentinel.sentinel:
|
if value is not _Sentinel.sentinel:
|
||||||
|
|
|
@ -142,7 +142,7 @@ class ExpiringCache(Generic[KT, VT]):
|
||||||
return default
|
return default
|
||||||
|
|
||||||
if self.iterable:
|
if self.iterable:
|
||||||
self.metrics.inc_evictions(EvictionReason.invalidation, len(value.value)) # type: ignore[arg-type]
|
self.metrics.inc_evictions(EvictionReason.invalidation, len(value.value))
|
||||||
else:
|
else:
|
||||||
self.metrics.inc_evictions(EvictionReason.invalidation)
|
self.metrics.inc_evictions(EvictionReason.invalidation)
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ class FilterTestCase(unittest.HomeserverTestCase):
|
||||||
|
|
||||||
def test_add_filter_non_local_user(self) -> None:
|
def test_add_filter_non_local_user(self) -> None:
|
||||||
_is_mine = self.hs.is_mine
|
_is_mine = self.hs.is_mine
|
||||||
self.hs.is_mine = lambda target_user: False # type: ignore[method-assign]
|
self.hs.is_mine = lambda target_user: False # type: ignore[assignment]
|
||||||
channel = self.make_request(
|
channel = self.make_request(
|
||||||
"POST",
|
"POST",
|
||||||
"/_matrix/client/r0/user/%s/filter" % (self.user_id),
|
"/_matrix/client/r0/user/%s/filter" % (self.user_id),
|
||||||
|
|
Loading…
Reference in a new issue