uiprotect 0.3.6__tar.gz → 0.3.7__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.
- {uiprotect-0.3.6 → uiprotect-0.3.7}/PKG-INFO +1 -1
- {uiprotect-0.3.6 → uiprotect-0.3.7}/pyproject.toml +1 -1
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/base.py +5 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/data/base.py +19 -4
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/data/bootstrap.py +5 -1
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/data/devices.py +4 -1
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/data/nvr.py +9 -2
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/data/types.py +12 -3
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/data/user.py +4 -1
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/utils.py +12 -2
- {uiprotect-0.3.6 → uiprotect-0.3.7}/LICENSE +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/README.md +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/__init__.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/__main__.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/api.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/__init__.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/backup.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/cameras.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/chimes.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/doorlocks.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/events.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/lights.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/liveviews.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/nvr.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/sensors.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/cli/viewers.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/data/__init__.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/data/convert.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/data/websocket.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/exceptions.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/py.typed +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/release_cache.json +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/stream.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/test_util/__init__.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/test_util/anonymize.py +0 -0
- {uiprotect-0.3.6 → uiprotect-0.3.7}/src/uiprotect/websocket.py +0 -0
|
@@ -14,6 +14,11 @@ from uiprotect.data import NVR, ProtectAdoptableDeviceModel, ProtectBaseObject
|
|
|
14
14
|
from uiprotect.exceptions import BadRequest, NvrError, StreamError
|
|
15
15
|
from uiprotect.utils import run_async
|
|
16
16
|
|
|
17
|
+
try:
|
|
18
|
+
from pydantic.v1 import ValidationError
|
|
19
|
+
except ImportError:
|
|
20
|
+
from pydantic import ValidationError # type: ignore[assignment]
|
|
21
|
+
|
|
17
22
|
T = TypeVar("T")
|
|
18
23
|
|
|
19
24
|
OPTION_FORCE = typer.Option(False, "-f", "--force", help="Skip confirmation prompt")
|
|
@@ -11,9 +11,6 @@ from ipaddress import IPv4Address
|
|
|
11
11
|
from typing import TYPE_CHECKING, Any, ClassVar, TypeVar
|
|
12
12
|
from uuid import UUID
|
|
13
13
|
|
|
14
|
-
from pydantic.v1 import BaseModel
|
|
15
|
-
from pydantic.v1.fields import SHAPE_DICT, SHAPE_LIST, PrivateAttr
|
|
16
|
-
|
|
17
14
|
from uiprotect.data.types import (
|
|
18
15
|
ModelType,
|
|
19
16
|
PercentFloat,
|
|
@@ -37,10 +34,20 @@ from uiprotect.utils import (
|
|
|
37
34
|
to_snake_case,
|
|
38
35
|
)
|
|
39
36
|
|
|
37
|
+
try:
|
|
38
|
+
from pydantic.v1 import BaseModel
|
|
39
|
+
from pydantic.v1.fields import SHAPE_DICT, SHAPE_LIST, PrivateAttr
|
|
40
|
+
except ImportError:
|
|
41
|
+
from pydantic import BaseModel # type: ignore[assignment, no-redef]
|
|
42
|
+
from pydantic.fields import ( # type: ignore[attr-defined, assignment, no-redef]
|
|
43
|
+
SHAPE_DICT,
|
|
44
|
+
SHAPE_LIST,
|
|
45
|
+
PrivateAttr,
|
|
46
|
+
)
|
|
47
|
+
|
|
40
48
|
if TYPE_CHECKING:
|
|
41
49
|
from asyncio.events import TimerHandle
|
|
42
50
|
|
|
43
|
-
from pydantic.v1.typing import DictStrAny, SetStr
|
|
44
51
|
from typing_extensions import Self # requires Python 3.11+
|
|
45
52
|
|
|
46
53
|
from uiprotect.api import ProtectApiClient
|
|
@@ -48,6 +55,14 @@ if TYPE_CHECKING:
|
|
|
48
55
|
from uiprotect.data.nvr import Event
|
|
49
56
|
from uiprotect.data.user import User
|
|
50
57
|
|
|
58
|
+
try:
|
|
59
|
+
from pydantic.v1.typing import DictStrAny, SetStr
|
|
60
|
+
except ImportError:
|
|
61
|
+
from pydantic.typing import ( # type: ignore[assignment, no-redef]
|
|
62
|
+
DictStrAny,
|
|
63
|
+
SetStr,
|
|
64
|
+
)
|
|
65
|
+
|
|
51
66
|
|
|
52
67
|
ProtectObject = TypeVar("ProtectObject", bound="ProtectBaseObject")
|
|
53
68
|
RECENT_EVENT_MAX = timedelta(seconds=30)
|
|
@@ -11,7 +11,11 @@ from typing import Any, cast
|
|
|
11
11
|
from uuid import UUID
|
|
12
12
|
|
|
13
13
|
from aiohttp.client_exceptions import ServerDisconnectedError
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
try:
|
|
16
|
+
from pydantic.v1 import PrivateAttr, ValidationError
|
|
17
|
+
except ImportError:
|
|
18
|
+
from pydantic import PrivateAttr, ValidationError # type: ignore[assignment]
|
|
15
19
|
|
|
16
20
|
from uiprotect.data.base import (
|
|
17
21
|
RECENT_EVENT_MAX,
|
|
@@ -12,7 +12,10 @@ from ipaddress import IPv4Address
|
|
|
12
12
|
from pathlib import Path
|
|
13
13
|
from typing import TYPE_CHECKING, Any, Literal, cast
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
try:
|
|
16
|
+
from pydantic.v1.fields import PrivateAttr
|
|
17
|
+
except ImportError:
|
|
18
|
+
from pydantic.fields import PrivateAttr
|
|
16
19
|
|
|
17
20
|
from uiprotect.data.base import (
|
|
18
21
|
EVENT_PING_INTERVAL,
|
|
@@ -15,7 +15,6 @@ from uuid import UUID
|
|
|
15
15
|
import aiofiles
|
|
16
16
|
import orjson
|
|
17
17
|
from aiofiles import os as aos
|
|
18
|
-
from pydantic.v1.fields import PrivateAttr
|
|
19
18
|
|
|
20
19
|
from uiprotect.data.base import (
|
|
21
20
|
ProtectBaseObject,
|
|
@@ -58,8 +57,16 @@ from uiprotect.data.user import User, UserLocation
|
|
|
58
57
|
from uiprotect.exceptions import BadRequest, NotAuthorized
|
|
59
58
|
from uiprotect.utils import RELEASE_CACHE, process_datetime
|
|
60
59
|
|
|
60
|
+
try:
|
|
61
|
+
from pydantic.v1.fields import PrivateAttr
|
|
62
|
+
except ImportError:
|
|
63
|
+
from pydantic.fields import PrivateAttr
|
|
64
|
+
|
|
61
65
|
if TYPE_CHECKING:
|
|
62
|
-
|
|
66
|
+
try:
|
|
67
|
+
from pydantic.v1.typing import SetStr
|
|
68
|
+
except ImportError:
|
|
69
|
+
from pydantic.typing import SetStr # type: ignore[assignment, no-redef]
|
|
63
70
|
|
|
64
71
|
|
|
65
72
|
_LOGGER = logging.getLogger(__name__)
|
|
@@ -5,9 +5,18 @@ from collections.abc import Callable, Coroutine
|
|
|
5
5
|
from typing import Any, Literal, Optional, TypeVar, Union
|
|
6
6
|
|
|
7
7
|
from packaging.version import Version as BaseVersion
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
from pydantic.v1
|
|
8
|
+
|
|
9
|
+
try:
|
|
10
|
+
from pydantic.v1 import BaseModel, ConstrainedInt
|
|
11
|
+
from pydantic.v1.color import Color as BaseColor
|
|
12
|
+
from pydantic.v1.types import ConstrainedFloat, ConstrainedStr
|
|
13
|
+
except ImportError:
|
|
14
|
+
from pydantic import BaseModel, ConstrainedInt # type: ignore[assignment, no-redef]
|
|
15
|
+
from pydantic.color import Color as BaseColor # type: ignore[assignment, no-redef]
|
|
16
|
+
from pydantic.types import ( # type: ignore[assignment, no-redef]
|
|
17
|
+
ConstrainedFloat,
|
|
18
|
+
ConstrainedStr,
|
|
19
|
+
)
|
|
11
20
|
|
|
12
21
|
KT = TypeVar("KT")
|
|
13
22
|
VT = TypeVar("VT")
|
|
@@ -6,7 +6,10 @@ from datetime import datetime
|
|
|
6
6
|
from functools import cache
|
|
7
7
|
from typing import Any
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
try:
|
|
10
|
+
from pydantic.v1.fields import PrivateAttr
|
|
11
|
+
except ImportError:
|
|
12
|
+
from pydantic.fields import PrivateAttr
|
|
10
13
|
|
|
11
14
|
from uiprotect.data.base import ProtectBaseObject, ProtectModel, ProtectModelWithId
|
|
12
15
|
from uiprotect.data.types import ModelType, PermissionNode
|
|
@@ -28,8 +28,6 @@ from uuid import UUID
|
|
|
28
28
|
|
|
29
29
|
import jwt
|
|
30
30
|
from aiohttp import ClientResponse
|
|
31
|
-
from pydantic.v1.fields import SHAPE_DICT, SHAPE_LIST, SHAPE_SET, ModelField
|
|
32
|
-
from pydantic.v1.utils import to_camel
|
|
33
31
|
|
|
34
32
|
from uiprotect.data.types import (
|
|
35
33
|
Color,
|
|
@@ -40,6 +38,18 @@ from uiprotect.data.types import (
|
|
|
40
38
|
)
|
|
41
39
|
from uiprotect.exceptions import NvrError
|
|
42
40
|
|
|
41
|
+
try:
|
|
42
|
+
from pydantic.v1.fields import SHAPE_DICT, SHAPE_LIST, SHAPE_SET, ModelField
|
|
43
|
+
from pydantic.v1.utils import to_camel
|
|
44
|
+
except ImportError:
|
|
45
|
+
from pydantic.fields import ( # type: ignore[assignment, no-redef, attr-defined]
|
|
46
|
+
SHAPE_DICT,
|
|
47
|
+
SHAPE_LIST,
|
|
48
|
+
SHAPE_SET,
|
|
49
|
+
ModelField,
|
|
50
|
+
)
|
|
51
|
+
from pydantic.utils import to_camel # type: ignore[assignment, no-redef]
|
|
52
|
+
|
|
43
53
|
if TYPE_CHECKING:
|
|
44
54
|
from uiprotect.api import ProtectApiClient
|
|
45
55
|
from uiprotect.data import CoordType, Event
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|