uiprotect 7.5.2__tar.gz → 7.5.4__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.2 → uiprotect-7.5.4}/PKG-INFO +2 -1
  2. {uiprotect-7.5.2 → uiprotect-7.5.4}/pyproject.toml +3 -3
  3. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/data/base.py +8 -9
  4. {uiprotect-7.5.2 → uiprotect-7.5.4}/LICENSE +0 -0
  5. {uiprotect-7.5.2 → uiprotect-7.5.4}/README.md +0 -0
  6. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/__init__.py +0 -0
  7. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/__main__.py +0 -0
  8. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/_compat.py +0 -0
  9. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/api.py +0 -0
  10. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/__init__.py +0 -0
  11. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/aiports.py +0 -0
  12. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/backup.py +0 -0
  13. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/base.py +0 -0
  14. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/cameras.py +0 -0
  15. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/chimes.py +0 -0
  16. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/doorlocks.py +0 -0
  17. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/events.py +0 -0
  18. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/lights.py +0 -0
  19. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/liveviews.py +0 -0
  20. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/nvr.py +0 -0
  21. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/sensors.py +0 -0
  22. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/cli/viewers.py +0 -0
  23. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/data/__init__.py +0 -0
  24. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/data/bootstrap.py +0 -0
  25. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/data/convert.py +0 -0
  26. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/data/devices.py +0 -0
  27. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/data/nvr.py +0 -0
  28. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/data/types.py +0 -0
  29. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/data/user.py +0 -0
  30. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/data/websocket.py +0 -0
  31. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/exceptions.py +0 -0
  32. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/py.typed +0 -0
  33. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/release_cache.json +0 -0
  34. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/stream.py +0 -0
  35. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/test_util/__init__.py +0 -0
  36. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/test_util/anonymize.py +0 -0
  37. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/utils.py +0 -0
  38. {uiprotect-7.5.2 → uiprotect-7.5.4}/src/uiprotect/websocket.py +0 -0
@@ -1,7 +1,8 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: uiprotect
3
- Version: 7.5.2
3
+ Version: 7.5.4
4
4
  Summary: Python API for Unifi Protect (Unofficial)
5
+ License: MIT
5
6
  Author: UI Protect Maintainers
6
7
  Author-email: ui@koston.org
7
8
  Requires-Python: >=3.10
@@ -1,6 +1,7 @@
1
1
  [tool.poetry]
2
2
  name = "uiprotect"
3
- version = "7.5.2"
3
+ version = "7.5.4"
4
+ license = "MIT"
4
5
  description = "Python API for Unifi Protect (Unofficial)"
5
6
  authors = ["UI Protect Maintainers <ui@koston.org>"]
6
7
  readme = "README.md"
@@ -16,7 +17,6 @@ classifiers = [
16
17
  "Programming Language :: Python :: 3.10",
17
18
  "Programming Language :: Python :: 3.11",
18
19
  "Programming Language :: Python :: 3.12",
19
- "License :: OSI Approved :: MIT License"
20
20
  ]
21
21
  packages = [
22
22
  { include = "uiprotect", from = "src" },
@@ -54,7 +54,7 @@ pytest = ">=7,<9"
54
54
  pytest-cov = ">=3,<7"
55
55
  aiosqlite = ">=0.20.0"
56
56
  asttokens = ">=2.4.1,<4.0.0"
57
- pytest-asyncio = ">=0.23.7,<0.26.0"
57
+ pytest-asyncio = ">=0.23.7,<0.27.0"
58
58
  pytest-benchmark = ">=4,<6"
59
59
  pytest-sugar = "^1.0.0"
60
60
  pytest-timeout = "^2.3.1"
@@ -8,7 +8,7 @@ from collections.abc import Callable
8
8
  from datetime import datetime, timedelta
9
9
  from functools import cache
10
10
  from ipaddress import IPv4Address
11
- from typing import TYPE_CHECKING, Any, NamedTuple, TypeVar
11
+ from typing import TYPE_CHECKING, Any, NamedTuple
12
12
  from uuid import UUID
13
13
 
14
14
  from convertertools import pop_dict_set_if_none, pop_dict_tuple
@@ -53,7 +53,6 @@ if TYPE_CHECKING:
53
53
  from ..data.user import User
54
54
 
55
55
 
56
- ProtectObject = TypeVar("ProtectObject", bound="ProtectBaseObject")
57
56
  RECENT_EVENT_MAX = timedelta(seconds=30)
58
57
  EVENT_PING_INTERVAL = timedelta(seconds=3)
59
58
  EVENT_PING_INTERVAL_SECONDS = EVENT_PING_INTERVAL.total_seconds()
@@ -478,7 +477,7 @@ class ProtectBaseObject(BaseModel):
478
477
 
479
478
  return new_data
480
479
 
481
- def update_from_dict(cls: ProtectObject, data: dict[str, Any]) -> ProtectObject:
480
+ def update_from_dict(self, data: dict[str, Any]) -> Self:
482
481
  """
483
482
  Updates current object from a cleaned UFP JSON dict.
484
483
 
@@ -492,15 +491,15 @@ class ProtectBaseObject(BaseModel):
492
491
  has_unifi_lists,
493
492
  unifi_dicts,
494
493
  has_unifi_dicts,
495
- ) = cls._get_protect_model()
496
- api = cls._api
497
- _fields = cls.model_fields
494
+ ) = self._get_protect_model()
495
+ api = self._api
496
+ _fields = self.__class__.model_fields
498
497
  unifi_obj: ProtectBaseObject | None
499
498
  value: Any
500
499
 
501
500
  for key, item in data.items():
502
501
  if has_unifi_objs and key in unifi_objs and isinstance(item, dict):
503
- if (unifi_obj := getattr(cls, key)) is not None:
502
+ if (unifi_obj := getattr(self, key)) is not None:
504
503
  value = unifi_obj.update_from_dict(item)
505
504
  else:
506
505
  value = unifi_objs[key](**item, api=api)
@@ -514,9 +513,9 @@ class ProtectBaseObject(BaseModel):
514
513
  else:
515
514
  value = convert_unifi_data(item, _fields[key])
516
515
 
517
- setattr(cls, key, value)
516
+ setattr(self, key, value)
518
517
 
519
- return cls
518
+ return self
520
519
 
521
520
  def dict_with_excludes(self) -> dict[str, Any]:
522
521
  """Returns a dict of the current object without any UFP objects converted to dicts."""
File without changes
File without changes