home-assistant: 2025.1.4 -> 2025.2.0 (#379685)

This commit is contained in:
Martin Weinelt
2025-02-06 19:08:54 +01:00
committed by GitHub
93 changed files with 942 additions and 419 deletions
+35 -4
View File
@@ -12,7 +12,34 @@ let
python = python3.override {
self = python;
packageOverrides = self: super: {
aiojellyfin = super.aiojellyfin.overridePythonAttrs (oldAttrs: rec {
version = "0.10.1";
src = fetchFromGitHub {
owner = "Jc2k";
repo = "aiojellyfin";
tag = "v${version}";
hash = "sha256-A+uvM1/7HntRMIdknfHr0TMGIjHk7BCwsZopXdVoEO8=";
};
});
music-assistant-frontend = self.callPackage ./frontend.nix { };
music-assistant-models = super.music-assistant-models.overridePythonAttrs (oldAttrs: rec {
version = "1.1.4";
src = fetchFromGitHub {
owner = "music-assistant";
repo = "models";
tag = version;
hash = "sha256-keig18o32X53q/QcoaPO0o9AT4XTEZ+dQ3L6u6BVkLU=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "0.0.0" "${version}"
'';
});
};
};
@@ -27,14 +54,14 @@ in
python.pkgs.buildPythonApplication rec {
pname = "music-assistant";
version = "2.3.4";
version = "2.3.6";
pyproject = true;
src = fetchFromGitHub {
owner = "music-assistant";
repo = "server";
tag = version;
hash = "sha256-HV2R5zMTao8akUNZMGRKbU8BIxWmdjKFLsGMqA5cfBs=";
hash = "sha256-CSGpG1E4ou1TGz/S1mXFHyk49p7dStEwxUTB+xxfNEc=";
};
patches = [
@@ -58,6 +85,7 @@ python.pkgs.buildPythonApplication rec {
pythonRelaxDeps = [
"aiohttp"
"certifi"
"colorlog"
"cryptography"
"mashumaro"
@@ -111,6 +139,7 @@ python.pkgs.buildPythonApplication rec {
aiojellyfin
pytest-aiohttp
pytest-cov-stub
pytest-timeout
pytestCheckHook
syrupy
pytest-timeout
@@ -118,8 +147,10 @@ python.pkgs.buildPythonApplication rec {
++ lib.flatten (lib.attrValues optional-dependencies);
pytestFlagsArray = [
# blocks in setup
"--deselect=tests/server/providers/jellyfin/test_init.py::test_initial_sync"
# blocks in poll()
"--deselect=tests/providers/jellyfin/test_init.py::test_initial_sync"
"--deselect=tests/core/test_server_base.py::test_start_and_stop_server"
"--deselect=tests/core/test_server_base.py::test_events"
];
pythonImportsCheck = [ "music_assistant" ];
@@ -1,7 +1,7 @@
# Do not edit manually, run ./update-providers.py
{
version = "2.3.4";
version = "2.3.6";
providers = {
airplay = ps: [
];
@@ -20,7 +20,7 @@
buildPythonPackage rec {
pname = "aioautomower";
version = "2025.1.0";
version = "2025.1.1";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
owner = "Thomas55555";
repo = "aioautomower";
tag = version;
hash = "sha256-MEZdYOpBAHmWidzq+7SpEFsHNYlSaIQ4utnGK9Y3/NE=";
hash = "sha256-5/NG3VMJfLOCQDqnP1LVRJlT08LDITlZZFb3aYjtm5I=";
};
postPatch = ''
@@ -16,14 +16,14 @@
buildPythonPackage rec {
pname = "aiodhcpwatcher";
version = "1.0.2";
version = "1.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "bdraco";
repo = "aiodhcpwatcher";
rev = "v${version}";
hash = "sha256-KZL5DejzDmizvvMUNfkFltl1xXz+2jX/3DVj60x6xOk=";
hash = "sha256-/4x+FhKCEIpmFSTC5PIEe4QsYojrvx4Wlf7+WUvSHu8=";
};
postPatch = ''
@@ -49,7 +49,7 @@ buildPythonPackage rec {
description = "Watch for DHCP packets with asyncio";
homepage = "https://github.com/bdraco/aiodhcpwatcher";
changelog = "https://github.com/bdraco/aiodhcpwatcher/blob/${src.rev}/CHANGELOG.md";
license = licenses.gpl3Only;
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
platforms = platforms.linux;
};
@@ -3,31 +3,37 @@
aiohttp,
async-timeout,
buildPythonPackage,
fetchPypi,
pythonOlder,
fetchFromGitHub,
pytest-cov-stub,
pytestCheckHook,
setuptools,
slixmpp,
}:
buildPythonPackage rec {
pname = "aioharmony";
version = "0.2.10";
format = "setuptools";
version = "0.4.1";
pyproject = true;
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-18+38QunEdEGdirQOT+528vYqiqDuUr/CWRQtXKf4rs=";
src = fetchFromGitHub {
owner = "Harmony-Libs";
repo = "aioharmony";
tag = "v${version}";
hash = "sha256-X7oL4jokomNLhBEp4z8t11Yv/4pNDnqFurPmChXUU3o=";
};
propagatedBuildInputs = [
build-system = [ setuptools ];
dependencies = [
aiohttp
async-timeout
slixmpp
];
# aioharmony does not seem to include tests
doCheck = false;
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [
"aioharmony.harmonyapi"
@@ -35,7 +41,7 @@ buildPythonPackage rec {
];
meta = with lib; {
homepage = "https://github.com/ehendrix23/aioharmony";
homepage = "https://github.com/Harmony-Libs/aioharmony";
description = "Python library for interacting the Logitech Harmony devices";
mainProgram = "aioharmony";
license = licenses.asl20;
@@ -3,7 +3,7 @@
aiohttp,
aioresponses,
buildPythonPackage,
fetchPypi,
fetchFromGitHub,
mashumaro,
orjson,
pytest-aiohttp,
@@ -17,18 +17,21 @@
buildPythonPackage rec {
pname = "aiohasupervisor";
version = "0.2.2b5";
version = "0.3.0";
pyproject = true;
disabled = pythonOlder "3.12";
src = fetchPypi {
inherit pname version;
hash = "sha256-EFVhR7L+1SVzXO4UpDrXA1EuPdeew55CV4ykO3K5BFI=";
src = fetchFromGitHub {
owner = "home-assistant-libs";
repo = "python-supervisor-client";
tag = version;
hash = "sha256-72YRaTlgRJ8liQ1q+Hx1iCG8Av7wWk61t306fYT9gss=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'version = "0.0.0"' 'version = "${version}"' \
--replace-fail "setuptools~=68.0.0" "setuptools>=68.0.0" \
--replace-fail "wheel~=0.40.0" "wheel>=0.40.0"
'';
@@ -56,6 +59,7 @@ buildPythonPackage rec {
pythonImportsCheck = [ "aiohasupervisor" ];
meta = {
changelog = "https://github.com/home-assistant-libs/python-supervisor-client/releases/tag/${src.tag}";
description = "Client for Home Assistant Supervisor";
homepage = "https://github.com/home-assistant-libs/python-supervisor-client";
license = lib.licenses.asl20;
@@ -0,0 +1,52 @@
{
lib,
aiodns,
aiohttp,
buildPythonPackage,
fetchFromGitHub,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
setuptools,
zeroconf,
}:
buildPythonPackage rec {
pname = "aiohttp-asyncmdnsresolver";
version = "0.0.3";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "aio-libs";
repo = "aiohttp-asyncmdnsresolver";
rev = "v${version}";
hash = "sha256-YtBPMhRbilLY0VV1qVIPBYT0w91MbsUo2nbr4ODgCZA=";
};
build-system = [ setuptools ];
dependencies = [
aiodns
aiohttp
zeroconf
];
nativeCheckInputs = [
pytest-asyncio
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "aiohttp_asyncmdnsresolver" ];
meta = {
description = "Module to resolve mDNS with aiohttp";
homepage = "https://github.com/aio-libs/aiohttp-asyncmdnsresolver";
changelog = "https://github.com/aio-libs/aiohttp-asyncmdnsresolver/blob/${src.rev}/CHANGES.rst";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
}
@@ -22,6 +22,12 @@ buildPythonPackage rec {
hash = "sha256-Vx51WBjjNPIfLlwMnAuwHnGNljhnjKkU0tWB9M9rjsw=";
};
postPatch = ''
substituteInPlace aiomodernforms/modernforms.py --replace-fail \
"with async_timeout.timeout(self._request_timeout):" \
"async with async_timeout.timeout(self._request_timeout):"
'';
propagatedBuildInputs = [
aiohttp
backoff
@@ -3,7 +3,7 @@
anyio,
buildPythonPackage,
fetchFromGitHub,
paho-mqtt_2,
paho-mqtt,
poetry-core,
poetry-dynamic-versioning,
pytestCheckHook,
@@ -31,7 +31,7 @@ buildPythonPackage rec {
];
dependencies = [
paho-mqtt_2
paho-mqtt
typing-extensions
];
@@ -48,6 +48,7 @@ buildPythonPackage rec {
];
meta = with lib; {
broken = lib.versionOlder "paho-mqtt" "2";
description = "Idiomatic asyncio MQTT client, wrapped around paho-mqtt";
homepage = "https://github.com/sbtinstruments/aiomqtt";
changelog = "https://github.com/sbtinstruments/aiomqtt/blob/${src.tag}/CHANGELOG.md";
@@ -37,6 +37,11 @@ buildPythonPackage rec {
pytest-asyncio
];
disabledTestPaths = [
# these tests get stuck, could be pytest-asyncio compat issue
"tests/test_connection.py"
];
pythonImportsCheck = [ "aiortsp" ];
meta = with lib; {
@@ -13,6 +13,7 @@
pytestCheckHook,
pythonAtLeast,
pythonOlder,
pytz,
time-machine,
}:
@@ -52,6 +53,7 @@ buildPythonPackage rec {
pytest-mockservers
pytest-resource-path
pytestCheckHook
pytz
time-machine
];
@@ -0,0 +1,43 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
asyncinotify,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "aiousbwatcher";
version = "1.1.1";
pyproject = true;
src = fetchFromGitHub {
owner = "Bluetooth-Devices";
repo = "aiousbwatcher";
tag = "v${version}";
hash = "sha256-M9MUaB3oHELHdtgaWri9nILnVQpF2FJvHrL68jXeOqg=";
};
build-system = [ setuptools ];
dependencies = [ asyncinotify ];
nativeCheckInputs = [
pytest-asyncio
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "aiousbwatcher" ];
meta = {
description = "Watch for USB devices to be plugged and unplugged";
homepage = "https://github.com/Bluetooth-Devices/aiousbwatcher";
changelog = "https://github.com/Bluetooth-Devices/aiousbwatcher/blob/${src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ hexa ];
};
}
@@ -4,12 +4,12 @@
fetchFromGitHub,
pythonOlder,
setuptools,
websockets,
aiohttp,
}:
buildPythonPackage rec {
pname = "aiowebostv";
version = "0.4.2";
version = "0.6.1";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -18,12 +18,12 @@ buildPythonPackage rec {
owner = "home-assistant-libs";
repo = "aiowebostv";
tag = "v${version}";
hash = "sha256-RrSEl/U6UzPoE2151opDe0QRmj6M6wAtsQyF4/dd8ek=";
hash = "sha256-x1lpqR/e3itkRc/Cs3opXF4NzOZ17g/IcHZeGo234aM=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [ websockets ];
dependencies = [ aiohttp ];
# Module doesn't have tests
doCheck = false;
@@ -24,7 +24,7 @@
buildPythonPackage rec {
pname = "anthropic";
version = "0.43.1";
version = "0.45.2";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
owner = "anthropics";
repo = "anthropic-sdk-python";
tag = "v${version}";
hash = "sha256-7tDCKFT+j6oRU4EeII4wAM1T5W4qAeg6HbBp3efO81A=";
hash = "sha256-/QuAUU0/nNhJZouCP0LVkCFMTiNdeze/fF+SZKD1Jis=";
};
build-system = [
@@ -23,7 +23,7 @@
buildPythonPackage rec {
pname = "async-upnp-client";
version = "0.42.0";
version = "0.43.0";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
owner = "StevenLooman";
repo = "async_upnp_client";
tag = version;
hash = "sha256-xIa7QeflS7JxkPoV8KqFfuLfHPpnrBGLeOFSa17IHyk=";
hash = "sha256-oGnWo+QLSq2h6R4Iirwy9kE7U47PLYYSBMjx8/WWA0o=";
};
pythonRelaxDeps = [
@@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "bellows";
version = "0.42.6";
version = "0.43.0";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "bellows";
tag = version;
hash = "sha256-qMODlsImGSvUkR+0jjrU23jJtM3c7JNJ7lY7Svli+ao=";
hash = "sha256-RbhFvoNYR4wHKKbbMKLP4Dsx0pIJnwBOP49waRHg0qk=";
};
postPatch = ''
@@ -17,7 +17,7 @@
buildPythonPackage rec {
pname = "bleak-esphome";
version = "2.0.0";
version = "2.7.1";
pyproject = true;
disabled = pythonOlder "3.10";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "bluetooth-devices";
repo = "bleak-esphome";
tag = "v${version}";
hash = "sha256-rN2vpXiOaUjjN6yNZxeEgTpcz0K5soUqKKiDDOhcBtc=";
hash = "sha256-AZkSWBMyTl2NgqmhVG4sE/N1AQGd6x4CZVYMgRKxlOQ=";
};
build-system = [ poetry-core ];
@@ -10,11 +10,12 @@
pytestCheckHook,
pythonOlder,
pytest-asyncio,
pytest-cov-stub,
}:
buildPythonPackage rec {
pname = "bleak-retry-connector";
version = "3.7.0";
version = "3.8.1";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -23,14 +24,9 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = "bleak-retry-connector";
tag = "v${version}";
hash = "sha256-+qY8BWi7zznaJBEMXfbDWjNvHEwpKq1h0XBHFum1+4M=";
hash = "sha256-Vkmn+CKQm+i+MRx12U6AmDGUyhtagoXbpeC/uou311o=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail " --cov=bleak_retry_connector --cov-report=term-missing:skip-covered" ""
'';
build-system = [ poetry-core ];
dependencies = [
@@ -42,6 +38,7 @@ buildPythonPackage rec {
nativeCheckInputs = [
pytest-asyncio
pytest-cov-stub
pytestCheckHook
];
@@ -11,6 +11,7 @@
myst-parser,
poetry-core,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
sphinx-rtd-theme,
@@ -21,7 +22,7 @@
buildPythonPackage rec {
pname = "bluetooth-adapters";
version = "0.21.0";
version = "0.21.4";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -30,14 +31,9 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = "bluetooth-adapters";
tag = "v${version}";
hash = "sha256-DQaxjSajO3SfmogWtstT6xcsUgUW80jJ5prfIajJW/s=";
hash = "sha256-JUh4v9YeqMeecJh/eTpmLMwNsxbc/oqZY2CrEJUO418=";
};
postPatch = ''
# Drop pytest arguments (coverage, ...)
sed -i '/addopts/d' pyproject.toml
'';
outputs = [
"out"
"doc"
@@ -63,6 +59,7 @@ buildPythonPackage rec {
nativeCheckInputs = [
pytest-asyncio
pytest-cov-stub
pytestCheckHook
];
@@ -6,8 +6,8 @@
cython,
poetry-core,
pytest-benchmark,
pytest-cov-stub,
pytest-codspeed,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
setuptools,
@@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "bluetooth-data-tools";
version = "1.22.0";
version = "1.23.4";
pyproject = true;
disabled = pythonOlder "3.10";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = "bluetooth-data-tools";
tag = "v${version}";
hash = "sha256-ygtpOKrvVaM2rWfzRdKj96Z229+6wPSCuZq3agx+/IY=";
hash = "sha256-WYwcczYqUd7JH68zKBQ9xl5sxX1YAHTEpi0gc81k6DY=";
};
# The project can build both an optimized cython version and an unoptimized
@@ -41,6 +41,7 @@ buildPythonPackage rec {
nativeCheckInputs = [
pytest-benchmark
pytest-codspeed
pytest-cov-stub
pytest-codspeed
pytestCheckHook
@@ -4,16 +4,20 @@
aioresponses,
buildPythonPackage,
fetchFromGitHub,
mashumaro,
orjson,
pytest-asyncio,
pytestCheckHook,
python-dotenv,
pythonOlder,
setuptools,
syrupy,
yarl,
}:
buildPythonPackage rec {
pname = "bring-api";
version = "0.9.1";
version = "1.0.0";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -22,18 +26,26 @@ buildPythonPackage rec {
owner = "miaucl";
repo = "bring-api";
tag = version;
hash = "sha256-wPplw1yYJ5xR2CzhDXXjhMFJ7swGf2AARI4a1kE8MRw=";
hash = "sha256-1K8CijA2cSyofH/qanOsDRLqnQZyBTqsnrUtvZYBS2c=";
};
build-system = [ setuptools ];
dependencies = [ aiohttp ];
dependencies = [
# https://github.com/miaucl/bring-api/blob/1.0.0/requirements.txt
# pyproject.toml is out of sync
aiohttp
yarl
mashumaro
orjson
];
nativeCheckInputs = [
aioresponses
pytest-asyncio
pytestCheckHook
python-dotenv
syrupy
];
pythonImportsCheck = [ "bring_api" ];
@@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "bthome-ble";
version = "3.11.0";
version = "3.12.4";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = "bthome-ble";
tag = "v${version}";
hash = "sha256-TlZyNGfHNKN+6tCKepLS+fbgfq3a1uzeCXl25khl6d8=";
hash = "sha256-1Kr+KKL8o1qsu/ncwclsokPcO1QHYadul/f+/Nnv6SQ=";
};
build-system = [ poetry-core ];
@@ -17,7 +17,7 @@
buildPythonPackage rec {
pname = "dbus-fast";
version = "2.30.2";
version = "2.33.0";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = "dbus-fast";
tag = "v${version}";
hash = "sha256-DGDmv7zJP5LAa90KmqSU8yJXn5q8MDL2dCQjvmDg+Bw=";
hash = "sha256-U6NAEhoEcphAuvaAA2en4Ka4yFHiKPINl5CvtxE7FaI=";
};
# The project can build both an optimized cython version and an unoptimized
@@ -1,6 +1,7 @@
{
lib,
aiohttp,
async-upnp-client,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
@@ -21,9 +22,12 @@ buildPythonPackage rec {
hash = "sha256-HmTiHa7DEmjARaYn7/OoGotnTirE7S7zXLK/TfHdEAg=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [ aiohttp ];
dependencies = [
aiohttp
async-upnp-client
];
# Module has no tests
doCheck = false;
@@ -2,7 +2,7 @@
lib,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
setuptools,
bleak,
construct,
construct-typing,
@@ -22,7 +22,7 @@ buildPythonPackage rec {
hash = "sha256-JPmIKj8IL3i7QWiMTmGQzqb4h0VqLlhILPAOqMucsuM=";
};
build-system = [ poetry-core ];
build-system = [ setuptools ];
dependencies = [
bleak
@@ -27,9 +27,9 @@ buildPythonPackage rec {
hash = "sha256-8VUXW6tIX43TV7UIxeforZIxAUqGY9uqpz6WGyH4d8E=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [
dependencies = [
aiohttp
ical
pydantic
@@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "google-nest-sdm";
version = "7.0.0";
version = "7.1.1";
pyproject = true;
disabled = pythonOlder "3.10";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "allenporter";
repo = "python-google-nest-sdm";
tag = version;
hash = "sha256-j3L0U4dcmU35eHyrB8ZASGso8lWFwSD3PGq5fRSGOg0=";
hash = "sha256-hBpAwDRmqRRWW0DiG3aXy+OXZPCXdhPzAP79mXOn1kg=";
};
build-system = [ setuptools ];
@@ -21,6 +21,12 @@ buildPythonPackage rec {
hash = "sha256-1n5HPFI/E/I4eepnpQg8hhIksr48igVy56gQ0UiMYHU=";
};
postPatch = ''
# dont depend on poetry at runtime
# https://github.com/Galorhallen/govee-local-api/pull/75/files#r1943826599
sed -i '/poetry = "^1.8.5"/d' pyproject.toml
'';
build-system = [ poetry-core ];
nativeCheckInputs = [ pytestCheckHook ];
@@ -21,7 +21,7 @@
buildPythonPackage rec {
pname = "habluetooth";
version = "3.9.0";
version = "3.21.1";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = "habluetooth";
tag = "v${version}";
hash = "sha256-JDmdbqgCcgYuPNDNBlqN/kZLRhm3+C0hf9ZC+OoEbTU=";
hash = "sha256-r7pDQ0CoLXpiIMPi0SA/gHByKhFzkEhGCiS52bvhT4c=";
};
build-system = [
@@ -17,23 +17,23 @@
buildPythonPackage rec {
pname = "hahomematic";
version = "2025.2.0";
version = "2025.2.5";
pyproject = true;
disabled = pythonOlder "3.12";
disabled = pythonOlder "3.13";
src = fetchFromGitHub {
owner = "SukramJ";
repo = "hahomematic";
tag = version;
hash = "sha256-QuPHSd6GHBu7OILMnnif/sbIuujtk+dGKIn8c6Aitq4=";
hash = "sha256-cBj5dwCGJ5++qAZ0JxlqIQKm/Lw3vWVH1DBVVDvkFco=";
};
__darwinAllowLocalNetworking = true;
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "setuptools==75.6.0" "setuptools" \
--replace-fail "setuptools==75.8.0" "setuptools" \
'';
build-system = [ setuptools ];
@@ -23,7 +23,7 @@
buildPythonPackage rec {
pname = "hass-nabucasa";
version = "0.88.1";
version = "0.89.0";
pyproject = true;
disabled = pythonOlder "3.12";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
owner = "nabucasa";
repo = "hass-nabucasa";
tag = version;
hash = "sha256-OTUrzpsv4sYLRHw3gvNlVz9h1XdR3YOQTZQZtFvqdiQ=";
hash = "sha256-o6VUfg0mtaXw5isF4Q1afCZrOMSW9FSjbOOUcBne+dY=";
};
pythonRelaxDeps = [ "acme" ];
@@ -17,7 +17,7 @@
let
pname = "hassil";
version = "2.1.0";
version = "2.2.3";
in
buildPythonPackage {
inherit pname version;
@@ -27,7 +27,7 @@ buildPythonPackage {
owner = "home-assistant";
repo = "hassil";
tag = "v${version}";
hash = "sha256-CGobMgaDHcruvOzVBIc6xS0tuaMT410t62KD3Hg30EY=";
hash = "sha256-rP7F0BovD0Klf06lywo+1uFhPf+dS0qbNBZluun8+cE=";
};
build-system = [ setuptools ];
@@ -10,7 +10,7 @@
pythonAtLeast,
pythonOlder,
pytest-aiohttp,
pytest-asyncio,
pytest-asyncio_0_21,
requests,
setuptools,
setuptools-scm,
@@ -48,8 +48,10 @@ buildPythonPackage rec {
nativeCheckInputs = [
aiohttp-wsgi
pytest-aiohttp
pytest-asyncio
(pytest-aiohttp.override {
pytest-asyncio = pytest-asyncio_0_21;
})
pytest-asyncio_0_21
pytest7CheckHook
];
@@ -2,6 +2,7 @@
lib,
buildPythonPackage,
fetchFromGitHub,
fetchpatch2,
setuptools,
setuptools-scm,
wheel,
@@ -23,6 +24,13 @@ buildPythonPackage rec {
hash = "sha256-nU8vkmV/WynzQrSrq9+FQXtfAJPVLpMsRSuntU0HWrE=";
};
patches = [
(fetchpatch2 {
url = "https://github.com/florimondmanca/httpx-sse/commit/643938c805e671fa20adcf314b447f862b77bcda.patch?full_index=1";
hash = "sha256-V2PyTlleyoLa0DuvdlU8zGNsI9C8bTjMUcLjx81/e5k=";
})
];
# pytest-cov configuration is not necessary for packaging
postPatch = ''
rm setup.cfg
@@ -0,0 +1,85 @@
{
anyio,
buildPythonPackage,
coreutils,
fetchFromGitHub,
hatchling,
httpx,
httpx-sse,
lib,
pydantic,
pydantic-settings,
pytest-asyncio,
pytestCheckHook,
python-dotenv,
rich,
sse-starlette,
starlette,
typer,
uvicorn,
}:
buildPythonPackage rec {
pname = "mcp";
version = "1.2.1";
pyproject = true;
src = fetchFromGitHub {
owner = "modelcontextprotocol";
repo = "python-sdk";
tag = "v${version}";
hash = "sha256-1kTU6YoHAxPdYTeCiPFGw2c0Dno+CA//hvoD9T4Fvwo=";
};
postPatch = ''
substituteInPlace tests/client/test_stdio.py \
--replace '/usr/bin/tee' '${lib.getExe' coreutils "tee"}'
'';
build-system = [ hatchling ];
pythonRelaxDeps = [
"pydantic-settings"
];
dependencies = [
anyio
httpx
httpx-sse
pydantic
pydantic-settings
sse-starlette
starlette
uvicorn
];
optional-dependencies = {
cli = [
python-dotenv
typer
];
rich = [
rich
];
};
pythonImportsCheck = [ "mcp" ];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
] ++ lib.flatten (lib.attrValues optional-dependencies);
disabledTests = [
# attempts to run the package manager uv
"test_command_execution"
];
meta = {
changelog = "https://github.com/modelcontextprotocol/python-sdk/releases/tag/${src.rev}";
description = "Official Python SDK for Model Context Protocol servers and clients";
homepage = "https://github.com/modelcontextprotocol/python-sdk";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ dotlambda ];
};
}
@@ -13,18 +13,21 @@
# tests
pytestCheckHook,
pytest-cov-stub,
# reverse dependencies
music-assistant-client,
}:
buildPythonPackage rec {
pname = "music-assistant-models";
version = "1.1.17";
version = "1.1.3"; # Must be compatible with music-assistant-client package
pyproject = true;
src = fetchFromGitHub {
owner = "music-assistant";
repo = "models";
tag = version;
hash = "sha256-ggP5swX0MWjWqc2H/cbx/sbHhVHLTImJsocX5ZkHB0s=";
tag = "v${version}";
hash = "sha256-FbnwUfAwCwwBKqEUtb2ZBxHehFwJdr9YkuWKox018BY=";
};
postPatch = ''
@@ -48,6 +51,10 @@ buildPythonPackage rec {
"music_assistant_models"
];
passthru.tests = {
inherit music-assistant-client;
};
meta = {
description = "Models used by Music Assistant (shared by client and server";
homepage = "https://github.com/music-assistant/models";
@@ -2,14 +2,15 @@
lib,
buildPythonPackage,
fetchFromGitHub,
fetchpatch2,
setuptools,
requests,
}:
buildPythonPackage rec {
pname = "nextcloudmonitor";
version = "1.5.2";
format = "setuptools";
pyproject = true;
src = fetchFromGitHub {
owner = "meichthys";
@@ -18,7 +19,17 @@ buildPythonPackage rec {
hash = "sha256-9iohznUmDusNY7iJZBcv9yn2wp3X5cS8n3Fbj/G1u0g=";
};
propagatedBuildInputs = [ requests ];
patches = [
(fetchpatch2 {
# https://github.com/meichthys/nextcloud_monitor/pull/10
url = "https://github.com/meichthys/nextcloud_monitor/commit/cf6191d148e0494de5ae3cbe8fc5ffdba71b6c21.patch";
hash = "sha256-BSTX5dw+k+ItT6qvpjLiDsH9rW1NmkaBeGO9TlNZZis=";
})
];
build-system = [ setuptools ];
dependencies = [ requests ];
# no tests implemented
doCheck = false;
@@ -12,10 +12,11 @@
aiodns,
audioop-lts,
brotli,
faust-cchardet,
orjson,
poetry-core,
poetry-dynamic-versioning,
pynacl,
setuptools,
typing-extensions,
}:
buildPythonPackage rec {
@@ -23,7 +24,7 @@ buildPythonPackage rec {
version = "3.0.1";
pyproject = true;
disabled = pythonOlder "3.8";
disabled = pythonOlder "3.12";
src = fetchFromGitHub {
owner = "nextcord";
@@ -40,8 +41,16 @@ buildPythonPackage rec {
})
];
postPatch = ''
# disable dynamic versioning
substituteInPlace pyproject.toml \
--replace-fail 'version = "0.0.0"' 'version = "${version}"' \
--replace-fail 'enable = true' 'enable = false'
'';
build-system = [
setuptools
poetry-core
poetry-dynamic-versioning
];
dependencies =
@@ -49,10 +58,9 @@ buildPythonPackage rec {
aiodns
aiohttp
brotli
faust-cchardet
orjson
pynacl
setuptools # for pkg_resources, remove with next release
typing-extensions
]
++ lib.optionals (pythonAtLeast "3.13") [
audioop-lts
@@ -8,14 +8,14 @@
buildPythonPackage rec {
pname = "nhc";
version = "0.3.4";
version = "0.3.9";
pyproject = true;
src = fetchFromGitHub {
owner = "vandeurenglenn";
repo = "nhc";
tag = "v${version}";
hash = "sha256-TSfOcSeedr0cSDHo1bqftUOZ3AeCW3Zgb80IBv3eerM=";
hash = "sha256-OoWRAELy6w+LVfhBJyKReQUYD/yr4POFH+ScOgp3xyU=";
};
build-system = [ setuptools ];
@@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "ohme";
version = "1.2.3";
version = "1.2.8";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "dan-r";
repo = "ohmepy";
tag = "v${version}";
hash = "sha256-hCwaB6YXtNHCNOyjRxDSonBdTpKqX9GmLwFMvrY9UpI=";
hash = "sha256-T9xULo1kN/JZGlYKTbTue8/RH2CFOAzuFeDGM6+76rE=";
};
build-system = [ setuptools ];
@@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "ollama";
version = "0.4.6";
version = "0.4.7";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "ollama";
repo = "ollama-python";
tag = "v${version}";
hash = "sha256-VELcw7b+G8aJrFMXX6rIYiR4ExSrDNezOigGznVnoNU=";
hash = "sha256-+iinQIVbL0f4kNc9aaS0H4Ua2K5w5uapFAIkpyoMj+E=";
};
postPatch = ''
@@ -0,0 +1,41 @@
{
aiohttp,
buildPythonPackage,
fetchFromGitHub,
lib,
mashumaro,
setuptools,
}:
buildPythonPackage rec {
pname = "onedrive-personal-sdk";
version = "0.0.8";
pyproject = true;
src = fetchFromGitHub {
owner = "zweckj";
repo = "onedrive-personal-sdk";
tag = "v${version}";
hash = "sha256-sA+1yqRcx7WUJFuMIIuPQm7ggVbrlSCufqq0jyhDDdA=";
};
build-system = [ setuptools ];
dependencies = [
aiohttp
mashumaro
];
pythonImportsCheck = [ "onedrive_personal_sdk" ];
# upstream has no tests
doCheck = false;
meta = {
changelog = "https://github.com/zweckj/onedrive-personal-sdk/releases/tag/${src.tag}";
description = "Package to interact with the Microsoft Graph API for personal OneDrives";
homepage = "https://github.com/zweckj/onedrive-personal-sdk";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ dotlambda ];
};
}
@@ -6,12 +6,13 @@
httpx,
pythonOlder,
setuptools,
yarl,
zeep,
}:
buildPythonPackage rec {
pname = "onvif-zeep-async";
version = "3.2.3";
version = "3.2.5";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
owner = "openvideolibs";
repo = "python-onvif-zeep-async";
tag = "v${version}";
hash = "sha256-guxep37d/MT9dp+sugfH0Ik2aIiwBSpx8x9Jj7OlNvw=";
hash = "sha256-tEJTVdFQXr2nz0DkuIUjNDSSZUdD457SMrNAUqqsiH8=";
};
build-system = [ setuptools ];
@@ -28,8 +29,9 @@ buildPythonPackage rec {
dependencies = [
ciso8601
httpx
yarl
zeep
];
] ++ zeep.optional-dependencies.async;
pythonImportsCheck = [ "onvif" ];
@@ -37,7 +37,7 @@
buildPythonPackage rec {
pname = "openai";
version = "1.59.8";
version = "1.59.9";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -46,7 +46,7 @@ buildPythonPackage rec {
owner = "openai";
repo = "openai-python";
tag = "v${version}";
hash = "sha256-0NiueCUB5w4H1B5cXSyoO641DGB2J2rF2vGwPQSJJPM=";
hash = "sha256-khdrpiurp/PigM5+0LJpXfSbG22e2I+2Jwsxo6MJKhQ=";
};
build-system = [
@@ -21,6 +21,8 @@ buildPythonPackage rec {
build-system = [ poetry-core ];
pythonRelaxDeps = [ "xmltodict" ];
dependencies = [
aiohttp
pycryptodome
@@ -2,6 +2,7 @@
lib,
buildPythonPackage,
fetchPypi,
setuptools,
mock,
pytestCheckHook,
cryptography,
@@ -11,7 +12,7 @@
buildPythonPackage rec {
pname = "py-vapid";
version = "1.9.2";
format = "setuptools";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -21,7 +22,9 @@ buildPythonPackage rec {
hash = "sha256-PIlzts+DhK0MmuZNYnDMxIDguSxwLY9eoswD5rUSR/k=";
};
propagatedBuildInputs = [ cryptography ];
build-system = [ setuptools ];
dependencies = [ cryptography ];
nativeCheckInputs = [
mock
@@ -8,16 +8,16 @@
buildPythonPackage rec {
pname = "pydevccu";
version = "0.1.9";
version = "0.1.10";
pyproject = true;
disabled = pythonOlder "3.12";
disabled = pythonOlder "3.13";
src = fetchFromGitHub {
owner = "SukramJ";
repo = "pydevccu";
tag = version;
hash = "sha256-s1u9+w0sPpXuqAET4k5VPWP+VoPqB08dZa9oY4UFXc8=";
hash = "sha256-MUMJjFCBJx1rps+/1Wx8RVmlA3Y4Cgflljs2u4nRMBk=";
};
postPatch = ''
@@ -7,6 +7,7 @@
mashumaro,
orjson,
pytest-asyncio,
pytest-cov-stub,
pytest-httpx,
poetry-core,
pytestCheckHook,
@@ -16,7 +17,7 @@
buildPythonPackage rec {
pname = "pydiscovergy";
version = "3.0.2";
version = "3.1.0";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -25,11 +26,10 @@ buildPythonPackage rec {
owner = "jpbede";
repo = "pydiscovergy";
tag = "v${version}";
hash = "sha256-g6KWX7APdqB0dNe7p6WGualxSj5fiw+jRq+0qfqTs4w=";
hash = "sha256-OrMuMGN1zB4q6t4fWyZeQ9WRmNZHFyq+wIRq1kG2N30=";
};
postPatch = ''
sed -i '/addopts =/d' pyproject.toml
substituteInPlace pyproject.toml \
--replace-fail 'version = "0.0.0"' 'version = "${version}"'
'';
@@ -45,6 +45,7 @@ buildPythonPackage rec {
nativeCheckInputs = [
pytest-asyncio
pytest-cov-stub
pytest-httpx
pytestCheckHook
respx
@@ -10,21 +10,23 @@
buildPythonPackage rec {
pname = "pyeconet";
version = "0.1.25";
format = "pyproject";
version = "0.1.26";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "w1ll1am23";
repo = pname;
repo = "pyeconet";
tag = "v${version}";
hash = "sha256-qbg8QzzT81fmjFeyEgVPXp3QKGOs3oKjTUUUTHIR8OI=";
hash = "sha256-3A37/LHCYkqFjbjP3mtO4kRnWZ8NQiFAS67mT2igvqM=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [
pythonRelaxDeps = [ "paho-mqtt" ];
dependencies = [
paho-mqtt
aiohttp
];
@@ -34,11 +36,11 @@ buildPythonPackage rec {
pythonImportsCheck = [ "pyeconet" ];
meta = with lib; {
meta = {
description = "Python interface to the EcoNet API";
homepage = "https://github.com/w1ll1am23/pyeconet";
changelog = "https://github.com/w1ll1am23/pyeconet/releases/tag/${src.tag}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
@@ -20,7 +20,7 @@
buildPythonPackage rec {
pname = "pyenphase";
version = "1.23.0";
version = "1.23.1";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
owner = "pyenphase";
repo = "pyenphase";
tag = "v${version}";
hash = "sha256-nGOxGZxPTlU5/nI2m+MXzzcVA+twxfNL1Jf51xT0XLc=";
hash = "sha256-xiwoFfKMZVgpMfh2CjzhkuZPxCD/NC2nK67r6Miu0eg=";
};
pythonRelaxDeps = [ "tenacity" ];
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "pyezviz";
version = "1.0.0.6";
version = "0.2.2.4a";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "baqs";
repo = "pyEzviz";
tag = version;
hash = "sha256-KtAqmM4k1o89lG/yb2er1r792zGyNx+TgIQhELr3yTc=";
hash = "sha256-OgDplQ6TrK2CZbNgJpoYC8TkK1sG73HdpUyHE+2ZTLk=";
};
build-system = [ setuptools ];
@@ -40,10 +40,13 @@ buildPythonPackage rec {
pythonImportsCheck = [ "pyezviz" ];
# renamed to pyezvizapi
passthru.skipBulkUpdate = true;
meta = with lib; {
description = "Python interface for for Ezviz cameras";
homepage = "https://github.com/baqs/pyEzviz/";
changelog = "https://github.com/BaQs/pyEzviz/releases/tag/${src.tag}";
changelog = "https://github.com/BaQs/pyEzviz/releases/tag/${version}";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ fab ];
mainProgram = "pyezviz";
@@ -0,0 +1,49 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
paho-mqtt,
pandas,
pycryptodome,
pythonOlder,
requests,
setuptools,
xmltodict,
}:
buildPythonPackage rec {
pname = "pyezviz";
version = "1.0.0.9";
pyproject = true;
src = fetchFromGitHub {
owner = "RenierM26";
repo = "pyEzvizApi";
tag = version;
hash = "sha256-iqTNkfecBrxJ3BwACbMmcHqequ6IUzjL550ip+jNIrs=";
};
build-system = [ setuptools ];
dependencies = [
paho-mqtt
pandas
pycryptodome
requests
xmltodict
];
pythonImportsCheck = [ "pyezvizapi" ];
# test_cam_rtsp.py is not actually a unit test
doCheck = false;
meta = {
description = "Python interface for for Ezviz cameras";
homepage = "https://github.com/RenierM26/pyEzvizApi";
changelog = "https://github.com/RenierM26/pyEzvizApi/releases/tag/${src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ dotlambda ];
mainProgram = "pyezviz";
};
}
@@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "pyfritzhome";
version = "0.6.13";
version = "0.6.14";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -20,12 +20,12 @@ buildPythonPackage rec {
owner = "hthiery";
repo = "python-fritzhome";
tag = version;
hash = "sha256-2piHJkF6S5sMb1ZsYQj7ItdwJt5RkVvTrYa9IUKlYp8=";
hash = "sha256-49Ap4SSeEMlqOnzd1/oyQ1wKwFVxsC+apx+FVCWqNVI=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [
dependencies = [
cryptography
requests
];
@@ -5,18 +5,19 @@
setuptools,
pytest-asyncio,
pytestCheckHook,
syrupy,
}:
buildPythonPackage rec {
pname = "pyheos";
version = "1.0.0";
version = "1.0.1";
pyproject = true;
src = fetchFromGitHub {
owner = "andrewsayre";
repo = "pyheos";
tag = version;
hash = "sha256-0td3Xv2BwOwcuU0ZlPA86eQd326vRjB7UMysN/RGjMU=";
hash = "sha256-2hrWK3nRFnRtv4dfXXELOxKwttG9Oo2I2+eSXcfgUi8=";
};
build-system = [ setuptools ];
@@ -24,6 +25,7 @@ buildPythonPackage rec {
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
syrupy
];
disabledTests = [
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "pypck";
version = "0.8.3";
version = "0.8.5";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "alengwenus";
repo = "pypck";
tag = version;
hash = "sha256-5MfWFtCIGRHO68dGKDmf++2yWA/wcK3JlM+4o5HKuE8=";
hash = "sha256-0CoADS76Ed2ICc8Y/LvtRhbG7mFQDWBsNQAnIUGK8m0=";
};
postPatch = ''
@@ -8,14 +8,15 @@
setuptools-scm,
pytest-asyncio,
pytest-cases,
pytest7CheckHook,
pytest-cov-stub,
pytestCheckHook,
pytz,
}:
buildPythonPackage rec {
pname = "pysiaalarm";
version = "3.1.1";
format = "setuptools";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -27,11 +28,9 @@ buildPythonPackage rec {
postPatch = ''
substituteInPlace setup.cfg \
--replace "==" ">="
substituteInPlace pytest.ini \
--replace "--cov pysiaalarm --cov-report term-missing" ""
'';
nativeBuildInputs = [ setuptools-scm ];
build-system = [ setuptools-scm ];
propagatedBuildInputs = [
dataclasses-json
@@ -42,7 +41,8 @@ buildPythonPackage rec {
nativeCheckInputs = [
pytest-asyncio
pytest-cases
pytest7CheckHook
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "pysmlight";
version = "0.1.5";
version = "0.1.7";
pyproject = true;
src = fetchFromGitHub {
owner = "smlight-tech";
repo = "pysmlight";
tag = "v${version}";
hash = "sha256-A/IppL1bTGvgdmPIGQS8rRNGrZIK8YTnEnKUJWAgs5Q=";
hash = "sha256-gEqsCHe8U1p1uKarCzzppFAKC5OGNUJk/Hif5VXnojw=";
};
build-system = [ poetry-core ];
@@ -3,11 +3,9 @@
atomicwrites,
buildPythonPackage,
fetchFromGitHub,
#, hatchling
ruamel-yaml,
poetry-core,
pytest,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
testfixtures,
@@ -16,7 +14,7 @@
buildPythonPackage rec {
pname = "pytest-golden";
version = "0.2.2";
format = "pyproject";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -29,29 +27,26 @@ buildPythonPackage rec {
postPatch = ''
substituteInPlace pyproject.toml \
--replace "poetry>=0.12" poetry-core \
--replace poetry.masonry.api poetry.core.masonry.api
--replace-fail "poetry>=0.12" poetry-core \
--replace-fail poetry.masonry.api poetry.core.masonry.api
'';
pythonRelaxDeps = [ "testfixtures" ];
nativeBuildInputs = [
build-system = [
# hatchling used for > 0.2.2
poetry-core
];
buildInputs = [ pytest ];
propagatedBuildInputs = [
dependencies = [
atomicwrites
ruamel-yaml
testfixtures
];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "pytest_golden" ];
@@ -3,10 +3,13 @@
aiohttp,
aresponses,
async-timeout,
awesomeversion,
backoff,
buildPythonPackage,
fetchFromGitHub,
mashumaro,
multidict,
orjson,
poetry-core,
pytest-asyncio,
pytest-cov-stub,
@@ -17,7 +20,7 @@
buildPythonPackage rec {
pname = "python-homewizard-energy";
version = "8.1.0";
version = "8.3.2";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -26,7 +29,7 @@ buildPythonPackage rec {
owner = "DCSBL";
repo = "python-homewizard-energy";
tag = "v${version}";
hash = "sha256-e1UB9Hegnl4JR1fBQz9/caTeo82LGGQX4qETI0O9OLc=";
hash = "sha256-koc82UHwr3TJZAzSX878fEbyRu8vddDLNpNelbnTr/8=";
};
postPatch = ''
@@ -39,8 +42,11 @@ buildPythonPackage rec {
dependencies = [
aiohttp
async-timeout
awesomeversion
backoff
mashumaro
multidict
orjson
];
__darwinAllowLocalNetworking = true;
@@ -23,7 +23,7 @@
buildPythonPackage rec {
pname = "python-kasa";
version = "0.9.1";
version = "0.10.1";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
owner = "python-kasa";
repo = "python-kasa";
tag = version;
hash = "sha256-9y0M2CYG7tFdT9nAcQLhgvTKeaxoFHAVihM2Rj+0N34=";
hash = "sha256-GqFWQRORU1CBtw+xasvGl0NZlVgD+mV37uWkwhOphF0=";
};
build-system = [ hatchling ];
@@ -9,6 +9,7 @@
construct,
dacite,
fetchFromGitHub,
freezegun,
paho-mqtt,
poetry-core,
pycryptodome,
@@ -21,7 +22,7 @@
buildPythonPackage rec {
pname = "python-roborock";
version = "2.9.2";
version = "2.11.1";
pyproject = true;
disabled = pythonOlder "3.10";
@@ -30,7 +31,7 @@ buildPythonPackage rec {
owner = "humbertogontijo";
repo = "python-roborock";
tag = "v${version}";
hash = "sha256-TWV28Uok2plDJsG5RsgTp1xzvGJ/zUy1lUcGZApDReE=";
hash = "sha256-uFZ+d4MehZbK7xZdmWnZrsbK2f5UsA4J/vVRLZXyI8E=";
};
postPatch = ''
@@ -42,7 +43,7 @@ buildPythonPackage rec {
build-system = [ poetry-core ];
propagatedBuildInputs = [
dependencies = [
aiohttp
async-timeout
click
@@ -55,6 +56,7 @@ buildPythonPackage rec {
nativeCheckInputs = [
aioresponses
freezegun
pytest-asyncio
pytestCheckHook
];
@@ -2,15 +2,18 @@
lib,
buildPythonPackage,
fetchFromGitHub,
pytest-cov-stub,
pytest-mock,
pytestCheckHook,
pythonOlder,
requests,
responses,
setuptools,
}:
buildPythonPackage rec {
pname = "python-tado";
version = "0.18.5";
version = "0.18.6";
pyproject = true;
disabled = pythonOlder "3.5";
@@ -19,14 +22,30 @@ buildPythonPackage rec {
owner = "wmalgadey";
repo = "PyTado";
tag = version;
hash = "sha256-NW3Au4meVf9QFVqmsx6f2TQus6QxanILx5U5GlVc3TE=";
hash = "sha256-pDT159TY1PEG3TLoIaNy5VVpIklclgOvFy4W5HKy7uM=";
};
build-system = [ setuptools ];
dependencies = [ requests ];
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytest-cov-stub
pytest-mock
pytestCheckHook
responses
];
disabledTests = [
# network access
"test_interface_with_tado_api"
];
disabledTestPaths = [
# network access
"tests/test_my_tado.py"
"tests/test_my_zone.py"
];
pythonImportsCheck = [ "PyTado" ];
@@ -1,27 +1,36 @@
{
lib,
buildPythonPackage,
fetchPypi,
fetchFromGitHub,
requests,
pytestCheckHook,
pythonOlder,
pyyaml,
setuptools,
}:
buildPythonPackage rec {
pname = "pyvesync";
version = "2.1.15";
format = "setuptools";
version = "2.1.17";
pyproject = true;
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-iXahtcD5jKP5hRtXxtgA3x0+zxaWu1zo/QrWfFEmB0w=";
src = fetchFromGitHub {
owner = "webdjoe";
repo = "pyvesync";
tag = version;
hash = "sha256-h5pxoPtIZVfhSHyvCkde2uVMzNjqXEYaMM8+gsNMd/k=";
};
propagatedBuildInputs = [ requests ];
build-system = [ setuptools ];
# Test are not available (not in PyPI tarball and there are no GitHub releases)
doCheck = false;
dependencies = [ requests ];
nativeCheckInputs = [
pytestCheckHook
pyyaml
];
pythonImportsCheck = [ "pyvesync" ];
@@ -8,19 +8,18 @@
requests,
pytest-cov-stub,
pytestCheckHook,
simplejson,
}:
buildPythonPackage rec {
pname = "pyvicare";
version = "2.40.0";
version = "2.41.0";
pyproject = true;
src = fetchFromGitHub {
owner = "openviess";
repo = "PyViCare";
tag = version;
hash = "sha256-jEnTzCQpJOiWtdaZbBgm4G1OsMXctjSRmU2AY2VZgqA=";
hash = "sha256-iNv70l8xHxiF+ifKf0gkJ5W/aOuek/9QYCF8pm6xBiw=";
};
postPatch = ''
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "reolink-aio";
version = "0.11.8";
version = "0.11.9";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "starkillerOG";
repo = "reolink_aio";
tag = version;
hash = "sha256-G2Q/mstxjmou161ww3bXEmFuyoblfp8Dw3Kq+L7WVaE=";
hash = "sha256-hqecKAk3kpm3b9wtQTJtWA3H6WxCNiKl4auaolzrvtI=";
};
build-system = [ setuptools ];
@@ -11,19 +11,19 @@
buildPythonPackage rec {
pname = "restrictedpython";
version = "7.4";
version = "8.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-gbYpJHE9vSgJF/zq7K8hD+96Sd3fGgjIwhSjYT++tCU=";
hash = "sha256-OvIxK8Z+X87Yh/uFsAbImGHackiBKLFVvuqB62oKmyQ=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "setuptools<74" setuptools
--replace-fail "setuptools <= 75.6.0" setuptools
'';
build-system = [ setuptools ];
@@ -38,6 +38,10 @@ buildPythonPackage rec {
postPatch = ''
substituteInPlace setup.py \
--replace "version=version_from_git()" "version='${version}'"
substituteInPlace rflinkproxy/__main__.py --replace-fail \
"with async_timeout.timeout(CONNECTION_TIMEOUT):" \
"async with async_timeout.timeout(CONNECTION_TIMEOUT):"
'';
pythonImportsCheck = [ "rflink.protocol" ];
@@ -10,16 +10,16 @@
buildPythonPackage rec {
pname = "securetar";
version = "2025.1.3";
version = "2025.1.4";
pyproject = true;
disabled = pythonOlder "3.9";
disabled = pythonOlder "3.10";
src = fetchFromGitHub {
owner = "pvizeli";
repo = "securetar";
tag = version;
hash = "sha256-flsDFXNzpwfNraR4MvjkxOjH6BUNvGqu6g7RXlvl8sU=";
hash = "sha256-vI9u8CUf9rdJwx+Q3ypO9XS/jfRxZV5EOjvKSmQSNa0=";
};
build-system = [ setuptools ];
@@ -2,7 +2,10 @@
lib,
buildPythonPackage,
fetchFromGitHub,
cacert,
faster-whisper,
flac,
google-cloud-speech,
groq,
httpx,
openai-whisper,
@@ -15,6 +18,7 @@
respx,
setuptools,
soundfile,
standard-aifc,
typing-extensions,
}:
@@ -43,11 +47,16 @@ buildPythonPackage rec {
build-system = [ setuptools ];
dependencies = [ typing-extensions ];
dependencies = [
standard-aifc
typing-extensions
];
optional-dependencies = {
assemblyai = [ requests ];
audio = [ pyaudio ];
faster-whisper = [ faster-whisper ];
google-cloud = [ google-cloud-speech ];
groq = [
groq
httpx
@@ -68,7 +77,12 @@ buildPythonPackage rec {
pytestCheckHook
pocketsphinx
respx
] ++ lib.flatten (builtins.attrValues optional-dependencies);
] ++ lib.flatten (lib.attrValues optional-dependencies);
preCheck = ''
# httpx since 0.28.0+ depends on SSL_CERT_FILE
SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
'';
pythonImportsCheck = [ "speech_recognition" ];
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "tesla-fleet-api";
version = "0.9.5";
version = "0.9.8";
pyproject = true;
disabled = pythonOlder "3.10";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "Teslemetry";
repo = "python-tesla-fleet-api";
tag = "v${version}";
hash = "sha256-45EfV6lqhOn8sorhyzUBKOj6xtd9OzYxB7SLK07IQ08=";
hash = "sha256-Bm+euNX0n2proyc0DCyYcc7lUlx/YhRWpPInWPr40CY=";
};
build-system = [ setuptools ];
@@ -8,14 +8,14 @@
buildPythonPackage rec {
pname = "teslemetry-stream";
version = "0.6.6";
version = "0.6.10";
pyproject = true;
src = fetchFromGitHub {
owner = "Teslemetry";
repo = "python-teslemetry-stream";
tag = "v${version}";
hash = "sha256-6LecUx+5CUJybIHwA4OY57gu2odoE2xq02vp13vDYLk=";
hash = "sha256-HYOjmFVyPPQ+NizmEhrse868IELHn0fGfr55MwTpP3w=";
};
build-system = [ setuptools ];
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
fetchpatch,
poetry-core,
pytest-asyncio,
pytestCheckHook,
@@ -13,30 +12,21 @@
buildPythonPackage rec {
pname = "todoist-api-python";
version = "2.1.3";
format = "pyproject";
version = "2.1.7";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "Doist";
repo = pname;
repo = "todoist-api-python";
tag = "v${version}";
hash = "sha256-Xi3B/Nl5bMbW0lYwrkEbBgFTEl07YkFyN18kN0WyGyw=";
hash = "sha256-qOb9qAwjQ0MqR+mdNEkt7W8SiBhZ8gRf01TsHDkLPS4=";
};
patches = [
# Switch to poetry-core, https://github.com/Doist/todoist-api-python/pull/81
(fetchpatch {
name = "switch-to-poetry-core.patch";
url = "https://github.com/Doist/todoist-api-python/commit/42288e066d2f0c69611ab50cb57ca98b8c6bd1ca.patch";
hash = "sha256-yq+VVvjPYywvUn+ydyWVQPkiYPYWe9U6w38G54L2lkE=";
})
];
build-system = [ poetry-core ];
nativeBuildInputs = [ poetry-core ];
propagatedBuildInputs = [ requests ];
dependencies = [ requests ];
nativeCheckInputs = [
pytest-asyncio
@@ -2,15 +2,18 @@
lib,
buildPythonPackage,
fetchFromGitHub,
pycryptodome,
pyjwt,
pytestCheckHook,
pythonOlder,
requests-mock,
setuptools,
zeep,
}:
buildPythonPackage rec {
pname = "total-connect-client";
version = "2024.12.1";
version = "2025.1.4";
pyproject = true;
disabled = pythonOlder "3.10";
@@ -19,14 +22,23 @@ buildPythonPackage rec {
owner = "craigjmidwinter";
repo = "total-connect-client";
tag = version;
hash = "sha256-FcPm2Nc6pUGC86K3GLAiQRot0JXYqoZh19dXMCl99eI=";
hash = "sha256-zzSYi/qhHmugH30bnYHK9lCBVN5wuv6n9rvaZC/sIag=";
};
build-system = [ setuptools ];
dependencies = [ zeep ];
pythonRelaxDeps = [ "pycryptodome" ];
nativeCheckInputs = [ pytestCheckHook ];
dependencies = [
pycryptodome
pyjwt
zeep
];
nativeCheckInputs = [
pytestCheckHook
requests-mock
];
pythonImportsCheck = [ "total_connect_client" ];
@@ -40,7 +40,7 @@
buildPythonPackage rec {
pname = "uiprotect";
version = "7.5.0";
version = "7.5.1";
pyproject = true;
disabled = pythonOlder "3.10";
@@ -49,7 +49,7 @@ buildPythonPackage rec {
owner = "uilibs";
repo = "uiprotect";
tag = "v${version}";
hash = "sha256-tOozcXDXQI3l5dMQ8WqBrC7wLVbl5iomsuy/hYL3emE=";
hash = "sha256-moGS1hfCU8BCdAzvr0Np7lF32RucigM9YANZI6+sALw=";
};
build-system = [ poetry-core ];
@@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "velbus-aio";
version = "2025.1.0";
version = "2025.1.1";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "Cereal2nd";
repo = "velbus-aio";
tag = version;
hash = "sha256-ZaaHywHX1TScjW0XN/krCYgupHlbH1mRB0fd7YZ2iMY=";
hash = "sha256-r6j2C+x7BX7EOFdrQ/N5/NRjHFgyxiQlq/cXnnCg73s=";
fetchSubmodules = true;
};
@@ -9,14 +9,14 @@
buildPythonPackage rec {
pname = "voip-utils";
version = "0.2.2";
version = "0.3.1";
pyproject = true;
src = fetchFromGitHub {
owner = "home-assistant-libs";
repo = "voip-utils";
tag = "v${version}";
hash = "sha256-OlvZSVuoGQi0QEusl01nbw3oD75NfMsbpNOPQgWYu+c=";
hash = "sha256-43g7ArhIZVyZ+VnzenldrQfr6kjpAxPNrK/vazYED+w=";
};
postPatch = ''
@@ -1,6 +1,8 @@
{
lib,
aenum,
aiohttp-retry,
aiohttp,
buildPythonPackage,
fetchFromGitHub,
pydantic,
@@ -33,6 +35,8 @@ buildPythonPackage rec {
dependencies = [
aenum
aiohttp
aiohttp-retry
pydantic
python-dateutil
urllib3
@@ -59,8 +59,8 @@ buildPythonPackage rec {
];
optional-dependencies = {
async_require = [ httpx ];
xmlsec_require = [ xmlsec ];
async = [ httpx ];
xmlsec = [ xmlsec ];
};
pythonImportsCheck = [ "zeep" ];
@@ -17,7 +17,7 @@
buildPythonPackage rec {
pname = "zeroconf";
version = "0.140.1";
version = "0.143.0";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "jstasiak";
repo = "python-zeroconf";
tag = version;
hash = "sha256-+F0pq6fmfyEtfKS16y5JjjRZl4BeaWi6honZyyHJApY=";
hash = "sha256-yN5N+SosNDcwotEH2oyVMRI717LXIRKtzHQ4VI4WoMQ=";
};
build-system = [
@@ -64,7 +64,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Python implementation of multicast DNS service discovery";
homepage = "https://github.com/python-zeroconf/python-zeroconf";
changelog = "https://github.com/python-zeroconf/python-zeroconf/releases/tag/${src.tag}";
changelog = "https://github.com/python-zeroconf/python-zeroconf/blob/${src.tag}/CHANGELOG.md";
license = licenses.lgpl21Only;
maintainers = with maintainers; [ abbradar ];
};
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "zha-quirks";
version = "0.0.130";
version = "0.0.131";
pyproject = true;
disabled = pythonOlder "3.12";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "zha-device-handlers";
tag = version;
hash = "sha256-G5q4W9Dxjhjbkt5rcYhseeaSWC73MJCo/pX/OfNlPrQ=";
hash = "sha256-MSTlSvZhamWX7lNzJjDGxyo9KfshZ7T1ED8axx1Aghs=";
};
postPatch = ''
@@ -27,7 +27,7 @@
buildPythonPackage rec {
pname = "zha";
version = "0.0.45";
version = "0.0.47";
pyproject = true;
disabled = pythonOlder "3.12";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "zha";
tag = version;
hash = "sha256-KeHGuQGEoXQnIJKQ86DrsoufN+Ppp/fyYblXx2iGHgU=";
hash = "sha256-BDZqReJWmxodP1w3fdxUHbjY9dL+6hUQZ0YazeiERrM=";
};
postPatch = ''
@@ -27,7 +27,7 @@
buildPythonPackage rec {
pname = "zigpy";
version = "0.74.0";
version = "0.76.1";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "zigpy";
tag = version;
hash = "sha256-B0BjDldIzHGRKR79mqgJHbvYeDGY5EDxFKaD2Q+HMyo=";
hash = "sha256-ZPNMlaktdSElOfKf3SmI08RGRSpI5hK2khWoJybtJh4=";
};
postPatch = ''
File diff suppressed because it is too large Load Diff
@@ -9,13 +9,13 @@
buildHomeAssistantComponent rec {
owner = "SukramJ";
domain = "homematicip_local";
version = "1.80.0";
version = "1.81.2";
src = fetchFromGitHub {
owner = "SukramJ";
repo = "custom_homematic";
tag = version;
hash = "sha256-smagkEz5ec3Wrv5ldMY9hv+TnSzQ7pbZUURnTKBsF1g=";
hash = "sha256-8B1zaU0fMRN2drJvfdifEXM2bXwHBD6PP7/c8lXQPLA=";
};
postPatch = ''
+73 -26
View File
@@ -4,7 +4,6 @@
callPackage,
fetchFromGitHub,
fetchPypi,
fetchpatch2,
python313,
substituteAll,
ffmpeg-headless,
@@ -46,6 +45,17 @@ let
];
});
aiomqtt = super.aiomqtt.overridePythonAttrs (rec {
version = "2.0.1";
src = fetchFromGitHub {
owner = "sbtinstruments";
repo = "aiomqtt";
tag = "v${version}";
hash = "sha256-bV1elEO1518LVLwNDN5pzjxRgcG34K1XUsK7fTw8h+8=";
};
meta.broken = false;
});
aioskybell = super.aioskybell.overridePythonAttrs (oldAttrs: rec {
version = "22.7.0";
src = fetchFromGitHub {
@@ -88,6 +98,37 @@ let
];
});
async-timeout = super.async-timeout.overridePythonAttrs (oldAttrs: rec {
version = "4.0.3";
src = fetchFromGitHub {
owner = "aio-libs";
repo = "async-timeout";
tag = "v${version}";
hash = "sha256-gJGVRm7YMWnVicz2juHKW8kjJBxn4/vQ/kc2kQyl1i4=";
};
});
eq3btsmart = super.eq3btsmart.overridePythonAttrs (oldAttrs: rec {
version = "1.4.1";
src = fetchFromGitHub {
owner = "EuleMitKeule";
repo = "eq3btsmart";
tag = version;
hash = "sha256-FRnCnSMtsiZ1AbZOMwO/I5UoFWP0xAFqRZsnrHG9WJA=";
};
build-system = with self; [ poetry-core ];
});
govee-local-api = super.govee-local-api.overridePythonAttrs (oldAttrs: rec {
version = "1.5.3";
src = fetchFromGitHub {
owner = "Galorhallen";
repo = "govee-local-api";
tag = "v${version}";
hash = "sha256-qBT0Xub+eL7rfF+lQWlheBJSahEKWjREGJQD6sHjTPk=";
};
});
gspread = super.gspread.overridePythonAttrs (oldAttrs: rec {
version = "5.12.4";
src = fetchFromGitHub {
@@ -101,6 +142,16 @@ let
];
});
letpot = super.letpot.overridePythonAttrs (rec {
version = "0.3.0";
src = fetchFromGitHub {
owner = "jpelgrom";
repo = "python-letpot";
tag = "v${version}";
hash = "sha256-OFLQ0DV7roqUlm6zJWAzMRpcmAi/oco8lEHbmfqNaVs=";
};
});
openhomedevice = super.openhomedevice.overridePythonAttrs (oldAttrs: rec {
version = "2.2";
src = fetchFromGitHub {
@@ -110,6 +161,8 @@ let
};
});
paho-mqtt = super.paho-mqtt_1;
pymelcloud = super.pymelcloud.overridePythonAttrs (oldAttrs: {
version = "2.5.9";
src = fetchFromGitHub {
@@ -205,6 +258,18 @@ let
};
});
pyrail = super.pyrail.overridePythonAttrs (rec {
version = "0.0.3";
src = fetchPypi {
pname = "pyrail";
inherit version;
hash = "sha256-XxcVcRXMjYAKevANAqNJkGDUWfxDaLqgCL6XL9Lhsf4=";
};
env.CI_JOB_ID = version;
build-system = [ self.setuptools ];
dependencies = [ self.requests ];
});
# snmp component does not support pysnmp 7.0+
pysnmp = super.pysnmp.overridePythonAttrs (oldAttrs: rec {
version = "6.2.6";
@@ -255,22 +320,6 @@ let
doCheck = false;
});
slack-sdk = super.slack-sdk.overridePythonAttrs (oldAttrs: rec {
version = "2.5.0";
src = fetchFromGitHub {
owner = "slackapi";
repo = "python-slackclient";
rev = "refs/tags/${version}";
hash = "sha256-U//HUe6e41wOOzoaDl4yXPnEASCzpGBIScHStWMN8tk=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail "pytest-runner" ""
'';
pythonImportsCheck = [ "slack" ];
doCheck = false; # Tests changed a lot for > 3
});
vulcan-api = super.vulcan-api.overridePythonAttrs (oldAttrs: rec {
version = "2.3.2";
src = fetchFromGitHub {
@@ -320,7 +369,7 @@ let
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run update-component-packages.py after updating
hassVersion = "2025.1.4";
hassVersion = "2025.2.0";
in
python.pkgs.buildPythonApplication rec {
@@ -341,13 +390,13 @@ python.pkgs.buildPythonApplication rec {
owner = "home-assistant";
repo = "core";
rev = "refs/tags/${version}";
hash = "sha256-QqWF/uvFQbf0tdJMzFV3hAt9Je5sFR5z+aAPtCxycbM=";
hash = "sha256-TGlfqvmYUPA5wdvZWD89z6lfvDr+K/1kgu6NjkRpNxs=";
};
# Secondary source is pypi sdist for translations
sdist = fetchPypi {
inherit pname version;
hash = "sha256-yzX4Wgo468On/WuK32Xdl0O3en/WFRdykvfvHNEU1S0=";
hash = "sha256-+dkS6AuqyzvC2NiGCGkDAGxF/kS/LuKkMFXWXjC3I8Y=";
};
build-system = with python.pkgs; [
@@ -395,18 +444,15 @@ python.pkgs.buildPythonApplication rec {
src = ./patches/ffmpeg-path.patch;
ffmpeg = "${lib.getExe ffmpeg-headless}";
})
(fetchpatch2 {
# python-matter-server 7.0 compat
url = "https://github.com/home-assistant/core/commit/ea4931ca3a91920b66a747a18a2dece2c8215d4f.patch";
hash = "sha256-evfMdBdEYsVSu2iDZ5xgNTg/QljJ+MXrV69g9liNcN4=";
})
];
postPatch = ''
substituteInPlace tests/test_core_config.py --replace-fail '"/usr"' "\"$NIX_BUILD_TOP/media\""
sed -i 's/setuptools[~=]/setuptools>/' pyproject.toml
substituteInPlace tests/components/hassio/test_backup.py \
--replace-fail setup_integration setup_backup_integration
'';
dependencies = with python.pkgs; [
@@ -414,6 +460,7 @@ python.pkgs.buildPythonApplication rec {
aiodns
aiohasupervisor
aiohttp
aiohttp-asyncmdnsresolver
aiohttp-cors
aiohttp-fast-zlib
aiozoneinfo
+2 -2
View File
@@ -8,7 +8,7 @@ buildPythonPackage rec {
# the frontend version corresponding to a specific home-assistant version can be found here
# https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
pname = "home-assistant-frontend";
version = "20250109.2";
version = "20250205.0";
format = "wheel";
src = fetchPypi {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
pname = "home_assistant_frontend";
dist = "py3";
python = "py3";
hash = "sha256-jE8+QzYUftQFuGgJuvFYIzZ9DsEFoNpPS94Wjmk73Ss=";
hash = "sha256-9P2OqnPNPydBi4k9iN0hSyGTyBW4PohdgJwQqa8MlYg=";
};
# there is nothing to strip in this package
+2 -2
View File
@@ -22,7 +22,7 @@
buildPythonPackage rec {
pname = "home-assistant-intents";
version = "2025.1.1";
version = "2025.2.5";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
repo = "intents-package";
rev = "refs/tags/${version}";
fetchSubmodules = true;
hash = "sha256-OeGupmeZ2KLpQHc0d50itTvlrA5XziKU8cAz9i6ztSw=";
hash = "sha256-x6B7UF6l9vMFscD8aPZ05N0HXo5d8XSONrrr6u+Ol3g=";
};
build-system = [
@@ -1,13 +0,0 @@
diff --git a/homeassistant/components/network/__init__.py b/homeassistant/components/network/__init__.py
index b3ef88e7ab..b7a8471e1a 100644
--- a/homeassistant/components/network/__init__.py
+++ b/homeassistant/components/network/__init__.py
@@ -30,7 +30,7 @@ async def async_get_source_ip(
) -> str:
"""Get the source ip for a target ip."""
adapters = await async_get_adapters(hass)
- all_ipv4s = []
+ all_ipv4s = ["127.0.0.1"]
for adapter in adapters:
if adapter["enabled"] and (ipv4s := adapter["ipv4"]):
all_ipv4s.extend([ipv4["address"] for ipv4 in ipv4s])
@@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "pytest-homeassistant-custom-component";
version = "0.13.204";
version = "0.13.210";
pyproject = true;
disabled = pythonOlder "3.12";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "MatthewFlamm";
repo = "pytest-homeassistant-custom-component";
rev = "refs/tags/${version}";
hash = "sha256-yYcUQwf9DDeJvnkmPPvESJdXt7VY/TVYD6UoguXta5s=";
hash = "sha256-SQCxuMmLYfZ1xzaIko5VJiKtu8LqzJIW4Rk8ze/VSEg=";
};
build-system = [ setuptools ];
+2 -2
View File
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "homeassistant-stubs";
version = "2025.1.4";
version = "2025.2.0";
pyproject = true;
disabled = python.version != home-assistant.python.version;
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "KapJI";
repo = "homeassistant-stubs";
rev = "refs/tags/${version}";
hash = "sha256-ysebkp0wrCGHRuHZMY6P4ftcth3gsHwtRcSGUN/7noI=";
hash = "sha256-u9RclA8vtsr34TKdocFgc3e/LjaRjP3fqQC0QjqsOs4=";
};
build-system = [
+8 -43
View File
@@ -14,6 +14,9 @@ let
ibeacon-ble
];
hassio = getComponentDeps "homeassistant_yellow";
homeassistant_hardware = getComponentDeps "zha";
homeassistant_sky_connect = getComponentDeps "zha";
homeassistant_yellow = getComponentDeps "zha";
husqvarna_automower_ble = getComponentDeps "gardena_bluetooth";
lovelace = [
pychromecast
@@ -36,6 +39,7 @@ let
songpal = [
isal
];
swiss_public_transport = getComponentDeps "cookidoo";
system_log = [
isal
];
@@ -52,6 +56,10 @@ let
};
extraDisabledTestPaths = {
overseerr = [
# imports broken future module
"tests/components/overseerr/test_event.py"
];
};
extraDisabledTests = {
@@ -59,10 +67,6 @@ let
# tries to retrieve file from github
"test_non_text_stdout_capture"
];
sma = [
# missing operating_status attribute in entity
"test_sensor_entities"
];
websocket_api = [
# AssertionError: assert 'unknown_error' == 'template_error'
"test_render_template_with_timeout"
@@ -70,46 +74,20 @@ let
};
extraPytestFlagsArray = {
conversation = [
# Expected: Sorry, I am not aware of any device called missing entity on ground floor
# Actually: Sorry, I am not aware of any area called ground floor
"--deselect tests/components/conversation/test_default_agent.py::test_error_no_device_on_floor"
];
dnsip = [
# Tries to resolve DNS entries
"--deselect tests/components/dnsip/test_config_flow.py::test_options_flow"
];
honeywell = [
# Failed: Unused ignore translations: component.honeywell.config.abort.reauth_successful. Please remove them from the ignore_translations fixture.
"--deselect=tests/components/honeywell/test_config_flow.py::test_reauth_flow"
];
jellyfin = [
# AssertionError: assert 'audio/x-flac' == 'audio/flac'
"--deselect tests/components/jellyfin/test_media_source.py::test_resolve"
"--deselect tests/components/jellyfin/test_media_source.py::test_audio_codec_resolve"
# AssertionError: assert [+ received] == [- snapshot]
"--deselect tests/components/jellyfin/test_media_source.py::test_music_library"
];
jewish_calendar = [
# Failed: Unused ignore translations: component.jewish_calendar.config.abort.reconfigure_successful. Please remove them from the ignore_translations fixture.
"--deselect tests/components/jewish_calendar/test_config_flow.py::test_reconfigure"
];
modem_callerid = [
# aioserial mock produces wrong state
"--deselect tests/components/modem_callerid/test_init.py::test_setup_entry"
];
nina = [
# Failed: Unused ignore translations: component.nina.options.error.unknown. Please remove them from the ignore_translations fixture.
"--deselect tests/components/nina/test_config_flow.py::test_options_flow_unexpected_exception"
];
sql = [
"-W"
"ignore::sqlalchemy.exc.SAWarning"
];
vicare = [
# Snapshot 'test_all_entities[sensor.model0_electricity_consumption_today-entry]' does not exist!
"--deselect=tests/components/vicare/test_sensor.py::test_all_entities"
];
};
in
lib.listToAttrs (
@@ -140,19 +118,6 @@ lib.listToAttrs (
++ extraPytestFlagsArray.${component} or [ ]
++ [ "tests/components/${component}" ];
preCheck =
old.preCheck
+
lib.optionalString
(builtins.elem component [
"emulated_hue"
"songpal"
"system_log"
])
''
patch -p1 < ${./patches/tests-mock-source-ip.patch}
'';
meta = old.meta // {
broken = lib.elem component [ ];
# upstream only tests on Linux, so do we.
@@ -44,7 +44,7 @@ PKG_PREFERENCES = {
"ha-av": "av",
"numpy": "numpy",
"ollama-hass": "ollama",
"paho-mqtt": "paho-mqtt_1",
"paho-mqtt": "paho-mqtt",
"pyhive-integration": "pyhiveapi", # https://github.com/home-assistant/core/pull/135482
"pysuezV2": "pysuez",
"sentry-sdk": "sentry-sdk",
+10
View File
@@ -259,6 +259,8 @@ self: super: with self; {
aiohttp-apispec = callPackage ../development/python-modules/aiohttp-apispec { };
aiohttp-asyncmdnsresolver = callPackage ../development/python-modules/aiohttp-asyncmdnsresolver { };
aiohttp-basicauth = callPackage ../development/python-modules/aiohttp-basicauth { };
aiohttp-client-cache = callPackage ../development/python-modules/aiohttp-client-cache { };
@@ -469,6 +471,8 @@ self: super: with self; {
aiounittest = callPackage ../development/python-modules/aiounittest { };
aiousbwatcher = callPackage ../development/python-modules/aiousbwatcher { };
aiovlc = callPackage ../development/python-modules/aiovlc { };
aiovodafone = callPackage ../development/python-modules/aiovodafone { };
@@ -8065,6 +8069,8 @@ self: super: with self; {
mcdreforged = callPackage ../development/python-modules/mcdreforged { };
mcp = callPackage ../development/python-modules/mcp { };
mcstatus = callPackage ../development/python-modules/mcstatus { };
mcuuid = callPackage ../development/python-modules/mcuuid { };
@@ -9684,6 +9690,8 @@ self: super: with self; {
onecache = callPackage ../development/python-modules/onecache { };
onedrive-personal-sdk = callPackage ../development/python-modules/onedrive-personal-sdk { };
onetimepass = callPackage ../development/python-modules/onetimepass { };
onigurumacffi = callPackage ../development/python-modules/onigurumacffi { };
@@ -11837,6 +11845,8 @@ self: super: with self; {
pyezviz = callPackage ../development/python-modules/pyezviz { };
pyezvizapi = callPackage ../development/python-modules/pyezvizapi { };
pyface = callPackage ../development/python-modules/pyface { };
pyfaidx = callPackage ../development/python-modules/pyfaidx { };