sora-sdk 2025.5.0.dev4__tar.gz → 2025.5.0.dev5__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 sora-sdk might be problematic. Click here for more details.

Files changed (48) hide show
  1. {sora_sdk-2025.5.0.dev4/src/sora_sdk.egg-info → sora_sdk-2025.5.0.dev5}/PKG-INFO +6 -1
  2. sora_sdk-2025.5.0.dev5/VERSION +1 -0
  3. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/pypath.py +1 -3
  4. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/pyproject.toml +6 -1
  5. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/src/sora_sdk/sora_sdk_ext.cpython-311-darwin.so +0 -0
  6. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5/src/sora_sdk.egg-info}/PKG-INFO +6 -1
  7. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_raspberry_pi.py +43 -0
  8. sora_sdk-2025.5.0.dev4/VERSION +0 -1
  9. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/LICENSE +0 -0
  10. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/MANIFEST.in +0 -0
  11. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/README.md +0 -0
  12. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/buildbase.py +0 -0
  13. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/run.py +0 -0
  14. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/setup.cfg +0 -0
  15. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/setup.py +0 -0
  16. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/src/sora_sdk/__init__.py +0 -0
  17. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/src/sora_sdk/py.typed +0 -0
  18. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/src/sora_sdk/sora_sdk_ext.pyi +0 -0
  19. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/src/sora_sdk.egg-info/SOURCES.txt +0 -0
  20. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/src/sora_sdk.egg-info/dependency_links.txt +0 -0
  21. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/src/sora_sdk.egg-info/top_level.txt +0 -0
  22. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_amd_amf.py +0 -0
  23. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_apple_video_toolbox.py +0 -0
  24. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_authz.py +0 -0
  25. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_authz_simulcast.py +0 -0
  26. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_ca_cert.py +0 -0
  27. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_capability.py +0 -0
  28. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_degradation_preference.py +0 -0
  29. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_encoded_transform.py +0 -0
  30. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_intel_vpl.py +0 -0
  31. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_key_frame_request.py +0 -0
  32. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_messaging.py +0 -0
  33. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_messaging_header.py +0 -0
  34. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_nvidia_video_codec.py +0 -0
  35. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_openh264.py +0 -0
  36. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_openh264_simulcast.py +0 -0
  37. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_opus.py +0 -0
  38. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_re_offer_re_answer_sdp.py +0 -0
  39. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_sendonly_recvonly.py +0 -0
  40. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_signaling.py +0 -0
  41. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_signaling_message.py +0 -0
  42. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_signaling_notify.py +0 -0
  43. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_simulcast.py +0 -0
  44. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_sora_disconnect.py +0 -0
  45. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_type_disconnect.py +0 -0
  46. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_type_switched.py +0 -0
  47. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_vad.py +0 -0
  48. {sora_sdk-2025.5.0.dev4 → sora_sdk-2025.5.0.dev5}/tests/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sora_sdk
3
- Version: 2025.5.0.dev4
3
+ Version: 2025.5.0.dev5
4
4
  Summary: WebRTC SFU Sora Python SDK
5
5
  Home-page: https://github.com/shiguredo/sora-python-sdk
6
6
  Author-email: "Shiguredo Inc." <contact+pypi@shiguredo.jp>
@@ -12,6 +12,11 @@ Classifier: Programming Language :: Python :: 3 :: Only
12
12
  Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
16
+ Classifier: Programming Language :: C++
17
+ Classifier: Operating System :: MacOS :: MacOS X
18
+ Classifier: Operating System :: POSIX :: Linux
19
+ Classifier: Operating System :: Microsoft :: Windows
15
20
  Requires-Python: >=3.11
16
21
  Description-Content-Type: text/markdown
17
22
  License-File: LICENSE
@@ -0,0 +1 @@
1
+ 2025.5.0.dev5
@@ -7,8 +7,6 @@ import sys
7
7
  import sysconfig
8
8
  from pathlib import Path
9
9
 
10
- import distutils.sysconfig as du_sysconfig
11
-
12
10
 
13
11
  def get_python_version() -> str:
