Skip to content

Commit 8a09223

Browse files
authored
Simplify return statements and rename type parameter to api_type (#1978)
1 parent bf3b321 commit 8a09223

5 files changed

Lines changed: 51 additions & 62 deletions

File tree

pyoverkiz/client.py

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -393,9 +393,7 @@ async def get_gateways(self, refresh: bool = False) -> list[Gateway]:
393393
async def get_execution_history(self) -> list[HistoryExecution]:
394394
"""List execution history."""
395395
response = await self._get("history/executions")
396-
execution_history = [HistoryExecution(**h) for h in humps.decamelize(response)]
397-
398-
return execution_history
396+
return [HistoryExecution(**h) for h in humps.decamelize(response)]
399397

400398
@retry_on_auth_error
401399
async def get_device_definition(self, deviceurl: str) -> JSON | None:
@@ -412,9 +410,7 @@ async def get_state(self, deviceurl: str) -> list[State]:
412410
response = await self._get(
413411
f"setup/devices/{urllib.parse.quote_plus(deviceurl)}/states"
414412
)
415-
state = [State(**s) for s in humps.decamelize(response)]
416-
417-
return state
413+
return [State(**s) for s in humps.decamelize(response)]
418414

419415
@retry_on_auth_error
420416
async def refresh_states(self) -> None:
@@ -458,9 +454,7 @@ async def fetch_events(self) -> list[Event]:
458454
"""
459455
await self._refresh_token_if_expired()
460456
response = await self._post(f"events/{self.event_listener_id}/fetch")
461-
events = [Event(**e) for e in humps.decamelize(response)]
462-
463-
return events
457+
return [Event(**e) for e in humps.decamelize(response)]
464458

465459
async def unregister_event_listener(self) -> None:
466460
"""Unregister an event listener.
@@ -475,17 +469,13 @@ async def unregister_event_listener(self) -> None:
475469
async def get_current_execution(self, exec_id: str) -> Execution:
476470
"""Get an action group execution currently running."""
477471
response = await self._get(f"exec/current/{exec_id}")
478-
execution = Execution(**humps.decamelize(response))
479-
480-
return execution
472+
return Execution(**humps.decamelize(response))
481473

482474
@retry_on_auth_error
483475
async def get_current_executions(self) -> list[Execution]:
484476
"""Get all action groups executions currently running."""
485477
response = await self._get("exec/current")
486-
executions = [Execution(**e) for e in humps.decamelize(response)]
487-
488-
return executions
478+
return [Execution(**e) for e in humps.decamelize(response)]
489479

490480
@retry_on_auth_error
491481
async def get_api_version(self) -> str:
@@ -613,8 +603,7 @@ async def get_places(self) -> Place:
613603
- `sub_places`: List of nested places within this location
614604
"""
615605
response = await self._get("setup/places")
616-
places = Place(**humps.decamelize(response))
617-
return places
606+
return Place(**humps.decamelize(response))
618607

619608
@retry_on_auth_error
620609
async def execute_scenario(self, oid: str) -> str:
@@ -636,9 +625,7 @@ async def get_setup_options(self) -> list[Option]:
636625
Access scope : Full enduser API access (enduser/*).
637626
"""
638627
response = await self._get("setup/options")
639-
options = [Option(**o) for o in humps.decamelize(response)]
640-
641-
return options
628+
return [Option(**o) for o in humps.decamelize(response)]
642629

643630
@retry_on_auth_error
644631
async def get_setup_option(self, option: str) -> Option | None:

pyoverkiz/const.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,111 +47,111 @@
4747
name="Atlantic Cozytouch",
4848
endpoint="https://ha110-1.overkiz.com/enduser-mobile-web/enduserAPI/",
4949
manufacturer="Atlantic",
50-
type=APIType.CLOUD,
50+
api_type=APIType.CLOUD,
5151
),
5252
Server.BRANDT: ServerConfig(
5353
server=Server.BRANDT,
5454
name="Brandt Smart Control",
5555
endpoint="https://ha3-1.overkiz.com/enduser-mobile-web/enduserAPI/",
5656
manufacturer="Brandt",
57-
type=APIType.CLOUD,
57+
api_type=APIType.CLOUD,
5858
),
5959
Server.FLEXOM: ServerConfig(
6060
server=Server.FLEXOM,
6161
name="Flexom",
6262
endpoint="https://ha108-1.overkiz.com/enduser-mobile-web/enduserAPI/",
6363
manufacturer="Bouygues",
64-
type=APIType.CLOUD,
64+
api_type=APIType.CLOUD,
6565
),
6666
Server.HEXAOM_HEXACONNECT: ServerConfig(
6767
server=Server.HEXAOM_HEXACONNECT,
6868
name="Hexaom HexaConnect",
6969
endpoint="https://ha5-1.overkiz.com/enduser-mobile-web/enduserAPI/",
7070
manufacturer="Hexaom",
71-
type=APIType.CLOUD,
71+
api_type=APIType.CLOUD,
7272
),
7373
Server.HI_KUMO_ASIA: ServerConfig(
7474
server=Server.HI_KUMO_ASIA,
7575
name="Hitachi Hi Kumo (Asia)",
7676
endpoint="https://ha203-1.overkiz.com/enduser-mobile-web/enduserAPI/",
7777
manufacturer="Hitachi",
78-
type=APIType.CLOUD,
78+
api_type=APIType.CLOUD,
7979
),
8080
Server.HI_KUMO_EUROPE: ServerConfig(
8181
server=Server.HI_KUMO_EUROPE,
8282
name="Hitachi Hi Kumo (Europe)",
8383
endpoint="https://ha117-1.overkiz.com/enduser-mobile-web/enduserAPI/",
8484
manufacturer="Hitachi",
85-
type=APIType.CLOUD,
85+
api_type=APIType.CLOUD,
8686
),
8787
Server.HI_KUMO_OCEANIA: ServerConfig(
8888
server=Server.HI_KUMO_OCEANIA,
8989
name="Hitachi Hi Kumo (Oceania)",
9090
endpoint="https://ha203-1.overkiz.com/enduser-mobile-web/enduserAPI/",
9191
manufacturer="Hitachi",
92-
type=APIType.CLOUD,
92+
api_type=APIType.CLOUD,
9393
),
9494
Server.NEXITY: ServerConfig(
9595
server=Server.NEXITY,
9696
name="Nexity Eugénie",
9797
endpoint="https://ha106-1.overkiz.com/enduser-mobile-web/enduserAPI/",
9898
manufacturer="Nexity",
99-
type=APIType.CLOUD,
99+
api_type=APIType.CLOUD,
100100
),
101101
Server.REXEL: ServerConfig(
102102
server=Server.REXEL,
103103
name="Rexel Energeasy Connect",
104104
endpoint=REXEL_BACKEND_API,
105105
manufacturer="Rexel",
106-
type=APIType.CLOUD,
106+
api_type=APIType.CLOUD,
107107
),
108108
Server.SAUTER_COZYTOUCH: ServerConfig( # duplicate of Atlantic Cozytouch
109109
server=Server.SAUTER_COZYTOUCH,
110110
name="Sauter Cozytouch",
111111
endpoint="https://ha110-1.overkiz.com/enduser-mobile-web/enduserAPI/",
112112
manufacturer="Sauter",
113-
type=APIType.CLOUD,
113+
api_type=APIType.CLOUD,
114114
),
115115
Server.SIMU_LIVEIN2: ServerConfig( # alias of https://tahomalink.com
116116
server=Server.SIMU_LIVEIN2,
117117
name="SIMU (LiveIn2)",
118118
endpoint="https://ha101-1.overkiz.com/enduser-mobile-web/enduserAPI/",
119119
manufacturer="Somfy",
120-
type=APIType.CLOUD,
120+
api_type=APIType.CLOUD,
121121
),
122122
Server.SOMFY_EUROPE: ServerConfig( # alias of https://tahomalink.com
123123
server=Server.SOMFY_EUROPE,
124124
name="Somfy (Europe)",
125125
endpoint="https://ha101-1.overkiz.com/enduser-mobile-web/enduserAPI/",
126126
manufacturer="Somfy",
127-
type=APIType.CLOUD,
127+
api_type=APIType.CLOUD,
128128
),
129129
Server.SOMFY_AMERICA: ServerConfig(
130130
server=Server.SOMFY_AMERICA,
131131
name="Somfy (North America)",
132132
endpoint="https://ha401-1.overkiz.com/enduser-mobile-web/enduserAPI/",
133133
manufacturer="Somfy",
134-
type=APIType.CLOUD,
134+
api_type=APIType.CLOUD,
135135
),
136136
Server.SOMFY_OCEANIA: ServerConfig(
137137
server=Server.SOMFY_OCEANIA,
138138
name="Somfy (Oceania)",
139139
endpoint="https://ha201-1.overkiz.com/enduser-mobile-web/enduserAPI/",
140140
manufacturer="Somfy",
141-
type=APIType.CLOUD,
141+
api_type=APIType.CLOUD,
142142
),
143143
Server.THERMOR_COZYTOUCH: ServerConfig( # duplicate of Atlantic Cozytouch
144144
server=Server.THERMOR_COZYTOUCH,
145145
name="Thermor Cozytouch",
146146
endpoint="https://ha110-1.overkiz.com/enduser-mobile-web/enduserAPI/",
147147
manufacturer="Thermor",
148-
type=APIType.CLOUD,
148+
api_type=APIType.CLOUD,
149149
),
150150
Server.UBIWIZZ: ServerConfig(
151151
server=Server.UBIWIZZ,
152152
name="Ubiwizz",
153153
endpoint="https://ha129-1.overkiz.com/enduser-mobile-web/enduserAPI/",
154154
manufacturer="Decelect",
155-
type=APIType.CLOUD,
155+
api_type=APIType.CLOUD,
156156
),
157157
}

