diff --git a/synapse/_scripts/generate_workers_map.py b/synapse/_scripts/generate_workers_map.py
index 5b6c8f6837..715c7ddc17 100755
--- a/synapse/_scripts/generate_workers_map.py
+++ b/synapse/_scripts/generate_workers_map.py
@@ -44,7 +44,7 @@ logger = logging.getLogger("generate_workers_map")
class MockHomeserver(HomeServer):
- DATASTORE_CLASS = DataStore # type: ignore
+ DATASTORE_CLASS = DataStore
def __init__(self, config: HomeServerConfig, worker_app: Optional[str]) -> None:
super().__init__(config.server.server_name, config=config)
diff --git a/synapse/_scripts/update_synapse_database.py b/synapse/_scripts/update_synapse_database.py
index 8d22bf53d4..d8b4dbd6c6 100644
--- a/synapse/_scripts/update_synapse_database.py
+++ b/synapse/_scripts/update_synapse_database.py
@@ -41,7 +41,7 @@ logger = logging.getLogger("update_database")
class MockHomeserver(HomeServer):
- DATASTORE_CLASS = DataStore # type: ignore [assignment]
+ DATASTORE_CLASS = DataStore
def __init__(self, config: HomeServerConfig):
super().__init__(
diff --git a/synapse/app/admin_cmd.py b/synapse/app/admin_cmd.py
index 3990eda0fa..7c9b94c65c 100644
--- a/synapse/app/admin_cmd.py
+++ b/synapse/app/admin_cmd.py
@@ -110,7 +110,7 @@ class AdminCmdStore(
class AdminCmdServer(HomeServer):
- DATASTORE_CLASS = AdminCmdStore # type: ignore
+ DATASTORE_CLASS = AdminCmdStore
async def export_data_command(hs: HomeServer, args: argparse.Namespace) -> None:
diff --git a/synapse/app/generic_worker.py b/synapse/app/generic_worker.py
index 8c2a74a723..599f95466b 100644
--- a/synapse/app/generic_worker.py
+++ b/synapse/app/generic_worker.py
@@ -163,7 +163,7 @@ class GenericWorkerStore(
class GenericWorkerServer(HomeServer):
- DATASTORE_CLASS = GenericWorkerStore # type: ignore
+ DATASTORE_CLASS = GenericWorkerStore
def _listen_http(self, listener_config: ListenerConfig) -> None:
assert listener_config.http_options is not None
diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index 8a545a86c1..2b111847b7 100644
--- a/synapse/app/homeserver.py
+++ b/synapse/app/homeserver.py
@@ -81,7 +81,7 @@ def gz_wrap(r: Resource) -> Resource:
class SynapseHomeServer(HomeServer):
- DATASTORE_CLASS = DataStore # type: ignore
+ DATASTORE_CLASS = DataStore
def _listener_http(
self,
diff --git a/synapse/federation/sender/per_destination_queue.py b/synapse/federation/sender/per_destination_queue.py
index 9f1c2fe22a..b435588da0 100644
--- a/synapse/federation/sender/per_destination_queue.py
+++ b/synapse/federation/sender/per_destination_queue.py
@@ -322,7 +322,6 @@ class PerDestinationQueue:
)
async def _transaction_transmission_loop(self) -> None:
- pending_pdus: List[EventBase] = []
try:
self.transmission_loop_running = True
@@ -338,7 +337,6 @@ class PerDestinationQueue:
# not caught up yet
return
- pending_pdus = []
while True:
self._new_data_to_send = False
diff --git a/synapse/server.py b/synapse/server.py
index ae927c3904..4a3f9ff934 100644
--- a/synapse/server.py
+++ b/synapse/server.py
@@ -28,7 +28,7 @@
import abc
import functools
import logging
-from typing import TYPE_CHECKING, Callable, Dict, List, Optional, TypeVar, cast
+from typing import TYPE_CHECKING, Callable, Dict, List, Optional, Type, TypeVar, cast
from typing_extensions import TypeAlias
@@ -161,6 +161,7 @@ if TYPE_CHECKING:
from synapse.handlers.jwt import JwtHandler
from synapse.handlers.oidc import OidcHandler
from synapse.handlers.saml import SamlHandler
+ from synapse.storage._base import SQLBaseStore
# The annotation for `cache_in_self` used to be
@@ -255,10 +256,13 @@ class HomeServer(metaclass=abc.ABCMeta):
"stats",
]
- # This is overridden in derived application classes
- # (such as synapse.app.homeserver.SynapseHomeServer) and gives the class to be
- # instantiated during setup() for future return by get_datastores()
- DATASTORE_CLASS = abc.abstractproperty()
+ @property
+ @abc.abstractmethod
+ def DATASTORE_CLASS(self) -> Type["SQLBaseStore"]:
+ # This is overridden in derived application classes
+ # (such as synapse.app.homeserver.SynapseHomeServer) and gives the class to be
+ # instantiated during setup() for future return by get_datastores()
+ pass
def __init__(
self,
|