1414# See the License for the specific language governing permissions and
1515# limitations under the License.
1616import logging
17+ from typing import Any , Dict , Optional
1718
1819from twisted .python .failure import Failure
1920
2021from synapse .api .constants import EventTypes , Membership
2122from synapse .api .errors import SynapseError
23+ from synapse .api .filtering import Filter
2224from synapse .logging .context import run_in_background
2325from synapse .metrics .background_process_metrics import run_as_background_process
2426from synapse .storage .state import StateFilter
25- from synapse .types import RoomStreamToken
27+ from synapse .streams .config import PaginationConfig
28+ from synapse .types import Requester , RoomStreamToken
2629from synapse .util .async_helpers import ReadWriteLock
2730from synapse .util .stringutils import random_string
2831from synapse .visibility import filter_events_for_client
@@ -247,15 +250,16 @@ def start_purge_history(self, room_id, token, delete_local_events=False):
247250 )
248251 return purge_id
249252
250- async def _purge_history (self , purge_id , room_id , token , delete_local_events ):
253+ async def _purge_history (
254+ self , purge_id : str , room_id : str , token : str , delete_local_events : bool
255+ ) -> None :
251256 """Carry out a history purge on a room.
252257
253258 Args:
254- purge_id (str): The id for this purge
255- room_id (str): The room to purge from
256- token (str): topological token to delete events before
257- delete_local_events (bool): True to delete local events as well as
258- remote ones
259+ purge_id: The id for this purge
260+ room_id: The room to purge from
261+ token: topological token to delete events before
262+ delete_local_events: True to delete local events as well as remote ones
259263 """
260264 self ._purges_in_progress_by_room .add (room_id )
261265 try :
@@ -291,9 +295,9 @@ def get_purge_status(self, purge_id):
291295 """
292296 return self ._purges_by_id .get (purge_id )
293297
294- async def purge_room (self , room_id ) :
298+ async def purge_room (self , room_id : str ) -> None :
295299 """Purge the given room from the database"""
296- with ( await self .pagination_lock .write (room_id ) ):
300+ with await self .pagination_lock .write (room_id ):
297301 # check we know about the room
298302 await self .store .get_room_version_id (room_id )
299303
@@ -307,23 +311,22 @@ async def purge_room(self, room_id):
307311
308312 async def get_messages (
309313 self ,
310- requester ,
311- room_id = None ,
312- pagin_config = None ,
313- as_client_event = True ,
314- event_filter = None ,
315- ):
314+ requester : Requester ,
315+ room_id : Optional [ str ] = None ,
316+ pagin_config : Optional [ PaginationConfig ] = None ,
317+ as_client_event : bool = True ,
318+ event_filter : Optional [ Filter ] = None ,
319+ ) -> Dict [ str , Any ] :
316320 """Get messages in a room.
317321
318322 Args:
319- requester (Requester): The user requesting messages.
320- room_id (str): The room they want messages from.
321- pagin_config (synapse.api.streams.PaginationConfig): The pagination
322- config rules to apply, if any.
323- as_client_event (bool): True to get events in client-server format.
324- event_filter (Filter): Filter to apply to results or None
323+ requester: The user requesting messages.
324+ room_id: The room they want messages from.
325+ pagin_config: The pagination config rules to apply, if any.
326+ as_client_event: True to get events in client-server format.
327+ event_filter: Filter to apply to results or None
325328 Returns:
326- dict: Pagination API results
329+ Pagination API results
327330 """
328331 user_id = requester .user .to_string ()
329332
@@ -343,7 +346,7 @@ async def get_messages(
343346
344347 source_config = pagin_config .get_source_config ("room" )
345348
346- with ( await self .pagination_lock .read (room_id ) ):
349+ with await self .pagination_lock .read (room_id ):
347350 (
348351 membership ,
349352 member_event_id ,
0 commit comments