Merge pull request #272576 from NixOS/home-assistant

home-assistant: 2023.11.3 -> 2023.12.0
This commit is contained in:
Martin Weinelt 2023-12-10 14:51:43 +01:00 committed by GitHub
commit ebfca42b8b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
51 changed files with 1235 additions and 350 deletions

View File

@ -157,7 +157,7 @@ in {
default = []; default = [];
example = literalExpression '' example = literalExpression ''
with pkgs.home-assistant-custom-components; [ with pkgs.home-assistant-custom-components; [
prometheus-sensor prometheus_sensor
]; ];
''; '';
description = lib.mdDoc '' description = lib.mdDoc ''
@ -523,7 +523,6 @@ in {
"bluetooth_tracker" "bluetooth_tracker"
"bthome" "bthome"
"default_config" "default_config"
"eq3btsmart"
"eufylife_ble" "eufylife_ble"
"esphome" "esphome"
"fjaraskupan" "fjaraskupan"

View File

@ -182,7 +182,7 @@ in {
hass.wait_until_succeeds("journalctl -u home-assistant.service | grep -q 'We found a custom integration prometheus_sensor which has not been tested by Home Assistant'") hass.wait_until_succeeds("journalctl -u home-assistant.service | grep -q 'We found a custom integration prometheus_sensor which has not been tested by Home Assistant'")
with subtest("Check that lovelace modules are referenced and fetchable"): with subtest("Check that lovelace modules are referenced and fetchable"):
hass.succeed("grep -q 'mini-graph-card-bundle.js' '${configDir}/ui-lovelace.yaml'") hass.succeed("grep -q 'mini-graph-card-bundle.js' '${configDir}/configuration.yaml'")
hass.succeed("curl --fail http://localhost:8123/local/nixos-lovelace-modules/mini-graph-card-bundle.js") hass.succeed("curl --fail http://localhost:8123/local/nixos-lovelace-modules/mini-graph-card-bundle.js")
with subtest("Check that optional dependencies are in the PYTHONPATH"): with subtest("Check that optional dependencies are in the PYTHONPATH"):

View File

@ -11,7 +11,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiocomelit"; pname = "aiocomelit";
version = "0.6.0"; version = "0.6.2";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.10"; disabled = pythonOlder "3.10";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "chemelli74"; owner = "chemelli74";
repo = "aiocomelit"; repo = "aiocomelit";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-bs+iSe4vu0ej4SQww6mvQqboVKfQrkd9OirBLGbU3gs="; hash = "sha256-Pqds4RwDxaUyZUIGTK0JOjsKbyB7j3uOfunbLXsKANk=";
}; };
postPatch = '' postPatch = ''

View File

@ -22,7 +22,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aioesphomeapi"; pname = "aioesphomeapi";
version = "18.5.2"; version = "19.2.1";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -31,7 +31,7 @@ buildPythonPackage rec {
owner = "esphome"; owner = "esphome";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-kj4FHsNsGsMxK+EI1jgqBfvldkyAoBkCTGT1yiZMmzY="; hash = "sha256-WSWGO0kI1m6oaImUYZ6m5WKJ+xPs/rtn5wVq1bDr+bE=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -60,6 +60,17 @@ buildPythonPackage rec {
"tests/test_ip_pairing.py" "tests/test_ip_pairing.py"
]; ];
disabledTests = [
# AttributeError: 'MockedAsyncServiceInfo' object has no attribute '_set_properties'
"test_discover_find_one_unpaired"
"test_find_device_id_case_lower"
"test_find_device_id_case_upper"
"test_discover_missing_csharp"
"test_discover_csharp_case"
"test_discover_device_id_case_lower"
"test_discover_device_id_case_upper"
];
pythonImportsCheck = [ pythonImportsCheck = [
"aiohomekit" "aiohomekit"
]; ];

View File

@ -0,0 +1,39 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, aiohttp
, zlib-ng
}:
buildPythonPackage rec {
pname = "aiohttp-zlib-ng";
version = "0.1.1";
pyproject = true;
src = fetchFromGitHub {
owner = "bdraco";
repo = "aiohttp-zlib-ng";
rev = "v${version}";
hash = "sha256-dTNwt4eX6ZQ8ySK2/9ziVbc3KFg2aL/EsiBWaJRC4x8=";
};
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
zlib-ng
];
pythonImportsCheck = [ "aiohttp_zlib_ng" ];
meta = with lib; {
description = "Enable zlib_ng on aiohttp";
homepage = "https://github.com/bdraco/aiohttp-zlib-ng";
changelog = "https://github.com/bdraco/aiohttp-zlib-ng/blob/${src.rev}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ ];
};
}

View File

@ -13,7 +13,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiowithings"; pname = "aiowithings";
version = "1.0.3"; version = "2.0.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.11"; disabled = pythonOlder "3.11";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "joostlek"; owner = "joostlek";
repo = "python-withings"; repo = "python-withings";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-n76bpFIWUfztTDEg32uopxukAtvFT3tdbtqWOLghi4I="; hash = "sha256-wVLoM1Lq1fchyjOOmn+6wVzEAra8x2uK6qaiocVqzmw=";
}; };
postPatch = '' postPatch = ''

View File

@ -3,13 +3,14 @@
, fetchFromGitHub , fetchFromGitHub
, poetry-core , poetry-core
, aiohttp , aiohttp
, aiohttp-retry
, pythonOlder , pythonOlder
, pyjwt , pyjwt
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "apple-weatherkit"; pname = "apple-weatherkit";
version = "1.0.4"; version = "1.1.1";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.11"; disabled = pythonOlder "3.11";
@ -18,7 +19,7 @@ buildPythonPackage rec {
owner = "tjhorner"; owner = "tjhorner";
repo = "python-weatherkit"; repo = "python-weatherkit";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-G/0hyK2rjdSSnVnvAUGyDvsfNMHVgAD7NHfNFmdBCNA="; hash = "sha256-ZwHomiRkoV2Oi5c7qgTOKdu6R8dFfiVBi5XQMxrQvIU=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -27,6 +28,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
aiohttp-retry
pyjwt pyjwt
] ++ pyjwt.optional-dependencies.crypto; ] ++ pyjwt.optional-dependencies.crypto;

View File

@ -9,14 +9,15 @@
, pytest-timeout , pytest-timeout
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
, setuptools
, voluptuous , voluptuous
, zigpy , zigpy
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "bellows"; pname = "bellows";
version = "0.36.8"; version = "0.37.1";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -24,9 +25,19 @@ buildPythonPackage rec {
owner = "zigpy"; owner = "zigpy";
repo = "bellows"; repo = "bellows";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-+p3As+fi6mw9i5q2klFTM9QQ2JoQarwrphc6tB6C94M="; hash = "sha256-JkaCM9XOdGZE9/C2BUV3g9QL5+k/HlVYd4WsAMS2mgk=";
}; };
postPatch = ''
substituteInPlace pyproject.toml \
--replace '"setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [ propagatedBuildInputs = [
click click
click-log click-log

View File

