Remove support for python <3.11 (#1273)

Python 3.11 ships with latest Debian Bookworm. 
pypy is not that widely used with this library based on statistics. It could be added back when pypy supports python 3.11.
This commit is contained in:
Steven B.
2024-11-18 18:46:36 +00:00
committed by GitHub
parent 0c40939624
commit a01247d48f
55 changed files with 176 additions and 620 deletions

View File

@@ -12,7 +12,7 @@ import logging
import time
from collections.abc import AsyncGenerator
from enum import Enum, auto
from typing import TYPE_CHECKING, Any, Dict, cast
from typing import TYPE_CHECKING, Any, cast
from cryptography.hazmat.primitives import hashes, padding, serialization
from cryptography.hazmat.primitives.asymmetric import padding as asymmetric_padding
@@ -193,7 +193,7 @@ class AesTransport(BaseTransport):
)
if TYPE_CHECKING:
resp_dict = cast(Dict[str, Any], resp_dict)
resp_dict = cast(dict[str, Any], resp_dict)
assert self._encryption_session is not None
self._handle_response_error_code(
@@ -326,7 +326,7 @@ class AesTransport(BaseTransport):
)
if TYPE_CHECKING:
resp_dict = cast(Dict[str, Any], resp_dict)
resp_dict = cast(dict[str, Any], resp_dict)
self._handle_response_error_code(resp_dict, "Unable to complete handshake")

View File

@@ -51,7 +51,8 @@ import secrets
import struct
import time
from asyncio import Future
from typing import TYPE_CHECKING, Any, Generator, cast
from collections.abc import Generator
from typing import TYPE_CHECKING, Any, cast
from cryptography.hazmat.primitives import padding
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes

View File

@@ -9,7 +9,7 @@ import logging
import secrets
import ssl
from enum import Enum, auto
from typing import TYPE_CHECKING, Any, Dict, cast
from typing import TYPE_CHECKING, Any, cast
from yarl import URL
@@ -227,7 +227,7 @@ class SslAesTransport(BaseTransport):
)
if TYPE_CHECKING:
resp_dict = cast(Dict[str, Any], resp_dict)
resp_dict = cast(dict[str, Any], resp_dict)
assert self._encryption_session is not None
if "result" in resp_dict and "response" in resp_dict["result"]:
@@ -393,7 +393,7 @@ class SslAesTransport(BaseTransport):
raise AuthenticationError(f"Error trying handshake1: {resp_dict}")
if TYPE_CHECKING:
resp_dict = cast(Dict[str, Any], resp_dict)
resp_dict = cast(dict[str, Any], resp_dict)
server_nonce = resp_dict["result"]["data"]["nonce"]
device_confirm = resp_dict["result"]["data"]["device_confirm"]

View File

@@ -18,12 +18,9 @@ import errno
import logging
import socket
import struct
from asyncio import timeout as asyncio_timeout
from collections.abc import Generator
# When support for cpython older than 3.11 is dropped
# async_timeout can be replaced with asyncio.timeout
from async_timeout import timeout as asyncio_timeout
from kasa.deviceconfig import DeviceConfig
from kasa.exceptions import KasaException, _RetryableError
from kasa.json import loads as json_loads