violet-poolController-api 0.0.2__tar.gz → 0.0.3__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.
- {violet_poolcontroller_api-0.0.2/violet_poolController_api.egg-info → violet_poolcontroller_api-0.0.3}/PKG-INFO +3 -1
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/README.md +2 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/pyproject.toml +1 -1
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/setup.py +1 -1
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/tests/test_api.py +12 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3/violet_poolController_api.egg-info}/PKG-INFO +3 -1
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/api.py +2 -2
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/LICENSE +0 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/setup.cfg +0 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolController_api.egg-info/SOURCES.txt +0 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolController_api.egg-info/dependency_links.txt +0 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolController_api.egg-info/requires.txt +0 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolController_api.egg-info/top_level.txt +0 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/__init__.py +0 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/circuit_breaker.py +0 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/const_api.py +0 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/const_devices.py +0 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/utils_rate_limiter.py +0 -0
- {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/utils_sanitizer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: violet-poolController-api
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.3
|
|
4
4
|
Summary: Asynchronous Python client for the Violet Pool Controller.
|
|
5
5
|
Home-page: https://github.com/Xerolux/violet-poolController-api
|
|
6
6
|
Author: Basti (Xerolux)
|
|
@@ -61,6 +61,8 @@ async def main():
|
|
|
61
61
|
# Create an aiohttp ClientSession
|
|
62
62
|
async with aiohttp.ClientSession() as session:
|
|
63
63
|
# Initialize the API
|
|
64
|
+
# Note: In a standard setup, just enter the IP address without a port.
|
|
65
|
+
# A port (e.g. "192.168.1.100:8080") can optionally be provided if you use a proxy or alternative setup.
|
|
64
66
|
api = VioletPoolAPI(
|
|
65
67
|
host="192.168.1.100",
|
|
66
68
|
username="admin",
|
|
@@ -37,6 +37,8 @@ async def main():
|
|
|
37
37
|
# Create an aiohttp ClientSession
|
|
38
38
|
async with aiohttp.ClientSession() as session:
|
|
39
39
|
# Initialize the API
|
|
40
|
+
# Note: In a standard setup, just enter the IP address without a port.
|
|
41
|
+
# A port (e.g. "192.168.1.100:8080") can optionally be provided if you use a proxy or alternative setup.
|
|
40
42
|
api = VioletPoolAPI(
|
|
41
43
|
host="192.168.1.100",
|
|
42
44
|
username="admin",
|
|
@@ -73,3 +73,15 @@ async def test_request_server_error(mock_aioresponse, api_client):
|
|
|
73
73
|
await api_client.get_readings()
|
|
74
74
|
|
|
75
75
|
assert "Error communicating with Violet controller" in str(exc_info.value)
|
|
76
|
+
|
|
77
|
+
@pytest.mark.asyncio
|
|
78
|
+
async def test_init_with_port():
|
|
79
|
+
"""Test initializing API with a port in the hostname."""
|
|
80
|
+
async with aiohttp.ClientSession() as session:
|
|
81
|
+
api = VioletPoolAPI(
|
|
82
|
+
host="192.168.1.100:8080",
|
|
83
|
+
session=session,
|
|
84
|
+
username="admin",
|
|
85
|
+
password="password"
|
|
86
|
+
)
|
|
87
|
+
assert api._base_url == "http://192.168.1.100:8080"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: violet-poolController-api
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.3
|
|
4
4
|
Summary: Asynchronous Python client for the Violet Pool Controller.
|
|
5
5
|
Home-page: https://github.com/Xerolux/violet-poolController-api
|
|
6
6
|
Author: Basti (Xerolux)
|
|
@@ -61,6 +61,8 @@ async def main():
|
|
|
61
61
|
# Create an aiohttp ClientSession
|
|
62
62
|
async with aiohttp.ClientSession() as session:
|
|
63
63
|
# Initialize the API
|
|
64
|
+
# Note: In a standard setup, just enter the IP address without a port.
|
|
65
|
+
# A port (e.g. "192.168.1.100:8080") can optionally be provided if you use a proxy or alternative setup.
|
|
64
66
|
api = VioletPoolAPI(
|
|
65
67
|
host="192.168.1.100",
|
|
66
68
|
username="admin",
|
{violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/api.py
RENAMED
|
@@ -176,8 +176,8 @@ class VioletPoolAPI:
|
|
|
176
176
|
parsed = urlparse(host)
|
|
177
177
|
host = parsed.netloc
|
|
178
178
|
|
|
179
|
-
# Validate hostname format
|
|
180
|
-
if not re.match(r"^[a-zA-Z0-9.-]
|
|
179
|
+
# Validate hostname format (allowing optional port)
|
|
180
|
+
if not re.match(r"^[a-zA-Z0-9.-]+(?::[0-9]{1,5})?$", host):
|
|
181
181
|
raise ValueError(f"Invalid hostname format: {host}")
|
|
182
182
|
|
|
183
183
|
# Additional validation
|
|
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
|