axis 57__tar.gz → 58__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.
Files changed (108) hide show
  1. {axis-57 → axis-58}/PKG-INFO +3 -3
  2. {axis-57 → axis-58}/axis/vapix/models/parameters/image.py +6 -6
  3. {axis-57 → axis-58}/axis.egg-info/PKG-INFO +3 -3
  4. {axis-57 → axis-58}/axis.egg-info/requires.txt +1 -1
  5. {axis-57 → axis-58}/pyproject.toml +3 -2
  6. {axis-57 → axis-58}/setup.py +1 -1
  7. {axis-57 → axis-58}/tests/test_rtsp.py +4 -2
  8. {axis-57 → axis-58}/tests/test_vapix.py +3 -3
  9. {axis-57 → axis-58}/LICENSE +0 -0
  10. {axis-57 → axis-58}/README.md +0 -0
  11. {axis-57 → axis-58}/axis/__init__.py +0 -0
  12. {axis-57 → axis-58}/axis/__main__.py +0 -0
  13. {axis-57 → axis-58}/axis/configuration.py +0 -0
  14. {axis-57 → axis-58}/axis/device.py +0 -0
  15. {axis-57 → axis-58}/axis/errors.py +0 -0
  16. {axis-57 → axis-58}/axis/event_stream.py +0 -0
  17. {axis-57 → axis-58}/axis/models/__init__.py +0 -0
  18. {axis-57 → axis-58}/axis/models/event.py +0 -0
  19. {axis-57 → axis-58}/axis/py.typed +0 -0
  20. {axis-57 → axis-58}/axis/rtsp.py +0 -0
  21. {axis-57 → axis-58}/axis/stream_manager.py +0 -0
  22. {axis-57 → axis-58}/axis/vapix/__init__.py +0 -0
  23. {axis-57 → axis-58}/axis/vapix/interfaces/__init__.py +0 -0
  24. {axis-57 → axis-58}/axis/vapix/interfaces/api_discovery.py +0 -0
  25. {axis-57 → axis-58}/axis/vapix/interfaces/api_handler.py +0 -0
  26. {axis-57 → axis-58}/axis/vapix/interfaces/applications/__init__.py +0 -0
  27. {axis-57 → axis-58}/axis/vapix/interfaces/applications/application_handler.py +0 -0
  28. {axis-57 → axis-58}/axis/vapix/interfaces/applications/applications.py +0 -0
  29. {axis-57 → axis-58}/axis/vapix/interfaces/applications/fence_guard.py +0 -0
  30. {axis-57 → axis-58}/axis/vapix/interfaces/applications/loitering_guard.py +0 -0
  31. {axis-57 → axis-58}/axis/vapix/interfaces/applications/motion_guard.py +0 -0
  32. {axis-57 → axis-58}/axis/vapix/interfaces/applications/object_analytics.py +0 -0
  33. {axis-57 → axis-58}/axis/vapix/interfaces/applications/vmd4.py +0 -0
  34. {axis-57 → axis-58}/axis/vapix/interfaces/basic_device_info.py +0 -0
  35. {axis-57 → axis-58}/axis/vapix/interfaces/event_instances.py +0 -0
  36. {axis-57 → axis-58}/axis/vapix/interfaces/light_control.py +0 -0
  37. {axis-57 → axis-58}/axis/vapix/interfaces/mqtt.py +0 -0
  38. {axis-57 → axis-58}/axis/vapix/interfaces/parameters/__init__.py +0 -0
  39. {axis-57 → axis-58}/axis/vapix/interfaces/parameters/brand.py +0 -0
  40. {axis-57 → axis-58}/axis/vapix/interfaces/parameters/image.py +0 -0
  41. {axis-57 → axis-58}/axis/vapix/interfaces/parameters/io_port.py +0 -0
  42. {axis-57 → axis-58}/axis/vapix/interfaces/parameters/param_cgi.py +0 -0
  43. {axis-57 → axis-58}/axis/vapix/interfaces/parameters/param_handler.py +0 -0
  44. {axis-57 → axis-58}/axis/vapix/interfaces/parameters/properties.py +0 -0
  45. {axis-57 → axis-58}/axis/vapix/interfaces/parameters/ptz.py +0 -0
  46. {axis-57 → axis-58}/axis/vapix/interfaces/parameters/stream_profile.py +0 -0
  47. {axis-57 → axis-58}/axis/vapix/interfaces/pir_sensor_configuration.py +0 -0
  48. {axis-57 → axis-58}/axis/vapix/interfaces/port_cgi.py +0 -0
  49. {axis-57 → axis-58}/axis/vapix/interfaces/port_management.py +0 -0
  50. {axis-57 → axis-58}/axis/vapix/interfaces/ptz.py +0 -0
  51. {axis-57 → axis-58}/axis/vapix/interfaces/pwdgrp_cgi.py +0 -0
  52. {axis-57 → axis-58}/axis/vapix/interfaces/stream_profiles.py +0 -0
  53. {axis-57 → axis-58}/axis/vapix/interfaces/user_groups.py +0 -0
  54. {axis-57 → axis-58}/axis/vapix/interfaces/view_areas.py +0 -0
  55. {axis-57 → axis-58}/axis/vapix/models/__init__.py +0 -0
  56. {axis-57 → axis-58}/axis/vapix/models/api.py +0 -0
  57. {axis-57 → axis-58}/axis/vapix/models/api_discovery.py +0 -0
  58. {axis-57 → axis-58}/axis/vapix/models/applications/__init__.py +0 -0
  59. {axis-57 → axis-58}/axis/vapix/models/applications/application.py +0 -0
  60. {axis-57 → axis-58}/axis/vapix/models/applications/fence_guard.py +0 -0
  61. {axis-57 → axis-58}/axis/vapix/models/applications/loitering_guard.py +0 -0
  62. {axis-57 → axis-58}/axis/vapix/models/applications/motion_guard.py +0 -0
  63. {axis-57 → axis-58}/axis/vapix/models/applications/object_analytics.py +0 -0
  64. {axis-57 → axis-58}/axis/vapix/models/applications/vmd4.py +0 -0
  65. {axis-57 → axis-58}/axis/vapix/models/basic_device_info.py +0 -0
  66. {axis-57 → axis-58}/axis/vapix/models/event_instance.py +0 -0
  67. {axis-57 → axis-58}/axis/vapix/models/light_control.py +0 -0
  68. {axis-57 → axis-58}/axis/vapix/models/mqtt.py +0 -0
  69. {axis-57 → axis-58}/axis/vapix/models/parameters/__init__.py +0 -0
  70. {axis-57 → axis-58}/axis/vapix/models/parameters/brand.py +0 -0
  71. {axis-57 → axis-58}/axis/vapix/models/parameters/io_port.py +0 -0
  72. {axis-57 → axis-58}/axis/vapix/models/parameters/param_cgi.py +0 -0
  73. {axis-57 → axis-58}/axis/vapix/models/parameters/properties.py +0 -0
  74. {axis-57 → axis-58}/axis/vapix/models/parameters/ptz.py +0 -0
  75. {axis-57 → axis-58}/axis/vapix/models/parameters/stream_profile.py +0 -0
  76. {axis-57 → axis-58}/axis/vapix/models/pir_sensor_configuration.py +0 -0
  77. {axis-57 → axis-58}/axis/vapix/models/port_cgi.py +0 -0
  78. {axis-57 → axis-58}/axis/vapix/models/port_management.py +0 -0
  79. {axis-57 → axis-58}/axis/vapix/models/ptz_cgi.py +0 -0
  80. {axis-57 → axis-58}/axis/vapix/models/pwdgrp_cgi.py +0 -0
  81. {axis-57 → axis-58}/axis/vapix/models/stream_profile.py +0 -0
  82. {axis-57 → axis-58}/axis/vapix/models/user_group.py +0 -0
  83. {axis-57 → axis-58}/axis/vapix/models/view_area.py +0 -0
  84. {axis-57 → axis-58}/axis/vapix/vapix.py +0 -0
  85. {axis-57 → axis-58}/axis.egg-info/SOURCES.txt +0 -0
  86. {axis-57 → axis-58}/axis.egg-info/dependency_links.txt +0 -0
  87. {axis-57 → axis-58}/axis.egg-info/entry_points.txt +0 -0
  88. {axis-57 → axis-58}/axis.egg-info/top_level.txt +0 -0
  89. {axis-57 → axis-58}/setup.cfg +0 -0
  90. {axis-57 → axis-58}/tests/test_api_discovery.py +0 -0
  91. {axis-57 → axis-58}/tests/test_api_handler.py +0 -0
  92. {axis-57 → axis-58}/tests/test_basic_device_info.py +0 -0
  93. {axis-57 → axis-58}/tests/test_configuration.py +0 -0
  94. {axis-57 → axis-58}/tests/test_device.py +0 -0
  95. {axis-57 → axis-58}/tests/test_event.py +0 -0
  96. {axis-57 → axis-58}/tests/test_event_instances.py +0 -0
  97. {axis-57 → axis-58}/tests/test_event_stream.py +0 -0
  98. {axis-57 → axis-58}/tests/test_light_control.py +0 -0
  99. {axis-57 → axis-58}/tests/test_mqtt.py +0 -0
  100. {axis-57 → axis-58}/tests/test_pir_sensor_configuration.py +0 -0
  101. {axis-57 → axis-58}/tests/test_port_cgi.py +0 -0
  102. {axis-57 → axis-58}/tests/test_port_management.py +0 -0
  103. {axis-57 → axis-58}/tests/test_ptz.py +0 -0
  104. {axis-57 → axis-58}/tests/test_pwdgrp_cgi.py +0 -0
  105. {axis-57 → axis-58}/tests/test_stream_manager.py +0 -0
  106. {axis-57 → axis-58}/tests/test_stream_profiles.py +0 -0
  107. {axis-57 → axis-58}/tests/test_user_groups.py +0 -0
  108. {axis-57 → axis-58}/tests/test_view_areas.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: axis
