Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions kasa/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
UnsupportedDeviceException,
)
from kasa.iotprotocol import IotProtocol
from kasa.protocol import TPLinkProtocol, TPLinkSmartHomeProtocol
from kasa.protocol import BaseProtocol, TPLinkSmartHomeProtocol
from kasa.smartbulb import SmartBulb, SmartBulbPreset, TurnOnBehavior, TurnOnBehaviors
from kasa.smartdevice import DeviceType, SmartDevice
from kasa.smartdimmer import SmartDimmer
Expand All @@ -44,7 +44,7 @@
__all__ = [
"Discover",
"TPLinkSmartHomeProtocol",
"TPLinkProtocol",
"BaseProtocol",
"IotProtocol",
"SmartProtocol",
"SmartBulb",
Expand Down
6 changes: 3 additions & 3 deletions kasa/device_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
from .iotprotocol import IotProtocol
from .klaptransport import KlapTransport, KlapTransportV2
from .protocol import (
BaseProtocol,
BaseTransport,
TPLinkProtocol,
TPLinkSmartHomeProtocol,
_XorTransport,
)
Expand Down Expand Up @@ -141,14 +141,14 @@ def get_device_class_from_family(device_type: str) -> Optional[Type[SmartDevice]

def get_protocol(
config: DeviceConfig,
) -> Optional[TPLinkProtocol]:
) -> Optional[BaseProtocol]:
"""Return the protocol from the connection name."""
protocol_name = config.connection_type.device_family.value.split(".")[0]
protocol_transport_key = (
protocol_name + "." + config.connection_type.encryption_type.value
)
supported_device_protocols: Dict[
str, Tuple[Type[TPLinkProtocol], Type[BaseTransport]]
str, Tuple[Type[BaseProtocol], Type[BaseTransport]]
] = {
"IOT.XOR": (TPLinkSmartHomeProtocol, _XorTransport),
"IOT.KLAP": (IotProtocol, KlapTransport),
Expand Down
4 changes: 2 additions & 2 deletions kasa/iotprotocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@
TimeoutException,
)
from .json import dumps as json_dumps
from .protocol import BaseTransport, TPLinkProtocol
from .protocol import BaseProtocol, BaseTransport

_LOGGER = logging.getLogger(__name__)


class IotProtocol(TPLinkProtocol):
class IotProtocol(BaseProtocol):
"""Class for the legacy TPLink IOT KASA Protocol."""

BACKOFF_SECONDS_AFTER_TIMEOUT = 1
Expand Down
4 changes: 2 additions & 2 deletions kasa/protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ async def close(self) -> None:
"""Close the transport. Abstract method to be overriden."""


class TPLinkProtocol(ABC):
class BaseProtocol(ABC):
"""Base class for all TP-Link Smart Home communication."""

def __init__(
Expand Down Expand Up @@ -140,7 +140,7 @@ async def close(self) -> None:
"""Close the transport. Abstract method to be overriden."""


class TPLinkSmartHomeProtocol(TPLinkProtocol):
class TPLinkSmartHomeProtocol(BaseProtocol):
"""Implementation of the TP-Link Smart Home protocol."""

INITIALIZATION_VECTOR = 171
Expand Down
4 changes: 2 additions & 2 deletions kasa/smartbulb.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

from .deviceconfig import DeviceConfig
from .modules import Antitheft, Cloud, Countdown, Emeter, Schedule, Time, Usage
from .protocol import TPLinkProtocol
from .protocol import BaseProtocol
from .smartdevice import DeviceType, SmartDevice, SmartDeviceException, requires_update


Expand Down Expand Up @@ -222,7 +222,7 @@ def __init__(
host: str,
*,
config: Optional[DeviceConfig] = None,
protocol: Optional[TPLinkProtocol] = None,
protocol: Optional[BaseProtocol] = None,
) -> None:
super().__init__(host=host, config=config, protocol=protocol)
self._device_type = DeviceType.Bulb
Expand Down
6 changes: 3 additions & 3 deletions kasa/smartdevice.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
from .emeterstatus import EmeterStatus
from .exceptions import SmartDeviceException
from .modules import Emeter, Module
from .protocol import TPLinkProtocol, TPLinkSmartHomeProtocol, _XorTransport
from .protocol import BaseProtocol, TPLinkSmartHomeProtocol, _XorTransport

_LOGGER = logging.getLogger(__name__)

Expand Down Expand Up @@ -196,15 +196,15 @@ def __init__(
host: str,
*,
config: Optional[DeviceConfig] = None,
protocol: Optional[TPLinkProtocol] = None,
protocol: Optional[BaseProtocol] = None,
) -> None:
"""Create a new SmartDevice instance.

:param str host: host name or ip address on which the device listens
"""
if config and protocol:
protocol._transport._config = config
self.protocol: TPLinkProtocol = protocol or TPLinkSmartHomeProtocol(
self.protocol: BaseProtocol = protocol or TPLinkSmartHomeProtocol(
transport=_XorTransport(config=config or DeviceConfig(host=host)),
)
_LOGGER.debug("Initializing %s of type %s", self.host, type(self))
Expand Down
4 changes: 2 additions & 2 deletions kasa/smartdimmer.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from kasa.deviceconfig import DeviceConfig
from kasa.modules import AmbientLight, Motion
from kasa.protocol import TPLinkProtocol
from kasa.protocol import BaseProtocol
from kasa.smartdevice import DeviceType, SmartDeviceException, requires_update
from kasa.smartplug import SmartPlug

Expand Down Expand Up @@ -70,7 +70,7 @@ def __init__(
host: str,
*,
config: Optional[DeviceConfig] = None,
protocol: Optional[TPLinkProtocol] = None,
protocol: Optional[BaseProtocol] = None,
) -> None:
super().__init__(host=host, config=config, protocol=protocol)
self._device_type = DeviceType.Dimmer
Expand Down
4 changes: 2 additions & 2 deletions kasa/smartlightstrip.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from .deviceconfig import DeviceConfig
from .effects import EFFECT_MAPPING_V1, EFFECT_NAMES_V1
from .protocol import TPLinkProtocol
from .protocol import BaseProtocol
from .smartbulb import SmartBulb
from .smartdevice import DeviceType, SmartDeviceException, requires_update

Expand Down Expand Up @@ -48,7 +48,7 @@ def __init__(
host: str,
*,
config: Optional[DeviceConfig] = None,
protocol: Optional[TPLinkProtocol] = None,
protocol: Optional[BaseProtocol] = None,
) -> None:
super().__init__(host=host, config=config, protocol=protocol)
self._device_type = DeviceType.LightStrip
Expand Down
4 changes: 2 additions & 2 deletions kasa/smartplug.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from kasa.deviceconfig import DeviceConfig
from kasa.modules import Antitheft, Cloud, Schedule, Time, Usage
from kasa.protocol import TPLinkProtocol
from kasa.protocol import BaseProtocol
from kasa.smartdevice import DeviceType, SmartDevice, requires_update

_LOGGER = logging.getLogger(__name__)
Expand Down Expand Up @@ -45,7 +45,7 @@ def __init__(
host: str,
*,
config: Optional[DeviceConfig] = None,
protocol: Optional[TPLinkProtocol] = None,
protocol: Optional[BaseProtocol] = None,
) -> None:
super().__init__(host=host, config=config, protocol=protocol)
self._device_type = DeviceType.Plug
Expand Down
4 changes: 2 additions & 2 deletions kasa/smartprotocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@
TimeoutException,
)
from .json import dumps as json_dumps
from .protocol import BaseTransport, TPLinkProtocol, md5
from .protocol import BaseProtocol, BaseTransport, md5

_LOGGER = logging.getLogger(__name__)


class SmartProtocol(TPLinkProtocol):
class SmartProtocol(BaseProtocol):
"""Class for the new TPLink SMART protocol."""

BACKOFF_SECONDS_AFTER_TIMEOUT = 1
Expand Down
4 changes: 2 additions & 2 deletions kasa/smartstrip.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

from .deviceconfig import DeviceConfig
from .modules import Antitheft, Countdown, Emeter, Schedule, Time, Usage
from .protocol import TPLinkProtocol
from .protocol import BaseProtocol

_LOGGER = logging.getLogger(__name__)

Expand Down Expand Up @@ -87,7 +87,7 @@ def __init__(
host: str,
*,
config: Optional[DeviceConfig] = None,
protocol: Optional[TPLinkProtocol] = None,
protocol: Optional[BaseProtocol] = None,
) -> None:
super().__init__(host=host, config=config, protocol=protocol)
self.emeter_type = "emeter"
Expand Down
4 changes: 2 additions & 2 deletions kasa/tapo/tapodevice.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from ..emeterstatus import EmeterStatus
from ..exceptions import AuthenticationException, SmartDeviceException
from ..modules import Emeter
from ..protocol import TPLinkProtocol
from ..protocol import BaseProtocol
from ..smartdevice import SmartDevice, WifiNetwork
from ..smartprotocol import SmartProtocol

Expand All @@ -24,7 +24,7 @@ def __init__(
host: str,
*,
config: Optional[DeviceConfig] = None,
protocol: Optional[TPLinkProtocol] = None,
protocol: Optional[BaseProtocol] = None,
) -> None:
_protocol = protocol or SmartProtocol(
transport=AesTransport(config=config or DeviceConfig(host=host)),
Expand Down
4 changes: 2 additions & 2 deletions kasa/tapo/tapoplug.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from typing import Any, Dict, Optional, cast

from ..deviceconfig import DeviceConfig
from ..protocol import TPLinkProtocol
from ..protocol import BaseProtocol
from ..smartdevice import DeviceType
from .tapodevice import TapoDevice

Expand All @@ -19,7 +19,7 @@ def __init__(
host: str,
*,
config: Optional[DeviceConfig] = None,
protocol: Optional[TPLinkProtocol] = None,
protocol: Optional[BaseProtocol] = None,
) -> None:
super().__init__(host=host, config=config, protocol=protocol)
self._device_type = DeviceType.Plug
Expand Down
4 changes: 2 additions & 2 deletions kasa/tests/test_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
from ..exceptions import SmartDeviceException
from ..klaptransport import KlapTransport, KlapTransportV2
from ..protocol import (
BaseProtocol,
BaseTransport,
TPLinkProtocol,
TPLinkSmartHomeProtocol,
_XorTransport,
)
Expand Down Expand Up @@ -345,7 +345,7 @@ def _get_subclasses(of_class):


@pytest.mark.parametrize(
"class_name_obj", _get_subclasses(TPLinkProtocol), ids=lambda t: t[0]
"class_name_obj", _get_subclasses(BaseProtocol), ids=lambda t: t[0]
)
def test_protocol_init_signature(class_name_obj):
params = list(inspect.signature(class_name_obj[1].__init__).parameters.values())
Expand Down