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.
Files changed (118) hide show
  1. {getstream-3.2.0 → getstream-3.3.1}/PKG-INFO +1 -1
  2. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/connection_manager.py +4 -0
  3. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/signaling.py +15 -4
  4. {getstream-3.2.0 → getstream-3.3.1}/.cursor/worktrees.json +0 -0
  5. {getstream-3.2.0 → getstream-3.3.1}/.env.example +0 -0
  6. {getstream-3.2.0 → getstream-3.3.1}/.github/actions/python-uv-setup/action.yml +0 -0
  7. {getstream-3.2.0 → getstream-3.3.1}/.github/workflows/ci.yml +0 -0
  8. {getstream-3.2.0 → getstream-3.3.1}/.github/workflows/release.yml +0 -0
  9. {getstream-3.2.0 → getstream-3.3.1}/.github/workflows/run_tests.yml +0 -0
  10. {getstream-3.2.0 → getstream-3.3.1}/.github/workflows/stream-py.code-workspace +0 -0
  11. {getstream-3.2.0 → getstream-3.3.1}/.gitignore +0 -0
  12. {getstream-3.2.0 → getstream-3.3.1}/.gitmodules +0 -0
  13. {getstream-3.2.0 → getstream-3.3.1}/.pre-commit-config.yaml +0 -0
  14. {getstream-3.2.0 → getstream-3.3.1}/AGENTS.md +0 -0
  15. {getstream-3.2.0 → getstream-3.3.1}/CHANGELOG.md +0 -0
  16. {getstream-3.2.0 → getstream-3.3.1}/DEVELOPMENT.md +0 -0
  17. {getstream-3.2.0 → getstream-3.3.1}/LICENSE.md +0 -0
  18. {getstream-3.2.0 → getstream-3.3.1}/MIGRATION_v2_to_v3.md +0 -0
  19. {getstream-3.2.0 → getstream-3.3.1}/Makefile +0 -0
  20. {getstream-3.2.0 → getstream-3.3.1}/README.md +0 -0
  21. {getstream-3.2.0 → getstream-3.3.1}/dev.py +0 -0
  22. {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/01-setup-and-auth.md +0 -0
  23. {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/02-users.md +0 -0
  24. {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/03-channels.md +0 -0
  25. {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/04-messages-and-reactions.md +0 -0
  26. {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/05-moderation.md +0 -0
  27. {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/06-devices.md +0 -0
  28. {getstream-3.2.0 → getstream-3.3.1}/docs/migration-from-stream-chat-python/README.md +0 -0
  29. {getstream-3.2.0 → getstream-3.3.1}/generate.sh +0 -0
  30. {getstream-3.2.0 → getstream-3.3.1}/generate_webrtc.sh +0 -0
  31. {getstream-3.2.0 → getstream-3.3.1}/getstream/__init__.py +0 -0
  32. {getstream-3.2.0 → getstream-3.3.1}/getstream/base.py +0 -0
  33. {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/__init__.py +0 -0
  34. {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/async_channel.py +0 -0
  35. {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/async_client.py +0 -0
  36. {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/async_rest_client.py +0 -0
  37. {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/channel.py +0 -0
  38. {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/client.py +0 -0
  39. {getstream-3.2.0 → getstream-3.3.1}/getstream/chat/rest_client.py +0 -0
  40. {getstream-3.2.0 → getstream-3.3.1}/getstream/common/__init__.py +0 -0
  41. {getstream-3.2.0 → getstream-3.3.1}/getstream/common/async_client.py +0 -0
  42. {getstream-3.2.0 → getstream-3.3.1}/getstream/common/async_rest_client.py +0 -0
  43. {getstream-3.2.0 → getstream-3.3.1}/getstream/common/client.py +0 -0
  44. {getstream-3.2.0 → getstream-3.3.1}/getstream/common/rest_client.py +0 -0
  45. {getstream-3.2.0 → getstream-3.3.1}/getstream/common/telemetry.py +0 -0
  46. {getstream-3.2.0 → getstream-3.3.1}/getstream/config.py +0 -0
  47. {getstream-3.2.0 → getstream-3.3.1}/getstream/feeds/__init__.py +0 -0
  48. {getstream-3.2.0 → getstream-3.3.1}/getstream/feeds/client.py +0 -0
  49. {getstream-3.2.0 → getstream-3.3.1}/getstream/feeds/feeds.py +0 -0
  50. {getstream-3.2.0 → getstream-3.3.1}/getstream/feeds/rest_client.py +0 -0
  51. {getstream-3.2.0 → getstream-3.3.1}/getstream/generic.py +0 -0
  52. {getstream-3.2.0 → getstream-3.3.1}/getstream/meta.py +0 -0
  53. {getstream-3.2.0 → getstream-3.3.1}/getstream/models/__init__.py +0 -0
  54. {getstream-3.2.0 → getstream-3.3.1}/getstream/moderation/__init__.py +0 -0
  55. {getstream-3.2.0 → getstream-3.3.1}/getstream/moderation/async_client.py +0 -0
  56. {getstream-3.2.0 → getstream-3.3.1}/getstream/moderation/async_rest_client.py +0 -0
  57. {getstream-3.2.0 → getstream-3.3.1}/getstream/moderation/client.py +0 -0
  58. {getstream-3.2.0 → getstream-3.3.1}/getstream/moderation/rest_client.py +0 -0
  59. {getstream-3.2.0 → getstream-3.3.1}/getstream/rate_limit.py +0 -0
  60. {getstream-3.2.0 → getstream-3.3.1}/getstream/stream.py +0 -0
  61. {getstream-3.2.0 → getstream-3.3.1}/getstream/stream_response.py +0 -0
  62. {getstream-3.2.0 → getstream-3.3.1}/getstream/tests/test_webhook.py +0 -0
  63. {getstream-3.2.0 → getstream-3.3.1}/getstream/utils/__init__.py +0 -0
  64. {getstream-3.2.0 → getstream-3.3.1}/getstream/utils/event_emitter.py +0 -0
  65. {getstream-3.2.0 → getstream-3.3.1}/getstream/utils/retry.py +0 -0
  66. {getstream-3.2.0 → getstream-3.3.1}/getstream/version.py +0 -0
  67. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/__init__.py +0 -0
  68. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/async_call.py +0 -0
  69. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/async_client.py +0 -0
  70. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/async_rest_client.py +0 -0
  71. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/call.py +0 -0
  72. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/client.py +0 -0
  73. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/openai.py +0 -0
  74. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rest_client.py +0 -0
  75. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/README.md +0 -0
  76. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/__init__.py +0 -0
  77. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/audio_track.py +0 -0
  78. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/connection_utils.py +0 -0
  79. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/coordinator/__init__.py +0 -0
  80. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/coordinator/backoff.py +0 -0
  81. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/coordinator/errors.py +0 -0
  82. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/coordinator/ws.py +0 -0
  83. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/coordinator_api.py +0 -0
  84. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/encoders_patches.py +0 -0
  85. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/g711.py +0 -0
  86. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/location_discovery.py +0 -0
  87. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/models.py +0 -0
  88. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/network_monitor.py +0 -0
  89. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/participants.py +0 -0
  90. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/__init__.py +0 -0
  91. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/__init__.py +0 -0
  92. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/__init__.py +0 -0
  93. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/__init__.py +0 -0
  94. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/event/__init__.py +0 -0
  95. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/event/events_pb2.py +0 -0
  96. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/event/events_pb2.pyi +0 -0
  97. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/models/__init__.py +0 -0
  98. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/models/models_pb2.py +0 -0
  99. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/models/models_pb2.pyi +0 -0
  100. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/signal_rpc/__init__.py +0 -0
  101. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/signal_rpc/signal_pb2.py +0 -0
  102. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/signal_rpc/signal_pb2.pyi +0 -0
  103. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pb/stream/video/sfu/signal_rpc/signal_twirp.py +0 -0
  104. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/pc.py +0 -0
  105. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/peer_connection.py +0 -0
  106. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/reconnection.py +0 -0
  107. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/recording.py +0 -0
  108. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/stats_reporter.py +0 -0
  109. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/stats_tracer.py +0 -0
  110. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/tracer.py +0 -0
  111. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/track_util.py +0 -0
  112. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/tracks.py +0 -0
  113. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/twirp_client_wrapper.py +0 -0
  114. {getstream-3.2.0 → getstream-3.3.1}/getstream/video/rtc/utils.py +0 -0
  115. {getstream-3.2.0 → getstream-3.3.1}/getstream/webhook.py +0 -0
  116. {getstream-3.2.0 → getstream-3.3.1}/pyproject.toml +0 -0
  117. {getstream-3.2.0 → getstream-3.3.1}/pytest.ini +0 -0
  118. {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.2.0
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, Callable, Awaitable, Optional, Set
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
- logger.error(f"WebSocket error: {str(error)}")
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
File without changes