From 5d353d10bb35d36207b89405e2884c0157c40a43 Mon Sep 17 00:00:00 2001 From: GrandMoff100 Date: Thu, 7 Apr 2022 15:14:59 +0000 Subject: [PATCH 1/3] Replaced os.path.join with urllib.parse.urljoin --- homeassistant_api/_async/asyncclient.py | 2 +- homeassistant_api/_async/models/entity.py | 2 +- homeassistant_api/models/entity.py | 2 +- homeassistant_api/rawclient.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/homeassistant_api/_async/asyncclient.py b/homeassistant_api/_async/asyncclient.py index 45f3e0b6..fcd1c0f5 100644 --- a/homeassistant_api/_async/asyncclient.py +++ b/homeassistant_api/_async/asyncclient.py @@ -1,6 +1,6 @@ """Module for interacting with Home Assistant asyncronously.""" import asyncio -from os.path import join +from urllib.parse import urljoin as join import join from typing import Any, AsyncGenerator, Dict, List, Optional, Tuple, Union, cast import aiohttp diff --git a/homeassistant_api/_async/models/entity.py b/homeassistant_api/_async/models/entity.py index 2a3e76ff..e8098a8f 100644 --- a/homeassistant_api/_async/models/entity.py +++ b/homeassistant_api/_async/models/entity.py @@ -1,5 +1,5 @@ """Module for Entity and entity Group data models""" -from os.path import join +from urllib.parse import urljoin as join import join from typing import TYPE_CHECKING, Any, Dict, Optional, cast from pydantic import Field diff --git a/homeassistant_api/models/entity.py b/homeassistant_api/models/entity.py index 8647768f..8b75b0b6 100644 --- a/homeassistant_api/models/entity.py +++ b/homeassistant_api/models/entity.py @@ -1,6 +1,6 @@ """Module for Entity and entity Group data models""" -from os.path import join +from urllib.parse import urljoin as join from typing import TYPE_CHECKING, Any, Dict, Optional, cast from pydantic import Field diff --git a/homeassistant_api/rawclient.py b/homeassistant_api/rawclient.py index 63f848f8..238a2fcd 100644 --- a/homeassistant_api/rawclient.py +++ b/homeassistant_api/rawclient.py @@ -1,6 +1,6 @@ """Module for all interaction with homeassistant.""" -from os.path import join +from urllib.parse import urljoin as join from typing import Any, Dict, Generator, List, Optional, Tuple, Union, cast import requests From b0c707d93f29fddfddd0ed5aa07a8bdfa502b371 Mon Sep 17 00:00:00 2001 From: GrandMoff100 Date: Thu, 7 Apr 2022 15:21:43 +0000 Subject: [PATCH 2/3] Linted code --- homeassistant_api/_async/asyncclient.py | 2 +- homeassistant_api/_async/models/entity.py | 2 +- homeassistant_api/models/entity.py | 2 +- homeassistant_api/rawclient.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/homeassistant_api/_async/asyncclient.py b/homeassistant_api/_async/asyncclient.py index fcd1c0f5..e999373a 100644 --- a/homeassistant_api/_async/asyncclient.py +++ b/homeassistant_api/_async/asyncclient.py @@ -1,7 +1,7 @@ """Module for interacting with Home Assistant asyncronously.""" import asyncio -from urllib.parse import urljoin as join import join from typing import Any, AsyncGenerator, Dict, List, Optional, Tuple, Union, cast +from urllib.parse import urljoin as join import aiohttp from aiohttp_client_cache import CachedSession diff --git a/homeassistant_api/_async/models/entity.py b/homeassistant_api/_async/models/entity.py index e8098a8f..f02ce71b 100644 --- a/homeassistant_api/_async/models/entity.py +++ b/homeassistant_api/_async/models/entity.py @@ -1,6 +1,6 @@ """Module for Entity and entity Group data models""" -from urllib.parse import urljoin as join import join from typing import TYPE_CHECKING, Any, Dict, Optional, cast +from urllib.parse import urljoin as join from pydantic import Field diff --git a/homeassistant_api/models/entity.py b/homeassistant_api/models/entity.py index 8b75b0b6..02a32a84 100644 --- a/homeassistant_api/models/entity.py +++ b/homeassistant_api/models/entity.py @@ -1,7 +1,7 @@ """Module for Entity and entity Group data models""" -from urllib.parse import urljoin as join from typing import TYPE_CHECKING, Any, Dict, Optional, cast +from urllib.parse import urljoin as join from pydantic import Field diff --git a/homeassistant_api/rawclient.py b/homeassistant_api/rawclient.py index 238a2fcd..d50ef7a6 100644 --- a/homeassistant_api/rawclient.py +++ b/homeassistant_api/rawclient.py @@ -1,7 +1,7 @@ """Module for all interaction with homeassistant.""" -from urllib.parse import urljoin as join from typing import Any, Dict, Generator, List, Optional, Tuple, Union, cast +from urllib.parse import urljoin as join import requests from requests_cache import CachedSession From 1cba96b049518fcf88325d5fa9d1d15338e0754a Mon Sep 17 00:00:00 2001 From: GrandMoff100 Date: Thu, 7 Apr 2022 15:57:57 +0000 Subject: [PATCH 3/3] Fixed urljoin parameters --- .pre-commit-config.yaml | 2 +- homeassistant_api/_async/asyncclient.py | 2 +- homeassistant_api/rawclient.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9e375a4b..851e4a1c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,7 @@ repos: - repo: https://github.com/psf/black hooks: - id: black - rev: "21.12b0" + rev: "22.3.0" - repo: https://github.com/PyCQA/isort rev: "5.10.1" hooks: diff --git a/homeassistant_api/_async/asyncclient.py b/homeassistant_api/_async/asyncclient.py index e999373a..452d9507 100644 --- a/homeassistant_api/_async/asyncclient.py +++ b/homeassistant_api/_async/asyncclient.py @@ -197,7 +197,7 @@ async def async_trigger_service( ) -> List[State]: """Tells Home Assistant to trigger a service, returns stats changed while being called""" data = await self.async_request( - join("services", domain, service), + join("services", domain + "/" + service), method="POST", json=service_data, ) diff --git a/homeassistant_api/rawclient.py b/homeassistant_api/rawclient.py index d50ef7a6..faa196da 100644 --- a/homeassistant_api/rawclient.py +++ b/homeassistant_api/rawclient.py @@ -203,7 +203,7 @@ def trigger_service( ) -> Tuple[State, ...]: """Tells Home Assistant to trigger a service, returns stats changed while being called""" data = self.request( - join("services", domain, service), + join("services", domain + "/" + service), method="POST", json=service_data, )