3
- Version: 57
3
+ Version: 58
4
4
  Summary: A Python library for communicating with devices from Axis Communications
5
5
  Home-page: https://github.com/Kane610/axis
6
- Download-URL: https://github.com/Kane610/axis/archive/v57.tar.gz
6
+ Download-URL: https://github.com/Kane610/axis/archive/v58.tar.gz
7
7
  Author: Robert Svensson
8
8
  Author-email: Robert Svensson <Kane610@users.noreply.github.com>
9
9
  License: MIT
@@ -36,7 +36,7 @@ Requires-Dist: pytest-aiohttp==1.0.5; extra == "requirements-test"
36
36
  Requires-Dist: pytest-asyncio==0.23.6; extra == "requirements-test"
37
37
  Requires-Dist: pytest-cov==4.1.0; extra == "requirements-test"
38
38
  Requires-Dist: respx==0.21.0; extra == "requirements-test"
39
- Requires-Dist: ruff==0.3.3; extra == "requirements-test"
39
+ Requires-Dist: ruff==0.3.4; extra == "requirements-test"
40
40
  Requires-Dist: types-orjson==3.6.2; extra == "requirements-test"
41
41
  Requires-Dist: types-xmltodict==v0.13.0.3; extra == "requirements-test"
42
42
  Provides-Extra: requirements-dev
