simplify inheritance

This commit is contained in:
Feng Wang 2024-12-23 16:43:34 +08:00
parent 43fd2bf42e
commit 23bf6817b9

View File

@ -305,9 +305,6 @@ class _MipsClient(ABC):
@final @final
def connect(self) -> None: def connect(self) -> None:
"""mips connect.""" """mips connect."""
# TODO: make this more precise
# Mark as not closed, though also not connected yet
self._is_closed = False
# Start mips thread # Start mips thread
self._internal_loop = asyncio.new_event_loop() self._internal_loop = asyncio.new_event_loop()
self._mips_thread = threading.Thread(target=self.__mips_loop_thread) self._mips_thread = threading.Thread(target=self.__mips_loop_thread)
@ -317,8 +314,6 @@ class _MipsClient(ABC):
@final @final
def close(self) -> None: def close(self) -> None:
self._is_connected = False
self._internal_loop.call_soon_threadsafe(self.__mips_close) self._internal_loop.call_soon_threadsafe(self.__mips_close)
self._mips_thread.join() self._mips_thread.join()
self._internal_loop.close() self._internal_loop.close()
@ -362,21 +357,18 @@ class _MipsClient(ABC):
else: else:
self._mqtt.disable_logger() self._mqtt.disable_logger()
@final async def connect_async(self) -> None:
async def mips_connect_async(self) -> None:
"""mips connect async.""" """mips connect async."""
self.connect() self.connect()
await self._event_connect.wait() await self._event_connect.wait()
@final def disconnect(self) -> None:
def mips_disconnect(self) -> None:
"""mips disconnect.""" """mips disconnect."""
self._internal_loop.call_soon_threadsafe(self.__mips_disconnect) self._internal_loop.call_soon_threadsafe(self.__mips_disconnect)
@final async def disconnect_async(self) -> None:
async def mips_disconnect_async(self) -> None:
"""mips disconnect async.""" """mips disconnect async."""
self.mips_disconnect() self.disconnect()
await self._event_disconnect.wait() await self._event_disconnect.wait()
@final @final
@ -797,18 +789,9 @@ class MipsCloudClient(_MipsClient):
client_id=f'ha.{uuid}', host=f'{cloud_server}-ha.mqtt.io.mi.com', client_id=f'ha.{uuid}', host=f'{cloud_server}-ha.mqtt.io.mi.com',
port=port, username=app_id, password=token, loop=loop) port=port, username=app_id, password=token, loop=loop)
@final
async def connect_async(self) -> None:
await self.mips_connect_async()
@final @final
def disconnect(self) -> None: def disconnect(self) -> None:
self.mips_disconnect() super().disconnect()
self._msg_matcher = MIoTMatcher()
@final
async def disconnect_async(self) -> None:
await self.mips_disconnect_async()
self._msg_matcher = MIoTMatcher() self._msg_matcher = MIoTMatcher()
def update_access_token(self, access_token: str) -> bool: def update_access_token(self, access_token: str) -> bool:
@ -1102,19 +1085,9 @@ class MipsLocalClient(_MipsClient):
if self._logger: if self._logger:
self._logger.error(f'{self._home_name}, '+msg, *args, **kwargs) self._logger.error(f'{self._home_name}, '+msg, *args, **kwargs)
@final
async def connect_async(self) -> None:
await self.mips_connect_async()
@final @final
def disconnect(self) -> None: def disconnect(self) -> None:
self.mips_disconnect() super().disconnect()
self._request_map = {}
self._msg_matcher = MIoTMatcher()
@final
async def disconnect_async(self) -> None:
await self.mips_disconnect_async()
self._request_map = {} self._request_map = {}
self._msg_matcher = MIoTMatcher() self._msg_matcher = MIoTMatcher()