"""Entrypoint for getstream connector.""" from .client import AsyncStreamClient, SyncStreamClient from .client.base import BaseExtendedClient from .throttling import BaseThrottler, RateLimitThrottler __all__ = ["get_client", "SyncStreamClient", "AsyncStreamClient", "__version__"] __version__ = "3.0.1" def get_client( api_key: str, api_secret: str, app_id: str | None = None, location: str | None = None, throttler: BaseThrottler = RateLimitThrottler(), inject_trace_context: bool = True, inject_correlation_id: bool = True, use_async: bool = False, ) -> BaseExtendedClient: """Get a StreamClient. :param api_key: GetStream API key :param api_secret: GetStream API secret :param app_id: GetStream application id :param location: GetStream region :param throttler: Delay calculator used to control request rate limiting :param inject_trace_context: Whether to inject trace context to activity data. :param inject_correlation_id: Whether to inject correlation id to activity data. :param use_async: Whether to use asynchronous client. :return: Initialized GetStream client. """ client_cls = AsyncStreamClient if use_async else SyncStreamClient return client_cls( api_key=api_key, api_secret=api_secret, app_id=app_id, location=location, throttler=throttler, inject_trace_context=inject_trace_context, inject_correlation_id=inject_correlation_id, )