forked from MirrorHub/synapse
Annotations for state_deltas.py (#11316)
I was sad that I couldn't do better for `_curr_state_delta_stream_cache`. At least it's explicitly called out in a comment with #TODO.
This commit is contained in:
parent
3fad4e3fe5
commit
fe58672546
3 changed files with 17 additions and 4 deletions
1
changelog.d/11316.misc
Normal file
1
changelog.d/11316.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Add type hints to storage classes.
|
4
mypy.ini
4
mypy.ini
|
@ -47,7 +47,6 @@ exclude = (?x)
|
||||||
|synapse/storage/databases/main/roommember.py
|
|synapse/storage/databases/main/roommember.py
|
||||||
|synapse/storage/databases/main/search.py
|
|synapse/storage/databases/main/search.py
|
||||||
|synapse/storage/databases/main/state.py
|
|synapse/storage/databases/main/state.py
|
||||||
|synapse/storage/databases/main/state_deltas.py
|
|
||||||
|synapse/storage/databases/main/stats.py
|
|synapse/storage/databases/main/stats.py
|
||||||
|synapse/storage/databases/main/transactions.py
|
|synapse/storage/databases/main/transactions.py
|
||||||
|synapse/storage/databases/main/user_directory.py
|
|synapse/storage/databases/main/user_directory.py
|
||||||
|
@ -181,6 +180,9 @@ disallow_untyped_defs = True
|
||||||
[mypy-synapse.storage.databases.main.room_batch]
|
[mypy-synapse.storage.databases.main.room_batch]
|
||||||
disallow_untyped_defs = True
|
disallow_untyped_defs = True
|
||||||
|
|
||||||
|
[mypy-synapse.storage.databases.main.state_deltas]
|
||||||
|
disallow_untyped_defs = True
|
||||||
|
|
||||||
[mypy-synapse.storage.databases.main.user_erasure_store]
|
[mypy-synapse.storage.databases.main.user_erasure_store]
|
||||||
disallow_untyped_defs = True
|
disallow_untyped_defs = True
|
||||||
|
|
||||||
|
|
|
@ -16,11 +16,17 @@ import logging
|
||||||
from typing import Any, Dict, List, Tuple
|
from typing import Any, Dict, List, Tuple
|
||||||
|
|
||||||
from synapse.storage._base import SQLBaseStore
|
from synapse.storage._base import SQLBaseStore
|
||||||
|
from synapse.storage.database import LoggingTransaction
|
||||||
|
from synapse.util.caches.stream_change_cache import StreamChangeCache
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class StateDeltasStore(SQLBaseStore):
|
class StateDeltasStore(SQLBaseStore):
|
||||||
|
# This class must be mixed in with a child class which provides the following
|
||||||
|
# attribute. TODO: can we get static analysis to enforce this?
|
||||||
|
_curr_state_delta_stream_cache: StreamChangeCache
|
||||||
|
|
||||||
async def get_current_state_deltas(
|
async def get_current_state_deltas(
|
||||||
self, prev_stream_id: int, max_stream_id: int
|
self, prev_stream_id: int, max_stream_id: int
|
||||||
) -> Tuple[int, List[Dict[str, Any]]]:
|
) -> Tuple[int, List[Dict[str, Any]]]:
|
||||||
|
@ -60,7 +66,9 @@ class StateDeltasStore(SQLBaseStore):
|
||||||
# max_stream_id.
|
# max_stream_id.
|
||||||
return max_stream_id, []
|
return max_stream_id, []
|
||||||
|
|
||||||
def get_current_state_deltas_txn(txn):
|
def get_current_state_deltas_txn(
|
||||||
|
txn: LoggingTransaction,
|
||||||
|
) -> Tuple[int, List[Dict[str, Any]]]:
|
||||||
# First we calculate the max stream id that will give us less than
|
# First we calculate the max stream id that will give us less than
|
||||||
# N results.
|
# N results.
|
||||||
# We arbitrarily limit to 100 stream_id entries to ensure we don't
|
# We arbitrarily limit to 100 stream_id entries to ensure we don't
|
||||||
|
@ -106,7 +114,9 @@ class StateDeltasStore(SQLBaseStore):
|
||||||
"get_current_state_deltas", get_current_state_deltas_txn
|
"get_current_state_deltas", get_current_state_deltas_txn
|
||||||
)
|
)
|
||||||
|
|
||||||
def _get_max_stream_id_in_current_state_deltas_txn(self, txn):
|
def _get_max_stream_id_in_current_state_deltas_txn(
|
||||||
|
self, txn: LoggingTransaction
|
||||||
|
) -> int:
|
||||||
return self.db_pool.simple_select_one_onecol_txn(
|
return self.db_pool.simple_select_one_onecol_txn(
|
||||||
txn,
|
txn,
|
||||||
table="current_state_delta_stream",
|
table="current_state_delta_stream",
|
||||||
|
@ -114,7 +124,7 @@ class StateDeltasStore(SQLBaseStore):
|
||||||
retcol="COALESCE(MAX(stream_id), -1)",
|
retcol="COALESCE(MAX(stream_id), -1)",
|
||||||
)
|
)
|
||||||
|
|
||||||
async def get_max_stream_id_in_current_state_deltas(self):
|
async def get_max_stream_id_in_current_state_deltas(self) -> int:
|
||||||
return await self.db_pool.runInteraction(
|
return await self.db_pool.runInteraction(
|
||||||
"get_max_stream_id_in_current_state_deltas",
|
"get_max_stream_id_in_current_state_deltas",
|
||||||
self._get_max_stream_id_in_current_state_deltas_txn,
|
self._get_max_stream_id_in_current_state_deltas_txn,
|
||||||
|
|
Loading…
Reference in a new issue