@ -11,14 +11,15 @@
, pytestCheckHook , pytestCheckHook
, python , python
, respx , respx
, setuptools
, time-machine , time-machine
, tzdata , tzdata
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "bimmer-connected"; pname = "bimmer-connected";
version = "0.14.3"; version = "0.14.6";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
@ -26,22 +27,28 @@ buildPythonPackage rec {
owner = "bimmerconnected"; owner = "bimmerconnected";
repo = "bimmer_connected"; repo = "bimmer_connected";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-I/MKjdEu69uis5f/Xuk4H6ynC71IQmfASLr07PdEBXE="; hash = "sha256-/FL9czp5x/BcKSXXzT19kgGiPFd61BpU7HLtgyyHlIs=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
pbr pbr
setuptools
]; ];
PBR_VERSION = version; PBR_VERSION = version;
propagatedBuildInputs = [ propagatedBuildInputs = [
httpx httpx
pillow
pycryptodome pycryptodome
pyjwt pyjwt
]; ];
passthru.optional-dependencies = {
china = [
pillow
];
};
postInstall = '' postInstall = ''
cp -R bimmer_connected/tests/responses $out/${python.sitePackages}/bimmer_connected/tests/ cp -R bimmer_connected/tests/responses $out/${python.sitePackages}/bimmer_connected/tests/
''; '';
@ -51,7 +58,7 @@ buildPythonPackage rec {
pytestCheckHook pytestCheckHook
respx respx
time-machine time-machine
]; ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
preCheck = '' preCheck = ''
export TZDIR=${tzdata}/${python.sitePackages}/tzdata/zoneinfo export TZDIR=${tzdata}/${python.sitePackages}/tzdata/zoneinfo

View File

@ -3,8 +3,9 @@
, aresponses , aresponses
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, mashumaro
, orjson
, poetry-core , poetry-core
, pydantic
, pytest-asyncio , pytest-asyncio
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
@ -13,7 +14,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "elgato"; pname = "elgato";
version = "5.0.0"; version = "5.1.1";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.11"; disabled = pythonOlder "3.11";
@ -22,7 +23,7 @@ buildPythonPackage rec {
owner = "frenck"; owner = "frenck";
repo = "python-elgato"; repo = "python-elgato";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-TI5wu2FYVUMvgDkbktcwPLnTSD8XUSy8qwOCdrsiopk="; hash = "sha256-g0po3BtY2uiOmuyWVA+o08c3I86SE4zmvo1ps8HpNNw=";
}; };
postPatch = '' postPatch = ''
@ -38,7 +39,8 @@ buildPythonPackage rec {
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
pydantic mashumaro
orjson
yarl yarl
]; ];

View File

@ -0,0 +1,84 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
# build-system
, poetry-core
# dependencies
, cryptography
, http-ece
, protobuf
, requests
# docs
, sphinx
, sphinxHook
, sphinx-autodoc-typehints
, sphinx-rtd-theme
# tests
, async-timeout
, requests-mock
, pytest-asyncio
, pytest-mock
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "firebase-messaging";
version = "0.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "sdb9696";
repo = "firebase-messaging";
rev = version;
hash = "sha256-e3Ny3pnAfOpNERvvtE/jqSDIsM+YwLq/hbw753QpJ6o=";
};
outputs = [
"out"
"doc"
];
nativeBuildInputs = [
poetry-core
sphinxHook
] ++ passthru.optional-dependencies.docs;
propagatedBuildInputs = [
cryptography
http-ece
protobuf
requests
];
passthru.optional-dependencies = {
docs = [
sphinx
sphinx-autodoc-typehints
sphinx-rtd-theme
];
};
pythonImportsCheck = [
"firebase_messaging"
];
nativeCheckInputs = [
async-timeout
requests-mock
pytest-asyncio
pytest-mock
pytestCheckHook
];
meta = with lib; {
description = "A library to subscribe to GCM/FCM and receive notifications within a python application";
homepage = "https://github.com/sdb9696/firebase-messaging";
changelog = "https://github.com/sdb9696/firebase-messaging/blob/${src.rev}/CHANGELOG.rst";
license = licenses.mit;
maintainers = with maintainers; [ ];
};
}

View File

