Skip to content

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)