agora-python-server-sdk 2.0.1__tar.gz → 2.0.2__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.

Potentially problematic release.


This version of agora-python-server-sdk might be problematic. Click here for more details.

Files changed (41) hide show
  1. {agora_python_server_sdk-2.0.1/agora_python_server_sdk.egg-info → agora_python_server_sdk-2.0.2}/PKG-INFO +1 -1
  2. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_local_user_observer.py +1 -1
  3. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2/agora_python_server_sdk.egg-info}/PKG-INFO +1 -1
  4. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora_python_server_sdk.egg-info/SOURCES.txt +1 -6
  5. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/setup.py +1 -1
  6. agora_python_server_sdk-2.0.1/tests/test_conn.py +0 -30
  7. agora_python_server_sdk-2.0.1/tests/test_conn2.py +0 -73
  8. agora_python_server_sdk-2.0.1/tests/test_conn3.py +0 -95
  9. agora_python_server_sdk-2.0.1/tests/test_conn4.py +0 -90
  10. agora_python_server_sdk-2.0.1/tests/test_conn5.py +0 -68
  11. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/MANIFEST.in +0 -0
  12. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/README.md +0 -0
  13. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/__init__.py +0 -0
  14. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_audio_frame_observer.py +0 -0
  15. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_rtc_connection_observer.py +0 -0
  16. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_video_encoded_frame_observer.py +0 -0
  17. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_video_frame_observer.py +0 -0
  18. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/agora_base.py +0 -0
  19. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/agora_parameter.py +0 -0
  20. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/agora_service.py +0 -0
  21. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_encoded_frame_sender.py +0 -0
  22. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_frame_observer.py +0 -0
  23. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_pcm_data_sender.py +0 -0
  24. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_vad.py +0 -0
  25. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/globals.py +0 -0
  26. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/local_audio_track.py +0 -0
  27. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/local_user.py +0 -0
  28. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/local_user_observer.py +0 -0
  29. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/local_video_track.py +0 -0
  30. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/media_node_factory.py +0 -0
  31. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/remote_audio_track.py +0 -0
  32. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/remote_video_track.py +0 -0
  33. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/rtc_connection.py +0 -0
  34. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/rtc_connection_observer.py +0 -0
  35. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/video_encoded_frame_observer.py +0 -0
  36. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/video_frame_observer.py +0 -0
  37. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/video_frame_sender.py +0 -0
  38. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora_python_server_sdk.egg-info/dependency_links.txt +0 -0
  39. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora_python_server_sdk.egg-info/top_level.txt +0 -0
  40. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/pyproject.toml +0 -0
  41. {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: agora_python_server_sdk
3
- Version: 2.0.1
3
+ Version: 2.0.2
4
4
  Summary: A Python SDK for Agora Server
5
5
  Home-page: https://github.com/AgoraIO-Extensions/Agora-Python-Server-SDK
6
6
  Classifier: Intended Audience :: Developers
@@ -339,7 +339,7 @@ class RTCLocalUserObserverInner(ctypes.Structure):
339
339
  #note: for video, one user can publish multiple video tracks, so the identifier is the remote_video_track_handle,
340
340
  # its diff to audiotrack
341
341
  self.local_user.set_remote_video_map(remote_video_track_handle, remote_video_track)
342
- track_info = video_track_info.contents.to_track_info()
342
+ track_info = video_track_info.contents._convert_to_video_track_info()
343
343
  self.local_user_observer.on_user_video_track_subscribed(self.local_user, user_id_str, track_info, remote_video_track)
344
344
 
345
345
  def _on_user_video_track_state_changed(self, local_user_handle, user_id, remote_video_track_handle, state, reason, elapsed):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: agora_python_server_sdk
3
- Version: 2.0.1
3
+ Version: 2.0.2
4
4
  Summary: A Python SDK for Agora Server
5
5
  Home-page: https://github.com/AgoraIO-Extensions/Agora-Python-Server-SDK
6
6
  Classifier: Intended Audience :: Developers
@@ -31,9 +31,4 @@ agora/rtc/video_frame_sender.py
31
31
  agora_python_server_sdk.egg-info/PKG-INFO
32
32
  agora_python_server_sdk.egg-info/SOURCES.txt
33
33
  agora_python_server_sdk.egg-info/dependency_links.txt
34
- agora_python_server_sdk.egg-info/top_level.txt
35
- tests/test_conn.py
36
- tests/test_conn2.py
37
- tests/test_conn3.py
38
- tests/test_conn4.py
39
- tests/test_conn5.py
34
+ agora_python_server_sdk.egg-info/top_level.txt
@@ -47,7 +47,7 @@ class CustomInstallCommand(install):
47
47
 
48
48
  setup(
49
49
  name='agora_python_server_sdk',
50
- version='2.0.1',
50
+ version='2.0.2',
51
51
  description='A Python SDK for Agora Server',
52
52
  long_description=open('README.md').read(),
53
53
  long_description_content_type='text/markdown',
@@ -1,30 +0,0 @@
1
- import pytest
2
- import asyncio
3
- from unittest.mock import patch
4
-
5
- class TestRTCConnection:
6
- @pytest.mark.asyncio
7
- async def test_connect_with_correct_uid(self):
8
- # 创建模拟的 RTCConnection 对象
9
- with patch('your_module.RTCConnection') as mock_rtc_connection:
10
- # 配置模拟对象的行为
11
- mock_rtc_connection.return_value.connect.return_value = 0 # 假设连接成功
12
- mock_rtc_connection.return_value.register_observer.return_value = 0
13
-
14
- # 创建测试用的 Observer
15
- class TestObserver(IRTCConnectionObserver):
16
- def __init__(self):
17
- self.local_user_id = None
18
-
19
- def on_connected(self, agora_rtc_conn, conn_info, reason):
20
- self.local_user_id = conn_info.local_user_id
21
-
22
- test_observer = TestObserver()
23
-
24
- # 创建 RTCConnection 实例并调用 connect
25
- rtc_conn = mock_rtc_connection()
26
- rtc_conn.register_observer(test_observer)
27
- await rtc_conn.connect('token', 'channel_id', 'my_uid')
28
-
29
- # 断言 local_user_id
30
- assert test_observer.local_user_id == 'my_uid'
@@ -1,73 +0,0 @@
1
- import asyncio
2
- import pytest
3
-
4
- import os
5
- import sys
6
-
7
- script_dir = os.path.dirname(os.path.abspath(__file__))
8
- sdk_dir = os.path.dirname(script_dir)
9
- # sdk_dir = os.path.dirname(os.path.dirname(script_dir))
10
- if sdk_dir not in sys.path:
11
- sys.path.insert(0, sdk_dir)
12
-
13
- import time
14
- import os
15
- import sys
16
- import datetime
17
- from agora.rtc.agora_service import AgoraServiceConfig, AgoraService, AudioSubscriptionOptions, RTCConnConfig
18
- from agora.rtc.rtc_connection_observer import IRTCConnectionObserver
19
- from agora.rtc.rtc_connection import RTCConnection
20
- from agora.rtc.agora_base import *
21
-
22
- class MockObserver(IRTCConnectionObserver):
23
- def __init__(self):
24
- self.event = asyncio.Event()
25
- self.conn_info = None
26
-
27
- def on_connected(self, rtc_conn, conn_info, reason):
28
- print("on_connected")
29
- self.conn_info = conn_info
30
- self.event.set() # 设置事件,表示回调已被调用
31
-
32
- # 使用 pytest-asyncio 的异步测试
33
- @pytest.mark.asyncio
34
- async def test_connection_connect_with_observer():
35
- # 创建RTCConnection实例
36
- #---------------1. Init SDK
37
- config = AgoraServiceConfig()
38
- config.appid = "aab8b8f5a8cd4469a63042fcfafe7063"
39
- config.log_path = "/Users/dingyusong/Downloads/tests_log/agorasdk.log"
40
-
41
- agora_service = AgoraService()
42
- agora_service.initialize(config)
43
-
44
- #---------------2. Create Connection
45
- con_config = RTCConnConfig(
46
- client_role_type=ClientRoleType.CLIENT_ROLE_BROADCASTER,
47
- channel_profile=ChannelProfileType.CHANNEL_PROFILE_LIVE_BROADCASTING,
48
- )
49
-
50
- connection = agora_service.create_rtc_connection(con_config)
51
-
52
- # 创建MockObserver实例
53
- observer = MockObserver()
54
-
55
- # 注册观察者
56
- connection.register_observer(observer)
57
- print("before connect")
58
- # 调用connect方法
59
- sample_token = "aab8b8f5a8cd4469a63042fcfafe7063"
60
- channel_id = "dummy_channel"
61
- uid = "1"
62
- connection.connect(sample_token, channel_id, uid)
63
-
64
- print("after connect")
65
- # 等待事件被设置,表示 on_connected 已被调用
66
- await observer.event.wait()
67
-
68
- # 验证 conn_info 是否被正确设置
69
- assert observer.conn_info is not None
70
- assert observer.conn_info.local_user_id == "dummy_uid"
71
-
72
- # if __name__ == '__main__':
73
- # test_connection_connect_with_observer()
@@ -1,95 +0,0 @@
1
- import asyncio
2
- import pytest
3
-
4
- import os
5
- import sys
6
-
7
- script_dir = os.path.dirname(os.path.abspath(__file__))
8
- sdk_dir = os.path.dirname(script_dir)
9
- # sdk_dir = os.path.dirname(os.path.dirname(script_dir))
10
- if sdk_dir not in sys.path:
11
- sys.path.insert(0, sdk_dir)
12
-
13
- import time
14
- import os
15
- import sys
16
- import datetime
17
- from agora.rtc.agora_service import AgoraServiceConfig, AgoraService, AudioSubscriptionOptions, RTCConnConfig
18
- from agora.rtc.rtc_connection_observer import IRTCConnectionObserver
19
- from agora.rtc.rtc_connection import RTCConnection
20
- from agora.rtc.agora_base import *
21
-
22
- # class MockObserver(IRTCConnectionObserver):
23
- # def __init__(self):
24
- # self.event = asyncio.Event()
25
- # self.conn_info = None
26
-
27
- # def on_connected(self, rtc_conn, conn_info, reason):
28
- # print("on_connected")
29
- # self.conn_info = conn_info
30
- # self.event.set() # 设置事件,表示回调已被调用
31
- import pytest
32
- from unittest.mock import MagicMock
33
- import threading
34
- import time
35
-
36
- # 假设RTCConnection和IRTCConnectionObserver的定义在my_module.py中
37
- # from my_module import RTCConnection, IRTCConnectionObserver
38
-
39
- class MockObserver(IRTCConnectionObserver):
40
- def __init__(self):
41
- self.connected_info = None
42
- self.event = threading.Event()
43
-
44
- def on_connected(self, agora_rtc_conn, conn_info, reason):
45
- print("Observer: on_connected called")
46
- self.connected_info = conn_info
47
- self.event.set() # 触发事件,表示已连接
48
- print(f"Observer: Connected with local_user_id: {conn_info.local_user_id}")
49
-
50
- # 测试用例
51
- def test_on_connected_called_with_correct_user_id():
52
- print("Test: Starting test_on_connected_called_with_correct_user_id")
53
- # 创建一个RTCConnection实例
54
- #---------------1. Init SDK
55
- config = AgoraServiceConfig()
56
- config.appid = "aab8b8f5a8cd4469a63042fcfafe7063"
57
- config.log_path = "/Users/dingyusong/Downloads/tests_log/agorasdk.log"
58
-
59
- agora_service = AgoraService()
60
- agora_service.initialize(config)
61
-
62
- #---------------2. Create Connection
63
- con_config = RTCConnConfig(
64
- client_role_type=ClientRoleType.CLIENT_ROLE_BROADCASTER,
65
- channel_profile=ChannelProfileType.CHANNEL_PROFILE_LIVE_BROADCASTING,
66
- )
67
-
68
- connection = agora_service.create_rtc_connection(con_config)
69
-
70
- # 创建一个具体的观察者实例
71
- observer = MockObserver()
72
-
73
- # 注册观察者
74
- connection.register_observer(observer)
75
-
76
- print("before connect")
77
- # 调用connect方法
78
- sample_token = "aab8b8f5a8cd4469a63042fcfafe7063"
79
- channel_id = "dummy_channel"
80
- uid = "1"
81
- connection.connect(sample_token, channel_id, uid)
82
-
83
- print("after connect")
84
-
85
- # 等待 on_connected 被调用
86
- observer.event.wait(timeout=5) # 等待最多5秒
87
-
88
- print("after connect2222")
89
- # 验证 local_user_id 是否与 uid 一致
90
- assert observer.connected_info is not None, "on_connected should have been called"
91
- assert observer.connected_info.local_user_id == uid, "local_user_id should match the provided uid"
92
-
93
- # 运行测试
94
- # if __name__ == "__main__":
95
- # pytest.main()
@@ -1,90 +0,0 @@
1
- import asyncio
2
- import pytest
3
-
4
- import os
5
- import sys
6
-
7
- script_dir = os.path.dirname(os.path.abspath(__file__))
8
- sdk_dir = os.path.dirname(script_dir)
9
- # sdk_dir = os.path.dirname(os.path.dirname(script_dir))
10
- if sdk_dir not in sys.path:
11
- sys.path.insert(0, sdk_dir)
12
-
13
- import time
14
- import os
15
- import sys
16
- import datetime
17
- import threading
18
-
19
- from agora.rtc.agora_service import AgoraServiceConfig, AgoraService, AudioSubscriptionOptions, RTCConnConfig
20
- from agora.rtc.rtc_connection_observer import IRTCConnectionObserver
21
- from agora.rtc.rtc_connection import RTCConnection
22
- from agora.rtc.agora_base import *
23
-
24
-
25
- class MockObserver(IRTCConnectionObserver):
26
- def __init__(self):
27
- self.connected_info = None
28
- self.event = asyncio.Event()
29
-
30
- def on_connected(self, agora_rtc_conn, conn_info, reason):
31
- print("Observer: on_connected called")
32
- self.connected_info = conn_info
33
- self.event.set() # 触发事件,表示已连接
34
- print(f"Observer: Connected with local_user_id: {conn_info.local_user_id}")
35
- print("Observer: thread id", threading.get_ident())
36
-
37
- # 测试用例
38
- @pytest.mark.asyncio
39
- async def test_on_connected_called_with_correct_user_id():
40
- print("Test: Starting test_on_connected_called_with_correct_user_id")
41
- # 创建一个RTCConnection实例
42
- #---------------1. Init SDK
43
- config = AgoraServiceConfig()
44
- config.appid = "aab8b8f5a8cd4469a63042fcfafe7063"
45
- config.log_path = "/Users/dingyusong/Downloads/tests_log/agorasdk.log"
46
-
47
- agora_service = AgoraService()
48
- agora_service.initialize(config)
49
-
50
- #---------------2. Create Connection
51
- con_config = RTCConnConfig(
52
- client_role_type=ClientRoleType.CLIENT_ROLE_BROADCASTER,
53
- channel_profile=ChannelProfileType.CHANNEL_PROFILE_LIVE_BROADCASTING,
54
- )
55
-
56
- connection = agora_service.create_rtc_connection(con_config)
57
-
58
- # 创建一个具体的观察者实例
59
- observer = MockObserver()
60
-
61
- # 注册观察者
62
- connection.register_observer(observer)
63
-
64
- print("before connect")
65
- # 调用connect方法
66
- sample_token = "aab8b8f5a8cd4469a63042fcfafe7063"
67
- channel_id = "dummy_channel"
68
- uid = "1"
69
- connection.connect(sample_token, channel_id, uid)
70
- print("connect: thread id", threading.get_ident())
71
- print("after connect")
72
-
73
- # 等待 on_connected 被调用
74
- # observer.event.wait() # 等待最多5秒
75
- await observer.event.wait() # 等待事件被设置
76
- print("after connect2222")
77
-
78
- # try:
79
- # await asyncio.wait_for(observer.event.wait(), timeout=5)
80
- # except asyncio.TimeoutError:
81
- # assert False, "on_connected was not called within the timeout period"
82
-
83
- print("after connect3333")
84
- # 验证 local_user_id 是否与 uid 一致
85
- assert observer.connected_info is not None, "on_connected should have been called"
86
- assert observer.connected_info.local_user_id == uid, "local_user_id should match the provided uid"
87
-
88
- # 运行测试
89
- # if __name__ == "__main__":
90
- # pytest.main()
@@ -1,68 +0,0 @@
1
- import asyncio
2
- import pytest
3
- import os
4
- import sys
5
-
6
- script_dir = os.path.dirname(os.path.abspath(__file__))
7
- sdk_dir = os.path.dirname(script_dir)
8
- if sdk_dir not in sys.path:
9
- sys.path.insert(0, sdk_dir)
10
-
11
- from agora.rtc.agora_service import AgoraServiceConfig, AgoraService, RTCConnConfig
12
- from agora.rtc.rtc_connection_observer import IRTCConnectionObserver
13
- from agora.rtc.agora_base import *
14
-
15
-
16
- class MockObserver(IRTCConnectionObserver):
17
- def __init__(self):
18
- self.connected_info = None
19
- self.event = asyncio.Event()
20
-
21
- def on_connected(self, agora_rtc_conn, conn_info, reason):
22
- print("Observer: on_connected called")
23
- self.connected_info = conn_info
24
- self.event.set() # 触发事件,表示已连接
25
- print(f"Observer: Connected with local_user_id: {conn_info.local_user_id}")
26
-
27
- # 测试用例
28
- @pytest.mark.asyncio
29
- async def test_on_connected_called_with_correct_user_id():
30
- print("Test: Starting test_on_connected_called_with_correct_user_id")
31
- # 创建一个RTCConnection实例
32
- #---------------1. Init SDK
33
- config = AgoraServiceConfig()
34
- config.appid = "aab8"
35
- config.log_path = "/Users/dd/Downloads/tests_log/agorasdk.log"
36
-
37
- agora_service = AgoraService()
38
- agora_service.initialize(config)
39
-
40
- #---------------2. Create Connection
41
- con_config = RTCConnConfig(
42
- client_role_type=ClientRoleType.CLIENT_ROLE_BROADCASTER,
43
- channel_profile=ChannelProfileType.CHANNEL_PROFILE_LIVE_BROADCASTING,
44
- )
45
-
46
- connection = agora_service.create_rtc_connection(con_config)
47
-
48
- # 创建一个具体的观察者实例
49
- observer = MockObserver()
50
-
51
- # 注册观察者
52
- connection.register_observer(observer)
53
-
54
- print("before connect")
55
- # 调用connect方法
56
- sample_token = "aab8"
57
- channel_id = "dummy_channel"
58
- uid = "1"
59
- connection.connect(sample_token, channel_id, uid)
60
-
61
- print("after connect")
62
-
63
- await observer.event.wait()
64
-
65
- print("after connect3333")
66
- assert observer.connected_info is not None, "on_connected should have been called"
67
- assert observer.connected_info.local_user_id == uid, "local_user_id should match the provided uid"
68
-