uiprotect 0.12.0__tar.gz → 0.13.0__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 uiprotect might be problematic. Click here for more details.

Files changed (36) hide show
  1. {uiprotect-0.12.0 → uiprotect-0.13.0}/PKG-INFO +1 -1
  2. {uiprotect-0.12.0 → uiprotect-0.13.0}/pyproject.toml +1 -1
  3. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/bootstrap.py +19 -11
  4. {uiprotect-0.12.0 → uiprotect-0.13.0}/LICENSE +0 -0
  5. {uiprotect-0.12.0 → uiprotect-0.13.0}/README.md +0 -0
  6. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/__init__.py +0 -0
  7. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/__main__.py +0 -0
  8. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/api.py +0 -0
  9. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/__init__.py +0 -0
  10. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/backup.py +0 -0
  11. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/base.py +0 -0
  12. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/cameras.py +0 -0
  13. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/chimes.py +0 -0
  14. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/doorlocks.py +0 -0
  15. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/events.py +0 -0
  16. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/lights.py +0 -0
  17. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/liveviews.py +0 -0
  18. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/nvr.py +0 -0
  19. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/sensors.py +0 -0
  20. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/viewers.py +0 -0
  21. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/__init__.py +0 -0
  22. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/base.py +0 -0
  23. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/convert.py +0 -0
  24. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/devices.py +0 -0
  25. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/nvr.py +0 -0
  26. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/types.py +0 -0
  27. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/user.py +0 -0
  28. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/websocket.py +0 -0
  29. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/exceptions.py +0 -0
  30. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/py.typed +0 -0
  31. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/release_cache.json +0 -0
  32. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/stream.py +0 -0
  33. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/test_util/__init__.py +0 -0
  34. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/test_util/anonymize.py +0 -0
  35. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/utils.py +0 -0
  36. {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/websocket.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: uiprotect
3
- Version: 0.12.0
3
+ Version: 0.13.0
4
4
  Summary: Python API for Unifi Protect (Unofficial)
5
5
  Home-page: https://github.com/uilibs/uiprotect
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "uiprotect"
3
- version = "0.12.0"
3
+ version = "0.13.0"
4
4
  description = "Python API for Unifi Protect (Unofficial)"
5
5
  authors = ["UI Protect Maintainers <ui@koston.org>"]
6
6
  license = "MIT"
@@ -131,26 +131,34 @@ def _process_sensor_event(event: Event) -> None:
131
131
  event.sensor.last_value_event_id = event.id
132
132
 
133
133
 
134
+ _CAMERA_SMART_AND_LINE_EVENTS = {
135
+ EventType.SMART_DETECT,
136
+ EventType.SMART_DETECT_LINE,
137
+ }
138
+ _CAMERA_SMART_AUDIO_EVENT = EventType.SMART_AUDIO_DETECT
139
+
140
+
134
141
  def _process_camera_event(event: Event) -> None:
135
- if event.camera is None:
142
+ if (camera := event.camera) is None:
136
143
  return
137
144
 
138
- dt_attr, event_attr = CAMERA_EVENT_ATTR_MAP[event.type]
139
- dt = getattr(event.camera, dt_attr)
145
+ event_type = event.type
146
+ dt_attr, event_attr = CAMERA_EVENT_ATTR_MAP[event_type]
147
+ dt = getattr(camera, dt_attr)
140
148
  if dt is None or event.start >= dt or (event.end is not None and event.end >= dt):
141
- setattr(event.camera, event_attr, event.id)
142
- setattr(event.camera, dt_attr, event.start)
143
- if event.type in {EventType.SMART_DETECT, EventType.SMART_DETECT_LINE}:
149
+ setattr(camera, event_attr, event.id)
150
+ setattr(camera, dt_attr, event.start)
151
+ if event_type in _CAMERA_SMART_AND_LINE_EVENTS:
144
152
  for smart_type in event.smart_detect_types:
145
- event.camera.last_smart_detect_event_ids[smart_type] = event.id
146
- event.camera.last_smart_detects[smart_type] = event.start
147
- elif event.type == EventType.SMART_AUDIO_DETECT:
153
+ camera.last_smart_detect_event_ids[smart_type] = event.id
154
+ camera.last_smart_detects[smart_type] = event.start
155
+ elif event_type is _CAMERA_SMART_AUDIO_EVENT:
148
156
  for smart_type in event.smart_detect_types:
149
157
  audio_type = smart_type.audio_type
150
158
  if audio_type is None:
151
159
  continue
152
- event.camera.last_smart_audio_detect_event_ids[audio_type] = event.id
153
- event.camera.last_smart_audio_detects[audio_type] = event.start
160
+ camera.last_smart_audio_detect_event_ids[audio_type] = event.id
161
+ camera.last_smart_audio_detects[audio_type] = event.start
154
162
 
155
163
 
156
164
  @dataclass
File without changes
File without changes