@ -7,6 +7,7 @@
, ciso8601 , ciso8601
, cryptography , cryptography
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, pycognito , pycognito
, pytest-aiohttp , pytest-aiohttp
, pytest-timeout , pytest-timeout
@ -32,12 +33,13 @@ buildPythonPackage rec {
hash = "sha256-r4Huvn9mBqnASpUd+drwORE+fApLV/l6Y3aO/UIiEC8="; hash = "sha256-r4Huvn9mBqnASpUd+drwORE+fApLV/l6Y3aO/UIiEC8=";
}; };
postPatch = '' patches = [
substituteInPlace setup.py \ (fetchpatch {
--replace "acme==" "acme>=" \ # Add missing wait_for_close mock in AiohttpClientMockResponse
--replace "pycognito==" "pycognito>=" \ url = "https://github.com/NabuCasa/hass-nabucasa/commit/097607e0fe30932ca5cba0c50fda125f90f5f3de.patch";
--replace "snitun==" "snitun>=" \ hash = "sha256-ZSh+1kGBb6ltNnd0RaDECXiJDEGJBOw1wN2HXPgfy+o=";
''; })
];
nativeBuildInputs = [ nativeBuildInputs = [
setuptools setuptools

View File

@ -4,8 +4,8 @@
, pythonOlder , pythonOlder
# propagates # propagates
, importlib-resources
, pyyaml , pyyaml
, unicode-rbnf
# tests # tests
, pytestCheckHook , pytestCheckHook
@ -13,21 +13,22 @@
let let
pname = "hassil"; pname = "hassil";
version = "1.2.5"; version = "1.5.1";
in in
buildPythonPackage { buildPythonPackage {
inherit pname version; inherit pname version;
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.9";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-udOkZILoba2+eR8oSFThsB846COaIXawwRYhn261mCA="; hash = "sha256-GLvDT8BUBvEzgiqKaXokF912g3fOH+KsXnmeOXIwe9U=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
pyyaml pyyaml
] ++ lib.optionals (pythonOlder "3.9") [ unicode-rbnf
importlib-resources
]; ];
nativeCheckInputs = [ nativeCheckInputs = [
@ -35,7 +36,7 @@ buildPythonPackage {
]; ];
meta = with lib; { meta = with lib; {
changelog = "https://github.com/home-assistant/hassil/releases/tag/v${version}"; changelog = "https://github.com/home-assistant/hassil/blob/v${version}/CHANGELOG.md";
description = "Intent parsing for Home Assistant"; description = "Intent parsing for Home Assistant";
homepage = "https://github.com/home-assistant/hassil"; homepage = "https://github.com/home-assistant/hassil";
license = licenses.asl20; license = licenses.asl20;

View File

@ -3,8 +3,9 @@
, aresponses , aresponses
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, mashumaro
, orjson
, poetry-core , poetry-core
, pydantic
, pytest-asyncio , pytest-asyncio
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
@ -12,46 +13,47 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "open-meteo"; pname = "open-meteo";
version = "0.2.1"; version = "0.3.1";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "frenck"; owner = "frenck";
repo = "python-open-meteo"; repo = "python-open-meteo";
rev = "v${version}"; rev = "v${version}";
sha256 = "0i8jmhd29vvkpfxs9l5wy8525ngs79mnc7si2j9b1nc41xrv91f6"; hash = "sha256-IB+dfQ4bb4dMYYQUVH9YbP3arvfgt4SooPlOKP3AVI8=";
}; };
postPatch = ''
# Upstream doesn't set a version for the pyproject.toml
substituteInPlace pyproject.toml \
--replace "0.0.0" "${version}" \
--replace "--cov" ""
'';
nativeBuildInputs = [ nativeBuildInputs = [
poetry-core poetry-core
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
aresponses mashumaro
pydantic orjson
]; ];
nativeCheckInputs = [ nativeCheckInputs = [
aresponses
pytest-asyncio pytest-asyncio
pytestCheckHook pytestCheckHook
]; ];
postPatch = ''
# Upstream doesn't set a version for the pyproject.toml
substituteInPlace pyproject.toml \
--replace "0.0.0" "${version}" \
--replace "--cov" "" \
--replace 'aiohttp = "^3.8.1"' 'aiohttp = "^3.8.0"'
'';
pythonImportsCheck = [ pythonImportsCheck = [
"open_meteo" "open_meteo"
]; ];
meta = with lib; { meta = with lib; {
changelog = "https://github.com/frenck/python-open-meteo/releases/tag/v${version}";
description = "Python client for the Open-Meteo API"; description = "Python client for the Open-Meteo API";
homepage = "https://github.com/frenck/python-open-meteo"; homepage = "https://github.com/frenck/python-open-meteo";
license = licenses.mit; license = licenses.mit;

View File

@ -4,16 +4,17 @@
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, poetry-core , poetry-core
, pydantic , mashumaro
, pytest-asyncio , pytest-asyncio
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
, syrupy
, yarl , yarl
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pvo"; pname = "pvo";
version = "2.0.0"; version = "2.1.1";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.11"; disabled = pythonOlder "3.11";
@ -22,7 +23,7 @@ buildPythonPackage rec {
owner = "frenck"; owner = "frenck";
repo = "python-pvoutput"; repo = "python-pvoutput";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-SvsrvGwIAlj/8hdk90+rxigVrx6n3YInvF/4eux2H04="; hash = "sha256-Js8oPEMxJyWK1E6GDm1xwm2BilnV3WBM6Hibf6oFOKE=";
}; };
postPatch = '' postPatch = ''
@ -38,7 +39,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
pydantic mashumaro
yarl yarl
]; ];
@ -46,6 +47,7 @@ buildPythonPackage rec {
aresponses aresponses
pytest-asyncio pytest-asyncio
pytestCheckHook pytestCheckHook
syrupy
]; ];
pythonImportsCheck = [ pythonImportsCheck = [

View File

@ -1,30 +1,36 @@
{ lib { lib
, aiohttp , aiohttp
, async-timeout
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, poetry-core
, pythonOlder
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pycfdns"; pname = "pycfdns";
version = "2.0.1"; version = "3.0.0";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ludeeus"; owner = "ludeeus";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-f6kxYX/dg16OWYpw29dH4Z26ncLZCYyHKGc4fzoCld0="; hash = "sha256-bLzDakxKq8fcjEKSxc6D5VN9gfAu1M3/zaAU2UYnwSs=";
}; };
postPatch = '' postPatch = ''
substituteInPlace setup.py \ substituteInPlace pyproject.toml \
--replace 'version="master",' 'version="${version}",' --replace 'version="0",' 'version="${version}",'
''; '';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
async-timeout
]; ];
# Project has no tests # Project has no tests

View File

@ -5,13 +5,14 @@
, fetchFromGitHub , fetchFromGitHub
, prompt-toolkit , prompt-toolkit
, pycryptodome , pycryptodome
, pydantic
, pythonOlder , pythonOlder
, setuptools , setuptools
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pykoplenti"; pname = "pykoplenti";
version = "1.0.0"; version = "1.2.2";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -20,7 +21,7 @@ buildPythonPackage rec {
owner = "stegm"; owner = "stegm";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-XBOKf3i8xywU/1Kzl+VI1Qnkp9ohpSuDX3AnotD32oo="; hash = "sha256-2sGkHCIGo1lzLurvQBmq+16sodAaK8v+mAbIH/Gd3+E=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -35,10 +36,16 @@ buildPythonPackage rec {
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
pycryptodome
pydantic
];
passthru.optional-dependencies = {
CLI = [
click click
prompt-toolkit prompt-toolkit
pycryptodome
]; ];
};
# Project has no tests # Project has no tests
doCheck = false; doCheck = false;

View File

@ -72,6 +72,10 @@ buildPythonPackage rec {
disabledTests = [ disabledTests = [
# Tests often hang # Tests often hang
"test_connected" "test_connected"
] ++ lib.optionals (lib.versionAtLeast aiohttp.version "3.9.0") [
"test_split_serial_packet"
"test_serial_poll"
"test_simulator"
]; ];
meta = with lib; { meta = with lib; {

View File

@ -21,20 +21,23 @@ buildPythonPackage rec {
hash = "sha256-r+f2+vEXJdQGDlbs/MhraFgEmsAf32PU282blLRLjzc="; hash = "sha256-r+f2+vEXJdQGDlbs/MhraFgEmsAf32PU282blLRLjzc=";
}; };
postPatch = ''
substituteInPlace setup.py \
--replace "aiohttp>=3.8.0,<4.0.0" "aiohttp<=4.0.0"
'';
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
]; ];
# https://github.com/andrewsayre/pysmartthings/issues/80
doCheck = lib.versionOlder aiohttp.version "3.9.0";
nativeCheckInputs = [ nativeCheckInputs = [
pytest-asyncio pytest-asyncio
pytestCheckHook pytestCheckHook
]; ];
postPatch = ''
substituteInPlace setup.py \
--replace "aiohttp>=3.8.0,<4.0.0" "aiohttp<=4.0.0"
'';
pythonImportsCheck = [ pythonImportsCheck = [
"pysmartthings" "pysmartthings"
]; ];

View File

@ -55,6 +55,12 @@ buildPythonPackage rec {
pytestCheckHook pytestCheckHook
]; ];
disabledTests = lib.optionals (lib.versionAtLeast aiohttp.version "3.9.0") [
# https://github.com/liudger/python-bsblan/issues/808
"test_http_error400"
"test_not_authorized_401_response"
];
pythonImportsCheck = [ pythonImportsCheck = [
"bsblan" "bsblan"
]; ];

View File

@ -1,37 +1,42 @@
{ lib { lib
, aiohttp , aiohttp
, aresponses , aresponses
, awesomeversion , async-timeout
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, poetry-core , poetry-core
, protobuf
, pytest-asyncio , pytest-asyncio
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
, syrupy
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-homewizard-energy"; pname = "python-homewizard-energy";
version = "2.1.2"; version = "4.1.1";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "DCSBL"; owner = "DCSBL";
repo = pname; repo = "python-homewizard-energy";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-iyDRhTV5GSBTVK7ccJhUOrCpE9YuiI1vJM4XroCyIwE="; hash = "sha256-p7uwodjC+wTGrlKf4i4ZRTPg9Qh9krsmwPpWNdF6J4U=";
}; };
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'version = "0.0.0"' 'version = "${version}"'
'';
nativeBuildInputs = [ nativeBuildInputs = [
poetry-core poetry-core
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
awesomeversion
aiohttp aiohttp
async-timeout
]; ];
__darwinAllowLocalNetworking = true; __darwinAllowLocalNetworking = true;
@ -40,6 +45,7 @@ buildPythonPackage rec {
aresponses aresponses
pytest-asyncio pytest-asyncio
pytestCheckHook pytestCheckHook
syrupy
]; ];
pythonImportsCheck = [ pythonImportsCheck = [
@ -48,8 +54,8 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Library to communicate with HomeWizard Energy devices"; description = "Library to communicate with HomeWizard Energy devices";
homepage = "https://github.com/DCSBL/python-homewizard-energy"; homepage = "https://github.com/homewizard/python-homewizard-energy";
changelog = "https://github.com/DCSBL/python-homewizard-energy/releases/tag/v${version}"; changelog = "https://github.com/homewizard/python-homewizard-energy/releases/tag/v${version}";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ fab ]; maintainers = with maintainers; [ fab ];
}; };

