Skip to content

Commit 2e48262

Browse files
committed
Fix issues in Python<3.12, when using in operator with IntEnum
1 parent 0f39bb1 commit 2e48262

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

jupyter_rtc_core/rooms/yroom.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,10 +169,26 @@ async def _process_message_queue(self) -> None:
169169
sync_message_subtype = "*"
170170
if message_type == YMessageType.SYNC and len(message) >= 2:
171171
sync_message_subtype = message[1]
172-
172+
173173
# Determine if message is invalid
174-
invalid_message_type = message_type not in YMessageType
175-
invalid_sync_message_type = message_type == YMessageType.SYNC and sync_message_subtype not in YSyncMessageSubtype
174+
# NOTE: In Python 3.12+, we can drop the try/except
175+
# syntax for a much simpler `in` operator.
176+
# e.g. message_type in YMessageType
177+
try:
178+
179+
YMessageType(message_type)
180+
invalid_message_type = False
181+
except ValueError:
182+
invalid_message_type = True
183+
184+
invalid_sync_message_type = False
185+
if message_type == YMessageType.SYNC:
186+
try:
187+
# Check if YMessageType contain this message type.
188+
YSyncMessageSubtype(sync_message_subtype)
189+
except ValueError:
190+
invalid_sync_message_type = True
191+
176192
invalid_message = invalid_message_type or invalid_sync_message_type
177193

178194
# Handle invalid messages by logging a warning and ignoring

0 commit comments

Comments
 (0)