axis 57__tar.gz → 59__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.
- axis-59/PKG-INFO +24 -0
- {axis-57 → axis-59}/axis/__main__.py +1 -1
- {axis-57 → axis-59}/axis/device.py +4 -4
- {axis-57/axis/vapix → axis-59/axis}/interfaces/api_handler.py +2 -2
- axis-57/axis/event_stream.py → axis-59/axis/interfaces/event_manager.py +3 -8
- {axis-57/axis/vapix → axis-59/axis}/interfaces/parameters/param_cgi.py +1 -1
- {axis-57/axis/vapix → axis-59/axis/interfaces}/vapix.py +24 -24
- {axis-57/axis/vapix → axis-59/axis}/models/event_instance.py +1 -1
- {axis-57/axis/vapix → axis-59/axis}/models/parameters/image.py +6 -6
- axis-59/axis.egg-info/PKG-INFO +24 -0
- axis-59/axis.egg-info/SOURCES.txt +103 -0
- {axis-57 → axis-59}/axis.egg-info/requires.txt +3 -3
- {axis-57 → axis-59}/pyproject.toml +5 -4
- {axis-57 → axis-59}/tests/test_api_discovery.py +2 -2
- {axis-57 → axis-59}/tests/test_api_handler.py +1 -1
- {axis-57 → axis-59}/tests/test_basic_device_info.py +1 -1
- {axis-57 → axis-59}/tests/test_configuration.py +1 -1
- {axis-57 → axis-59}/tests/test_event_instances.py +2 -2
- {axis-57 → axis-59}/tests/test_event_stream.py +1 -1
- {axis-57 → axis-59}/tests/test_light_control.py +2 -2
- {axis-57 → axis-59}/tests/test_mqtt.py +2 -2
- {axis-57 → axis-59}/tests/test_pir_sensor_configuration.py +2 -2
- {axis-57 → axis-59}/tests/test_port_cgi.py +2 -2
- {axis-57 → axis-59}/tests/test_port_management.py +2 -2
- {axis-57 → axis-59}/tests/test_ptz.py +2 -2
- {axis-57 → axis-59}/tests/test_pwdgrp_cgi.py +2 -2
- {axis-57 → axis-59}/tests/test_rtsp.py +4 -2
- {axis-57 → axis-59}/tests/test_stream_profiles.py +1 -1
- {axis-57 → axis-59}/tests/test_user_groups.py +2 -2
- {axis-57 → axis-59}/tests/test_vapix.py +7 -7
- {axis-57 → axis-59}/tests/test_view_areas.py +1 -1
- axis-57/PKG-INFO +0 -45
- axis-57/axis/vapix/__init__.py +0 -1
- axis-57/axis/vapix/models/__init__.py +0 -1
- axis-57/axis.egg-info/PKG-INFO +0 -45
- axis-57/axis.egg-info/SOURCES.txt +0 -106
- axis-57/setup.py +0 -25
- {axis-57 → axis-59}/LICENSE +0 -0
- {axis-57 → axis-59}/README.md +0 -0
- {axis-57 → axis-59}/axis/__init__.py +0 -0
- {axis-57 → axis-59}/axis/errors.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/__init__.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/api_discovery.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/applications/__init__.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/applications/application_handler.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/applications/applications.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/applications/fence_guard.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/applications/loitering_guard.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/applications/motion_guard.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/applications/object_analytics.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/applications/vmd4.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/basic_device_info.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/event_instances.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/light_control.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/mqtt.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/parameters/__init__.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/parameters/brand.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/parameters/image.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/parameters/io_port.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/parameters/param_handler.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/parameters/properties.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/parameters/ptz.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/parameters/stream_profile.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/pir_sensor_configuration.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/port_cgi.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/port_management.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/ptz.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/pwdgrp_cgi.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/stream_profiles.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/user_groups.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/interfaces/view_areas.py +0 -0
- {axis-57 → axis-59}/axis/models/__init__.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/api.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/api_discovery.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/applications/__init__.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/applications/application.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/applications/fence_guard.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/applications/loitering_guard.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/applications/motion_guard.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/applications/object_analytics.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/applications/vmd4.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/basic_device_info.py +0 -0
- {axis-57/axis → axis-59/axis/models}/configuration.py +0 -0
- {axis-57 → axis-59}/axis/models/event.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/light_control.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/mqtt.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/parameters/__init__.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/parameters/brand.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/parameters/io_port.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/parameters/param_cgi.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/parameters/properties.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/parameters/ptz.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/parameters/stream_profile.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/pir_sensor_configuration.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/port_cgi.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/port_management.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/ptz_cgi.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/pwdgrp_cgi.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/stream_profile.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/user_group.py +0 -0
- {axis-57/axis/vapix → axis-59/axis}/models/view_area.py +0 -0
- {axis-57 → axis-59}/axis/py.typed +0 -0
- {axis-57 → axis-59}/axis/rtsp.py +0 -0
- {axis-57 → axis-59}/axis/stream_manager.py +0 -0
- {axis-57 → axis-59}/axis.egg-info/dependency_links.txt +0 -0
- {axis-57 → axis-59}/axis.egg-info/entry_points.txt +0 -0
- {axis-57 → axis-59}/axis.egg-info/top_level.txt +0 -0
- {axis-57 → axis-59}/setup.cfg +0 -0
- {axis-57 → axis-59}/tests/test_device.py +0 -0
- {axis-57 → axis-59}/tests/test_event.py +0 -0
- {axis-57 → axis-59}/tests/test_stream_manager.py +0 -0
axis-59/PKG-INFO
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: axis
|
|
3
|
+
Version: 59
|
|
4
|
+
Summary: A Python library for communicating with devices from Axis Communications
|
|
5
|
+
Author-email: Robert Svensson <Kane610@users.noreply.github.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Source Code, https://github.com/Kane610/axis
|
|
8
|
+
Project-URL: Bug Reports, https://github.com/Kane610/axis/issues
|
|
9
|
+
Project-URL: Forum, https://community.home-assistant.io/t/axis-camera-component/
|
|
10
|
+
Keywords: axis,vapix,homeassistant
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Topic :: Home Automation
|
|
17
|
+
Requires-Python: >=3.11.0
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
Provides-Extra: requirements
|
|
20
|
+
Provides-Extra: requirements_test
|
|
21
|
+
Provides-Extra: requirements_dev
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
|
|
24
|
+
Python project to set up a connection towards Axis Communications devices and to subscribe to specific events on the metadatastream.
|
|
@@ -22,7 +22,7 @@ async def axis_device(
|
|
|
22
22
|
"""Create a Axis device."""
|
|
23
23
|
session = AsyncClient(verify=False)
|
|
24
24
|
device = axis.device.AxisDevice(
|
|
25
|
-
axis.configuration.Configuration(
|
|
25
|
+
axis.models.configuration.Configuration(
|
|
26
26
|
session, host, port=port, username=username, password=password
|
|
27
27
|
)
|
|
28
28
|
)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"""Python library to enable Axis devices to integrate with Home Assistant."""
|
|
2
2
|
|
|
3
|
-
from .
|
|
4
|
-
from .
|
|
3
|
+
from .interfaces.event_manager import EventManager
|
|
4
|
+
from .interfaces.vapix import Vapix
|
|
5
|
+
from .models.configuration import Configuration
|
|
5
6
|
from .stream_manager import StreamManager
|
|
6
|
-
from .vapix.vapix import Vapix
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class AxisDevice:
|
|
@@ -14,7 +14,7 @@ class AxisDevice:
|
|
|
14
14
|
self.config = configuration
|
|
15
15
|
self.vapix = Vapix(self)
|
|
16
16
|
self.stream = StreamManager(self)
|
|
17
|
-
self.event = EventManager(
|
|
17
|
+
self.event = EventManager()
|
|
18
18
|
|
|
19
19
|
def enable_events(self) -> None:
|
|
20
20
|
"""Enable events for stream."""
|
|
@@ -11,11 +11,11 @@ from collections.abc import (
|
|
|
11
11
|
)
|
|
12
12
|
from typing import TYPE_CHECKING, Generic, final
|
|
13
13
|
|
|
14
|
-
from
|
|
14
|
+
from ..errors import Forbidden, PathNotFound, Unauthorized
|
|
15
15
|
|
|
16
16
|
if TYPE_CHECKING:
|
|
17
17
|
from ..models.api_discovery import ApiId
|
|
18
|
-
from
|
|
18
|
+
from .vapix import Vapix
|
|
19
19
|
|
|
20
20
|
from ..models.api import ApiItemT
|
|
21
21
|
|
|
@@ -2,13 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
from collections.abc import Callable
|
|
4
4
|
import logging
|
|
5
|
-
from typing import
|
|
6
|
-
|
|
7
|
-
from .models.event import Event, EventOperation, EventTopic
|
|
8
|
-
|
|
9
|
-
if TYPE_CHECKING:
|
|
10
|
-
from .device import AxisDevice
|
|
5
|
+
from typing import Any
|
|
11
6
|
|
|
7
|
+
from ..models.event import Event, EventOperation, EventTopic
|
|
12
8
|
|
|
13
9
|
SubscriptionCallback = Callable[[Event], None]
|
|
14
10
|
SubscriptionType = tuple[
|
|
@@ -30,9 +26,8 @@ LOGGER = logging.getLogger(__name__)
|
|
|
30
26
|
class EventManager:
|
|
31
27
|
"""Initialize new events and update states of existing events."""
|
|
32
28
|
|
|
33
|
-
def __init__(self
|
|
29
|
+
def __init__(self) -> None:
|
|
34
30
|
"""Ready information about events."""
|
|
35
|
-
self.device = device
|
|
36
31
|
self._known_topics: set[str] = set()
|
|
37
32
|
self._subscribers: dict[str, list[SubscriptionType]] = {ID_FILTER_ALL: []}
|
|
38
33
|
|
|
@@ -7,36 +7,36 @@ from typing import TYPE_CHECKING, Any
|
|
|
7
7
|
import httpx
|
|
8
8
|
|
|
9
9
|
from ..errors import RequestError, raise_error
|
|
10
|
-
from .
|
|
11
|
-
from .
|
|
12
|
-
from .
|
|
10
|
+
from ..models.api import ApiRequest
|
|
11
|
+
from ..models.pwdgrp_cgi import SecondaryGroup
|
|
12
|
+
from ..models.stream_profile import StreamProfile
|
|
13
|
+
from .api_discovery import ApiDiscoveryHandler
|
|
14
|
+
from .api_handler import ApiHandler
|
|
15
|
+
from .applications import (
|
|
13
16
|
ApplicationsHandler,
|
|
14
17
|
)
|
|
15
|
-
from .
|
|
16
|
-
from .
|
|
18
|
+
from .applications.fence_guard import FenceGuardHandler
|
|
19
|
+
from .applications.loitering_guard import (
|
|
17
20
|
LoiteringGuardHandler,
|
|
18
21
|
)
|
|
19
|
-
from .
|
|
20
|
-
from .
|
|
22
|
+
from .applications.motion_guard import MotionGuardHandler
|
|
23
|
+
from .applications.object_analytics import (
|
|
21
24
|
ObjectAnalyticsHandler,
|
|
22
25
|
)
|
|
23
|
-
from .
|
|
24
|
-
from .
|
|
25
|
-
from .
|
|
26
|
-
from .
|
|
27
|
-
from .
|
|
28
|
-
from .
|
|
29
|
-
from .
|
|
30
|
-
from .
|
|
31
|
-
from .
|
|
32
|
-
from .
|
|
33
|
-
from .
|
|
34
|
-
from .
|
|
35
|
-
from .
|
|
36
|
-
from .
|
|
37
|
-
from .models.api import ApiRequest
|
|
38
|
-
from .models.pwdgrp_cgi import SecondaryGroup
|
|
39
|
-
from .models.stream_profile import StreamProfile
|
|
26
|
+
from .applications.vmd4 import Vmd4Handler
|
|
27
|
+
from .basic_device_info import BasicDeviceInfoHandler
|
|
28
|
+
from .event_instances import EventInstanceHandler
|
|
29
|
+
from .light_control import LightHandler
|
|
30
|
+
from .mqtt import MqttClientHandler
|
|
31
|
+
from .parameters.param_cgi import Params
|
|
32
|
+
from .pir_sensor_configuration import PirSensorConfigurationHandler
|
|
33
|
+
from .port_cgi import Ports
|
|
34
|
+
from .port_management import IoPortManagement
|
|
35
|
+
from .ptz import PtzControl
|
|
36
|
+
from .pwdgrp_cgi import Users
|
|
37
|
+
from .stream_profiles import StreamProfilesHandler
|
|
38
|
+
from .user_groups import UserGroups
|
|
39
|
+
from .view_areas import ViewAreaHandler
|
|
40
40
|
|
|
41
41
|
if TYPE_CHECKING:
|
|
42
42
|
from ..device import AxisDevice
|
|
@@ -110,7 +110,7 @@ class ImageParamT(TypedDict):
|
|
|
110
110
|
Name: str
|
|
111
111
|
Source: str
|
|
112
112
|
Appearance: ImageAppearanceParamT
|
|
113
|
-
MPEG: ImageMpegParamT
|
|
113
|
+
MPEG: NotRequired[ImageMpegParamT]
|
|
114
114
|
Overlay: NotRequired[ImageOverlayParamT]
|
|
115
115
|
RateControl: NotRequired[ImageRateControlParamT]
|
|
116
116
|
SizeControl: NotRequired[ImageSizeControlParamT]
|
|
@@ -125,9 +125,9 @@ class ImageParam(ParamItem):
|
|
|
125
125
|
|
|
126
126
|
enabled: str
|
|
127
127
|
name: str
|
|
128
|
-
source: str
|
|
128
|
+
source: str | None
|
|
129
129
|
appearance: ImageAppearanceParamT
|
|
130
|
-
mpeg: ImageMpegParamT
|
|
130
|
+
mpeg: ImageMpegParamT | None
|
|
131
131
|
overlay: ImageOverlayParamT | None
|
|
132
132
|
rate_control: ImageRateControlParamT | None
|
|
133
133
|
size_control: ImageSizeControlParamT | None
|
|
@@ -141,11 +141,11 @@ class ImageParam(ParamItem):
|
|
|
141
141
|
id, raw = data
|
|
142
142
|
return cls(
|
|
143
143
|
id=id,
|
|
144
|
-
enabled=raw
|
|
144
|
+
enabled=raw.get("Enabled", "yes"),
|
|
145
145
|
name=raw["Name"],
|
|
146
|
-
source=raw
|
|
146
|
+
source=raw.get("Source"),
|
|
147
147
|
appearance=raw["Appearance"],
|
|
148
|
-
mpeg=raw
|
|
148
|
+
mpeg=raw.get("MPEG"),
|
|
149
149
|
overlay=raw.get("Overlay"),
|
|
150
150
|
rate_control=raw.get("RateControl"),
|
|
151
151
|
size_control=raw.get("SizeControl"),
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: axis
|
|
3
|
+
Version: 59
|
|
4
|
+
Summary: A Python library for communicating with devices from Axis Communications
|
|
5
|
+
Author-email: Robert Svensson <Kane610@users.noreply.github.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Source Code, https://github.com/Kane610/axis
|
|
8
|
+
Project-URL: Bug Reports, https://github.com/Kane610/axis/issues
|
|
9
|
+
Project-URL: Forum, https://community.home-assistant.io/t/axis-camera-component/
|
|
10
|
+
Keywords: axis,vapix,homeassistant
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Topic :: Home Automation
|
|
17
|
+
Requires-Python: >=3.11.0
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
Provides-Extra: requirements
|
|
20
|
+
Provides-Extra: requirements_test
|
|
21
|
+
Provides-Extra: requirements_dev
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
|
|
24
|
+
Python project to set up a connection towards Axis Communications devices and to subscribe to specific events on the metadatastream.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
axis/__init__.py
|
|
5
|
+
axis/__main__.py
|
|
6
|
+
axis/device.py
|
|
7
|
+
axis/errors.py
|
|
8
|
+
axis/py.typed
|
|
9
|
+
axis/rtsp.py
|
|
10
|
+
axis/stream_manager.py
|
|
11
|
+
axis.egg-info/PKG-INFO
|
|
12
|
+
axis.egg-info/SOURCES.txt
|
|
13
|
+
axis.egg-info/dependency_links.txt
|
|
14
|
+
axis.egg-info/entry_points.txt
|
|
15
|
+
axis.egg-info/requires.txt
|
|
16
|
+
axis.egg-info/top_level.txt
|
|
17
|
+
axis/interfaces/__init__.py
|
|
18
|
+
axis/interfaces/api_discovery.py
|
|
19
|
+
axis/interfaces/api_handler.py
|
|
20
|
+
axis/interfaces/basic_device_info.py
|
|
21
|
+
axis/interfaces/event_instances.py
|
|
22
|
+
axis/interfaces/event_manager.py
|
|
23
|
+
axis/interfaces/light_control.py
|
|
24
|
+
axis/interfaces/mqtt.py
|
|
25
|
+
axis/interfaces/pir_sensor_configuration.py
|
|
26
|
+
axis/interfaces/port_cgi.py
|
|
27
|
+
axis/interfaces/port_management.py
|
|
28
|
+
axis/interfaces/ptz.py
|
|
29
|
+
axis/interfaces/pwdgrp_cgi.py
|
|
30
|
+
axis/interfaces/stream_profiles.py
|
|
31
|
+
axis/interfaces/user_groups.py
|
|
32
|
+
axis/interfaces/vapix.py
|
|
33
|
+
axis/interfaces/view_areas.py
|
|
34
|
+
axis/interfaces/applications/__init__.py
|
|
35
|
+
axis/interfaces/applications/application_handler.py
|
|
36
|
+
axis/interfaces/applications/applications.py
|
|
37
|
+
axis/interfaces/applications/fence_guard.py
|
|
38
|
+
axis/interfaces/applications/loitering_guard.py
|
|
39
|
+
axis/interfaces/applications/motion_guard.py
|
|
40
|
+
axis/interfaces/applications/object_analytics.py
|
|
41
|
+
axis/interfaces/applications/vmd4.py
|
|
42
|
+
axis/interfaces/parameters/__init__.py
|
|
43
|
+
axis/interfaces/parameters/brand.py
|
|
44
|
+
axis/interfaces/parameters/image.py
|
|
45
|
+
axis/interfaces/parameters/io_port.py
|
|
46
|
+
axis/interfaces/parameters/param_cgi.py
|
|
47
|
+
axis/interfaces/parameters/param_handler.py
|
|
48
|
+
axis/interfaces/parameters/properties.py
|
|
49
|
+
axis/interfaces/parameters/ptz.py
|
|
50
|
+
axis/interfaces/parameters/stream_profile.py
|
|
51
|
+
axis/models/__init__.py
|
|
52
|
+
axis/models/api.py
|
|
53
|
+
axis/models/api_discovery.py
|
|
54
|
+
axis/models/basic_device_info.py
|
|
55
|
+
axis/models/configuration.py
|
|
56
|
+
axis/models/event.py
|
|
57
|
+
axis/models/event_instance.py
|
|
58
|
+
axis/models/light_control.py
|
|
59
|
+
axis/models/mqtt.py
|
|
60
|
+
axis/models/pir_sensor_configuration.py
|
|
61
|
+
axis/models/port_cgi.py
|
|
62
|
+
axis/models/port_management.py
|
|
63
|
+
axis/models/ptz_cgi.py
|
|
64
|
+
axis/models/pwdgrp_cgi.py
|
|
65
|
+
axis/models/stream_profile.py
|
|
66
|
+
axis/models/user_group.py
|
|
67
|
+
axis/models/view_area.py
|
|
68
|
+
axis/models/applications/__init__.py
|
|
69
|
+
axis/models/applications/application.py
|
|
70
|
+
axis/models/applications/fence_guard.py
|
|
71
|
+
axis/models/applications/loitering_guard.py
|
|
72
|
+
axis/models/applications/motion_guard.py
|
|
73
|
+
axis/models/applications/object_analytics.py
|
|
74
|
+
axis/models/applications/vmd4.py
|
|
75
|
+
axis/models/parameters/__init__.py
|
|
76
|
+
axis/models/parameters/brand.py
|
|
77
|
+
axis/models/parameters/image.py
|
|
78
|
+
axis/models/parameters/io_port.py
|
|
79
|
+
axis/models/parameters/param_cgi.py
|
|
80
|
+
axis/models/parameters/properties.py
|
|
81
|
+
axis/models/parameters/ptz.py
|
|
82
|
+
axis/models/parameters/stream_profile.py
|
|
83
|
+
tests/test_api_discovery.py
|
|
84
|
+
tests/test_api_handler.py
|
|
85
|
+
tests/test_basic_device_info.py
|
|
86
|
+
tests/test_configuration.py
|
|
87
|
+
tests/test_device.py
|
|
88
|
+
tests/test_event.py
|
|
89
|
+
tests/test_event_instances.py
|
|
90
|
+
tests/test_event_stream.py
|
|
91
|
+
tests/test_light_control.py
|
|
92
|
+
tests/test_mqtt.py
|
|
93
|
+
tests/test_pir_sensor_configuration.py
|
|
94
|
+
tests/test_port_cgi.py
|
|
95
|
+
tests/test_port_management.py
|
|
96
|
+
tests/test_ptz.py
|
|
97
|
+
tests/test_pwdgrp_cgi.py
|
|
98
|
+
tests/test_rtsp.py
|
|
99
|
+
tests/test_stream_manager.py
|
|
100
|
+
tests/test_stream_profiles.py
|
|
101
|
+
tests/test_user_groups.py
|
|
102
|
+
tests/test_vapix.py
|
|
103
|
+
tests/test_view_areas.py
|
|
@@ -10,15 +10,15 @@ packaging==24.0
|
|
|
10
10
|
xmltodict==0.13.0
|
|
11
11
|
|
|
12
12
|
[requirements_dev]
|
|
13
|
-
pre-commit==3.
|
|
13
|
+
pre-commit==3.7.0
|
|
14
14
|
|
|
15
15
|
[requirements_test]
|
|
16
16
|
mypy==1.9.0
|
|
17
17
|
pytest==8.1.1
|
|
18
18
|
pytest-aiohttp==1.0.5
|
|
19
19
|
pytest-asyncio==0.23.6
|
|
20
|
-
pytest-cov==
|
|
20
|
+
pytest-cov==5.0.0
|
|
21
21
|
respx==0.21.0
|
|
22
|
-
ruff==0.3.
|
|
22
|
+
ruff==0.3.4
|
|
23
23
|
types-orjson==3.6.2
|
|
24
24
|
types-xmltodict==v0.13.0.3
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "axis"
|
|
7
|
-
version = "
|
|
7
|
+
version = "59"
|
|
8
8
|
license = {text = "MIT"}
|
|
9
9
|
description = "A Python library for communicating with devices from Axis Communications"
|
|
10
10
|
readme = "README.md"
|
|
@@ -38,14 +38,14 @@ requirements_test = [
|
|
|
38
38
|
"pytest==8.1.1",
|
|
39
39
|
"pytest-aiohttp==1.0.5",
|
|
40
40
|
"pytest-asyncio==0.23.6",
|
|
41
|
-
"pytest-cov==
|
|
41
|
+
"pytest-cov==5.0.0",
|
|
42
42
|
"respx==0.21.0",
|
|
43
|
-
"ruff==0.3.
|
|
43
|
+
"ruff==0.3.4",
|
|
44
44
|
"types-orjson==3.6.2",
|
|
45
45
|
"types-xmltodict==v0.13.0.3",
|
|
46
46
|
]
|
|
47
47
|
requirements_dev = [
|
|
48
|
-
"pre-commit==3.
|
|
48
|
+
"pre-commit==3.7.0"
|
|
49
49
|
]
|
|
50
50
|
|
|
51
51
|
[project.urls]
|
|
@@ -123,6 +123,7 @@ lint.select = [
|
|
|
123
123
|
"PIE", # flake8-pie
|
|
124
124
|
"PL", # pylint
|
|
125
125
|
"PERF", # Perflint
|
|
126
|
+
"PT", # pytest
|
|
126
127
|
"RSE", # flake8-raise
|
|
127
128
|
"RUF005", # Consider iterable unpacking instead of concatenation
|
|
128
129
|
"RUF006", # Store a reference to the return value of asyncio.create_task
|
|
@@ -8,8 +8,8 @@ import json
|
|
|
8
8
|
import pytest
|
|
9
9
|
|
|
10
10
|
from axis.device import AxisDevice
|
|
11
|
-
from axis.
|
|
12
|
-
from axis.
|
|
11
|
+
from axis.interfaces.api_discovery import ApiDiscoveryHandler
|
|
12
|
+
from axis.models.api_discovery import ApiId, ApiStatus
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
@pytest.fixture
|
|
@@ -9,7 +9,7 @@ from unittest.mock import MagicMock
|
|
|
9
9
|
import pytest
|
|
10
10
|
|
|
11
11
|
from axis.device import AxisDevice
|
|
12
|
-
from axis.
|
|
12
|
+
from axis.interfaces.basic_device_info import BasicDeviceInfoHandler
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
@pytest.fixture
|
|
@@ -5,8 +5,8 @@ pytest --cov-report term-missing --cov=axis.event_instances tests/test_event_ins
|
|
|
5
5
|
|
|
6
6
|
import pytest
|
|
7
7
|
|
|
8
|
-
from axis.
|
|
9
|
-
from axis.
|
|
8
|
+
from axis.interfaces.event_instances import EventInstanceHandler
|
|
9
|
+
from axis.models.event_instance import get_events
|
|
10
10
|
|
|
11
11
|
from .event_fixtures import (
|
|
12
12
|
EVENT_INSTANCE_PIR_SENSOR,
|
|
@@ -8,7 +8,7 @@ from unittest.mock import Mock
|
|
|
8
8
|
import pytest
|
|
9
9
|
|
|
10
10
|
from axis.device import AxisDevice
|
|
11
|
-
from axis.
|
|
11
|
+
from axis.interfaces.event_manager import EventManager
|
|
12
12
|
from axis.models.event import Event, EventGroup, EventOperation, EventTopic
|
|
13
13
|
|
|
14
14
|
from .event_fixtures import (
|
|
@@ -8,8 +8,8 @@ import json
|
|
|
8
8
|
import pytest
|
|
9
9
|
|
|
10
10
|
from axis.device import AxisDevice
|
|
11
|
-
from axis.
|
|
12
|
-
from axis.
|
|
11
|
+
from axis.interfaces.light_control import LightHandler
|
|
12
|
+
from axis.models.api_discovery import Api
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
@pytest.fixture
|
|
@@ -9,8 +9,8 @@ from unittest.mock import MagicMock
|
|
|
9
9
|
import pytest
|
|
10
10
|
|
|
11
11
|
from axis.device import AxisDevice
|
|
12
|
-
from axis.
|
|
13
|
-
from axis.
|
|
12
|
+
from axis.interfaces.mqtt import MqttClientHandler, mqtt_json_to_event
|
|
13
|
+
from axis.models.mqtt import ClientConfig, Message, Server, ServerProtocol, Ssl
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
@pytest.fixture
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Test Axis PIR sensor configuration API.
|
|
2
2
|
|
|
3
|
-
pytest --cov-report term-missing --cov=axis.
|
|
3
|
+
pytest --cov-report term-missing --cov=axis.interfaces.pir_sensor_configuration tests/test_pir_sensor_configuration.py
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
6
|
import json
|
|
@@ -9,7 +9,7 @@ from unittest.mock import MagicMock
|
|
|
9
9
|
import pytest
|
|
10
10
|
|
|
11
11
|
from axis.device import AxisDevice
|
|
12
|
-
from axis.
|
|
12
|
+
from axis.interfaces.pir_sensor_configuration import PirSensorConfigurationHandler
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
@pytest.fixture
|
|
@@ -5,8 +5,8 @@ pytest --cov-report term-missing --cov=axis.port_cgi tests/test_port_cgi.py
|
|
|
5
5
|
|
|
6
6
|
import pytest
|
|
7
7
|
|
|
8
|
-
from axis.
|
|
9
|
-
from axis.
|
|
8
|
+
from axis.interfaces.port_cgi import Ports
|
|
9
|
+
from axis.models.parameters.io_port import PortAction, PortDirection
|
|
10
10
|
|
|
11
11
|
from .conftest import HOST
|
|
12
12
|
|
|
@@ -7,8 +7,8 @@ import json
|
|
|
7
7
|
|
|
8
8
|
import pytest
|
|
9
9
|
|
|
10
|
-
from axis.
|
|
11
|
-
from axis.
|
|
10
|
+
from axis.interfaces.port_management import IoPortManagement
|
|
11
|
+
from axis.models.port_management import PortConfiguration, Sequence
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
@pytest.fixture
|
|
@@ -5,8 +5,8 @@ from urllib.parse import urlencode
|
|
|
5
5
|
import pytest
|
|
6
6
|
|
|
7
7
|
from axis.device import AxisDevice
|
|
8
|
-
from axis.
|
|
9
|
-
from axis.
|
|
8
|
+
from axis.interfaces.ptz import PtzControl
|
|
9
|
+
from axis.models.ptz_cgi import PtzMove, PtzQuery, PtzRotation, PtzState
|
|
10
10
|
|
|
11
11
|
from .parameters.test_ptz import PTZ_RESPONSE
|
|
12
12
|
|
|
@@ -4,8 +4,8 @@ import urllib
|
|
|
4
4
|
|
|
5
5
|
import pytest
|
|
6
6
|
|
|
7
|
-
from axis.
|
|
8
|
-
from axis.
|
|
7
|
+
from axis.interfaces.pwdgrp_cgi import Users
|
|
8
|
+
from axis.models.pwdgrp_cgi import SecondaryGroup, User
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
@pytest.fixture
|
|
@@ -584,8 +584,10 @@ def test_session_state_method(rtsp_client):
|
|
|
584
584
|
assert session.state == State.STOPPED
|
|
585
585
|
|
|
586
586
|
with patch.object(session, "sequence", 6), pytest.raises(IndexError):
|
|
587
|
-
_ = session.method
|
|
588
|
-
|
|
587
|
+
_ = session.method
|
|
588
|
+
|
|
589
|
+
with patch.object(session, "sequence", 6), pytest.raises(IndexError):
|
|
590
|
+
_ = session.state
|
|
589
591
|
|
|
590
592
|
|
|
591
593
|
def test_session_update_status_codes(rtsp_client):
|
|
@@ -5,8 +5,8 @@ pytest --cov-report term-missing --cov=axis.user_groups tests/test_user_groups.p
|
|
|
5
5
|
|
|
6
6
|
import pytest
|
|
7
7
|
|
|
8
|
-
from axis.
|
|
9
|
-
from axis.
|
|
8
|
+
from axis.interfaces.user_groups import UserGroups
|
|
9
|
+
from axis.models.pwdgrp_cgi import SecondaryGroup
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
@pytest.fixture
|
|
@@ -14,10 +14,10 @@ from axis.errors import (
|
|
|
14
14
|
RequestError,
|
|
15
15
|
Unauthorized,
|
|
16
16
|
)
|
|
17
|
-
from axis.vapix
|
|
18
|
-
from axis.
|
|
19
|
-
from axis.
|
|
20
|
-
from axis.
|
|
17
|
+
from axis.interfaces.vapix import Vapix
|
|
18
|
+
from axis.models.applications.application import ApplicationStatus
|
|
19
|
+
from axis.models.pwdgrp_cgi import SecondaryGroup
|
|
20
|
+
from axis.models.stream_profile import StreamProfile
|
|
21
21
|
|
|
22
22
|
from .applications.test_applications import (
|
|
23
23
|
LIST_APPLICATIONS_RESPONSE as APPLICATIONS_RESPONSE,
|
|
@@ -438,12 +438,12 @@ async def test_not_loading_user_groups_makes_access_rights_unknown(vapix: Vapix)
|
|
|
438
438
|
|
|
439
439
|
@pytest.mark.parametrize(
|
|
440
440
|
("code", "error"),
|
|
441
|
-
|
|
441
|
+
[
|
|
442
442
|
(401, Unauthorized),
|
|
443
443
|
(403, Forbidden),
|
|
444
444
|
(404, PathNotFound),
|
|
445
445
|
(405, MethodNotAllowed),
|
|
446
|
-
|
|
446
|
+
],
|
|
447
447
|
)
|
|
448
448
|
async def test_request_raises(respx_mock, vapix: Vapix, code, error):
|
|
449
449
|
"""Verify that a HTTP error raises the appropriate exception."""
|
|
@@ -454,7 +454,7 @@ async def test_request_raises(respx_mock, vapix: Vapix, code, error):
|
|
|
454
454
|
|
|
455
455
|
|
|
456
456
|
@pytest.mark.parametrize(
|
|
457
|
-
"side_effect",
|
|
457
|
+
"side_effect", [httpx.TimeoutException, httpx.TransportError, httpx.RequestError]
|
|
458
458
|
)
|
|
459
459
|
async def test_request_side_effects(respx_mock, vapix: Vapix, side_effect):
|
|
460
460
|
"""Test request side effects."""
|
axis-57/PKG-INFO
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: axis
|
|
3
|
-
Version: 57
|
|
4
|
-
Summary: A Python library for communicating with devices from Axis Communications
|
|
5
|
-
Home-page: https://github.com/Kane610/axis
|
|
6
|
-
Download-URL: https://github.com/Kane610/axis/archive/v57.tar.gz
|
|
7
|
-
Author: Robert Svensson
|
|
8
|
-
Author-email: Robert Svensson <Kane610@users.noreply.github.com>
|
|
9
|
-
License: MIT
|
|
10
|
-
Project-URL: Source Code, https://github.com/Kane610/axis
|
|
11
|
-
Project-URL: Bug Reports, https://github.com/Kane610/axis/issues
|
|
12
|
-
Project-URL: Forum, https://community.home-assistant.io/t/axis-camera-component/
|
|
13
|
-
Keywords: axis,vapix,homeassistant
|
|
14
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
15
|
-
Classifier: Intended Audience :: Developers
|
|
16
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
-
Classifier: Operating System :: OS Independent
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
-
Classifier: Topic :: Home Automation
|
|
20
|
-
Requires-Python: >=3.11
|
|
21
|
-
Description-Content-Type: text/markdown
|
|
22
|
-
License-File: LICENSE
|
|
23
|
-
Requires-Dist: httpx>=0.26
|
|
24
|
-
Requires-Dist: orjson>3.9
|
|
25
|
-
Requires-Dist: packaging>23
|
|
26
|
-
Requires-Dist: xmltodict>=0.13.0
|
|
27
|
-
Provides-Extra: requirements
|
|
28
|
-
Requires-Dist: httpx==0.27.0; extra == "requirements"
|
|
29
|
-
Requires-Dist: orjson==3.9.15; extra == "requirements"
|
|
30
|
-
Requires-Dist: packaging==24.0; extra == "requirements"
|
|
31
|
-
Requires-Dist: xmltodict==0.13.0; extra == "requirements"
|
|
32
|
-
Provides-Extra: requirements-test
|
|
33
|
-
Requires-Dist: mypy==1.9.0; extra == "requirements-test"
|
|
34
|
-
Requires-Dist: pytest==8.1.1; extra == "requirements-test"
|
|
35
|
-
Requires-Dist: pytest-aiohttp==1.0.5; extra == "requirements-test"
|
|
36
|
-
Requires-Dist: pytest-asyncio==0.23.6; extra == "requirements-test"
|
|
37
|
-
Requires-Dist: pytest-cov==4.1.0; extra == "requirements-test"
|
|
38
|
-
Requires-Dist: respx==0.21.0; extra == "requirements-test"
|
|
39
|
-
Requires-Dist: ruff==0.3.3; extra == "requirements-test"
|
|
40
|
-
Requires-Dist: types-orjson==3.6.2; extra == "requirements-test"
|
|
41
|
-
Requires-Dist: types-xmltodict==v0.13.0.3; extra == "requirements-test"
|
|
42
|
-
Provides-Extra: requirements-dev
|
|
43
|
-
Requires-Dist: pre-commit==3.6.2; extra == "requirements-dev"
|
|
44
|
-
|
|
45
|
-
Python project to set up a connection towards Axis Communications devices and to subscribe to specific events on the metadatastream.
|
axis-57/axis/vapix/__init__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"""Vapix module."""
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"""Data models."""
|
axis-57/axis.egg-info/PKG-INFO
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: axis
|
|
3
|
-
Version: 57
|
|
4
|
-
Summary: A Python library for communicating with devices from Axis Communications
|
|
5
|
-
Home-page: https://github.com/Kane610/axis
|
|
6
|
-
Download-URL: https://github.com/Kane610/axis/archive/v57.tar.gz
|
|
7
|
-
Author: Robert Svensson
|
|
8
|
-
Author-email: Robert Svensson <Kane610@users.noreply.github.com>
|
|
9
|
-
License: MIT
|
|
10
|
-
Project-URL: Source Code, https://github.com/Kane610/axis
|
|
11
|
-
Project-URL: Bug Reports, https://github.com/Kane610/axis/issues
|
|
12
|
-
Project-URL: Forum, https://community.home-assistant.io/t/axis-camera-component/
|
|
13
|
-
Keywords: axis,vapix,homeassistant
|
|
14
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
15
|
-
Classifier: Intended Audience :: Developers
|
|
16
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
-
Classifier: Operating System :: OS Independent
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
-
Classifier: Topic :: Home Automation
|
|
20
|
-
Requires-Python: >=3.11
|
|
21
|
-
Description-Content-Type: text/markdown
|
|
22
|
-
License-File: LICENSE
|
|
23
|
-
Requires-Dist: httpx>=0.26
|
|
24
|
-
Requires-Dist: orjson>3.9
|
|
25
|
-
Requires-Dist: packaging>23
|
|
26
|
-
Requires-Dist: xmltodict>=0.13.0
|
|
27
|
-
Provides-Extra: requirements
|
|
28
|
-
Requires-Dist: httpx==0.27.0; extra == "requirements"
|
|
29
|
-
Requires-Dist: orjson==3.9.15; extra == "requirements"
|
|
30
|
-
Requires-Dist: packaging==24.0; extra == "requirements"
|
|
31
|
-
Requires-Dist: xmltodict==0.13.0; extra == "requirements"
|
|
32
|
-
Provides-Extra: requirements-test
|
|
33
|
-
Requires-Dist: mypy==1.9.0; extra == "requirements-test"
|
|
34
|
-
Requires-Dist: pytest==8.1.1; extra == "requirements-test"
|
|
35
|
-
Requires-Dist: pytest-aiohttp==1.0.5; extra == "requirements-test"
|
|
36
|
-
Requires-Dist: pytest-asyncio==0.23.6; extra == "requirements-test"
|
|
37
|
-
Requires-Dist: pytest-cov==4.1.0; extra == "requirements-test"
|
|
38
|
-
Requires-Dist: respx==0.21.0; extra == "requirements-test"
|
|
39
|
-
Requires-Dist: ruff==0.3.3; extra == "requirements-test"
|
|
40
|
-
Requires-Dist: types-orjson==3.6.2; extra == "requirements-test"
|
|
41
|
-
Requires-Dist: types-xmltodict==v0.13.0.3; extra == "requirements-test"
|
|
42
|
-
Provides-Extra: requirements-dev
|
|
43
|
-
Requires-Dist: pre-commit==3.6.2; extra == "requirements-dev"
|
|
44
|
-
|
|
45
|
-
Python project to set up a connection towards Axis Communications devices and to subscribe to specific events on the metadatastream.
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
LICENSE
|
|
2
|
-
README.md
|
|
3
|
-
pyproject.toml
|
|
4
|
-
setup.py
|
|
5
|
-
axis/__init__.py
|
|
6
|
-
axis/__main__.py
|
|
7
|
-
axis/configuration.py
|
|
8
|
-
axis/device.py
|
|
9
|
-
axis/errors.py
|
|
10
|
-
axis/event_stream.py
|
|
11
|
-
axis/py.typed
|
|
12
|
-
axis/rtsp.py
|
|
13
|
-
axis/stream_manager.py
|
|
14
|
-
axis.egg-info/PKG-INFO
|
|
15
|
-
axis.egg-info/SOURCES.txt
|
|
16
|
-
axis.egg-info/dependency_links.txt
|
|
17
|
-
axis.egg-info/entry_points.txt
|
|
18
|
-
axis.egg-info/requires.txt
|
|
19
|
-
axis.egg-info/top_level.txt
|
|
20
|
-
axis/models/__init__.py
|
|
21
|
-
axis/models/event.py
|
|
22
|
-
axis/vapix/__init__.py
|
|
23
|
-
axis/vapix/vapix.py
|
|
24
|
-
axis/vapix/interfaces/__init__.py
|
|
25
|
-
axis/vapix/interfaces/api_discovery.py
|
|
26
|
-
axis/vapix/interfaces/api_handler.py
|
|
27
|
-
axis/vapix/interfaces/basic_device_info.py
|
|
28
|
-
axis/vapix/interfaces/event_instances.py
|
|
29
|
-
axis/vapix/interfaces/light_control.py
|
|
30
|
-
axis/vapix/interfaces/mqtt.py
|
|
31
|
-
axis/vapix/interfaces/pir_sensor_configuration.py
|
|
32
|
-
axis/vapix/interfaces/port_cgi.py
|
|
33
|
-
axis/vapix/interfaces/port_management.py
|
|
34
|
-
axis/vapix/interfaces/ptz.py
|
|
35
|
-
axis/vapix/interfaces/pwdgrp_cgi.py
|
|
36
|
-
axis/vapix/interfaces/stream_profiles.py
|
|
37
|
-
axis/vapix/interfaces/user_groups.py
|
|
38
|
-
axis/vapix/interfaces/view_areas.py
|
|
39
|
-
axis/vapix/interfaces/applications/__init__.py
|
|
40
|
-
axis/vapix/interfaces/applications/application_handler.py
|
|
41
|
-
axis/vapix/interfaces/applications/applications.py
|
|
42
|
-
axis/vapix/interfaces/applications/fence_guard.py
|
|
43
|
-
axis/vapix/interfaces/applications/loitering_guard.py
|
|
44
|
-
axis/vapix/interfaces/applications/motion_guard.py
|
|
45
|
-
axis/vapix/interfaces/applications/object_analytics.py
|
|
46
|
-
axis/vapix/interfaces/applications/vmd4.py
|
|
47
|
-
axis/vapix/interfaces/parameters/__init__.py
|
|
48
|
-
axis/vapix/interfaces/parameters/brand.py
|
|
49
|
-
axis/vapix/interfaces/parameters/image.py
|
|
50
|
-
axis/vapix/interfaces/parameters/io_port.py
|
|
51
|
-
axis/vapix/interfaces/parameters/param_cgi.py
|
|
52
|
-
axis/vapix/interfaces/parameters/param_handler.py
|
|
53
|
-
axis/vapix/interfaces/parameters/properties.py
|
|
54
|
-
axis/vapix/interfaces/parameters/ptz.py
|
|
55
|
-
axis/vapix/interfaces/parameters/stream_profile.py
|
|
56
|
-
axis/vapix/models/__init__.py
|
|
57
|
-
axis/vapix/models/api.py
|
|
58
|
-
axis/vapix/models/api_discovery.py
|
|
59
|
-
axis/vapix/models/basic_device_info.py
|
|
60
|
-
axis/vapix/models/event_instance.py
|
|
61
|
-
axis/vapix/models/light_control.py
|
|
62
|
-
axis/vapix/models/mqtt.py
|
|
63
|
-
axis/vapix/models/pir_sensor_configuration.py
|
|
64
|
-
axis/vapix/models/port_cgi.py
|
|
65
|
-
axis/vapix/models/port_management.py
|
|
66
|
-
axis/vapix/models/ptz_cgi.py
|
|
67
|
-
axis/vapix/models/pwdgrp_cgi.py
|
|
68
|
-
axis/vapix/models/stream_profile.py
|
|
69
|
-
axis/vapix/models/user_group.py
|
|
70
|
-
axis/vapix/models/view_area.py
|
|
71
|
-
axis/vapix/models/applications/__init__.py
|
|
72
|
-
axis/vapix/models/applications/application.py
|
|
73
|
-
axis/vapix/models/applications/fence_guard.py
|
|
74
|
-
axis/vapix/models/applications/loitering_guard.py
|
|
75
|
-
axis/vapix/models/applications/motion_guard.py
|
|
76
|
-
axis/vapix/models/applications/object_analytics.py
|
|
77
|
-
axis/vapix/models/applications/vmd4.py
|
|
78
|
-
axis/vapix/models/parameters/__init__.py
|
|
79
|
-
axis/vapix/models/parameters/brand.py
|
|
80
|
-
axis/vapix/models/parameters/image.py
|
|
81
|
-
axis/vapix/models/parameters/io_port.py
|
|
82
|
-
axis/vapix/models/parameters/param_cgi.py
|
|
83
|
-
axis/vapix/models/parameters/properties.py
|
|
84
|
-
axis/vapix/models/parameters/ptz.py
|
|
85
|
-
axis/vapix/models/parameters/stream_profile.py
|
|
86
|
-
tests/test_api_discovery.py
|
|
87
|
-
tests/test_api_handler.py
|
|
88
|
-
tests/test_basic_device_info.py
|
|
89
|
-
tests/test_configuration.py
|
|
90
|
-
tests/test_device.py
|
|
91
|
-
tests/test_event.py
|
|
92
|
-
tests/test_event_instances.py
|
|
93
|
-
tests/test_event_stream.py
|
|
94
|
-
tests/test_light_control.py
|
|
95
|
-
tests/test_mqtt.py
|
|
96
|
-
tests/test_pir_sensor_configuration.py
|
|
97
|
-
tests/test_port_cgi.py
|
|
98
|
-
tests/test_port_management.py
|
|
99
|
-
tests/test_ptz.py
|
|
100
|
-
tests/test_pwdgrp_cgi.py
|
|
101
|
-
tests/test_rtsp.py
|
|
102
|
-
tests/test_stream_manager.py
|
|
103
|
-
tests/test_stream_profiles.py
|
|
104
|
-
tests/test_user_groups.py
|
|
105
|
-
tests/test_vapix.py
|
|
106
|
-
tests/test_view_areas.py
|
axis-57/setup.py
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"""Setup for Axis."""
|
|
2
|
-
|
|
3
|
-
from setuptools import find_packages, setup
|
|
4
|
-
|
|
5
|
-
MIN_PY_VERSION = "3.11"
|
|
6
|
-
PACKAGES = find_packages(exclude=["tests", "tests.*"])
|
|
7
|
-
VERSION = "57"
|
|
8
|
-
|
|
9
|
-
setup(
|
|
10
|
-
name="axis",
|
|
11
|
-
packages=PACKAGES,
|
|
12
|
-
package_data={"axis": ["py.typed"]},
|
|
13
|
-
version=VERSION,
|
|
14
|
-
description="A Python library for communicating with devices from Axis Communications",
|
|
15
|
-
author="Robert Svensson",
|
|
16
|
-
author_email="Kane610@users.noreply.github.com",
|
|
17
|
-
license="MIT",
|
|
18
|
-
url="https://github.com/Kane610/axis",
|
|
19
|
-
download_url=f"https://github.com/Kane610/axis/archive/v{VERSION}.tar.gz",
|
|
20
|
-
install_requires=["async_timeout", "attrs", "httpx", "packaging", "xmltodict"],
|
|
21
|
-
tests_require=["pytest", "pytest-asyncio", "respx"],
|
|
22
|
-
keywords=["axis", "vapix", "onvif", "event stream", "homeassistant"],
|
|
23
|
-
classifiers=["Natural Language :: English", "Programming Language :: Python :: 3"],
|
|
24
|
-
python_requires=f">={MIN_PY_VERSION}",
|
|
25
|
-
)
|
{axis-57 → axis-59}/LICENSE
RENAMED
|
File without changes
|
{axis-57 → axis-59}/README.md
RENAMED
|
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
|
|
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
|
|
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
|
{axis-57 → axis-59}/axis/rtsp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis-57 → axis-59}/setup.cfg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|