getstream 3.2.0__tar.gz → 3.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {getstream-3.2.0 → getstream-3.3.1}/PKG-INFO +1 -1
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/connection_manager.py +4 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/signaling.py +15 -4
- {getstream-3.2.0 → getstream-3.3.1}/.cursor/worktrees.json +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/.env.example +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/.github/actions/python-uv-setup/action.yml +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/.github/workflows/ci.yml +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/.github/workflows/release.yml +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/.github/workflows/run_tests.yml +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/.github/workflows/stream-py.code-workspace +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/.gitignore +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/.gitmodules +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/.pre-commit-config.yaml +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/AGENTS.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/CHANGELOG.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/DEVELOPMENT.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/LICENSE.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/MIGRATION_v2_to_v3.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/Makefile +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/README.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/dev.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/01-setup-and-auth.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/02-users.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/03-channels.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/04-messages-and-reactions.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/05-moderation.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/06-devices.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/README.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/generate.sh +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/generate_webrtc.sh +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/base.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/async_channel.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/async_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/async_rest_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/channel.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/rest_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/common/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/common/async_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/common/async_rest_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/common/client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/common/rest_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/common/telemetry.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/config.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/feeds/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/feeds/client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/feeds/feeds.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/feeds/rest_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/generic.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/meta.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/models/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/moderation/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/moderation/async_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/moderation/async_rest_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/moderation/client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/moderation/rest_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/rate_limit.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/stream.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/stream_response.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/tests/test_webhook.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/utils/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/utils/event_emitter.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/utils/retry.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/version.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/async_call.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/async_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/async_rest_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/call.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/openai.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rest_client.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/README.md +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/audio_track.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/connection_utils.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/coordinator/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/coordinator/backoff.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/coordinator/errors.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/coordinator/ws.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/coordinator_api.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/encoders_patches.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/g711.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/location_discovery.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/models.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/network_monitor.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/participants.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/event/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/event/events_pb2.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/event/events_pb2.pyi +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/models/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/models/models_pb2.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/models/models_pb2.pyi +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/signal_rpc/__init__.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/signal_rpc/signal_pb2.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/signal_rpc/signal_pb2.pyi +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/signal_rpc/signal_twirp.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pc.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/peer_connection.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/reconnection.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/recording.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/stats_reporter.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/stats_tracer.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/tracer.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/track_util.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/tracks.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/twirp_client_wrapper.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/utils.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/getstream/webhook.py +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/pyproject.toml +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/pytest.ini +0 -0
- {getstream-3.2.0 → getstream-3.3.1}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: getstream
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.3.1
|
|
4
4
|
Summary: GetStream Python SDK - Build scalable activity feeds, chat, and video calling applications
|
|
5
5
|
Author-email: sachaarbonel <sacha.arbonel@hotmail.fr>, tbarbugli <tbarbugli@gmail.com>
|
|
6
6
|
License-File: LICENSE.md
|
|
@@ -2,6 +2,7 @@ import json
|
|
|
2
2
|
import asyncio
|
|
3
3
|
import logging
|
|
4
4
|
import uuid
|
|
5
|
+
import functools
|
|
5
6
|
from typing import Optional, Dict, Any
|
|
6
7
|
|
|
7
8
|
import aioice
|
|
@@ -281,6 +282,9 @@ class ConnectionManager(StreamAsyncIOEventEmitter):
|
|
|
281
282
|
user_details={"id": self.user_id},
|
|
282
283
|
)
|
|
283
284
|
self._coordinator_ws_client.on_wildcard("*", _log_event)
|
|
285
|
+
self._coordinator_ws_client.on(
|
|
286
|
+
"custom", functools.partial(self.emit, "custom")
|
|
287
|
+
)
|
|
284
288
|
await self._coordinator_ws_client.connect()
|
|
285
289
|
|
|
286
290
|
with telemetry.start_as_current_span(
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
-
import threading
|
|
3
|
-
import websocket
|
|
4
2
|
import logging
|
|
3
|
+
import threading
|
|
5
4
|
import time
|
|
6
|
-
from typing import TYPE_CHECKING, Any,
|
|
5
|
+
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Optional, Set
|
|
6
|
+
|
|
7
|
+
import websocket
|
|
7
8
|
|
|
8
9
|
from getstream.common import telemetry
|
|
9
10
|
from getstream.utils import StreamAsyncIOEventEmitter
|
|
11
|
+
|
|
10
12
|
from .pb.stream.video.sfu.event import events_pb2
|
|
11
13
|
|
|
12
14
|
if TYPE_CHECKING:
|
|
@@ -196,7 +198,16 @@ class WebSocketClient(StreamAsyncIOEventEmitter):
|
|
|
196
198
|
|
|
197
199
|
def _on_error(self, ws, error):
|
|
198
200
|
"""Handle WebSocket error."""
|
|
199
|
-
|
|
201
|
+
if (
|
|
202
|
+
isinstance(error, websocket.ABNF)
|
|
203
|
+
and error.opcode == websocket.ABNF.OPCODE_CLOSE
|
|
204
|
+
):
|
|
205
|
+
# For some reason, websockets lib propagates closing frame as an error.
|
|
206
|
+
# Simply log a debug here if that happens.
|
|
207
|
+
logger.debug(f"WebSocket closed by server: {error}")
|
|
208
|
+
else:
|
|
209
|
+
logger.error(f"WebSocket error: {error}")
|
|
210
|
+
|
|
200
211
|
if not self.first_message_event.is_set():
|
|
201
212
|
# Create an error event
|
|
202
213
|
error_event = events_pb2.SfuEvent()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/01-setup-and-auth.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/event/__init__.py
RENAMED
|
File without changes
|
{getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/event/events_pb2.py
RENAMED
|
File without changes
|
{getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/event/events_pb2.pyi
RENAMED
|
File without changes
|
{getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/models/__init__.py
RENAMED
|
File without changes
|
{getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/models/models_pb2.py
RENAMED
|
File without changes
|
{getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/models/models_pb2.pyi
RENAMED
|
File without changes
|
{getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/signal_rpc/__init__.py
RENAMED
|
File without changes
|
{getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/signal_rpc/signal_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|