You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(client)!: keyword-only execute_action_group and typed gateway-selection error (#2120)
## Summary
Final API-polish items before tagging 2.0.0. Both are breaking, so
they're locked in now rather than after release.
- **`execute_action_group()` is keyword-only** —
`actions`/`mode`/`label` must be passed by name, matching the
keyword-only constructor. Updated all callers, doc examples, and the
migration guide.
- **Gateway selection raises `UnsupportedOperationError`** —
`discover_gateways()` / `select_gateway()` previously raised a bare
`TypeError`. They now raise `UnsupportedOperationError` (in the
`BaseOverkizError` hierarchy), so they're catchable alongside other
Overkiz errors.
Also clarified the `open_local_pairing()` docstring. We probed the live
endpoint against both Somfy and Atlantic — both return an empty `{}` on
success — but the response shape under other conditions is unconfirmed,
so the return type stays `Any` and the raw response is passed through
untouched (can be narrowed in a 2.x minor without breaking callers).
## Test plan
- `pytest` — 518 passed
- `ruff check` / `ruff format` — clean
- pre-commit hooks (incl. mypy) pass
Copy file name to clipboardExpand all lines: README.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,8 +30,9 @@ Full documentation is available at **[imicknl.github.io/python-overkiz-api](http
30
30
- Somfy TaHoma Switch
31
31
- Thermor Cozytouch
32
32
33
-
\[*]_This server's authentication method isn't supported yet. To use it, obtain an access token (by sniffing the original app) and create a local user on the Overkiz API platform._
34
-
\[**]_Requires OAuth credentials provided by Rexel._
33
+
**\***_This server's authentication method isn't supported yet. To use it, obtain an access token (by sniffing the original app) and create a local user on the Overkiz API platform._
34
+
35
+
**\*\***_Requires OAuth credentials provided by Rexel._
Copy file name to clipboardExpand all lines: docs/index.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,5 +36,6 @@ pyOverkiz is an async Python library for interacting with Overkiz-based platform
36
36
- Somfy TaHoma Switch
37
37
- Thermor Cozytouch
38
38
39
-
\[*]_This server's authentication method isn't supported yet. To use it, obtain an access token (by sniffing the original app) and create a local user on the Overkiz API platform._
40
-
\[**]_Requires OAuth credentials provided by Rexel._
39
+
**\***_This server's authentication method isn't supported yet. To use it, obtain an access token (by sniffing the original app) and create a local user on the Overkiz API platform._
40
+
41
+
**\*\***_Requires OAuth credentials provided by Rexel._
Copy file name to clipboardExpand all lines: docs/migration-v2.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -110,6 +110,8 @@ The command execution API has been consolidated into a single method.
110
110
)
111
111
```
112
112
113
+
`execute_action_group()` is keyword-only — pass `actions=[...]` (and optional `mode=`/`label=`) by name, not positionally.
114
+
113
115
v2 also supports sending actions to **multiple devices** in a single call and choosing an `ExecutionMode` (`HIGH_PRIORITY`, `GEOLOCATED`, `INTERNAL`). Execution modes are only supported by the Cloud API; the local API rejects them (see [Somfy-TaHoma-Developer-Mode#227](https://github.com/Somfy-Developer/Somfy-TaHoma-Developer-Mode/issues/227)).
0 commit comments