Common Connection Initiation
Module: s2auth.common.connection_initiation
_TItemType = TypeVar('_TItemType')
module-attribute
CommunicationProtocol
Bases: str, Enum
Source code in src/s2auth/common/model/s2_connect_common.py
| class CommunicationProtocol(str, Enum):
WebSocket = "WebSocket"
|
select_compatible_item(remote_items, local_items)
Source code in src/s2auth/common/connection_initiation.py
| def select_compatible_item(
remote_items: list[_TItemType], local_items: list[_TItemType]
) -> _TItemType | None:
overlapping_items = set(remote_items).intersection(set(local_items))
if not overlapping_items:
return None
return next(x for x in local_items if x in overlapping_items)
|
select_version(remote_versions, local_versions)
Source code in src/s2auth/common/connection_initiation.py
| def select_version(remote_versions: list[str], local_versions: list[str]) -> str | None:
return select_compatible_item(remote_versions, local_versions)
|
select_protocol(remote_protocols, local_protocols)
Source code in src/s2auth/common/connection_initiation.py
| def select_protocol(
remote_protocols: list[CommunicationProtocol],
local_protocols: list[CommunicationProtocol],
) -> CommunicationProtocol | None:
return select_compatible_item(remote_protocols, local_protocols)
|