pyoverkiz/models.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,7 +1172,7 @@ def __init__(
11721172
self.oid = oid
11731173

11741174

1175-
@define(kw_only=True)
1175+
@define(init=False, kw_only=True)
11761176
class ServerConfig:
11771177
"""Connection target details for an Overkiz-compatible server."""
11781178

@@ -1190,7 +1190,7 @@ def __init__(
11901190
name: str,
11911191
endpoint: str,
11921192
manufacturer: str,
1193-
type: str | APIType,
1193+
api_type: str | APIType,
11941194
configuration_url: str | None = None,
11951195
**_: Any,
11961196
) -> None:
@@ -1201,7 +1201,7 @@ def __init__(
12011201
self.name = name
12021202
self.endpoint = endpoint
12031203
self.manufacturer = manufacturer
1204-
self.type = type if isinstance(type, APIType) else APIType(type)
1204+
self.type = api_type if isinstance(api_type, APIType) else APIType(api_type)
12051205
self.configuration_url = configuration_url
12061206

12071207

pyoverkiz/utils.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def create_local_server_config(
2323
manufacturer=manufacturer,
2424
server=Server.SOMFY_DEVELOPER_MODE,
2525
configuration_url=configuration_url,
26-
type=APIType.LOCAL,
26+
api_type=APIType.LOCAL,
2727
)
2828

2929

@@ -33,18 +33,20 @@ def create_server_config(
3333
endpoint: str,
3434
manufacturer: str,
3535
server: Server | str | None = None,
36-
type: APIType | str = APIType.CLOUD,
36+
api_type: APIType | str = APIType.CLOUD,
3737
configuration_url: str | None = None,
3838
) -> ServerConfig:
3939
"""Generate server configuration with the provided endpoint and metadata."""
40-
# ServerConfig.__init__ accepts str | enum types and converts them internally
40+
server = Server(server) if isinstance(server, str) else server
41+
api_type = APIType(api_type) if isinstance(api_type, str) else api_type
42+
4143
return ServerConfig(
42-
server=server, # type: ignore[arg-type]
44+
server=server,
4345
name=name,
4446
endpoint=endpoint,
4547
manufacturer=manufacturer,
4648
configuration_url=configuration_url,
47-
type=type, # type: ignore[arg-type]
49+
api_type=api_type,
4850
)
4951

5052

0 commit comments

Comments
 (0)