J. Nick Koston
368590cd36
Cache SmartErrorCode creation ( #1022 )
...
Uses the python 3.9 cache feature to improve performance of error code creation
2024-06-30 10:49:59 +01:00
Teemu R
cf24a94526
Handle unknown error codes gracefully ( #1016 )
...
Makes unknown error codes to be reported through KasaException which may
be recoverable in some cases (i.e., a single command failing in the
multi request).
Related to https://github.com/home-assistant/core/issues/118446
2024-06-27 16:58:45 +02:00
Steven B
203bd79253
Enable and convert to future annotations ( #838 )
2024-04-17 15:39:24 +02:00
Steven B
da441bc697
Update poetry locks and pre-commit hooks ( #837 )
...
Also updates CI pypy versions to be 3.9 and 3.10 which are the currently
[supported
versions](https://www.pypy.org/posts/2024/01/pypy-v7315-release.html ).
Otherwise latest cryptography doesn't ship with pypy3.8 wheels and is
unable to build on windows.
Also updates the `codecov-action` to v4 which fixed some intermittent
uploading errors.
2024-04-16 20:21:20 +02:00
Steven B
8c39e81a40
Rename and deprecate exception classes ( #739 )
...
# Public #
SmartDeviceException -> KasaException
UnsupportedDeviceException(SmartDeviceException) -> UnsupportedDeviceError(KasaException)
TimeoutException(SmartDeviceException, asyncio.TimeoutError) -> TimeoutError(KasaException, asyncio.TimeoutError)
Add new exception for error codes -> DeviceError(KasaException)
AuthenticationException(SmartDeviceException) -> AuthenticationError(DeviceError)
# Internal #
RetryableException(SmartDeviceException) -> _RetryableError(DeviceError)
ConnectionException(SmartDeviceException) -> _ConnectionError(KasaException)
2024-02-21 16:52:55 +01:00
Steven B
9ab9420ad6
Let caller handle SMART errors on multi-requests ( #754 )
...
* Fix for missing get_device_usage
* Fix coverage and add methods to exceptions
* Remove unused caplog fixture
2024-02-15 18:10:34 +00:00
J. Nick Koston
b479b6d84d
Avoid rebuilding urls for every request ( #715 )
...
* Avoid rebuilding urls for every request
* more fixes
* more fixes
* make mypy happy
* reduce
* tweak
* fix tests
* fix tests
* tweak
* tweak
* lint
* fix type
2024-01-29 15:26:00 +00:00
Teemu R
52c3fb4d52
Add 1003 (TRANSPORT_UNKNOWN_CREDENTIALS_ERROR) ( #667 )
2024-01-24 00:12:01 +01:00
Steven B
38159140fb
Fix httpclient exceptions on read and improve error info ( #655 )
2024-01-19 21:06:50 +01:00
Steven B
3b1b0a3c21
Encapsulate http client dependency ( #642 )
...
* Encapsulate http client dependency
* Store cookie dict as variable
* Update post-review
2024-01-18 10:57:33 +01:00
Teemu R
30c4e6a6a3
Cleanup credentials handling ( #605 )
...
* credentials: don't allow none to simplify checks
* Implement __bool__ for credentials
* Cleanup klaptransport cred usage
* Cleanup deviceconfig and tapodevice
* fix linting
* Pass dummy credentials for tests
* Remove __bool__ dunder and add docs to credentials
* Check for cred noneness in tapodevice.update()
2024-01-03 19:26:52 +01:00
Teemu R
5dafc1d1ed
Cleanup custom exception kwarg handling ( #602 )
...
* Cleanup custom exceptions
* Read custom keyword arguments from kwargs
* Pass all input args to the super
Earlier behavior:
Got error: AuthenticationException((('Error logging in: 192.168.xx.xx: LOGIN_ERROR(-1501)',), <SmartErrorCode.LOGIN_ERROR: -1501>))
New behavior:
Got error: AuthenticationException('Error logging in: 192.168.xx.xx: LOGIN_ERROR(-1501)')
* Pass UnsupportedDeviceException kwargs to parent, too
2024-01-02 16:24:09 +01:00
sdb9696
b66347116f
Add optional error code to exceptions ( #585 )
2023-12-20 20:16:23 +01:00
sdb9696
209391c422
Improve CLI Discovery output ( #583 )
...
- Show discovery results for unsupported devices and devices that fail to authenticate.
- Rename `--show-unsupported` to `--verbose`.
- Remove separate `--timeout` parameter from cli discovery so it's not confused with `--timeout` now added to cli command.
- Add tests.
2023-12-19 13:50:33 +01:00
sdb9696
2e6c41d039
Improve smartprotocol error handling and retries ( #578 )
...
* Improve smartprotocol error handling and retries
* Update after review
* Enum to IntEnum and SLEEP_SECONDS_AFTER_TIMEOUT
2023-12-10 16:41:53 +01:00
sdb9696
7bb4a456a2
Add plumbing for passing credentials to devices ( #507 )
...
* Add plumbing for passing credentials as far as discovery
* Pass credentials to Smart devices
* Rename authentication exception
* Fix tests failure due to test_json_output leaving echo as nop
* Fix test_credentials test
* Do not print credentials, fix echo function bug and improve get type parameter
* Add device class constructor test
* Add comment for echo handling and move assignment
2023-09-13 15:46:38 +02:00
sdb9696
6055c29d74
Add support for alternative discovery protocol (20002/udp) ( #488 )
...
This will broadcast the new discovery message on the new port and log any responses received as unsupported devices.
2023-08-29 15:04:28 +02:00
Teemu R
9dc0cbaece
Add retries to protocol queries ( #65 )
...
* Add retries to query(), defaults to 3 + add tests
* Catch also json decoding errors for retries
* add missing exceptions file, fix old protocol tests
2020-05-27 20:02:09 +03:00