@@ -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["Enabled"],
144
+ enabled=raw.get("Enabled", "yes"),
145
145
  name=raw["Name"],
146
- source=raw["Source"],
146
+ source=raw.get("Source"),
147
147
  appearance=raw["Appearance"],
148
- mpeg=raw["MPEG"],
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"),
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: axis
3
- Version: 57
3
+ Version: 58
4
4
  Summary: A Python library for communicating with devices from Axis Communications
5
5
  Home-page: https://github.com/Kane610/axis
6
- Download-URL: https://github.com/Kane610/axis/archive/v57.tar.gz
6
+ Download-URL: https://github.com/Kane610/axis/archive/v58.tar.gz
7
7
  Author: Robert Svensson
8
8
  Author-email: Robert Svensson <Kane610@users.noreply.github.com>
9
9
  License: MIT
@@ -36,7 +36,7 @@ Requires-Dist: pytest-aiohttp==1.0.5; extra == "requirements-test"
36
36
  Requires-Dist: pytest-asyncio==0.23.6; extra == "requirements-test"
37
37
  Requires-Dist: pytest-cov==4.1.0; extra == "requirements-test"
38
38
  Requires-Dist: respx==0.21.0; extra == "requirements-test"
39
- Requires-Dist: ruff==0.3.3; extra == "requirements-test"
39
+ Requires-Dist: ruff==0.3.4; extra == "requirements-test"
40
40
  Requires-Dist: types-orjson==3.6.2; extra == "requirements-test"
41
41
  Requires-Dist: types-xmltodict==v0.13.0.3; extra == "requirements-test"
42
42
  Provides-Extra: requirements-dev
@@ -19,6 +19,6 @@ pytest-aiohttp==1.0.5
19
19
  pytest-asyncio==0.23.6
20
20
  pytest-cov==4.1.0
21
21
  respx==0.21.0
22
- ruff==0.3.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 = "57"
7
+ version = "58"
8
8
  license = {text = "MIT"}
9
9
  description = "A Python library for communicating with devices from Axis Communications"
10
10
  readme = "README.md"
@@ -40,7 +40,7 @@ requirements_test = [
40
40
  "pytest-asyncio==0.23.6",
41
41
  "pytest-cov==4.1.0",
42
42
  "respx==0.21.0",
43
- "ruff==0.3.3",
43
+ "ruff==0.3.4",
44
44
  "types-orjson==3.6.2",
45
45
  "types-xmltodict==v0.13.0.3",
46
46
  ]
@@ -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
@@ -4,7 +4,7 @@ from setuptools import find_packages, setup
4
4
 
5
5
  MIN_PY_VERSION = "3.11"
6
6
  PACKAGES = find_packages(exclude=["tests", "tests.*"])
7
- VERSION = "57"
7
+ VERSION = "58"
8
8
 
9
9
  setup(
10
10
  name="axis",
@@ -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 # B018 lint
588
- _ = session.state # B018 lint
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):
@@ -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", (httpx.TimeoutException, httpx.TransportError, httpx.RequestError)
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."""
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