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.
Files changed (19) hide show
  1. {violet_poolcontroller_api-0.0.2/violet_poolController_api.egg-info → violet_poolcontroller_api-0.0.3}/PKG-INFO +3 -1
  2. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/README.md +2 -0
  3. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/pyproject.toml +1 -1
  4. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/setup.py +1 -1
  5. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/tests/test_api.py +12 -0
  6. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3/violet_poolController_api.egg-info}/PKG-INFO +3 -1
  7. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/api.py +2 -2
  8. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/LICENSE +0 -0
  9. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/setup.cfg +0 -0
  10. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolController_api.egg-info/SOURCES.txt +0 -0
  11. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolController_api.egg-info/dependency_links.txt +0 -0
  12. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolController_api.egg-info/requires.txt +0 -0
  13. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolController_api.egg-info/top_level.txt +0 -0
  14. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/__init__.py +0 -0
  15. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/circuit_breaker.py +0 -0
  16. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/const_api.py +0 -0
  17. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/const_devices.py +0 -0
  18. {violet_poolcontroller_api-0.0.2 → violet_poolcontroller_api-0.0.3}/violet_poolcontroller_api/utils_rate_limiter.py +0 -0
  19. {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.2
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",
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "violet-poolController-api"
7
- version = "0.0.2"
7
+ version = "0.0.3"
8
8
  authors = [
9
9
  { name="Basti (Xerolux)", email="git@xerolux.de" },
10
10
  ]
@@ -1,7 +1,7 @@
1
1
  from setuptools import setup, find_packages
2
2
  setup(
3
3
  name="violet-poolController-api",
4
- version="0.0.2",
4
+ version="0.0.3",
5
5
  author="Basti (Xerolux)",
6
6
  author_email="git@xerolux.de",
7
7
  description="Asynchronous Python client for the Violet Pool Controller.",
@@ -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.2
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",
@@ -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.-]+$", host):
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