diff --git a/synapse/storage/database.py b/synapse/storage/database.py
index 5da3dc079a..b394a6658b 100644
--- a/synapse/storage/database.py
+++ b/synapse/storage/database.py
@@ -288,7 +288,8 @@ class LoggingTransaction:
# LoggingTransaction isn't expecting there to be any callbacks; assert that
# is not the case.
assert self.after_callbacks is not None
- self.after_callbacks.append((callback, args, kwargs))
+ # type-ignore: need mypy containing https://github.com/python/mypy/pull/12668
+ self.after_callbacks.append((callback, args, kwargs)) # type: ignore[arg-type]
def async_call_after(
self, callback: Callable[P, Awaitable], *args: P.args, **kwargs: P.kwargs
@@ -309,7 +310,8 @@ class LoggingTransaction:
# LoggingTransaction isn't expecting there to be any callbacks; assert that
# is not the case.
assert self.async_after_callbacks is not None
- self.async_after_callbacks.append((callback, args, kwargs))
+ # type-ignore: need mypy containing https://github.com/python/mypy/pull/12668
+ self.async_after_callbacks.append((callback, args, kwargs)) # type: ignore[arg-type]
def call_on_exception(
self, callback: Callable[P, object], *args: P.args, **kwargs: P.kwargs
@@ -327,7 +329,8 @@ class LoggingTransaction:
# LoggingTransaction isn't expecting there to be any callbacks; assert that
# is not the case.
assert self.exception_callbacks is not None
- self.exception_callbacks.append((callback, args, kwargs))
+ # type-ignore: need mypy containing https://github.com/python/mypy/pull/12668
+ self.exception_callbacks.append((callback, args, kwargs)) # type: ignore[arg-type]
def fetchone(self) -> Optional[Tuple]:
return self.txn.fetchone()
@@ -408,7 +411,10 @@ class LoggingTransaction:
sql = self.database_engine.convert_param_style(sql)
if args:
try:
- sql_logger.debug("[SQL values] {%s} %r", self.name, args[0])
+ # The type-ignore should be redundant once mypy releases a version with
+ # https://github.com/python/mypy/pull/12668. (`args` might be empty,
+ # (but we'll catch the index error if so.)
+ sql_logger.debug("[SQL values] {%s} %r", self.name, args[0]) # type: ignore[index]
except Exception:
# Don't let logging failures stop SQL from working
pass
@@ -640,7 +646,9 @@ class DatabasePool:
# For now, we just log an error, and hope that it works on the first attempt.
# TODO: raise an exception.
- for i, arg in enumerate(args):
+ # Type-ignore Mypy doesn't yet consider ParamSpec.args to be iterable; see
+ # https://github.com/python/mypy/pull/12668
+ for i, arg in enumerate(args): # type: ignore[arg-type, var-annotated]
if inspect.isgenerator(arg):
logger.error(
"Programming error: generator passed to new_transaction as "
@@ -648,7 +656,9 @@ class DatabasePool:
i,
func,
)
- for name, val in kwargs.items():
+ # Type-ignore Mypy doesn't yet consider ParamSpec.args to be a mapping; see
+ # https://github.com/python/mypy/pull/12668
+ for name, val in kwargs.items(): # type: ignore[attr-defined]
if inspect.isgenerator(val):
logger.error(
"Programming error: generator passed to new_transaction as "
|