uiprotect 6.0.2__tar.gz → 6.1.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-6.0.2 → uiprotect-6.1.0}/PKG-INFO +1 -1
  2. {uiprotect-6.0.2 → uiprotect-6.1.0}/pyproject.toml +3 -3
  3. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/api.py +6 -5
  4. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/data/types.py +2 -0
  5. {uiprotect-6.0.2 → uiprotect-6.1.0}/LICENSE +0 -0
  6. {uiprotect-6.0.2 → uiprotect-6.1.0}/README.md +0 -0
  7. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/__init__.py +0 -0
  8. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/__main__.py +0 -0
  9. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/__init__.py +0 -0
  10. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/backup.py +0 -0
  11. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/base.py +0 -0
  12. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/cameras.py +0 -0
  13. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/chimes.py +0 -0
  14. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/doorlocks.py +0 -0
  15. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/events.py +0 -0
  16. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/lights.py +0 -0
  17. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/liveviews.py +0 -0
  18. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/nvr.py +0 -0
  19. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/sensors.py +0 -0
  20. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/cli/viewers.py +0 -0
  21. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/data/__init__.py +0 -0
  22. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/data/base.py +0 -0
  23. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/data/bootstrap.py +0 -0
  24. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/data/convert.py +0 -0
  25. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/data/devices.py +0 -0
  26. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/data/nvr.py +0 -0
  27. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/data/user.py +0 -0
  28. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/data/websocket.py +0 -0
  29. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/exceptions.py +0 -0
  30. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/py.typed +0 -0
  31. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/release_cache.json +0 -0
  32. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/stream.py +0 -0
  33. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/test_util/__init__.py +0 -0
  34. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/test_util/anonymize.py +0 -0
  35. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/utils.py +0 -0
  36. {uiprotect-6.0.2 → uiprotect-6.1.0}/src/uiprotect/websocket.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: uiprotect
3
- Version: 6.0.2
3
+ Version: 6.1.0
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,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "uiprotect"
3
- version = "6.0.2"
3
+ version = "6.1.0"
4
4
  description = "Python API for Unifi Protect (Unofficial)"
5
5
  authors = ["UI Protect Maintainers <ui@koston.org>"]
6
6
  readme = "README.md"
@@ -52,7 +52,7 @@ pytest = ">=7,<9"
52
52
  pytest-cov = ">=3,<6"
53
53
  aiosqlite = ">=0.20.0"
54
54
  asttokens = "^2.4.1"
55
- pytest-asyncio = "^0.23.7"
55
+ pytest-asyncio = ">=0.23.7,<0.25.0"
56
56
  pytest-benchmark = "^4.0.0"
57
57
  pytest-sugar = "^1.0.0"
58
58
  pytest-timeout = "^2.3.1"
@@ -75,7 +75,7 @@ mkdocs-material-extensions = "^1.3.1"
75
75
  pymdown-extensions = "^10.8.1"
76
76
  mkdocs-git-revision-date-localized-plugin = "^1.2.6"
77
77
  mkdocs-include-markdown-plugin = "^6.1.1"
78
- mkdocstrings = "^0.25.1"
78
+ mkdocstrings = ">=0.25.1,<0.27.0"
79
79
  mkdocstrings-python = "^1.10.3"
80
80
 
81
81
  [tool.semantic_release]
@@ -17,7 +17,7 @@ from http.cookies import Morsel, SimpleCookie
17
17
  from ipaddress import IPv4Address, IPv6Address
18
18
  from pathlib import Path
19
19
  from typing import Any, Literal, cast
20
- from urllib.parse import urljoin
20
+ from urllib.parse import SplitResult
21
21
 
22
22
  import aiofiles
23
23
  import aiohttp
@@ -327,7 +327,9 @@ class BaseApiClient:
327
327
  if require_auth:
328
328
  await self.ensure_authenticated()
329
329
 
330
- request_url = self._url.joinpath(url[1:])
330
+ request_url = self._url.join(
331
+ URL(SplitResult("", "", url, "", ""), encoded=True)
332
+ )
331
333
  headers = kwargs.get("headers") or self.headers
332
334
  _LOGGER.debug("Request url: %s", request_url)
333
335
  if not self._verify_ssl:
@@ -387,10 +389,9 @@ class BaseApiClient:
387
389
  **kwargs: Any,
388
390
  ) -> bytes | None:
389
391
  """Make a request to UniFi Protect API"""
390
- url = urljoin(self.api_path, url)
391
392
  response = await self.request(
392
393
  method,
393
- url,
394
+ f"{self.api_path}{url}",
394
395
  require_auth=require_auth,
395
396
  auto_close=False,
396
397
  **kwargs,
@@ -1542,7 +1543,7 @@ class ProtectApiClient(BaseApiClient):
1542
1543
 
1543
1544
  r = await self.request(
1544
1545
  "get",
1545
- urljoin(self.api_path, path),
1546
+ f"{self.api_path}{path}",
1546
1547
  auto_close=False,
1547
1548
  timeout=0,
1548
1549
  params=params,
@@ -274,6 +274,8 @@ class EventType(str, ValuesEnumMixin, enum.Enum):
274
274
  EventType.MOTION.value,
275
275
  EventType.RING.value,
276
276
  EventType.SMART_DETECT.value,
277
+ EventType.SMART_AUDIO_DETECT.value,
278
+ EventType.SMART_DETECT_LINE.value,
277
279
  ]
278
280
 
279
281
  @staticmethod
File without changes
File without changes