14
12
  """Get version associated with the current python interpreter.
@@ -223,7 +221,7 @@ def _guess_python_library(python_version: str):
223
221
  # returns an empty string on Linux, `du_sysconfig` is only used to
224
222
  # get the value of `LIBDIR`.
225
223
  candidate_libdirs = []
226
- libdir_a = du_sysconfig.get_config_var("LIBDIR")
224
+ libdir_a = sysconfig.get_config_var("LIBDIR")
227
225
  assert not isinstance(libdir_a, int)
228
226
  if libdir_a is None:
229
227
  libdest = sysconfig.get_config_var("LIBDEST")
@@ -11,6 +11,11 @@ classifiers = [
11
11
  "Programming Language :: Python :: 3.11",
12
12
  "Programming Language :: Python :: 3.12",
13
13
  "Programming Language :: Python :: 3.13",
14
+ "Programming Language :: Python :: 3.14",
15
+ "Programming Language :: C++",
16
+ "Operating System :: MacOS :: MacOS X",
17
+ "Operating System :: POSIX :: Linux",
18
+ "Operating System :: Microsoft :: Windows",
14
19
  ]
15
20
  requires-python = ">= 3.11"
16
21
 
@@ -24,7 +29,7 @@ requires = ["setuptools==80.9", "wheel==0.45.1"]
24
29
  build-backend = "setuptools.build_meta"
25
30
 
26
31
  [dependency-groups]
27
- dev = ["nanobind==2.9.2", "setuptools==80.9.0", "ruff", "ty"]
32
+ dev = ["nanobind==2.9.2"]
28
33
  test = ["pytest", "pytest-repeat", "pytest-xdist", "numpy", "httpx", "pyjwt"]
29
34
  lint = ["ruff", "ty"]
30
35
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sora_sdk
3
- Version: 2025.5.0.dev4
3
+ Version: 2025.5.0.dev5
4
4
  Summary: WebRTC SFU Sora Python SDK
5
5
  Home-page: https://github.com/shiguredo/sora-python-sdk
6
6
  Author-email: "Shiguredo Inc." <contact+pypi@shiguredo.jp>
@@ -12,6 +12,11 @@ Classifier: Programming Language :: Python :: 3 :: Only
12
12
  Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
16
+ Classifier: Programming Language :: C++
17
+ Classifier: Operating System :: MacOS :: MacOS X
18
+ Classifier: Operating System :: POSIX :: Linux
19
+ Classifier: Operating System :: Microsoft :: Windows
15
20
  Requires-Python: >=3.11
16
21
  Description-Content-Type: text/markdown
17
22
  License-File: LICENSE
@@ -221,3 +221,46 @@ def test_raspberry_pi_simulcast(
221
221
  )
222
222
  assert s["bytesSent"] == 0
223
223
  assert s["packetsSent"] <= 2
224
+
225
+
226
+ def test_raspberry_pi_libcamera(settings):
227
+ video_codec_type = "H264"
228
+ sendonly = SoraClient(
229
+ settings,
230
+ SoraRole.SENDONLY,
231
+ audio=False,
232
+ video=True,
233
+ video_codec_type=video_codec_type,
234
+ video_codec_preference=SoraVideoCodecPreference(
235
+ codecs=[
236
+ SoraVideoCodecPreference.Codec(
237
+ type=codec_type_string_to_codec_type(video_codec_type),
238
+ encoder=SoraVideoCodecImplementation.RASPI_V4L2M2M,
239
+ ),
240
+ ]
241
+ ),
242
+ libcamera=True,
243
+ )
244
+ sendonly.connect(fake_video=False)
245
+
246
+ time.sleep(5)
247
+
248
+ assert sendonly.connect_message is not None
249
+ assert sendonly.connect_message["channel_id"] == settings.channel_id
250
+ assert "video" in sendonly.connect_message
251
+ assert sendonly.connect_message["video"]["codec_type"] == video_codec_type
252
+
253
+ sendonly_stats = sendonly.get_stats()
254
+
255
+ sendonly.disconnect()
256
+
257
+ # codec が無かったら StopIteration 例外が上がる
258
+ codec_stats = next(s for s in sendonly_stats if s.get("type") == "codec")
259
+ # H.264 が採用されているかどうか確認する
260
+ assert codec_stats["mimeType"] == f"video/{video_codec_type}"
261
+
262
+ # outbound-rtp が無かったら StopIteration 例外が上がる
263
+ outbound_rtp_stats = next(s for s in sendonly_stats if s.get("type") == "outbound-rtp")
264
+ assert outbound_rtp_stats["encoderImplementation"] == "V4L2M2M H264"
265
+ assert outbound_rtp_stats["bytesSent"] > 0
266
+ assert outbound_rtp_stats["packetsSent"] > 0
@@ -1 +0,0 @@
1
- 2025.5.0.dev4