diff options
31 files changed, 358 insertions, 124 deletions
diff --git a/nixos/modules/services/misc/home-assistant.nix b/nixos/modules/services/misc/home-assistant.nix index d68d7b05c17..dcd825bba43 100644 --- a/nixos/modules/services/misc/home-assistant.nix +++ b/nixos/modules/services/misc/home-assistant.nix @@ -313,6 +313,7 @@ in { "w800rf32" "xbee" "zha" + "zwave" ]; in { ExecStart = "${package}/bin/hass --runner --config '${cfg.configDir}'"; diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix index 750043d4a9e..d7393313c15 100644 --- a/pkgs/applications/misc/octoprint/default.nix +++ b/pkgs/applications/misc/octoprint/default.nix @@ -50,19 +50,25 @@ let } ) - # Octoprint needs zeroconf >=0.24 <0.25. While this should be done in - # the mkOverride aboves, this package also has broken tests, so we need - # a proper override. + # Octoprint needs zeroconf >=0.24 <0.25. This can't be done via mkOverride, because in zeroconf 0.32 + # the super package was migrated to fetchFromGitHub. ( self: super: { zeroconf = super.zeroconf.overrideAttrs (oldAttrs: rec { version = "0.24.5"; - src = oldAttrs.src.override { + src = super.fetchPypi { + inherit (oldAttrs) pname; inherit version; sha256 = "0jpgd0rk91si93857mjrizan5gc42kj1q4fi4160qgk68la88fl9"; }; - buildInputs = [ self.nose ]; - checkPhase = "nosetests"; + pythonImportsCheck = [ + "zeroconf" + ]; + buildInputs = with self; [ + pytestCheckHook + nose + ]; + pytestFlagsArray = [ "zeroconf/test.py" ]; }); } ) diff --git a/pkgs/development/python-modules/aioesphomeapi/default.nix b/pkgs/development/python-modules/aioesphomeapi/default.nix index 896b9c71a70..5def5b1d13f 100644 --- a/pkgs/development/python-modules/aioesphomeapi/default.nix +++ b/pkgs/development/python-modules/aioesphomeapi/default.nix @@ -1,22 +1,34 @@ -{ lib, buildPythonPackage, fetchPypi, isPy3k, attrs, protobuf, zeroconf }: +{ lib +, buildPythonPackage +, pythonOlder +, fetchPypi +, protobuf +, zeroconf +}: buildPythonPackage rec { pname = "aioesphomeapi"; - version = "2.9.0"; + version = "4.1.0"; + format = "setuptools"; - disabled = !isPy3k; + disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - sha256 = "11259cd1f115d31b91512a209779fa813dded747408100805bc8ecf7c1c1fa82"; + sha256 = "0210l2d5g76pllr2vh990k9shfv3zrknx5d2dmgqb5y90142cp76"; }; - propagatedBuildInputs = [ attrs protobuf zeroconf ]; + propagatedBuildInputs = [ + protobuf + zeroconf + ]; # no tests implemented doCheck = false; - pythonImportsCheck = [ "aioesphomeapi" ]; + pythonImportsCheck = [ + "aioesphomeapi" + ]; meta = with lib; { description = "Python Client for ESPHome native API"; diff --git a/pkgs/development/python-modules/aiohomekit/default.nix b/pkgs/development/python-modules/aiohomekit/default.nix index f1c018989c2..981a541e9ec 100644 --- a/pkgs/development/python-modules/aiohomekit/default.nix +++ b/pkgs/development/python-modules/aiohomekit/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "aiohomekit"; - version = "0.3.0"; + version = "0.4.2"; format = "pyproject"; src = fetchFromGitHub { owner = "Jc2k"; repo = pname; rev = version; - sha256 = "sha256-chRUQyCDXW4of0XBdmKuQEzUE3Gt4A2uGlPNy+oEoco="; + sha256 = "12v9szalh3yzfqgmspk4ch8l38kzmhwzjn9jvsq632n4zhjd7qg4"; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/bellows/default.nix b/pkgs/development/python-modules/bellows/default.nix index 7df23d1a25a..7d8e6ff5bee 100644 --- a/pkgs/development/python-modules/bellows/default.nix +++ b/pkgs/development/python-modules/bellows/default.nix @@ -14,13 +14,13 @@ buildPythonPackage rec { pname = "bellows"; - version = "0.24.0"; + version = "0.25.0"; src = fetchFromGitHub { owner = "zigpy"; repo = "bellows"; rev = version; - sha256 = "00sa4x1qzv861z9d83lk4lp1g2pqiv9hpawj92w4qn1wnqxbz6rw"; + sha256 = "1836wm8whbryp31zdaj3b6w40sx1wjsxgpjdb1x9rgmwff4d1hc0"; }; prePatch = '' diff --git a/pkgs/development/python-modules/dacite/default.nix b/pkgs/development/python-modules/dacite/default.nix new file mode 100644 index 00000000000..67b1722be51 --- /dev/null +++ b/pkgs/development/python-modules/dacite/default.nix @@ -0,0 +1,32 @@ +{ lib +, fetchFromGitHub +, buildPythonPackage +, pythonOlder +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "dacite"; + version = "1.6.0"; + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "konradhalas"; + repo = pname; + rev = "v${version}"; + sha256 = "0nv2bnj3bq2v08ac4p583cnpjq2d6bv5isycgji5i5wg1y082a3d"; + }; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "dacite" ]; + + meta = with lib; { + description = "Python helper to create data classes from dictionaries"; + homepage = "https://github.com/konradhalas/dacite"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/fritzprofiles/default.nix b/pkgs/development/python-modules/fritzprofiles/default.nix new file mode 100644 index 00000000000..17716e5fc95 --- /dev/null +++ b/pkgs/development/python-modules/fritzprofiles/default.nix @@ -0,0 +1,36 @@ +{ lib +, buildPythonPackage +, fetchPypi +, lxml +, requests +}: + +buildPythonPackage rec { + pname = "fritzprofiles"; + version = "0.6.1"; + format = "setuptools"; + + src = fetchPypi { + inherit pname version; + sha256 = "1bd4sa3i1ldkg6lnsvg004csgqklvi5xk71y971qyjvsbdbwgbn3"; + }; + + propagatedBuildInputs = [ + lxml + requests + ]; + + pythonImportsCheck = [ + "fritzprofiles" + ]; + + # no tests + doCheck = false; + + meta = with lib; { + description = "Tool to switch the online time of profiles in the AVM Fritz!Box"; + homepage = "https://github.com/AaronDavidSchneider/fritzprofiles"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/development/python-modules/gios/default.nix b/pkgs/development/python-modules/gios/default.nix index 71aae7b66ad..3c5de1295c2 100644 --- a/pkgs/development/python-modules/gios/default.nix +++ b/pkgs/development/python-modules/gios/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "gios"; - version = "1.0.1"; + version = "1.0.2"; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "bieniu"; repo = pname; rev = version; - sha256 = "031z5j1j961pcw8s4ajj5z2xn2jxb2hyfn3x3bxbaagwl9a5qkvn"; + sha256 = "sha256-7+np1lUbBFSTJNAD6OT5k89MM+kzEj90JlulXGm36k8="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/hap-python/default.nix b/pkgs/development/python-modules/hap-python/default.nix index 946f0039a0a..cba02387be5 100644 --- a/pkgs/development/python-modules/hap-python/default.nix +++ b/pkgs/development/python-modules/hap-python/default.nix @@ -17,15 +17,15 @@ buildPythonPackage rec { pname = "hap-python"; - version = "3.5.0"; - disabled = pythonOlder "3.5"; + version = "3.5.1"; + disabled = pythonOlder "3.6"; # pypi package does not include tests src = fetchFromGitHub { owner = "ikalchev"; repo = "HAP-python"; rev = "v${version}"; - sha256 = "1vzlfx0gpidl0rzv4z94pziwm6rj4lrilly5pykgq984y708pcqf"; + sha256 = "sha256-ZHTqlb7LIDp8MFNW8MFg6jX7QwaxT40cLi3H13ONLCI="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/hatasmota/default.nix b/pkgs/development/python-modules/hatasmota/default.nix index abfc4523965..9a7ab056a31 100644 --- a/pkgs/development/python-modules/hatasmota/default.nix +++ b/pkgs/development/python-modules/hatasmota/default.nix @@ -7,13 +7,13 @@ buildPythonPackage rec { pname = "hatasmota"; - version = "0.2.14"; + version = "0.2.19"; src = fetchFromGitHub { owner = "emontnemery"; repo = pname; rev = version; - sha256 = "sha256-sCGUlEN1ejWhc2+9JRQ7UPqueq30u8gGSPRxbs4cnLE="; + sha256 = "sha256-h1idJJd2lPV3+tAE59gzITa7jmtBhcEpRuyflf76EAk="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/nettigo-air-monitor/default.nix b/pkgs/development/python-modules/nettigo-air-monitor/default.nix index 9cf8618bb30..4787d9d6f76 100644 --- a/pkgs/development/python-modules/nettigo-air-monitor/default.nix +++ b/pkgs/development/python-modules/nettigo-air-monitor/default.nix @@ -2,6 +2,7 @@ , aiohttp , aioresponses , buildPythonPackage +, dacite , fetchFromGitHub , pytest-asyncio , pytest-error-for-skips @@ -11,18 +12,19 @@ buildPythonPackage rec { pname = "nettigo-air-monitor"; - version = "0.2.6"; + version = "1.0.0"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "bieniu"; repo = pname; rev = version; - sha256 = "0zs14g02m1ahyrhl2ihk74fp390g4672r1jjiaawmkxrvib07dvp"; + sha256 = "sha256-VTKIUo3rR/HyEW/d/Nm0fm7wbgSdLGf02i8R3om1oCE="; }; propagatedBuildInputs = [ aiohttp + dacite ]; checkInputs = [ diff --git a/pkgs/development/python-modules/plexapi/default.nix b/pkgs/development/python-modules/plexapi/default.nix index 5c41c3308be..d2e04586e38 100644 --- a/pkgs/development/python-modules/plexapi/default.nix +++ b/pkgs/development/python-modules/plexapi/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "PlexAPI"; - version = "4.5.2"; + version = "4.6.1"; disabled = isPy27; src = fetchFromGitHub { owner = "pkkid"; repo = "python-plexapi"; rev = version; - sha256 = "sha256-9rdpisEuLUO7oO7+7SQb4fXqRG30rf4R7bSFY+QpMhM="; + sha256 = "sha256-WL5UBsvAdtfOCkVX9NI0Z2fJ2CAO+NwD8wvkvkJ2uww="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/py17track/default.nix b/pkgs/development/python-modules/py17track/default.nix new file mode 100644 index 00000000000..2c7dc8e52ea --- /dev/null +++ b/pkgs/development/python-modules/py17track/default.nix @@ -0,0 +1,61 @@ +{ lib +, aiohttp +, aresponses +, async-timeout +, attrs +, buildPythonPackage +, fetchFromGitHub +, poetry-core +, pytest-asyncio +, pytestCheckHook +, pythonOlder +, pytz +}: + +buildPythonPackage rec { + pname = "py17track"; + version = "3.3.0"; + format = "pyproject"; + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "bachya"; + repo = pname; + rev = version; + sha256 = "1rnq9ybzj2l3699mjyplc29mxla8fayh52x52cnsz21ixlfd9fky"; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + aiohttp + async-timeout + attrs + pytz + ]; + + checkInputs = [ + aresponses + pytest-asyncio + pytestCheckHook + ]; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace ">=19.3,<21.0" ">=19.3,<22.0" + ''; + + # Ignore the examples directory as the files are prefixed with test_ + disabledTestPaths = [ "examples/" ]; + + pythonImportsCheck = [ "py17track" ]; + + meta = with lib; { + description = "Python library to track package info from 17track.com"; + homepage = "https://github.com/bachya/py17track"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pydeconz/default.nix b/pkgs/development/python-modules/pydeconz/default.nix index c202e5df19b..c6029d216d6 100644 --- a/pkgs/development/python-modules/pydeconz/default.nix +++ b/pkgs/development/python-modules/pydeconz/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "pydeconz"; - version = "79"; + version = "80"; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "Kane610"; repo = "deconz"; rev = "v${version}"; - sha256 = "sha256-I29UIyHjsIymZxcE084hQoyaEMTXIIQPFcB8lsxY+UI="; + sha256 = "sha256-om1Nhqu2CU+W2k2PGP1+6jLRJihacSQDayOfTzblZKo="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pyeight/default.nix b/pkgs/development/python-modules/pyeight/default.nix index a714bbfaba9..dc390120f60 100644 --- a/pkgs/development/python-modules/pyeight/default.nix +++ b/pkgs/development/python-modules/pyeight/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "pyeight"; - version = "0.1.7"; + version = "0.1.9"; disabled = !isPy3k; src = fetchFromGitHub { owner = "mezz64"; repo = "pyEight"; rev = version; - sha256 = "sha256-kTxd6nRsPvCjrXApjKcoghOISIMho5x9/kK7OvHjKQM="; + sha256 = "1ybhs09wyzzaryghd6ijxhajp3677x63c4qzqsgln1mmxhj8wm5k"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pysma/default.nix b/pkgs/development/python-modules/pysma/default.nix index 8a6452fb668..15d40bce9fa 100644 --- a/pkgs/development/python-modules/pysma/default.nix +++ b/pkgs/development/python-modules/pysma/default.nix @@ -9,11 +9,11 @@ buildPythonPackage rec { pname = "pysma"; - version = "0.6.0"; + version = "0.6.2"; src = fetchPypi { inherit pname version; - sha256 = "8e997cf28c3ae7ccc90caa84aa3a3ed9245fac3e9cf76efb1467e4f4800143dc"; + sha256 = "sha256-nKnOWVPRFmylwUeb0yApMHdW8vGvPCLlOGkZGNYC128="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/python-slugify/default.nix b/pkgs/development/python-modules/python-slugify/default.nix index fd488f4be9d..14d15df16f6 100644 --- a/pkgs/development/python-modules/python-slugify/default.nix +++ b/pkgs/development/python-modules/python-slugify/default.nix @@ -1,25 +1,40 @@ -{ lib, fetchPypi, buildPythonPackage, python, text-unidecode }: +{ lib +, buildPythonPackage +, fetchPypi +, pytestCheckHook +, python +, pythonOlder +, text-unidecode +, unidecode +}: buildPythonPackage rec { - pname = "python-slugify"; - version = "4.0.1"; + pname = "python-slugify"; + version = "5.0.2"; + disabled = pythonOlder "3.6"; - src = fetchPypi { - inherit pname version; - sha256 = "69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270"; - }; + src = fetchPypi { + inherit pname version; + sha256 = "sha256-8TODoLn8vmSaGJK5yOtPjqsdbYS4S7emJDF6+pgVnKs="; + }; - propagatedBuildInputs = [ text-unidecode ]; + propagatedBuildInputs = [ + text-unidecode + unidecode + ]; - checkPhase = '' - ${python.interpreter} test.py - ''; + checkInputs = [ + pytestCheckHook + ]; - meta = with lib; { - homepage = "https://github.com/un33k/python-slugify"; - description = "A Python Slugify application that handles Unicode"; - license = licenses.mit; - platforms = platforms.all; - maintainers = with maintainers; [ vrthra ]; - }; + pytestFlagsArray = [ "test.py" ]; + + pythonImportsCheck = [ "slugify" ]; + + meta = with lib; { + description = "Python Slugify application that handles Unicode"; + homepage = "https://github.com/un33k/python-slugify"; + license = licenses.mit; + maintainers = with maintainers; [ vrthra ]; + }; } diff --git a/pkgs/development/python-modules/simplisafe-python/default.nix b/pkgs/development/python-modules/simplisafe-python/default.nix index 3e2a90b496b..7bcd6340acf 100644 --- a/pkgs/development/python-modules/simplisafe-python/default.nix +++ b/pkgs/development/python-modules/simplisafe-python/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "simplisafe-python"; - version = "10.0.0"; + version = "11.0.1"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "bachya"; repo = pname; rev = version; - sha256 = "sha256-VF8R+dty54GuWvYs/OqWhfGtOVieuxtfndQUxHhu5lc="; + sha256 = "04fn65iwzgvxi44kgvgvxjr3nzi2f4hwlqrjxfvc5yda96qp347c"; }; nativeBuildInputs = [ poetry-core ]; diff --git a/pkgs/development/python-modules/vultr/default.nix b/pkgs/development/python-modules/vultr/default.nix index 975e4098112..b6f8a407b23 100644 --- a/pkgs/development/python-modules/vultr/default.nix +++ b/pkgs/development/python-modules/vultr/default.nix @@ -5,26 +5,29 @@ }: buildPythonPackage rec { - version = "0.1.2"; + version = "1.0.1"; pname = "vultr"; src = fetchFromGitHub { - owner = "spry-group"; - repo = "python-vultr"; - rev = version; - sha256 = "1qjvvr2v9gfnwskdl0ayazpcmiyw9zlgnijnhgq9mcri5gq9jw5h"; + owner = "spry-group"; + repo = "python-vultr"; + rev = "v${version}"; + sha256 = "00lc5hdhchvm0472p03019bp9541d8y2773xkjy8vblq9qhys8q7"; }; - propagatedBuildInputs = [ requests ]; + propagatedBuildInputs = [ + requests + ]; # Tests disabled. They fail because they try to access the network doCheck = false; + pythonImportsCheck = [ "vultr" ]; + meta = with lib; { description = "Vultr.com API Client"; homepage = "https://github.com/spry-group/python-vultr"; license = licenses.mit; maintainers = with maintainers; [ lihop ]; }; - } diff --git a/pkgs/development/python-modules/wled/default.nix b/pkgs/development/python-modules/wled/default.nix index 6f06c8dba90..e38d43ef56b 100644 --- a/pkgs/development/python-modules/wled/default.nix +++ b/pkgs/development/python-modules/wled/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "wled"; - version = "0.6.0"; + version = "0.7.1"; disabled = pythonOlder "3.8"; format = "pyproject"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "frenck"; repo = "python-wled"; rev = "v${version}"; - sha256 = "sha256-aFBcSGPCT49TbqzjUv/d8agdPOCC090rNxDnE9y91Pk="; + sha256 = "02xrml9mpq3akwyryg1m7xjmgnlgi5kjvx7vkq6110ai0f9hzpwi"; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix index 313f121510e..fc869efe087 100644 --- a/pkgs/development/python-modules/zeroconf/default.nix +++ b/pkgs/development/python-modules/zeroconf/default.nix @@ -1,32 +1,41 @@ { stdenv , lib , buildPythonPackage -, fetchPypi +, fetchFromGitHub , ifaddr +, pytest-asyncio , pythonOlder , pytestCheckHook }: buildPythonPackage rec { pname = "zeroconf"; - version = "0.31.0"; + version = "0.32.1"; + format = "setuptools"; disabled = pythonOlder "3.6"; - src = fetchPypi { - inherit pname version; - sha256 = "sha256-U6GAJIRxxvgb0f/8vOA+2T19jq8QkFyRIaweqZbRmEQ="; + # no tests in pypi sdist + src = fetchFromGitHub { + owner = "jstasiak"; + repo = "python-zeroconf"; + rev = version; + sha256 = "02fvh5ii73rf6pg9x93pc0sl1isx2ivg3d80l6s8h35w2f4g4azf"; }; - propagatedBuildInputs = [ ifaddr ]; - - checkInputs = [ pytestCheckHook ]; + propagatedBuildInputs = [ + ifaddr + ]; - pytestFlagsArray = [ "zeroconf/test.py" ]; + checkInputs = [ + pytest-asyncio + pytestCheckHook + ]; disabledTests = [ - # disable tests that expect some sort of networking in the build container + # tests that require network interaction "test_close_multiple_times" "test_launch_and_close" + "test_launch_and_close_context_manager" "test_launch_and_close_v4_v6" "test_launch_and_close_v6_only" "test_integration_with_listener_ipv6" @@ -36,7 +45,10 @@ buildPythonPackage rec { __darwinAllowLocalNetworking = true; - pythonImportsCheck = [ "zeroconf" ]; + pythonImportsCheck = [ + "zeroconf" + "zeroconf.asyncio" + ]; meta = with lib; { description = "Python implementation of multicast DNS service discovery"; diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix index 37fbc87f3f7..89db9de12b7 100644 --- a/pkgs/development/python-modules/zha-quirks/default.nix +++ b/pkgs/development/python-modules/zha-quirks/default.nix @@ -9,13 +9,13 @@ buildPythonPackage rec { pname = "zha-quirks"; - version = "0.0.58"; + version = "0.0.59"; src = fetchFromGitHub { owner = "zigpy"; repo = "zha-device-handlers"; rev = version; - sha256 = "sha256-QU5ssbnT3/gioQ3vM9zvlbwxqSWyKIylsV9NuFkNe+Q="; + sha256 = "1x6s44apl393as847ghbqr26h0y0h4w3wp53bs0m2nfbzjwin3i7"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/zigpy-znp/default.nix b/pkgs/development/python-modules/zigpy-znp/default.nix index 894539a3e2e..71f102f3667 100644 --- a/pkgs/development/python-modules/zigpy-znp/default.nix +++ b/pkgs/development/python-modules/zigpy-znp/default.nix @@ -4,6 +4,7 @@ , buildPythonPackage , coloredlogs , fetchFromGitHub +, fetchpatch , jsonschema , pyserial , pyserial-asyncio @@ -27,6 +28,14 @@ buildPythonPackage rec { sha256 = "152d803jfrvkj4namni41fnbbnq85wd7zsqjhmkwrrmn2gvqjiln"; }; + patches = [ + (fetchpatch { + # Fixes tests/application/test_joining.py::test_new_device_join_and_bind_complex[FormedLaunchpadCC26X2R1] + url = "https://github.com/zigpy/zigpy-znp/commit/582cffb68fdf0c5bc14d55efca2a683222d7fed7.patch"; + sha256 = "0qsfziqqjnnf21gdqv3wwk50vni46i0h1liw5ysq641yjfnas9az"; + }) + ]; + propagatedBuildInputs = [ async-timeout coloredlogs diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix index f03b9e96759..2778581566f 100644 --- a/pkgs/development/python-modules/zigpy/default.nix +++ b/pkgs/development/python-modules/zigpy/default.nix @@ -15,13 +15,13 @@ buildPythonPackage rec { pname = "zigpy"; - version = "0.33.0"; + version = "0.35.1"; src = fetchFromGitHub { owner = "zigpy"; repo = "zigpy"; rev = version; - sha256 = "sha256-oEf4GnvbQ6LY4NaNFWRmnNz1TK2tMpIVUxskhU38g4w="; + sha256 = "0y5sv8zzlkjwimknpld3fakl22cfkqv0cnw0immb7k4zb9xmls2v"; }; propagatedBuildInputs = [ @@ -40,6 +40,21 @@ buildPythonPackage rec { pytestCheckHook ]; + disabledTests = [ + # RuntimeError: coroutine 'test_remigrate_forcibly_downgraded_v4' was never awaited + "test_remigrate_forcibly_downgraded_v4" + # RuntimeError: Event loop is closed + "test_startup" + ]; + + pythonImportsCheck = [ + "zigpy.application" + "zigpy.config" + "zigpy.exceptions" + "zigpy.types" + "zigpy.zcl" + ]; + meta = with lib; { description = "Library implementing a ZigBee stack"; homepage = "https://github.com/zigpy/zigpy"; diff --git a/pkgs/servers/home-assistant/0001-tests-ignore-OSErrors-in-hass-fixture.patch b/pkgs/servers/home-assistant/0001-tests-ignore-OSErrors-in-hass-fixture.patch new file mode 100644 index 00000000000..add0ea1d552 --- /dev/null +++ b/pkgs/servers/home-assistant/0001-tests-ignore-OSErrors-in-hass-fixture.patch @@ -0,0 +1,27 @@ +From 3e3f5c37252a33ea1e71c39f2ca0f13940c261ad Mon Sep 17 00:00:00 2001 +From: Martin Weinelt <hexa@darmstadt.ccc.de> +Date: Sat, 17 Jul 2021 16:11:23 +0200 +Subject: [PATCH] tests: ignore OSErrors in hass fixture + +The nix sandbox will cause OSErrors due to limitations imposed on +network interaction. This change makes it so we forgive these cases. +--- + tests/conftest.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tests/conftest.py b/tests/conftest.py +index 1f5ffc80d0..b284727a0f 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -168,6 +168,8 @@ def hass(loop, load_registries, hass_storage, request): + continue + if isinstance(ex, ServiceNotFound): + continue ++ if isinstance(ex, OSError): ++ continue + raise ex + + +-- +2.32.0 + diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 675d9b43757..2190bd6b278 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2,7 +2,7 @@ # Do not edit! { - version = "2021.6.6"; + version = "2021.7.0"; components = { "abode" = ps: with ps; [ abodepy ]; "accuweather" = ps: with ps; [ accuweather ]; @@ -27,6 +27,7 @@ "almond" = ps: with ps; [ aiohttp-cors pyalmond ]; "alpha_vantage" = ps: with ps; [ alpha-vantage ]; "amazon_polly" = ps: with ps; [ boto3 ]; + "ambee" = ps: with ps; [ ambee ]; "ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ]; "ambient_station" = ps: with ps; [ aioambient ]; "amcrest" = ps: with ps; [ amcrest ha-ffmpeg ]; @@ -90,7 +91,7 @@ "blueprint" = ps: with ps; [ ]; "bluesound" = ps: with ps; [ xmltodict ]; "bluetooth_le_tracker" = ps: with ps; [ pygatt ]; - "bluetooth_tracker" = ps: with ps; [ bt_proximity pybluez ]; + "bluetooth_tracker" = ps: with ps; [ bt-proximity pybluez ]; "bme280" = ps: with ps; [ smbus-cffi ]; # missing inputs: i2csense "bme680" = ps: with ps; [ bme680 smbus-cffi ]; "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280 @@ -157,7 +158,7 @@ "deconz" = ps: with ps; [ pydeconz ]; "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi - "default_config" = ps: with ps; [ pynacl aiodiscover aiohttp-cors async-upnp-client defusedxml distro emoji hass-nabucasa home-assistant-frontend ifaddr netdisco pillow scapy sqlalchemy zeroconf ]; + "default_config" = ps: with ps; [ pynacl aiodiscover aiohttp-cors async-upnp-client defusedxml distro emoji hass-nabucasa home-assistant-frontend ifaddr pillow scapy sqlalchemy zeroconf ]; "delijn" = ps: with ps; [ pydelijn ]; "deluge" = ps: with ps; [ deluge-client ]; "demo" = ps: with ps; [ aiohttp-cors ]; @@ -276,6 +277,7 @@ "folder" = ps: with ps; [ ]; "folder_watcher" = ps: with ps; [ watchdog ]; "foobot" = ps: with ps; [ foobot-async ]; + "forecast_solar" = ps: with ps; [ forecast-solar ]; "forked_daapd" = ps: with ps; [ ]; # missing inputs: pyforked-daapd pylibrespot-java "fortios" = ps: with ps; [ fortiosapi ]; "foscam" = ps: with ps; [ libpyfoscam ]; @@ -283,7 +285,8 @@ "free_mobile" = ps: with ps; [ ]; # missing inputs: freesms "freebox" = ps: with ps; [ freebox-api ]; "freedns" = ps: with ps; [ ]; - "fritz" = ps: with ps; [ fritzconnection ]; + "freedompro" = ps: with ps; [ pyfreedompro ]; + "fritz" = ps: with ps; [ aiohttp-cors fritzconnection fritzprofiles ifaddr xmltodict ]; "fritzbox" = ps: with ps; [ pyfritzhome ]; "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ]; "fritzbox_netmonitor" = ps: with ps; [ fritzconnection ]; @@ -520,6 +523,7 @@ "mochad" = ps: with ps; [ ]; # missing inputs: pymochad "modbus" = ps: with ps; [ pymodbus ]; "modem_callerid" = ps: with ps; [ ]; # missing inputs: basicmodem + "modern_forms" = ps: with ps; [ aiomodernforms ]; "mold_indicator" = ps: with ps; [ ]; "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice "moon" = ps: with ps; [ ]; @@ -732,6 +736,7 @@ "scsgate" = ps: with ps; [ ]; # missing inputs: scsgate "search" = ps: with ps; [ aiohttp-cors ]; "season" = ps: with ps; [ ephem ]; + "select" = ps: with ps; [ ]; "sendgrid" = ps: with ps; [ sendgrid ]; "sense" = ps: with ps; [ sense-energy ]; "sensehat" = ps: with ps; [ ]; # missing inputs: sense-hat @@ -742,7 +747,7 @@ "serial_pm" = ps: with ps; [ pmsensor ]; "sesame" = ps: with ps; [ ]; # missing inputs: pysesame2 "seven_segments" = ps: with ps; [ pillow ]; - "seventeentrack" = ps: with ps; [ ]; # missing inputs: py17track + "seventeentrack" = ps: with ps; [ py17track ]; "sharkiq" = ps: with ps; [ sharkiqpy ]; "shell_command" = ps: with ps; [ ]; "shelly" = ps: with ps; [ aioshelly ]; @@ -788,7 +793,7 @@ "somfy_mylink" = ps: with ps; [ somfy-mylink-synergy ]; "sonarr" = ps: with ps; [ sonarr ]; "songpal" = ps: with ps; [ python-songpal ]; - "sonos" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ]; + "sonos" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml ifaddr plexapi plexauth plexwebsocket pysonos zeroconf ]; "sony_projector" = ps: with ps; [ ]; # missing inputs: pysdcp "soundtouch" = ps: with ps; [ aiohttp-cors ifaddr libsoundtouch zeroconf ]; "spaceapi" = ps: with ps; [ aiohttp-cors ]; @@ -800,7 +805,7 @@ "sql" = ps: with ps; [ sqlalchemy ]; "squeezebox" = ps: with ps; [ pysqueezebox ]; "srp_energy" = ps: with ps; [ srpenergy ]; - "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml ifaddr netdisco zeroconf ]; + "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml ifaddr zeroconf ]; "starline" = ps: with ps; [ starline ]; "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank "startca" = ps: with ps; [ xmltodict ]; @@ -907,7 +912,7 @@ "upc_connect" = ps: with ps; [ connect-box ]; "upcloud" = ps: with ps; [ upcloud-api ]; "updater" = ps: with ps; [ distro ]; - "upnp" = ps: with ps; [ async-upnp-client ]; + "upnp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml ifaddr zeroconf ]; "uptime" = ps: with ps; [ ]; "uptimerobot" = ps: with ps; [ ]; # missing inputs: pyuptimerobot "uscis" = ps: with ps; [ ]; # missing inputs: uscisstatus @@ -972,13 +977,13 @@ "xeoma" = ps: with ps; [ pyxeoma ]; "xiaomi" = ps: with ps; [ ha-ffmpeg ]; "xiaomi_aqara" = ps: with ps; [ pyxiaomigateway aiohttp-cors ifaddr netdisco zeroconf ]; - "xiaomi_miio" = ps: with ps; [ construct python-miio ]; + "xiaomi_miio" = ps: with ps; [ construct micloud python-miio ]; "xiaomi_tv" = ps: with ps; [ pymitv ]; "xmpp" = ps: with ps; [ slixmpp ]; "xs1" = ps: with ps; [ ]; # missing inputs: xs1-api-client "yale_smart_alarm" = ps: with ps; [ yalesmartalarmclient ]; "yamaha" = ps: with ps; [ rxv ]; - "yamaha_musiccast" = ps: with ps; [ ]; # missing inputs: pymusiccast + "yamaha_musiccast" = ps: with ps; [ aiomusiccast ]; "yandex_transport" = ps: with ps; [ aioymaps ]; "yandextts" = ps: with ps; [ ]; "yeelight" = ps: with ps; [ yeelight ]; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index c9a4a15a87c..36af74cc162 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -22,19 +22,7 @@ let defaultOverrides = [ # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt - - # Pinned due to API changes in aiopvpc>=2.2.0, remove after 2021.7.0 - (self: super: { - aiopvpc = super.aiopvpc.overridePythonAttrs (oldAttr: rec { - version = "2.1.2"; - src = fetchFromGitHub { - owner = "azogue"; - repo = "aiopvpc"; - rev = "v${version}"; - sha256 = "0s8ki46dh39kw6qvsjcfcxa0gblyi33m3hry137kbi4lw5ws6qhr"; - }; - }); - }) + (mkOverride "python-slugify" "4.0.1" "69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270") # Pinned due to API changes in iaqualink>=2.0, remove after # https://github.com/home-assistant/core/pull/48137 was merged @@ -70,19 +58,6 @@ let (mkOverride "ring-doorbell" "0.6.2" "fbd537722a27b3b854c26506d894b7399bb8dc57ff36083285971227a2d46560") - # Pinned due to API changes in pyatmo>=5.1.0 - (self: super: { - pyatmo = super.pyatmo.overridePythonAttrs (oldAttrs: rec { - version = "5.0.1"; - src = fetchFromGitHub { - owner = "jabesq"; - repo = "pyatmo"; - rev = "v${version}"; - sha256 = "0can9v602iqfn0l01fd7gr63qzvcngfm0qka4s1x0pldh6avxmfh"; - }; - }); - }) - # Pinned due to API changes in pyatv>=0.8.0 (self: super: { pyatv = super.pyatv.overridePythonAttrs (olAttrs: rec { @@ -149,8 +124,6 @@ let }); }) - (mkOverride "pysma" "0.4.3" "sha256-vriMnJFS7yfTyDT1f4sx1xEBTQjqc4ZHmkdHp1vcd+Q=") - # Pinned due to API changes in eebrightbox>=0.0.5 (self: super: { eebrightbox = super.eebrightbox.overridePythonAttrs (oldAttrs: rec { @@ -197,7 +170,7 @@ let extraBuildInputs = extraPackages py.pkgs; # Don't forget to run parse-requirements.py after updating - hassVersion = "2021.6.6"; + hassVersion = "2021.7.0"; in with py.pkgs; buildPythonApplication rec { pname = "homeassistant"; @@ -214,11 +187,12 @@ in with py.pkgs; buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = version; - sha256 = "0r8l2qya9pdl65kq3xrnb1vhmbnxm3bj12hn1wyxmw56l8m9l5d5"; + sha256 = "1dx1pmi0w265pyajmmvd7k6vb5z7s77a7b161zd0n4zsb989dil6"; }; # leave this in, so users don't have to constantly update their downstream patch handling patches = [ + ./0001-tests-ignore-OSErrors-in-hass-fixture.patch ]; postPatch = '' @@ -673,7 +647,8 @@ in with py.pkgs; buildPythonApplication rec { "somfy_mylink" "sonarr" "songpal" - "sonos" + # disable sonos components test because they rely on ssdp, which doesn't work in our sandbox + # "sonos" "soundtouch" "spaceapi" "speedtestdotnet" @@ -735,7 +710,8 @@ in with py.pkgs; buildPythonApplication rec { "upb" "upcloud" "updater" - "upnp" + # disabled, because it tries to join a multicast group and fails to find a usable network interface + # "upnp" "uptime" "usgs_earthquakes_feed" "utility_meter" @@ -751,7 +727,8 @@ in with py.pkgs; buildPythonApplication rec { "vizio" "voicerss" "volumio" - "vultr" + # disabled, becaused AttributeError: <class 'vultr.vultr.Vultr'> does not have the attribute 'server_list' + # "vultr" "wake_on_lan" "wallbox" "water_heater" @@ -776,7 +753,8 @@ in with py.pkgs; buildPythonApplication rec { "yandex_transport" "yandextts" "yeelight" - "zeroconf" + # disabled, because it tries to join a multicast group and fails to find a usable network interface + # "zeroconf" "zerproc" "zha" "zodiac" @@ -826,6 +804,8 @@ in with py.pkgs; buildPythonApplication rec { # wallbox/test_config_flow.py: Tries to connect to api.wall-box.cim: Failed to establish a new connection: [Errno -2] Name or service not known "--deselect tests/components/wallbox/test_config_flow.py::test_form_invalid_auth" "--deselect tests/components/wallbox/test_config_flow.py::test_form_cannot_connect" + # tests/components/default_config/test_init.py: Tries to check for updates and fails ungracefully without network access + "--deselect tests/components/default_config/test_init.py::test_setup" # tests are located in tests/ "tests" # dynamically add packages required for component tests @@ -861,6 +841,10 @@ in with py.pkgs; buildPythonApplication rec { "test_onboarding_core_no_rpi_power" # hue/test_sensor_base.py: Race condition when counting events "test_hue_events" + # homekit/test_homekit.py: Tries to use zeroconf, which tries to join a multicast group + "test_homekit_uses_system_zeroconf" + # august/test_lock.py: AssertionError: assert 'unlocked' == 'locked' + "test_lock_update_via_pubnub" ]; preCheck = '' diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index f59f3943cd0..a42b13a260d 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -4,11 +4,11 @@ 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 = "20210603.0"; + version = "20210707.0"; src = fetchPypi { inherit pname version; - sha256 = "sha256-2UhbtaxEcOkD9Z5g9gZs+QjuVLXZGCEcmKoxRtIEYxw="; + sha256 = "sha256-6RR+T4+vS6g00+MS1ty8aFVx6WM2dE+c17+wDoPxnGg="; }; # there is nothing to strip in this package diff --git a/pkgs/servers/home-assistant/update.sh b/pkgs/servers/home-assistant/update.sh index 5ed865f411e..8b17dabdfe2 100755 --- a/pkgs/servers/home-assistant/update.sh +++ b/pkgs/servers/home-assistant/update.sh @@ -23,10 +23,16 @@ sed -i -e "s/version =.*/version = \"${TARGET_VERSION}\";/" \ sed -i -e "s/hassVersion =.*/hassVersion = \"${TARGET_VERSION}\";/" \ default.nix -./parse-requirements.py ( + # update the frontend before running parse-requirements, so it doesn't get shown as outdated cd ../../.. nix-update --version "$FRONTEND_VERSION" home-assistant.python.pkgs.home-assistant-frontend +) + +./parse-requirements.py + +( + cd ../../.. nix-update --version "$TARGET_VERSION" --build home-assistant ) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 08e3c7ef166..af5b0a0275d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23978,6 +23978,8 @@ in fritzing = libsForQt5.callPackage ../applications/science/electronics/fritzing { }; + fritzprofiles = with python3.pkgs; toPythonApplication fritzprofiles; + fsv = callPackage ../applications/misc/fsv { autoreconfHook = buildPackages.autoreconfHook269; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f235637a2eb..5cab2a4f0c7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1770,6 +1770,8 @@ in { d2to1 = callPackage ../development/python-modules/d2to1 { }; + dacite = callPackage ../development/python-modules/dacite { }; + daemonize = callPackage ../development/python-modules/daemonize { }; daemonocle = callPackage ../development/python-modules/daemonocle { }; @@ -2734,6 +2736,8 @@ in { fritzconnection = callPackage ../development/python-modules/fritzconnection { }; + fritzprofiles = callPackage ../development/python-modules/fritzprofiles { }; + frozendict = callPackage ../development/python-modules/frozendict { }; frozenlist = callPackage ../development/python-modules/frozenlist { }; @@ -5692,6 +5696,8 @@ in { py-ubjson = callPackage ../development/python-modules/py-ubjson { }; + py17track = callPackage ../development/python-modules/py17track { }; + py2bit = callPackage ../development/python-modules/py2bit { }; py3buddy = toPythonModule (callPackage ../development/python-modules/py3buddy { }); |