View File

@ -5,11 +5,11 @@
# build # build
, setuptools , setuptools
, wheel
# propagates # propagates
, aiohttp , aiohttp
, aiorun , aiorun
, async-timeout
, coloredlogs , coloredlogs
, dacite , dacite
, orjson , orjson
@ -28,7 +28,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-matter-server"; pname = "python-matter-server";
version = "4.0.2"; version = "5.0.3";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.10"; disabled = pythonOlder "3.10";
@ -37,17 +37,22 @@ buildPythonPackage rec {
owner = "home-assistant-libs"; owner = "home-assistant-libs";
repo = "python-matter-server"; repo = "python-matter-server";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-fyVvmYznYuhDhU3kApXgXjkPdwhJFxoFq3U87ichmt8="; hash = "sha256-bR6AVoy9f02RKZ57dnHTDAv5LTCcd/qBbzMDRKsGbfM=";
}; };
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'version = "0.0.0"' 'version = "${version}"'
'';
nativeBuildInputs = [ nativeBuildInputs = [
setuptools setuptools
wheel
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
aiorun aiorun
async-timeout
coloredlogs coloredlogs
dacite dacite
orjson orjson

View File

@ -1,54 +0,0 @@
{ lib
, aiohttp
, beautifulsoup4
, buildPythonPackage
, fetchFromGitHub
, pkce
, poetry-core
, pythonOlder
}:
buildPythonPackage rec {
pname = "python-myq";
version = "3.1.13";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "Python-MyQ";
repo = "Python-MyQ";
rev = "refs/tags/v${version}";
hash = "sha256-kW03swRXZdkh45I/up/FIxv0WGBRqTlDt1X71Ow/hrg=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace "poetry-core==1.6.1" "poetry-core"
'';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
beautifulsoup4
pkce
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [
"pymyq"
];
meta = with lib; {
description = "Python wrapper for MyQ API";
homepage = "https://github.com/Python-MyQ/Python-MyQ";
changelog = "https://github.com/Python-MyQ/Python-MyQ/releases/tag/v${version}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@ -1,7 +1,6 @@
{ lib { lib
, stdenv , stdenv
, aiohttp , aiohttp
, alexapy
, async-timeout , async-timeout
, buildPythonPackage , buildPythonPackage
, click , click
@ -20,7 +19,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-roborock"; pname = "python-roborock";
version = "0.35.3"; version = "0.36.2";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.10"; disabled = pythonOlder "3.10";
@ -29,12 +28,12 @@ buildPythonPackage rec {
owner = "humbertogontijo"; owner = "humbertogontijo";
repo = "python-roborock"; repo = "python-roborock";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-3XTVHs+mLePudLnr+bAN4pHvHtUcE0D5Hw+50Vxhlzw="; hash = "sha256-FyoYAXWdNANxZJ9EKyfRrywKPJmSyt8QRPBlrk9jRIw=";
}; };
postPatch = '' postPatch = ''
substituteInPlace pyproject.toml \ substituteInPlace pyproject.toml \
--replace "poetry-core==1.6.1" "poetry-core" --replace "poetry-core==1.7.0" "poetry-core"
''; '';
pythonRelaxDeps = [ pythonRelaxDeps = [
@ -47,7 +46,6 @@ buildPythonPackage rec {
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
alexapy
aiohttp aiohttp
async-timeout async-timeout
click click

View File

@ -1,10 +1,8 @@
{ lib { lib
, aiohttp , aiohttp
, aresponses
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, poetry-core , poetry-core
, pydantic
, pytestCheckHook , pytestCheckHook
, pytest-asyncio , pytest-asyncio
, pythonOlder , pythonOlder
@ -12,16 +10,16 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pytraccar"; pname = "pytraccar";
version = "1.0.0"; version = "2.0.0";
format = "pyproject"; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ludeeus"; owner = "ludeeus";
repo = pname; repo = "pytraccar";
rev = version; rev = "refs/tags/${version}";
hash = "sha256-ngyLe6sbTTQ7n4WdV06OlQnn/vqkD+JUruyMYS1Ym+Q="; hash = "sha256-7QGgI+DDYbordBx4LbtCvPWyEh6ur2RrSKMuDlwRlTo=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -30,11 +28,12 @@ buildPythonPackage rec {
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
pydantic
]; ];
# https://github.com/ludeeus/pytraccar/issues/31
doCheck = lib.versionOlder aiohttp.version "3.9.0";
nativeCheckInputs = [ nativeCheckInputs = [
aresponses
pytestCheckHook pytestCheckHook
pytest-asyncio pytest-asyncio
]; ];
@ -56,6 +55,7 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Python library to handle device information from Traccar"; description = "Python library to handle device information from Traccar";
homepage = "https://github.com/ludeeus/pytraccar"; homepage = "https://github.com/ludeeus/pytraccar";
changelog = "https://github.com/ludeeus/pytraccar/releases/tag/${version}";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ fab ]; maintainers = with maintainers; [ fab ];
}; };

View File

@ -2,26 +2,29 @@
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, aiohttp , aiohttp
, async-timeout
, lxml , lxml
, pythonOlder , pythonOlder
, setuptools
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pytrafikverket"; pname = "pytrafikverket";
version = "0.3.8"; version = "0.3.9.1";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-3p2tKFuzgl+VFRRXV66MRgcL1XS8xxDqMOUZw+Ql/5E="; hash = "sha256-F0BMpZVzSK0i+tdvN//KZQqgxFrfLf0SCNztKCs6BYQ=";
}; };
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
async-timeout
lxml lxml
]; ];

View File

@ -5,21 +5,26 @@
, pytestCheckHook , pytestCheckHook
, pythonAtLeast , pythonAtLeast
, pythonOlder , pythonOlder
, setuptools
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "restrictedpython"; pname = "restrictedpython";
version = "6.2"; version = "7.0";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
pname = "RestrictedPython"; pname = "RestrictedPython";
inherit version; inherit version;
hash = "sha256-23Prfjs5ZQ8NIdEMyN2pwOKYbmIclLDF3jL7De46CK8="; hash = "sha256-U3BK+7w1D9yPskVEE2e+Zxyfg4CGkgGy6EUudPzj2xQ=";
}; };
nativeBuildInputs = [
setuptools
];
nativeCheckInputs = [ nativeCheckInputs = [
pytestCheckHook pytestCheckHook
pytest-mock pytest-mock

View File

@ -2,6 +2,7 @@
, asyncclick , asyncclick
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, firebase-messaging
, oauthlib , oauthlib
, poetry-core , poetry-core
, pytest-asyncio , pytest-asyncio
@ -40,6 +41,12 @@ buildPythonPackage rec {
requests-oauthlib requests-oauthlib
]; ];
passthru.optional-dependencies = {
listen = [
firebase-messaging
];
};
nativeCheckInputs = [ nativeCheckInputs = [
pytest-asyncio pytest-asyncio
pytest-mock pytest-mock

View File

@ -0,0 +1,43 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
# build-system
, setuptools
# tests
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "unicode-rbnf";
version = "1.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "rhasspy";
repo = "unicode-rbnf";
rev = "v${version}";
hash = "sha256-xwnfqWwQJKCJ4G+8eVaySTJAHxhwKYAqLHaCsxtBIl0=";
};
nativeBuildInputs = [
setuptools
];
pythonImportsCheck = [
"unicode_rbnf"
];
nativeCheckInputs = [
pytestCheckHook
];
meta = with lib; {
changelog = "https://github.com/rhasspy/unicode-rbnf/v${version}/master/CHANGELOG.md";
description = "A pure Python implementation of ICU's rule-based number format engine";
homepage = "https://github.com/rhasspy/unicode-rbnf";
license = licenses.mit;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -6,7 +6,6 @@
# build-system # build-system
, setuptools , setuptools
, setuptools-git-versioning , setuptools-git-versioning
, wheel
# dependencies # dependencies
, async-timeout , async-timeout
@ -27,20 +26,19 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "universal-silabs-flasher"; pname = "universal-silabs-flasher";
version = "0.0.14"; version = "0.0.15";
format = "pyproject"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "NabuCasa"; owner = "NabuCasa";
repo = "universal-silabs-flasher"; repo = "universal-silabs-flasher";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-0c9b571gJXFOAe5ct8O/qy7D6rDosmBHDYEv6odLQ2s="; hash = "sha256-5hA1i2XzKzQDRrZfOaA6I3X7hU+nSd7HpcHHNIzZO7g=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
setuptools setuptools
setuptools-git-versioning setuptools-git-versioning
wheel
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -65,6 +63,7 @@ buildPythonPackage rec {
pythonImportsCheck = [ "universal_silabs_flasher" ]; pythonImportsCheck = [ "universal_silabs_flasher" ];
meta = with lib; { meta = with lib; {
changelog = "https://github.com/NabuCasa/universal-silabs-flasher/releases/tag/v${version}";
description = "Flashes Silicon Labs radios running EmberZNet or CPC multi-pan firmware"; description = "Flashes Silicon Labs radios running EmberZNet or CPC multi-pan firmware";
homepage = "https://github.com/NabuCasa/universal-silabs-flasher"; homepage = "https://github.com/NabuCasa/universal-silabs-flasher";
license = licenses.gpl3Only; license = licenses.gpl3Only;

View File

@ -1,4 +1,5 @@
{ lib { lib
, aiohttp
, buildPythonPackage , buildPythonPackage
, pythonOlder , pythonOlder
, fetchFromGitHub , fetchFromGitHub
@ -11,7 +12,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "vallox-websocket-api"; pname = "vallox-websocket-api";
version = "3.3.0"; version = "4.0.2";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -20,7 +21,7 @@ buildPythonPackage rec {
owner = "yozik04"; owner = "yozik04";
repo = "vallox_websocket_api"; repo = "vallox_websocket_api";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-wlkb6aa2UtqjrbNA26TUH+ZKvOM64An+lol+MCdQh3U="; hash = "sha256-a9cYYRAKX9sY9fQhefLWgyvk0vQl7Ao3zvw0SAtFW/Q=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -28,6 +29,7 @@ buildPythonPackage rec {
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp
construct construct
websockets websockets
]; ];
@ -40,6 +42,7 @@ buildPythonPackage rec {
pythonImportsCheck = [ "vallox_websocket_api" ]; pythonImportsCheck = [ "vallox_websocket_api" ];
meta = { meta = {
changelog = "https://github.com/yozik04/vallox_websocket_api/releases/tag/${version}";
description = "Async API for Vallox ventilation units"; description = "Async API for Vallox ventilation units";
homepage = "https://github.com/yozik04/vallox_websocket_api"; homepage = "https://github.com/yozik04/vallox_websocket_api";
license = lib.licenses.lgpl3Only; license = lib.licenses.lgpl3Only;

View File

@ -3,17 +3,19 @@
, aresponses , aresponses
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, mashumaro
, orjson
, poetry-core , poetry-core
, pydantic
, pytest-asyncio , pytest-asyncio
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
, syrupy
, yarl , yarl
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "vehicle"; pname = "vehicle";
version = "2.0.0"; version = "2.2.1";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.11"; disabled = pythonOlder "3.11";
@ -22,25 +24,9 @@ buildPythonPackage rec {
owner = "frenck"; owner = "frenck";
repo = "python-vehicle"; repo = "python-vehicle";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-EbjrAfbqVY336RHBWq81KM+oHixen+38aUTnWZQ+nCs="; hash = "sha256-mu30v4iZoOYfQZc1P45UZaor6hf+i+gOvGcVGcQYzTo=";
}; };
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
pydantic
yarl
];
nativeCheckInputs = [
aresponses
pytest-asyncio
pytestCheckHook
];
postPatch = '' postPatch = ''
# Upstream doesn't set a version for the pyproject.toml # Upstream doesn't set a version for the pyproject.toml
substituteInPlace pyproject.toml \ substituteInPlace pyproject.toml \
@ -48,6 +34,24 @@ buildPythonPackage rec {
--replace "--cov" "" --replace "--cov" ""
''; '';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
mashumaro
orjson
yarl
];
nativeCheckInputs = [
aresponses
pytest-asyncio
pytestCheckHook
syrupy
];
pythonImportsCheck = [ pythonImportsCheck = [
"vehicle" "vehicle"
]; ];

View File

@ -1,6 +1,12 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchFromGitHub
# build-system
, setuptools
# optional-dependencies
, zeroconf
# tests # tests
, wyoming-faster-whisper , wyoming-faster-whisper
@ -10,12 +16,24 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "wyoming"; pname = "wyoming";
version = "1.2.0"; version = "1.3.0";
format = "setuptools"; pyproject = true;
src = fetchPypi { src = fetchFromGitHub {
inherit pname version; owner = "rhasspy";
hash = "sha256-mgNhc8PMRrwfvGZEcgIvQ/P2dysdDo2juvZccvb2C/g="; repo = "wyoming";
rev = "refs/tags/${version}";
hash = "sha256-UoXB+r72O9RaBvtXCEC1TAjjovYEYLqvv07GuQh0iCE=";
};
nativeBuildInputs = [
setuptools
];
passthru.optional-dependencies = {
zeroconf = [
zeroconf
];
}; };
pythonImportsCheck = [ pythonImportsCheck = [
@ -34,8 +52,9 @@ buildPythonPackage rec {
}; };
meta = with lib; { meta = with lib; {
changelog = "https://github.com/rhasspy/wyoming/releases/tag/${version}";
description = "Protocol for Rhasspy Voice Assistant"; description = "Protocol for Rhasspy Voice Assistant";
homepage = "https://pypi.org/project/wyoming/"; homepage = "https://github.com/rhasspy/wyoming";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ hexa ]; maintainers = with maintainers; [ hexa ];
}; };

View File

@ -11,7 +11,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "yolink-api"; pname = "yolink-api";
version = "0.3.3"; version = "0.3.4";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "YoSmart-Inc"; owner = "YoSmart-Inc";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-Kg7EvMoFMNm7+Upxo1RIyzrOFsz9dQu1YYiEuetlXBk="; hash = "sha256-wDZlzl178SIXxo5SacbbXWHhF4wOsjBU4a9h0jBYA4c=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -1,6 +1,5 @@
{ lib { lib
, stdenv , cython_3
, cython
, async-timeout , async-timeout
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
@ -15,7 +14,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "zeroconf"; pname = "zeroconf";
version = "0.119.0"; version = "0.128.0";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -24,11 +23,16 @@ buildPythonPackage rec {
owner = "jstasiak"; owner = "jstasiak";
repo = "python-zeroconf"; repo = "python-zeroconf";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-VaqKk2WrRLZM2tfx3+y9GngEc6rMcw0b12ExFVfDYf4="; hash = "sha256-44Ibjbimpl+KSnQ2QMwVg79F38gdWPYTR/ZRyW7JHEU=";
}; };
postPatch = ''
substituteInPlace pyproject.toml \
--replace "Cython>=3.0.5" "Cython"
'';
nativeBuildInputs = [ nativeBuildInputs = [
cython cython_3
poetry-core poetry-core
setuptools setuptools
]; ];

View File

@ -2,26 +2,47 @@
, aiohttp , aiohttp
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, pytest-asyncio , pytest-asyncio
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
, setuptools
, zigpy , zigpy
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "zha-quirks"; pname = "zha-quirks";
version = "0.0.106"; version = "0.0.107";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zigpy"; owner = "zigpy";
repo = "zha-device-handlers"; repo = "zha-device-handlers";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-+sL3AbjDg0Kl6eqMwVAN9W85QKJqFR1ANKz1E958KeA="; hash = "sha256-JHf6PZDK7yjyHjjUhkNpqEINCaY916wX5rXaw1Fx1ro=";
}; };
patches = [
(fetchpatch {
# https://github.com/zigpy/zha-device-handlers/pull/2787
name = "zigpy-0.60-compat.patch";
url = "https://github.com/zigpy/zha-device-handlers/commit/f497ccd2437ae9a24b9afdb84f11fc27a30df211.patch";
hash = "sha256-ICatiA0QRmfJ4Vf4LWyUJI5TLeWoikII49HSBir5WNI=";
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace ', "setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
zigpy zigpy

View File

@ -6,13 +6,14 @@
, pytest-asyncio , pytest-asyncio
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
, setuptools
, zigpy , zigpy
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "zigpy-deconz"; pname = "zigpy-deconz";
version = "0.21.1"; version = "0.22.0";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -20,9 +21,19 @@ buildPythonPackage rec {
owner = "zigpy"; owner = "zigpy";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-YRJMIpC6Zk5sQjGyzdEbQEeYgFJzIbxe4BReayceu10="; hash = "sha256-pdWWI+yZh0uf2TzVbyJFIrxM2zfmaPG/PGZWaNNrZ6M=";
}; };
postPatch = ''
substituteInPlace pyproject.toml \
--replace ', "setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [ propagatedBuildInputs = [
pyserial pyserial
pyserial-asyncio pyserial-asyncio

View File

@ -6,26 +6,35 @@
, pytest-asyncio , pytest-asyncio
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
, setuptools
, zigpy , zigpy
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "zigpy-xbee"; pname = "zigpy-xbee";
version = "0.19.0"; version = "0.20.0";
format = "setuptools"; pyproject = true;
# https://github.com/Martiusweb/asynctest/issues/152
# broken by upstream python bug with asynctest and
# is used exclusively by home-assistant with python 3.8
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zigpy"; owner = "zigpy";
repo = "zigpy-xbee"; repo = "zigpy-xbee";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-KUXXOySuPFNKcW3O08FBYIfm4WwVjOuIF+GefmKnwl0="; hash = "sha256-Ja9U/X9YblS6uUD7MX3t2tItG9AMiNF7OFgvIotdvQs=";
}; };
buildInputs = [ postPatch = ''
substituteInPlace pyproject.toml \
--replace ', "setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
pyserial pyserial
pyserial-asyncio pyserial-asyncio
zigpy zigpy

View File

@ -9,13 +9,14 @@
, pytest-asyncio , pytest-asyncio
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
, setuptools
, zigpy , zigpy
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "zigpy-zigate"; pname = "zigpy-zigate";
version = "0.11.0"; version = "0.12.0";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -23,9 +24,19 @@ buildPythonPackage rec {
owner = "zigpy"; owner = "zigpy";
repo = "zigpy-zigate"; repo = "zigpy-zigate";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-eGN2QvPHZ8gfPPFdUbAP9cs43jzUHDBS/w1tni1shB0="; hash = "sha256-wziXUFYSUXhzWHM870jphG12h99WVzqiYimtIbkXyM0=";
}; };
postPatch = ''
substituteInPlace pyproject.toml \
--replace ', "setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [ propagatedBuildInputs = [
gpiozero gpiozero
pyserial pyserial

View File

@ -10,14 +10,15 @@
, pytest-timeout , pytest-timeout
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
, setuptools
, voluptuous , voluptuous
, zigpy , zigpy
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "zigpy-znp"; pname = "zigpy-znp";
version = "0.11.6"; version = "0.12.0";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -25,12 +26,18 @@ buildPythonPackage rec {
owner = "zigpy"; owner = "zigpy";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-K85AmksP/dXKL4DQKadyvjK7y5x6yEgc6vDJAPfblTw="; hash = "sha256-nPk//1MMvtWf2iLZZ/2vJoBdFEJBmy8RBMwSFzfnNT8=";
}; };
nativeBuildInputs = [
setuptools
];
postPatch = '' postPatch = ''
substituteInPlace pyproject.toml \ substituteInPlace pyproject.toml \
--replace "timeout = 20" "timeout = 300" --replace "timeout = 20" "timeout = 300" \
--replace ', "setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
''; '';
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -14,12 +14,11 @@
, pythonOlder , pythonOlder
, setuptools , setuptools
, voluptuous , voluptuous
, wheel
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "zigpy"; pname = "zigpy";
version = "0.58.1"; version = "0.60.0";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -28,7 +27,7 @@ buildPythonPackage rec {
owner = "zigpy"; owner = "zigpy";
repo = "zigpy"; repo = "zigpy";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-i2P9QyhT/UQ8Xu0IfQ2OzAxIiMF4H04Jkz3/6e2FCpY="; hash = "sha256-1i92YyOIoWSMDHgfnXiXQuvDnmEPlSHwoSLmmsoTkDU=";
}; };
postPatch = '' postPatch = ''
@ -39,7 +38,6 @@ buildPythonPackage rec {
nativeBuildInputs = [ nativeBuildInputs = [
setuptools setuptools
wheel
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -0,0 +1,70 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
# build-system
, cmake
, setuptools
# native dependencies
, zlib-ng
# tests
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "zlib-ng";
version = "0.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "pycompression";
repo = "python-zlib-ng";
rev = "v${version}";
hash = "sha256-dZnX94SOuV1/zTYUecnRe6DDKf5nAvydHn7gESVQ6hs=";
};
nativeBuildInputs = [
cmake
setuptools
];
dontUseCmakeConfigure = true;
env.PYTHON_ZLIB_NG_LINK_DYNAMIC = true;
buildInputs = [
zlib-ng
];
pythonImportsCheck = [
"zlib_ng"
];
nativeCheckInputs = [
pytestCheckHook
];
preCheck = ''
rm -rf src
'';
disabledTests = [
# commandline tests fail to find the built module
"test_compress_fast_best_are_exclusive"
"test_compress_infile_outfile"
"test_compress_infile_outfile_default"
"test_decompress_cannot_have_flags_compression"
"test_decompress_infile_outfile"
"test_decompress_infile_outfile_error"
];
meta = with lib; {
description = "A drop-in replacement for Python's zlib and gzip modules using zlib-ng";
homepage = "https://github.com/pycompression/python-zlib-ng";
changelog = "https://github.com/pycompression/python-zlib-ng/blob/${src.rev}/CHANGELOG.rst";
license = licenses.psfl;
maintainers = with maintainers; [ hexa ];
};
}

File diff suppressed because it is too large Load Diff

View File

@ -30,24 +30,16 @@ let
# Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
(self: super: { (self: super: {
aioairq = super.aioairq.overridePythonAttrs (oldAttrs: rec {
version = "0.2.4";
src = fetchFromGitHub {
owner = "CorantGmbH";
repo = "aioairq";
rev = "refs/tags/v${version}";
hash = "sha256-+5FyBfsB3kjyX/V9CdZ072mZ3THyvALyym+uk7/kZLo=";
};
});
# https://github.com/home-assistant/core/pull/101913 # https://github.com/home-assistant/core/pull/101913
aiohttp = super.aiohttp.overridePythonAttrs (old: rec { aiohttp = super.aiohttp.overridePythonAttrs (old: rec {
version = "3.8.5"; version = "3.9.1";
src = fetchPypi { src = fetchPypi {
inherit (old) pname; inherit (old) pname;
inherit version; inherit version;
hash = "sha256-uVUuxSzBR9vxlErHrJivdgLlHqLc0HbtGUyjwNHH0Lw="; hash = "sha256-j8Sah6wmnUUp2kWHHi/7aHTod3nD0OLM2BPAiZIhI50=";
}; };
patches = [];
doCheck = false;
}); });
aiowatttime = super.aiowatttime.overridePythonAttrs (oldAttrs: rec { aiowatttime = super.aiowatttime.overridePythonAttrs (oldAttrs: rec {
@ -60,6 +52,15 @@ let
}; };
}); });
aioresponses = super.aioresponses.overridePythonAttrs (oldAttrs: rec {
pname = "aioresponses";
version = "0.7.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-95XZ29otYXdIQOfjL1Nm9FdS0a3Bt0yTYq/QFylsfuE=";
};
});
astral = super.astral.overridePythonAttrs (oldAttrs: rec { astral = super.astral.overridePythonAttrs (oldAttrs: rec {
pname = "astral"; pname = "astral";
version = "2.2"; version = "2.2";
@ -105,10 +106,10 @@ let
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-iqlKfpnETLqQwy5sNcK2x/TgmuN2hCfYoHEFK2WWVXI="; hash = "sha256-iqlKfpnETLqQwy5sNcK2x/TgmuN2hCfYoHEFK2WWVXI=";
}; };
nativeBuildInputs = with super; [ nativeBuildInputs = with self; [
setuptools setuptools
]; ];
propagatedBuildInputs = with super; [ propagatedBuildInputs = with self; [
aenum aenum
aiohttp aiohttp
pydantic pydantic
@ -135,11 +136,6 @@ let
}; };
}); });
# moto tests are a nuissance
moto = super.moto.overridePythonAttrs (_: {
doCheck = false;
});
notifications-android-tv = super.notifications-android-tv.overridePythonAttrs (oldAttrs: rec { notifications-android-tv = super.notifications-android-tv.overridePythonAttrs (oldAttrs: rec {
version = "0.1.5"; version = "0.1.5";
format = "setuptools"; format = "setuptools";
@ -151,11 +147,11 @@ let
hash = "sha256-adkcUuPl0jdJjkBINCTW4Kmc16C/HzL+jaRZB/Qr09A="; hash = "sha256-adkcUuPl0jdJjkBINCTW4Kmc16C/HzL+jaRZB/Qr09A=";
}; };
nativeBuildInputs = with super; [ nativeBuildInputs = with self; [
setuptools setuptools
]; ];
propagatedBuildInputs = with super; [ propagatedBuildInputs = with self; [
requests requests
]; ];
@ -183,15 +179,6 @@ let
}; };
}); });
p1monitor = super.p1monitor.overridePythonAttrs (oldAttrs: rec {
version = "2.1.1";
src = fetchFromGitHub {
inherit (oldAttrs.src) owner repo;
rev = "refs/tags/v${version}";
hash = "sha256-VHY5AWxt5BZd1NQKzsgubEZBLKAlDNm8toyEazPUnDU=";
};
});
psutil = super.psutil.overridePythonAttrs (oldAttrs: rec { psutil = super.psutil.overridePythonAttrs (oldAttrs: rec {
version = "5.9.6"; version = "5.9.6";
src = fetchPypi { src = fetchPypi {
@ -324,7 +311,7 @@ let
extraBuildInputs = extraPackages python.pkgs; extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run parse-requirements.py after updating # Don't forget to run parse-requirements.py after updating
hassVersion = "2023.11.3"; hassVersion = "2023.12.0";
in python.pkgs.buildPythonApplication rec { in python.pkgs.buildPythonApplication rec {
pname = "homeassistant"; pname = "homeassistant";
@ -337,18 +324,18 @@ in python.pkgs.buildPythonApplication rec {
# don't try and fail to strip 6600+ python files, it takes minutes! # don't try and fail to strip 6600+ python files, it takes minutes!
dontStrip = true; dontStrip = true;
# Primary source is the pypi sdist, because it contains translations # Primary source is the git, which has the tests and allows bisecting the core
src = fetchPypi { src = fetchFromGitHub {
inherit pname version;
hash = "sha256-llGHI6LVpTo9m2RMtcDSkW2wWraje2OkVFx5P7lzZ30=";
};
# Secondary source is git for tests
gitSrc = fetchFromGitHub {
owner = "home-assistant"; owner = "home-assistant";
repo = "core"; repo = "core";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-KD53O+UlAjGfVGp4kbLgpgU7j0A+KqZZT492WmeCOnQ="; hash = "sha256-d7H6U5wRU1mOAU5YFyy7gtttsG9p1g7iDxZcaK+cAOg=";
};
# Secondary source is pypi sdist for translations
sdist = fetchPypi {
inherit pname version;
hash = "sha256-TspjqX98adi6cYe/raV1FB5Xy59F4jWJukw1pkuP+Sw=";
}; };
nativeBuildInputs = with python.pkgs; [ nativeBuildInputs = with python.pkgs; [
@ -378,10 +365,9 @@ in python.pkgs.buildPythonApplication rec {
"yarl" "yarl"
]; ];
# copy tests early, so patches apply as they would to the git repo # extract translations from pypi sdist
prePatch = '' prePatch = ''
cp --no-preserve=mode --recursive ${gitSrc}/tests ./ tar --extract --gzip --file $sdist --strip-components 1 --wildcards "**/translations"
chmod u+x tests/auth/providers/test_command_line_cmd.sh
''; '';
# leave this in, so users don't have to constantly update their downstream patch handling # leave this in, so users don't have to constantly update their downstream patch handling
@ -481,6 +467,8 @@ in python.pkgs.buildPythonApplication rec {
"--deselect tests/test_config.py::test_merge" "--deselect tests/test_config.py::test_merge"
# AssertionError: assert 'WARNING' not in '2023-11-10 ...nt abc[L]>\n'" # AssertionError: assert 'WARNING' not in '2023-11-10 ...nt abc[L]>\n'"
"--deselect=tests/helpers/test_script.py::test_multiple_runs_repeat_choose" "--deselect=tests/helpers/test_script.py::test_multiple_runs_repeat_choose"
# SystemError: PyThreadState_SetAsyncExc failed
"--deselect=tests/helpers/test_template.py::test_template_timeout"
# tests are located in tests/ # tests are located in tests/
"tests" "tests"
]; ];

View File

@ -4,7 +4,7 @@ buildPythonPackage rec {
# the frontend version corresponding to a specific home-assistant version can be found here # 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 # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
pname = "home-assistant-frontend"; pname = "home-assistant-frontend";
version = "20231030.2"; version = "20231206.0";
format = "wheel"; format = "wheel";
src = fetchPypi { src = fetchPypi {
@ -12,7 +12,7 @@ buildPythonPackage rec {
pname = "home_assistant_frontend"; pname = "home_assistant_frontend";
dist = "py3"; dist = "py3";
python = "py3"; python = "py3";
hash = "sha256-qzodzqWpAXZjwBJkiCyBi5zzfpEqqtauJn2PKZ5UtJ0="; hash = "sha256-RZRZ7feaW47DRCIKsesdkURG24ZacD2y3O3ppasbftk=";
}; };
# there is nothing to strip in this package # there is nothing to strip in this package

View File

@ -20,7 +20,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "home-assistant-intents"; pname = "home-assistant-intents";
version = "2023.10.16"; version = "2023.12.05";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -29,7 +29,7 @@ buildPythonPackage rec {
owner = "home-assistant"; owner = "home-assistant";
repo = "intents-package"; repo = "intents-package";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-qW5KzABEEBw2tu5+fAoWd8nCxuvTzEU14M8iaSo2WzE="; hash = "sha256-BVcvlmX5+w7b9uNHA4ZP6Ebj+7ROUgEaAmXAGQrby+s=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View File

@ -8,7 +8,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "homeassistant-stubs"; pname = "homeassistant-stubs";
version = "2023.11.3"; version = "2023.12.0";
format = "pyproject"; format = "pyproject";
disabled = python.version != home-assistant.python.version; disabled = python.version != home-assistant.python.version;
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "KapJI"; owner = "KapJI";
repo = "homeassistant-stubs"; repo = "homeassistant-stubs";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-x3FcUmbUYAUKGAPb85SqJk1kTWFKxpJSX2J+rTRj1KY="; hash = "sha256-14zxVCxYtmEe71f+wqgvT/lKiv7DMN7PaeYrkQG4kMQ=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -192,11 +192,11 @@ class HomeAssistant:
async def update_core(self, old_version: str, new_version: str) -> None: async def update_core(self, old_version: str, new_version: str) -> None:
old_sdist_hash = str(await Nix.eval("home-assistant.src.outputHash")) old_sdist_hash = str(await Nix.eval("home-assistant.sdist.outputHash"))
new_sdist_hash = await Nurl.prefetch("https://pypi.org/project/homeassistant/", new_version) new_sdist_hash = await Nurl.prefetch("https://pypi.org/project/homeassistant/", new_version)
print(f"sdist: {old_sdist_hash} -> {new_sdist_hash}") print(f"sdist: {old_sdist_hash} -> {new_sdist_hash}")
old_git_hash = str(await Nix.eval("home-assistant.gitSrc.outputHash")) old_git_hash = str(await Nix.eval("home-assistant.src.outputHash"))
new_git_hash = await Nurl.prefetch("https://github.com/home-assistant/core/", new_version) new_git_hash = await Nurl.prefetch("https://github.com/home-assistant/core/", new_version)
print(f"git: {old_git_hash} -> {new_git_hash}") print(f"git: {old_git_hash} -> {new_git_hash}")

View File

@ -312,6 +312,7 @@ mapAliases ({
pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04 pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
PyMVGLive = pymvglive; # added 2023-02-19 PyMVGLive = pymvglive; # added 2023-02-19
pymyq = python-myq; # added 2023-10-20 pymyq = python-myq; # added 2023-10-20
python-myq = throw "python-myq has been removed, as the service provider has decided to block its API requests"; # added 2023-12-07
pyqt4 = throw "pyqt4 has been removed, because it depended on the long EOL qt4"; # added 2022-06-09 pyqt4 = throw "pyqt4 has been removed, because it depended on the long EOL qt4"; # added 2022-06-09
pyramid_beaker = pyramid-beaker; # added 2023-08-23 pyramid_beaker = pyramid-beaker; # added 2023-08-23
pyramid_chameleon = pyramid-chameleon; # added 2023-08-23 pyramid_chameleon = pyramid-chameleon; # added 2023-08-23

View File

@ -250,6 +250,8 @@ self: super: with self; {
aiohttp-wsgi = callPackage ../development/python-modules/aiohttp-wsgi { }; aiohttp-wsgi = callPackage ../development/python-modules/aiohttp-wsgi { };
aiohttp-zlib-ng = callPackage ../development/python-modules/aiohttp-zlib-ng { };
aioitertools = callPackage ../development/python-modules/aioitertools { }; aioitertools = callPackage ../development/python-modules/aioitertools { };
aiobiketrax = callPackage ../development/python-modules/aiobiketrax { }; aiobiketrax = callPackage ../development/python-modules/aiobiketrax { };
@ -3974,6 +3976,8 @@ self: super: with self; {
fire = callPackage ../development/python-modules/fire { }; fire = callPackage ../development/python-modules/fire { };
firebase-messaging = callPackage ../development/python-modules/firebase-messaging { };
fireflyalgorithm = callPackage ../development/python-modules/fireflyalgorithm { }; fireflyalgorithm = callPackage ../development/python-modules/fireflyalgorithm { };
firetv = callPackage ../development/python-modules/firetv { }; firetv = callPackage ../development/python-modules/firetv { };
@ -10714,8 +10718,6 @@ self: super: with self; {
pymvglive = callPackage ../development/python-modules/pymvglive { }; pymvglive = callPackage ../development/python-modules/pymvglive { };
python-myq = callPackage ../development/python-modules/python-myq { };
pymysensors = callPackage ../development/python-modules/pymysensors { }; pymysensors = callPackage ../development/python-modules/pymysensors { };
pymysql = callPackage ../development/python-modules/pymysql { }; pymysql = callPackage ../development/python-modules/pymysql { };
@ -15453,6 +15455,8 @@ self: super: with self; {
unicodedata2 = callPackage ../development/python-modules/unicodedata2 { }; unicodedata2 = callPackage ../development/python-modules/unicodedata2 { };
unicode-rbnf = callPackage ../development/python-modules/unicode-rbnf { };
unicode-slugify = callPackage ../development/python-modules/unicode-slugify { }; unicode-slugify = callPackage ../development/python-modules/unicode-slugify { };
unicorn = callPackage ../development/python-modules/unicorn { unicorn = callPackage ../development/python-modules/unicorn {
@ -16321,6 +16325,10 @@ self: super: with self; {
zipstream-ng = callPackage ../development/python-modules/zipstream-ng { }; zipstream-ng = callPackage ../development/python-modules/zipstream-ng { };
zlib-ng = callPackage ../development/python-modules/zlib-ng {
inherit (pkgs) zlib-ng;
};
zm-py = callPackage ../development/python-modules/zm-py { }; zm-py = callPackage ../development/python-modules/zm-py { };
zodb = callPackage ../development/python-modules/zodb { }; zodb = callPackage ../development/python-modules/zodb { };