From c74c3179229e3ac481f176bdc1d0a8679bf619cb Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Tue, 21 Oct 2025 12:06:40 +0200 Subject: [PATCH] Update slixmpp to 1.12.0 (#154872) --- homeassistant/components/harmony/__init__.py | 11 ++------- .../components/harmony/manifest.json | 2 +- homeassistant/components/xmpp/manifest.json | 5 +--- homeassistant/components/xmpp/notify.py | 24 +++++++------------ requirements_all.txt | 6 ++--- requirements_test_all.txt | 2 +- tests/components/harmony/conftest.py | 9 +------ 7 files changed, 17 insertions(+), 42 deletions(-) diff --git a/homeassistant/components/harmony/__init__.py b/homeassistant/components/harmony/__init__.py index 17b6cf08910..ed956b07183 100644 --- a/homeassistant/components/harmony/__init__.py +++ b/homeassistant/components/harmony/__init__.py @@ -3,18 +3,15 @@ from __future__ import annotations import logging -import sys from homeassistant.components.remote import ATTR_ACTIVITY, ATTR_DELAY_SECS from homeassistant.const import CONF_HOST, CONF_NAME, EVENT_HOMEASSISTANT_STOP from homeassistant.core import Event, HomeAssistant, callback -from homeassistant.exceptions import HomeAssistantError from homeassistant.helpers import entity_registry as er from homeassistant.helpers.dispatcher import async_dispatcher_send -if sys.version_info < (3, 14): - from .const import HARMONY_OPTIONS_UPDATE, PLATFORMS - from .data import HarmonyConfigEntry, HarmonyData +from .const import HARMONY_OPTIONS_UPDATE, PLATFORMS +from .data import HarmonyConfigEntry, HarmonyData _LOGGER = logging.getLogger(__name__) @@ -25,10 +22,6 @@ async def async_setup_entry(hass: HomeAssistant, entry: HarmonyConfigEntry) -> b # when setting up a config entry, we fallback to adding # the options to the config entry and pull them out here if # they are missing from the options - if sys.version_info >= (3, 14): - raise HomeAssistantError( - "Logitech Harmony Hub is not supported on Python 3.14. Please use Python 3.13." - ) _async_import_options_from_data_if_missing(hass, entry) address = entry.data[CONF_HOST] diff --git a/homeassistant/components/harmony/manifest.json b/homeassistant/components/harmony/manifest.json index 795c9c5ed88..f74bff314a4 100644 --- a/homeassistant/components/harmony/manifest.json +++ b/homeassistant/components/harmony/manifest.json @@ -7,7 +7,7 @@ "documentation": "https://www.home-assistant.io/integrations/harmony", "iot_class": "local_push", "loggers": ["aioharmony", "slixmpp"], - "requirements": ["aioharmony==0.5.3;python_version<'3.14'"], + "requirements": ["aioharmony==0.5.3"], "ssdp": [ { "manufacturer": "Logitech", diff --git a/homeassistant/components/xmpp/manifest.json b/homeassistant/components/xmpp/manifest.json index 8c3a56da2bf..4070a31689b 100644 --- a/homeassistant/components/xmpp/manifest.json +++ b/homeassistant/components/xmpp/manifest.json @@ -6,8 +6,5 @@ "iot_class": "cloud_push", "loggers": ["pyasn1", "slixmpp"], "quality_scale": "legacy", - "requirements": [ - "slixmpp==1.10.0;python_version<'3.14'", - "emoji==2.8.0;python_version<'3.14'" - ] + "requirements": ["slixmpp==1.12.0", "emoji==2.8.0"] } diff --git a/homeassistant/components/xmpp/notify.py b/homeassistant/components/xmpp/notify.py index e1d6b9b1160..d44a826e50c 100644 --- a/homeassistant/components/xmpp/notify.py +++ b/homeassistant/components/xmpp/notify.py @@ -9,9 +9,16 @@ import mimetypes import pathlib import random import string -import sys import requests +import slixmpp +from slixmpp.exceptions import IqError, IqTimeout, XMPPError +from slixmpp.plugins.xep_0363.http_upload import ( + FileTooBig, + FileUploadError, + UploadServiceNotFound, +) +from slixmpp.xmlstream.xmlstream import NotConnectedError import voluptuous as vol from homeassistant.components.notify import ( @@ -30,20 +37,9 @@ from homeassistant.const import ( CONF_SENDER, ) from homeassistant.core import HomeAssistant -from homeassistant.exceptions import HomeAssistantError from homeassistant.helpers import config_validation as cv, template as template_helper from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType -if sys.version_info < (3, 14): - import slixmpp - from slixmpp.exceptions import IqError, IqTimeout, XMPPError - from slixmpp.plugins.xep_0363.http_upload import ( - FileTooBig, - FileUploadError, - UploadServiceNotFound, - ) - from slixmpp.xmlstream.xmlstream import NotConnectedError - _LOGGER = logging.getLogger(__name__) ATTR_PATH = "path" @@ -79,10 +75,6 @@ async def async_get_service( discovery_info: DiscoveryInfoType | None = None, ) -> XmppNotificationService: """Get the Jabber (XMPP) notification service.""" - if sys.version_info >= (3, 14): - raise HomeAssistantError( - "Jabber (XMPP) is not supported on Python 3.14. Please use Python 3.13." - ) return XmppNotificationService( config.get(CONF_SENDER), config.get(CONF_RESOURCE), diff --git a/requirements_all.txt b/requirements_all.txt index 8559e9c25b4..1e318445279 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -268,7 +268,7 @@ aiogithubapi==24.6.0 aioguardian==2022.07.0 # homeassistant.components.harmony -aioharmony==0.5.3;python_version<'3.14' +aioharmony==0.5.3 # homeassistant.components.hassio aiohasupervisor==0.3.3 @@ -883,7 +883,7 @@ elmax-api==0.0.6.4rc0 elvia==0.1.0 # homeassistant.components.xmpp -emoji==2.8.0;python_version<'3.14' +emoji==2.8.0 # homeassistant.components.emulated_roku emulated-roku==0.3.0 @@ -2849,7 +2849,7 @@ skyboxremote==0.0.6 slack_sdk==3.33.4 # homeassistant.components.xmpp -slixmpp==1.10.0;python_version<'3.14' +slixmpp==1.12.0 # homeassistant.components.smart_meter_texas smart-meter-texas==0.5.5 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index c3a757301b5..65a5e05b424 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -253,7 +253,7 @@ aiogithubapi==24.6.0 aioguardian==2022.07.0 # homeassistant.components.harmony -aioharmony==0.5.3;python_version<'3.14' +aioharmony==0.5.3 # homeassistant.components.hassio aiohasupervisor==0.3.3 diff --git a/tests/components/harmony/conftest.py b/tests/components/harmony/conftest.py index 701a6410e73..65cedf568d6 100644 --- a/tests/components/harmony/conftest.py +++ b/tests/components/harmony/conftest.py @@ -3,9 +3,9 @@ from __future__ import annotations from collections.abc import Generator -import sys from unittest.mock import AsyncMock, MagicMock, PropertyMock, patch +from aioharmony.const import ClientCallbackType import pytest from homeassistant.components.harmony.const import ACTIVITY_POWER_OFF, DOMAIN @@ -20,13 +20,6 @@ from .const import ( from tests.common import MockConfigEntry -if sys.version_info < (3, 14): - from aioharmony.const import ClientCallbackType - -if sys.version_info >= (3, 14): - collect_ignore_glob = ["test_*.py"] - - ACTIVITIES_TO_IDS = { ACTIVITY_POWER_OFF: -1, "Watch TV": WATCH_TV_ACTIVITY_ID,