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

Files changed (38) hide show
  1. {uiprotect-7.5.0 → uiprotect-7.5.2}/PKG-INFO +1 -1
  2. {uiprotect-7.5.0 → uiprotect-7.5.2}/pyproject.toml +2 -2
  3. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/data/devices.py +17 -14
  4. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/data/nvr.py +6 -4
  5. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/data/types.py +1 -1
  6. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/utils.py +1 -1
  7. {uiprotect-7.5.0 → uiprotect-7.5.2}/LICENSE +0 -0
  8. {uiprotect-7.5.0 → uiprotect-7.5.2}/README.md +0 -0
  9. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/__init__.py +0 -0
  10. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/__main__.py +0 -0
  11. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/_compat.py +0 -0
  12. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/api.py +0 -0
  13. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/__init__.py +0 -0
  14. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/aiports.py +0 -0
  15. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/backup.py +0 -0
  16. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/base.py +0 -0
  17. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/cameras.py +0 -0
  18. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/chimes.py +0 -0
  19. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/doorlocks.py +0 -0
  20. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/events.py +0 -0
  21. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/lights.py +0 -0
  22. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/liveviews.py +0 -0
  23. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/nvr.py +0 -0
  24. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/sensors.py +0 -0
  25. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/cli/viewers.py +0 -0
  26. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/data/__init__.py +0 -0
  27. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/data/base.py +0 -0
  28. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/data/bootstrap.py +0 -0
  29. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/data/convert.py +0 -0
  30. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/data/user.py +0 -0
  31. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/data/websocket.py +0 -0
  32. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/exceptions.py +0 -0
  33. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/py.typed +0 -0
  34. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/release_cache.json +0 -0
  35. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/stream.py +0 -0
  36. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/test_util/__init__.py +0 -0
  37. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/test_util/anonymize.py +0 -0
  38. {uiprotect-7.5.0 → uiprotect-7.5.2}/src/uiprotect/websocket.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: uiprotect
3
- Version: 7.5.0
3
+ Version: 7.5.2
4
4
  Summary: Python API for Unifi Protect (Unofficial)
5
5
  Author: UI Protect Maintainers
6
6
  Author-email: ui@koston.org
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "uiprotect"
3
- version = "7.5.0"
3
+ version = "7.5.2"
4
4
  description = "Python API for Unifi Protect (Unofficial)"
5
5
  authors = ["UI Protect Maintainers <ui@koston.org>"]
6
6
  readme = "README.md"
@@ -77,7 +77,7 @@ mkdocs-material-extensions = "^1.3.1"
77
77
  pymdown-extensions = "^10.8.1"
78
78
  mkdocs-git-revision-date-localized-plugin = "^1.2.6"
79
79
  mkdocs-include-markdown-plugin = ">=6.1.1,<8.0.0"
80
- mkdocstrings = ">=0.25.1,<0.28.0"
80
+ mkdocstrings = ">=0.25.1,<0.30.0"
81
81
  mkdocstrings-python = "^1.10.3"
82
82
 
83
83
  [tool.semantic_release]
@@ -248,7 +248,7 @@ class CameraChannel(ProtectBaseObject):
248
248
  rtsp_alias: str | None = None # read only
249
249
  width: int
250
250
  height: int
251
- fps: int
251
+ fps: int | None = None # read only
252
252
  bitrate: int
253
253
  min_bitrate: int | None = None # read only
254
254
  max_bitrate: int | None = None # read only
@@ -296,7 +296,7 @@ class CameraChannel(ProtectBaseObject):
296
296
 
297
297
  @property
298
298
  def is_package(self) -> bool:
299
- return self.fps <= 2
299
+ return self.fps is not None and self.fps <= 2
300
300
 
301
301
 
302
302
  class ISPSettings(ProtectBaseObject):
@@ -587,19 +587,22 @@ class VideoStats(ProtectBaseObject):
587
587
  @classmethod
588
588
  @cache
589
589
  def unifi_dict_conversions(cls) -> dict[str, object | Callable[[Any], Any]]:
590
- return {
591
- key: convert_to_datetime
592
- for key in (
593
- "recordingStart",
594
- "recordingEnd",
595
- "recordingStartLQ",
596
- "recordingEndLQ",
597
- "timelapseStart",
598
- "timelapseEnd",
599
- "timelapseStartLQ",
600
- "timelapseEndLQ",
590
+ return (
591
+ dict.fromkeys(
592
+ (
593
+ "recordingStart",
594
+ "recordingEnd",
595
+ "recordingStartLQ",
596
+ "recordingEndLQ",
597
+ "timelapseStart",
598
+ "timelapseEnd",
599
+ "timelapseStartLQ",
600
+ "timelapseEndLQ",
601
+ ),
602
+ convert_to_datetime,
601
603
  )
602
- } | super().unifi_dict_conversions()
604
+ | super().unifi_dict_conversions()
605
+ )
603
606
 
604
607
 
605
608
  class StorageStats(ProtectBaseObject):
@@ -321,10 +321,12 @@ class Event(ProtectModelWithId):
321
321
  @classmethod
322
322
  @cache
323
323
  def unifi_dict_conversions(cls) -> dict[str, object | Callable[[Any], Any]]:
324
- return {
325
- key: convert_to_datetime
326
- for key in ("start", "end", "timestamp", "deletedAt")
327
- } | super().unifi_dict_conversions()
324
+ return (
325
+ dict.fromkeys(
326
+ ("start", "end", "timestamp", "deletedAt"), convert_to_datetime
327
+ )
328
+ | super().unifi_dict_conversions()
329
+ )
328
330
 
329
331
  def unifi_dict(
330
332
  self,
@@ -679,7 +679,7 @@ RepeatTimes = Annotated[int, Field(ge=1, le=6)]
679
679
  class PTZPositionDegree(BaseModel):
680
680
  pan: float
681
681
  tilt: float
682
- zoom: int
682
+ zoom: float
683
683
 
684
684
 
685
685
  class PTZPositionSteps(BaseModel):
@@ -154,7 +154,7 @@ def to_ms(duration: timedelta | None) -> int | None:
154
154
  if duration is None:
155
155
  return None
156
156
 
157
- return int(round(duration.total_seconds() * 1000))
157
+ return round(duration.total_seconds() * 1000)
158
158
 
159
159
 
160
160
  def utc_now() -> datetime:
File without changes
File without changes