python-aidot-cameras 0.8.0__tar.gz → 0.9.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 (73) hide show
  1. {python_aidot_cameras-0.8.0/src/python_aidot_cameras.egg-info → python_aidot_cameras-0.9.1}/PKG-INFO +6 -5
  2. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/pyproject.toml +17 -5
  3. python_aidot_cameras-0.9.1/src/aidot/camera/client.py +3714 -0
  4. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/camera/models.py +8 -2
  5. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/camera/playback.py +2 -2
  6. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/camera/protocol.py +16 -16
  7. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/camera/sdes.py +7 -7
  8. python_aidot_cameras-0.9.1/src/aidot/camera/sdes_open.py +3670 -0
  9. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/camera/tutk.py +2 -2
  10. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/camera/webrtc.py +62 -4
  11. python_aidot_cameras-0.9.1/src/aidot/camera/webrtc_open.py +3342 -0
  12. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/device_client.py +12 -4
  13. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1/src/python_aidot_cameras.egg-info}/PKG-INFO +6 -5
  14. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/python_aidot_cameras.egg-info/SOURCES.txt +5 -0
  15. python_aidot_cameras-0.9.1/src/python_aidot_cameras.egg-info/requires.txt +14 -0
  16. python_aidot_cameras-0.9.1/tests/test_aioice_compat.py +54 -0
  17. python_aidot_cameras-0.9.1/tests/test_ice_config_cache.py +60 -0
  18. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_post_merge_hardening.py +12 -0
  19. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_sdes_talk.py +17 -2
  20. python_aidot_cameras-0.9.1/tests/test_session_stats.py +81 -0
  21. python_aidot_cameras-0.8.0/src/aidot/camera/client.py +0 -10557
  22. python_aidot_cameras-0.8.0/src/python_aidot_cameras.egg-info/requires.txt +0 -13
  23. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/LICENSE +0 -0
  24. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/MANIFEST.in +0 -0
  25. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/README.md +0 -0
  26. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/setup.cfg +0 -0
  27. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/__init__.py +0 -0
  28. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/aes_utils.py +0 -0
  29. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/camera/__init__.py +0 -0
  30. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/camera/constants.py +0 -0
  31. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/camera/controls.py +0 -0
  32. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/camera/go2rtc.py +0 -0
  33. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/camera/lan_control.py +0 -0
  34. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/client.py +0 -0
  35. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/const.py +0 -0
  36. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/credentials.py +0 -0
  37. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/discover.py +0 -0
  38. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/exceptions.py +0 -0
  39. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/g711.py +0 -0
  40. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/login_const.py +0 -0
  41. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/models/__init__.py +0 -0
  42. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/models/device_client_model.py +0 -0
  43. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/models/device_model.py +0 -0
  44. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/models/discover_model.py +0 -0
  45. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/aidot/py.typed +0 -0
  46. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/python_aidot_cameras.egg-info/dependency_links.txt +0 -0
  47. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/src/python_aidot_cameras.egg-info/top_level.txt +0 -0
  48. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_alarm_event.py +0 -0
  49. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_backoff.py +0 -0
  50. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_device_login_guard.py +0 -0
  51. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_go2rtc.py +0 -0
  52. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_highport_nomination.py +0 -0
  53. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_lan_control.py +0 -0
  54. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_live_stream_param.py +0 -0
  55. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_motion_poll.py +0 -0
  56. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_no_undefined_names.py +0 -0
  57. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_persistent_mqtt.py +0 -0
  58. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_persistent_mqtt_robustness.py +0 -0
  59. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_sdes_adaptive.py +0 -0
  60. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_sdes_fast_liveplay.py +0 -0
  61. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_sdes_idle_release.py +0 -0
  62. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_sdes_serve_audio.py +0 -0
  63. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_sdes_serve_cmd.py +0 -0
  64. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_sdes_sprop.py +0 -0
  65. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_sdes_watchdog.py +0 -0
  66. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_serve_relay.py +0 -0
  67. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_speak.py +0 -0
  68. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_stream_cap.py +0 -0
  69. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_stream_idle.py +0 -0
  70. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_stream_teardown.py +0 -0
  71. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_talk.py +0 -0
  72. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_terminal_ack.py +0 -0
  73. {python_aidot_cameras-0.8.0 → python_aidot_cameras-0.9.1}/tests/test_token_refresh.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-aidot-cameras
3
- Version: 0.8.0
3
+ Version: 0.9.1
4
4
  Summary: Control AiDot/Leedarson WiFi lights and cameras (WebRTC streaming, two-way audio, PTZ, controls)
5
5
  Author-email: cbrightly <chris.brightly@gmail.com>
6
6
  License-Expression: MIT
@@ -11,13 +11,14 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.11
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: aiohttp
14
+ Requires-Dist: aiohttp>=3.9
15
15
  Requires-Dist: paho-mqtt>=2.0
16
- Requires-Dist: cryptography
17
- Requires-Dist: pycryptodome
18
- Requires-Dist: dacite
16
+ Requires-Dist: cryptography>=42.0
17
+ Requires-Dist: pycryptodome>=3.20
18
+ Requires-Dist: dacite>=1.8
19
19
  Provides-Extra: webrtc
20
20
  Requires-Dist: aiortc>=1.9.0; extra == "webrtc"
21
+ Requires-Dist: aioice<0.12,>=0.9.0; extra == "webrtc"
21
22
  Requires-Dist: av; extra == "webrtc"
22
23
  Requires-Dist: pylibsrtp; extra == "webrtc"
23
24
  Requires-Dist: pyopenssl; extra == "webrtc"
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "python-aidot-cameras"
7
- version = "0.8.0"
7
+ version = "0.9.1"
8
8
  description = "Control AiDot/Leedarson WiFi lights and cameras (WebRTC streaming, two-way audio, PTZ, controls)"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -15,17 +15,29 @@ classifiers = [
15
15
  "Programming Language :: Python :: 3",
16
16
  "Operating System :: OS Independent",
17
17
  ]
18
+ # Conservative lower bounds only - no upper caps. When installed under Home
19
+ # Assistant, HA core pins aiohttp/cryptography itself; an upper cap here would
20
+ # fight HA's resolver on the box. Floors just exclude ancient releases while
21
+ # leaving the consumer (or HA) free to use a newer version. Bump a floor only
22
+ # after re-validating against it.
18
23
  dependencies = [
19
- "aiohttp",
24
+ "aiohttp>=3.9",
20
25
  "paho-mqtt>=2.0",
21
- "cryptography",
22
- "pycryptodome",
23
- "dacite",
26
+ "cryptography>=42.0",
27
+ "pycryptodome>=3.20",
28
+ "dacite>=1.8",
24
29
  ]
25
30
 
26
31
  [project.optional-dependencies]
27
32
  webrtc = [
28
33
  "aiortc>=1.9.0",
34
+ # aioice arrives transitively via aiortc, but we monkeypatch its private
35
+ # internals (Connection.build_request / _check_list / _nominated) for the
36
+ # A000088 high-port nomination fix and read them for stream diagnostics.
37
+ # Pin the tested range so a surprise bump that reshapes those internals is
38
+ # caught at install/CI (test_aioice_compat.py) instead of silently degrading
39
+ # streaming. Widen this deliberately after re-validating the patch.
40
+ "aioice>=0.9.0,<0.12",
29
41
  "av",
30
42
  "pylibsrtp",
31
43
  "pyopenssl",