uiprotect 7.0.0__py3-none-any.whl → 7.0.1__py3-none-any.whl

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.

uiprotect/api.py CHANGED
@@ -829,21 +829,21 @@ class ProtectApiClient(BaseApiClient):
829
829
  async with self._update_lock:
830
830
  bootstrap = await self.get_bootstrap()
831
831
  if bootstrap.nvr.version >= NFC_FINGERPRINT_SUPPORT_VERSION:
832
+ try:
833
+ keyrings = await self.api_request_list("keyrings")
834
+ except NotAuthorized as err:
835
+ _LOGGER.debug("No access to keyrings %s, skipping", err)
836
+ keyrings = []
837
+ try:
838
+ ulp_users = await self.api_request_list("ulp-users")
839
+ except NotAuthorized as err:
840
+ _LOGGER.debug("No access to ulp-users %s, skipping", err)
841
+ ulp_users = []
832
842
  bootstrap.keyrings = Keyrings.from_list(
833
- cast(
834
- list[Keyring],
835
- list_from_unifi_list(
836
- self, await self.api_request_list("keyrings")
837
- ),
838
- )
843
+ cast(list[Keyring], list_from_unifi_list(self, keyrings))
839
844
  )
840
845
  bootstrap.ulp_users = UlpUsers.from_list(
841
- cast(
842
- list[UlpUser],
843
- list_from_unifi_list(
844
- self, await self.api_request_list("ulp-users")
845
- ),
846
- )
846
+ cast(list[UlpUser], list_from_unifi_list(self, ulp_users))
847
847
  )
848
848
  self.__dict__.pop("bootstrap", None)
849
849
  self._bootstrap = bootstrap
uiprotect/data/user.py CHANGED
@@ -252,6 +252,9 @@ class UlpUserKeyringBase(Generic[T]):
252
252
  def __init__(self) -> None:
253
253
  self._id_to_item: dict[str, T] = {}
254
254
 
255
+ def __len__(self) -> int:
256
+ return len(self._id_to_item)
257
+
255
258
  @classmethod
256
259
  def from_list(cls, items: list[T]) -> Self:
257
260
  instance = cls()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: uiprotect
3
- Version: 7.0.0
3
+ Version: 7.0.1
4
4
  Summary: Python API for Unifi Protect (Unofficial)
5
5
  Home-page: https://github.com/uilibs/uiprotect
6
6
  Author: UI Protect Maintainers
@@ -1,7 +1,7 @@
1
1
  uiprotect/__init__.py,sha256=Oz6i1tonIz4QWVnEPkbielJDJ3WQdwZVgYtjY4IwGAQ,636
2
2
  uiprotect/__main__.py,sha256=C_bHCOkv5qj6WMy-6ELoY3Y6HDhLxOa1a30CzmbZhsg,462
3
3
  uiprotect/_compat.py,sha256=HThmb1zQZCEssCxYYbQzFhJq8zYYlVaSnIEZabKc-6U,302
4
- uiprotect/api.py,sha256=pSQ_C2cjtttnFnrVzjmHlqS7zOfMH-bwk4NxbraUCKI,68850
4
+ uiprotect/api.py,sha256=qj6qEKLY3j25kNTL7Jlo-wwreOdmFzcV_MZxkNo7Oeg,69038
5
5
  uiprotect/cli/__init__.py,sha256=1MO8rJmjjAsfVx2x01gn5DJo8B64xdPGo6gRVJbWd18,8868
6
6
  uiprotect/cli/backup.py,sha256=ZiS7RZnJGKI8TJKLW2cOUzkRM8nyTvE5Ov_jZZGtvSM,36708
7
7
  uiprotect/cli/base.py,sha256=GVHQMrI3thQ-4ixJlunTCfEMF90xCnt-bvRPMDupDss,7588
@@ -21,7 +21,7 @@ uiprotect/data/convert.py,sha256=CDPkSMxSEhvDigmzmLFKpjrz0oa5FOvOdkNIHZrOZ4Q,258
21
21
  uiprotect/data/devices.py,sha256=Brj9bT9oJPb5jqAY5vc2JhFG6m7DJt8u58qVe-oTw6M,113803
22
22
  uiprotect/data/nvr.py,sha256=E18DgE0nXl9VZ_ULotTPcXSi3M1u3mWQsuZbY1gIajs,47490
23
23
  uiprotect/data/types.py,sha256=YCRqY5aMSFNX-X-3eqsHnUO5s1ZbPjKc5o2-eH12E34,19086
24
- uiprotect/data/user.py,sha256=wd0MZPrDftRm2ZuTZHZvSYTmPdzyGMPszwjkbVD2iOA,10458
24
+ uiprotect/data/user.py,sha256=Del5LUmt5uCfAQMI9-kl_GaKm085oTLjxmcCrlEKXxc,10526
25
25
  uiprotect/data/websocket.py,sha256=m4EV1Qfh08eKOihy70ycViYgEQpeNSGZQJWdtGIYJDA,6791
26
26
  uiprotect/exceptions.py,sha256=kgn0cRM6lTtgLza09SDa3ZiX6ue1QqHCOogQ4qu6KTQ,965
27
27
  uiprotect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -31,8 +31,8 @@ uiprotect/test_util/__init__.py,sha256=Ky8mTL61nhp5II2mxTKBAsSGvNqK8U_CfKC5AGwTo
31
31
  uiprotect/test_util/anonymize.py,sha256=f-8ijU-_y9r-uAbhIPn0f0I6hzJpAkvJzc8UpWihObI,8478
32
32
  uiprotect/utils.py,sha256=0q5Y0E_hxMjXqRjdo_TEheMhfLzH3_4okvHJfg6Tj-A,20475
33
33
  uiprotect/websocket.py,sha256=tEyenqblNXHcjWYuf4oRP1E7buNwx6zoECMwpBr-jig,8191
34
- uiprotect-7.0.0.dist-info/LICENSE,sha256=INx18jhdbVXMEiiBANeKEbrbz57ckgzxk5uutmmcxGk,1111
35
- uiprotect-7.0.0.dist-info/METADATA,sha256=qjmkFG7U_AqAvBZ-8uYAJfBAe4TPWk0eMpo-iyp2YEc,11142
36
- uiprotect-7.0.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
37
- uiprotect-7.0.0.dist-info/entry_points.txt,sha256=J78AUTPrTTxgI3s7SVgrmGqDP7piX2wuuEORzhDdVRA,47
38
- uiprotect-7.0.0.dist-info/RECORD,,
34
+ uiprotect-7.0.1.dist-info/LICENSE,sha256=INx18jhdbVXMEiiBANeKEbrbz57ckgzxk5uutmmcxGk,1111
35
+ uiprotect-7.0.1.dist-info/METADATA,sha256=6Mdae5G8Tclyu6WKduDgQUgKEqXtmiSJuVdRqYZJcTk,11142
36
+ uiprotect-7.0.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
37
+ uiprotect-7.0.1.dist-info/entry_points.txt,sha256=J78AUTPrTTxgI3s7SVgrmGqDP7piX2wuuEORzhDdVRA,47
38
+ uiprotect-7.0.1.dist-info/RECORD,,