Add types package for paho-mqtt (#83599)
This commit is contained in:
parent
a77d9af989
commit
9a97784168
3 changed files with 11 additions and 16 deletions
|
@ -317,8 +317,8 @@ class MqttClientSetup:
|
|||
client_cert = get_file_path(CONF_CLIENT_CERT, config.get(CONF_CLIENT_CERT))
|
||||
tls_insecure = config.get(CONF_TLS_INSECURE)
|
||||
if transport == TRANSPORT_WEBSOCKETS:
|
||||
ws_path = config.get(CONF_WS_PATH)
|
||||
ws_headers = config.get(CONF_WS_HEADERS)
|
||||
ws_path: str = config[CONF_WS_PATH]
|
||||
ws_headers: dict[str, str] = config[CONF_WS_HEADERS]
|
||||
self._client.ws_set_options(ws_path, ws_headers)
|
||||
if certificate is not None:
|
||||
self._client.tls_set(
|
||||
|
@ -340,6 +340,8 @@ class MqttClientSetup:
|
|||
class MQTT:
|
||||
"""Home Assistant MQTT client."""
|
||||
|
||||
_mqttc: mqtt.Client
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
hass: HomeAssistant,
|
||||
|
@ -347,10 +349,6 @@ class MQTT:
|
|||
conf: ConfigType,
|
||||
) -> None:
|
||||
"""Initialize Home Assistant MQTT client."""
|
||||
# We don't import on the top because some integrations
|
||||
# should be able to optionally rely on MQTT.
|
||||
import paho.mqtt.client as mqtt # pylint: disable=import-outside-toplevel
|
||||
|
||||
self._mqtt_data = get_mqtt_data(hass)
|
||||
|
||||
self.hass = hass
|
||||
|
@ -360,7 +358,6 @@ class MQTT:
|
|||
self.connected = False
|
||||
self._ha_started = asyncio.Event()
|
||||
self._last_subscribe = time.time()
|
||||
self._mqttc: mqtt.Client = None
|
||||
self._cleanup_on_unload: list[Callable[[], None]] = []
|
||||
|
||||
self._paho_lock = asyncio.Lock() # Prevents parallel calls to the MQTT client
|
||||
|
@ -526,12 +523,9 @@ class MQTT:
|
|||
"""
|
||||
|
||||
def _client_unsubscribe(topic: str) -> int:
|
||||
result: int | None = None
|
||||
mid: int | None = None
|
||||
result, mid = self._mqttc.unsubscribe(topic)
|
||||
_LOGGER.debug("Unsubscribing from %s, mid: %s", topic, mid)
|
||||
_raise_on_error(result)
|
||||
assert mid
|
||||
return mid
|
||||
|
||||
if any(other.topic == topic for other in self.subscriptions):
|
||||
|
@ -563,8 +557,8 @@ class MQTT:
|
|||
_process_client_subscriptions
|
||||
)
|
||||
|
||||
tasks = []
|
||||
errors = []
|
||||
tasks: list[Coroutine[Any, Any, None]] = []
|
||||
errors: list[int] = []
|
||||
for result, mid in results:
|
||||
if result == 0:
|
||||
tasks.append(self._wait_for_mid(mid))
|
||||
|
@ -777,7 +771,7 @@ class MQTT:
|
|||
)
|
||||
|
||||
|
||||
def _raise_on_errors(result_codes: Iterable[int | None]) -> None:
|
||||
def _raise_on_errors(result_codes: Iterable[int]) -> None:
|
||||
"""Raise error if error result."""
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
import paho.mqtt.client as mqtt
|
||||
|
@ -790,7 +784,7 @@ def _raise_on_errors(result_codes: Iterable[int | None]) -> None:
|
|||
raise HomeAssistantError(f"Error talking to MQTT: {', '.join(messages)}")
|
||||
|
||||
|
||||
def _raise_on_error(result_code: int | None) -> None:
|
||||
def _raise_on_error(result_code: int) -> None:
|
||||
"""Raise error if error result."""
|
||||
_raise_on_errors((result_code,))
|
||||
|
||||
|
|
|
@ -177,7 +177,7 @@ async def async_create_certificate_temp_files(
|
|||
await hass.async_add_executor_job(_create_temp_dir_and_files)
|
||||
|
||||
|
||||
def get_file_path(option: str, default: str | None = None) -> Path | str | None:
|
||||
def get_file_path(option: str, default: str | None = None) -> str | None:
|
||||
"""Get file path of a certificate file."""
|
||||
temp_dir = Path(tempfile.gettempdir()) / TEMP_DIR_NAME
|
||||
if not temp_dir.exists():
|
||||
|
@ -187,7 +187,7 @@ def get_file_path(option: str, default: str | None = None) -> Path | str | None:
|
|||
if not file_path.exists():
|
||||
return default
|
||||
|
||||
return temp_dir / option
|
||||
return str(temp_dir / option)
|
||||
|
||||
|
||||
def migrate_certificate_file_to_content(file_name_or_auto: str) -> str | None:
|
||||
|
|
|
@ -39,6 +39,7 @@ types-chardet==0.1.5
|
|||
types-decorator==0.1.7
|
||||
types-enum34==0.1.8
|
||||
types-ipaddress==0.1.5
|
||||
types-paho-mqtt==1.6.0.1
|
||||
types-pkg-resources==0.1.3
|
||||
types-python-dateutil==2.8.19.2
|
||||
types-python-slugify==0.1.2
|
||||
|
|
Loading…
Add table
Reference in a new issue