Skip to content

Commit 46afc33

Browse files
Unnest ExpectedSessionState constructor
1 parent f9a33f3 commit 46afc33

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

src/replit_river/client_transport.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import asyncio
22
import logging
33
from collections.abc import Awaitable, Callable
4-
from typing import Generic, Mapping
4+
from typing import Generic, Mapping, assert_never
55

66
import nanoid
77
import websockets
@@ -319,24 +319,27 @@ async def _establish_handshake(
319319
ControlMessageHandshakeResponse,
320320
]:
321321
try:
322+
expectedSessionState: ExpectedSessionState
323+
match old_session:
324+
case None:
325+
expectedSessionState = ExpectedSessionState(
326+
nextExpectedSeq=0,
327+
nextSentSeq=0,
328+
)
329+
case ClientSession():
330+
expectedSessionState = ExpectedSessionState(
331+
nextExpectedSeq=await old_session.get_next_expected_seq(),
332+
nextSentSeq=await old_session.get_next_sent_seq(),
333+
)
334+
case other:
335+
assert_never(other)
322336
handshake_request = await self._send_handshake_request(
323337
transport_id=transport_id,
324338
to_id=to_id,
325339
session_id=session_id,
326340
handshake_metadata=handshake_metadata,
327341
websocket=websocket,
328-
expected_session_state=ExpectedSessionState(
329-
nextExpectedSeq=(
330-
await old_session.get_next_expected_seq()
331-
if old_session is not None
332-
else 0
333-
),
334-
nextSentSeq=(
335-
await old_session.get_next_sent_seq()
336-
if old_session is not None
337-
else 0
338-
),
339-
),
342+
expected_session_state=expectedSessionState,
340343
)
341344
except FailedSendingMessageException as e:
342345
raise RiverException(

0 commit comments

Comments
 (0)