Check databases/__init__ and main/cache with mypy. (#15496)
parent
6b2f2bd276
commit
a346b43837
|
@ -0,0 +1 @@
|
||||||
|
Improve type hints.
|
3
mypy.ini
3
mypy.ini
|
@ -28,13 +28,10 @@ files =
|
||||||
# https://docs.python.org/3/library/re.html#re.X
|
# https://docs.python.org/3/library/re.html#re.X
|
||||||
exclude = (?x)
|
exclude = (?x)
|
||||||
^(
|
^(
|
||||||
|synapse/storage/databases/__init__.py
|
|
||||||
|synapse/storage/databases/main/cache.py
|
|
||||||
|synapse/storage/schema/
|
|synapse/storage/schema/
|
||||||
)$
|
)$
|
||||||
|
|
||||||
[mypy-synapse.metrics._reactor_metrics]
|
[mypy-synapse.metrics._reactor_metrics]
|
||||||
disallow_untyped_defs = False
|
|
||||||
# This module imports select.epoll. That exists on Linux, but doesn't on macOS.
|
# This module imports select.epoll. That exists on Linux, but doesn't on macOS.
|
||||||
# See https://github.com/matrix-org/synapse/pull/11771.
|
# See https://github.com/matrix-org/synapse/pull/11771.
|
||||||
warn_unused_ignores = False
|
warn_unused_ignores = False
|
||||||
|
|
|
@ -95,7 +95,7 @@ class Databases(Generic[DataStoreT]):
|
||||||
# If we're on a process that can persist events also
|
# If we're on a process that can persist events also
|
||||||
# instantiate a `PersistEventsStore`
|
# instantiate a `PersistEventsStore`
|
||||||
if hs.get_instance_name() in hs.config.worker.writers.events:
|
if hs.get_instance_name() in hs.config.worker.writers.events:
|
||||||
persist_events = PersistEventsStore(hs, database, main, db_conn)
|
persist_events = PersistEventsStore(hs, database, main, db_conn) # type: ignore[arg-type]
|
||||||
|
|
||||||
if "state" in database_config.databases:
|
if "state" in database_config.databases:
|
||||||
logger.info(
|
logger.info(
|
||||||
|
@ -133,6 +133,6 @@ class Databases(Generic[DataStoreT]):
|
||||||
|
|
||||||
# We use local variables here to ensure that the databases do not have
|
# We use local variables here to ensure that the databases do not have
|
||||||
# optional types.
|
# optional types.
|
||||||
self.main = main
|
self.main = main # type: ignore[assignment]
|
||||||
self.state = state
|
self.state = state
|
||||||
self.persist_events = persist_events
|
self.persist_events = persist_events
|
||||||
|
|
|
@ -205,13 +205,13 @@ class CacheInvalidationWorkerStore(SQLBaseStore):
|
||||||
)
|
)
|
||||||
elif row.type == EventsStreamCurrentStateRow.TypeId:
|
elif row.type == EventsStreamCurrentStateRow.TypeId:
|
||||||
assert isinstance(data, EventsStreamCurrentStateRow)
|
assert isinstance(data, EventsStreamCurrentStateRow)
|
||||||
self._curr_state_delta_stream_cache.entity_has_changed(data.room_id, token)
|
self._curr_state_delta_stream_cache.entity_has_changed(data.room_id, token) # type: ignore[attr-defined]
|
||||||
|
|
||||||
if data.type == EventTypes.Member:
|
if data.type == EventTypes.Member:
|
||||||
self.get_rooms_for_user_with_stream_ordering.invalidate(
|
self.get_rooms_for_user_with_stream_ordering.invalidate( # type: ignore[attr-defined]
|
||||||
(data.state_key,)
|
(data.state_key,)
|
||||||
)
|
)
|
||||||
self.get_rooms_for_user.invalidate((data.state_key,))
|
self.get_rooms_for_user.invalidate((data.state_key,)) # type: ignore[attr-defined]
|
||||||
else:
|
else:
|
||||||
raise Exception("Unknown events stream row type %s" % (row.type,))
|
raise Exception("Unknown events stream row type %s" % (row.type,))
|
||||||
|
|
||||||
|
@ -229,7 +229,7 @@ class CacheInvalidationWorkerStore(SQLBaseStore):
|
||||||
# This invalidates any local in-memory cached event objects, the original
|
# This invalidates any local in-memory cached event objects, the original
|
||||||
# process triggering the invalidation is responsible for clearing any external
|
# process triggering the invalidation is responsible for clearing any external
|
||||||
# cached objects.
|
# cached objects.
|
||||||
self._invalidate_local_get_event_cache(event_id)
|
self._invalidate_local_get_event_cache(event_id) # type: ignore[attr-defined]
|
||||||
|
|
||||||
self._attempt_to_invalidate_cache("have_seen_event", (room_id, event_id))
|
self._attempt_to_invalidate_cache("have_seen_event", (room_id, event_id))
|
||||||
self._attempt_to_invalidate_cache("get_latest_event_ids_in_room", (room_id,))
|
self._attempt_to_invalidate_cache("get_latest_event_ids_in_room", (room_id,))
|
||||||
|
@ -242,10 +242,10 @@ class CacheInvalidationWorkerStore(SQLBaseStore):
|
||||||
self._attempt_to_invalidate_cache("_get_membership_from_event_id", (event_id,))
|
self._attempt_to_invalidate_cache("_get_membership_from_event_id", (event_id,))
|
||||||
|
|
||||||
if not backfilled:
|
if not backfilled:
|
||||||
self._events_stream_cache.entity_has_changed(room_id, stream_ordering)
|
self._events_stream_cache.entity_has_changed(room_id, stream_ordering) # type: ignore[attr-defined]
|
||||||
|
|
||||||
if redacts:
|
if redacts:
|
||||||
self._invalidate_local_get_event_cache(redacts)
|
self._invalidate_local_get_event_cache(redacts) # type: ignore[attr-defined]
|
||||||
# Caches which might leak edits must be invalidated for the event being
|
# Caches which might leak edits must be invalidated for the event being
|
||||||
# redacted.
|
# redacted.
|
||||||
self._attempt_to_invalidate_cache("get_relations_for_event", (redacts,))
|
self._attempt_to_invalidate_cache("get_relations_for_event", (redacts,))
|
||||||
|
@ -254,7 +254,7 @@ class CacheInvalidationWorkerStore(SQLBaseStore):
|
||||||
self._attempt_to_invalidate_cache("get_thread_id_for_receipts", (redacts,))
|
self._attempt_to_invalidate_cache("get_thread_id_for_receipts", (redacts,))
|
||||||
|
|
||||||
if etype == EventTypes.Member:
|
if etype == EventTypes.Member:
|
||||||
self._membership_stream_cache.entity_has_changed(state_key, stream_ordering)
|
self._membership_stream_cache.entity_has_changed(state_key, stream_ordering) # type: ignore[attr-defined]
|
||||||
self._attempt_to_invalidate_cache(
|
self._attempt_to_invalidate_cache(
|
||||||
"get_invited_rooms_for_local_user", (state_key,)
|
"get_invited_rooms_for_local_user", (state_key,)
|
||||||
)
|
)
|
||||||
|
@ -378,6 +378,8 @@ class CacheInvalidationWorkerStore(SQLBaseStore):
|
||||||
)
|
)
|
||||||
|
|
||||||
if isinstance(self.database_engine, PostgresEngine):
|
if isinstance(self.database_engine, PostgresEngine):
|
||||||
|
assert self._cache_id_gen is not None
|
||||||
|
|
||||||
# get_next() returns a context manager which is designed to wrap
|
# get_next() returns a context manager which is designed to wrap
|
||||||
# the transaction. However, we want to only get an ID when we want
|
# the transaction. However, we want to only get an ID when we want
|
||||||
# to use it, here, so we need to call __enter__ manually, and have
|
# to use it, here, so we need to call __enter__ manually, and have
|
||||||
|
|
Loading…
Reference in New Issue