diff --git a/pkgs/development/python-modules/amberelectric/default.nix b/pkgs/development/python-modules/amberelectric/default.nix index cd4984861432..667e5fff5e19 100644 --- a/pkgs/development/python-modules/amberelectric/default.nix +++ b/pkgs/development/python-modules/amberelectric/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "amberelectric"; - version = "1.0.3"; + version = "1.0.4"; format = "setuptools"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "1hsbk2v7j1nsa083j28jb7b3rv76flan0g9wav97qccp1gjds5b0"; + sha256 = "sha256-5SWJnTxRm6mzP0RxrgA+jnV+Gp23WjqQA57wbT2V9Dk="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/async-upnp-client/default.nix b/pkgs/development/python-modules/async-upnp-client/default.nix index 1c818d2724ea..0f1a578c20d0 100644 --- a/pkgs/development/python-modules/async-upnp-client/default.nix +++ b/pkgs/development/python-modules/async-upnp-client/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "async-upnp-client"; - version = "0.23.5"; + version = "0.27.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "StevenLooman"; repo = "async_upnp_client"; rev = version; - sha256 = "sha256-fMlP8LX+OFiw6o1rpz8J0sEsACk5x9dQko1oGEaZFuc="; + sha256 = "sha256-QElc4J2BxOFI+L9D/SVMiYeRVOmwrNTW65LgdBG0TbU="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/av/default.nix b/pkgs/development/python-modules/av/default.nix index c79dc8b3fcb1..3ebc44d1c4d6 100644 --- a/pkgs/development/python-modules/av/default.nix +++ b/pkgs/development/python-modules/av/default.nix @@ -1,33 +1,141 @@ { lib , buildPythonPackage -, fetchPypi -, isPy27 -, numpy -, ffmpeg +, fetchFromGitHub +, pythonOlder + +# build +, cython , pkg-config + +# runtime +, ffmpeg + +# tests +, numpy +, pillow +, pytestCheckHook }: buildPythonPackage rec { pname = "av"; - version = "8.1.0"; - disabled = isPy27; # setup.py no longer compatible + version = "9.1.1"; + format = "pyproject"; + disabled = pythonOlder "3.7"; - src = fetchPypi { - inherit pname version; - sha256 = "0402169bc27e38e0f44e0e0e1854cf488337e86206b6d25d6dae2bfd7a1a0230"; + src = fetchFromGitHub { + owner = "mikeboers"; + repo = "PyAV"; + rev = "v${version}"; + hash = "sha256-/6C5GE9zANPy0xaptu/+pIupOLDra/R7TJ41YLGszUs="; }; - checkInputs = [ numpy ]; + nativeBuildInputs = [ + cython + pkg-config + ]; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ffmpeg ]; + buildInputs = [ + ffmpeg + ]; - # Tests require downloading files from internet - doCheck = false; + preCheck = '' + # ensure we import the built version + rm -r av + ''; - meta = { + checkInputs = [ + numpy + pillow + pytestCheckHook + ]; + + pytestFlagsArray = [ + # Tests that want to download FATE data + # https://github.com/PyAV-Org/PyAV/issues/955 + "--deselect=tests/test_audiofifo.py::TestAudioFifo::test_data" + "--deselect=tests/test_codec_context.py::TestCodecContext::test_codec_tag" + "--deselect=tests/test_codec_context.py::TestCodecContext::test_parse" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_aac" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_dnxhd" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_dvvideo" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_h264" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mjpeg" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mp2" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mpeg1video" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mpeg4" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_pcm_s24le" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_png" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_tiff" + "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_xvid" + "--deselect=tests/test_decode.py::TestDecode::test_decode_audio_sample_count" + "--deselect=tests/test_decode.py::TestDecode::test_decoded_motion_vectors" + "--deselect=tests/test_decode.py::TestDecode::test_decoded_motion_vectors_no_flag" + "--deselect=tests/test_decode.py::TestDecode::test_decoded_time_base" + "--deselect=tests/test_decode.py::TestDecode::test_decoded_video_frame_count" + "--deselect=tests/test_encode.py::TestBasicAudioEncoding::test_transcode" + "--deselect=tests/test_file_probing.py::TestAudioProbe::test_container_probing" + "--deselect=tests/test_file_probing.py::TestAudioProbe::test_stream_probing" + "--deselect=tests/test_file_probing.py::TestDataProbe::test_container_probing" + "--deselect=tests/test_file_probing.py::TestDataProbe::test_stream_probing" + "--deselect=tests/test_file_probing.py::TestSubtitleProbe::test_container_probing" + "--deselect=tests/test_file_probing.py::TestSubtitleProbe::test_stream_probing" + "--deselect=tests/test_file_probing.py::TestVideoProbe::test_container_probing" + "--deselect=tests/test_file_probing.py::TestVideoProbe::test_stream_probing" + "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_buffer" + "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_buffer_no_see" + "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_file" + "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_pipe_readonly" + "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_write_readonl" + "--deselect=tests/test_seek.py::TestSeek::test_decode_half" + "--deselect=tests/test_seek.py::TestSeek::test_seek_end" + "--deselect=tests/test_seek.py::TestSeek::test_seek_float" + "--deselect=tests/test_seek.py::TestSeek::test_seek_int64" + "--deselect=tests/test_seek.py::TestSeek::test_seek_middle" + "--deselect=tests/test_seek.py::TestSeek::test_seek_start" + "--deselect=tests/test_seek.py::TestSeek::test_stream_seek" + "--deselect=tests/test_streams.py::TestStreams::test_selection" + "--deselect=tests/test_streams.py::TestStreams::test_stream_tuples" + "--deselect=tests/test_subtitles.py::TestSubtitle::test_movtext" + "--deselect=tests/test_subtitles.py::TestSubtitle::test_vobsub" + "--deselect=tests/test_videoframe.py::TestVideoFrameImage::test_roundtrip" + ]; + + disabledTestPaths = [ + # urlopen fails during DNS resolution + "tests/test_doctests.py" + "tests/test_timeout.py" + ]; + + pythonImportsCheck = [ + "av" + "av.audio" + "av.buffer" + "av.bytesource" + "av.codec" + "av.container" + "av._core" + "av.datasets" + "av.descriptor" + "av.dictionary" + "av.enum" + "av.error" + "av.filter" + "av.format" + "av.frame" + "av.logging" + "av.option" + "av.packet" + "av.plane" + "av.stream" + "av.subtitles" + "av.utils" + "av.video" + ]; + + meta = with lib; { description = "Pythonic bindings for FFmpeg/Libav"; homepage = "https://github.com/mikeboers/PyAV/"; - license = lib.licenses.bsd2; + license = licenses.bsd2; + maintainers = with maintainers; [ ]; }; } diff --git a/pkgs/development/python-modules/gattlib/default.nix b/pkgs/development/python-modules/gattlib/default.nix new file mode 100644 index 000000000000..c7450d6b6b5b --- /dev/null +++ b/pkgs/development/python-modules/gattlib/default.nix @@ -0,0 +1,68 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, substituteAll + +# build +, pkg-config +, glibc +, python + +# runtime +, bluez +, boost +, glib + +}: + +let + pname = "gattlib"; + version = "unstable-2021-06-16"; +in +buildPythonPackage { + inherit pname version; + format = "setuptools"; + + + src = fetchFromGitHub { + owner = "oscaracena"; + repo = "pygattlib"; + rev = "7bdb229124fe7d9f4a2cc090277b0fdef82e2a56"; + hash = "sha256-PS5DIH1JuH2HweyebLLM+UNFGY/XsjKIrsD9x7g7yMI="; + }; + + patches = [ + (substituteAll { + src = ./setup.patch; + boost_version = let + pythonVersion = with lib.versions; "${major python.version}${minor python.version}"; + in + "boost_python${pythonVersion}"; + }) + ]; + + nativeBuildInputs = [ + pkg-config + glibc + ]; + + buildInputs = [ + bluez + boost + glib + ]; + + # has no tests + doCheck = false; + + pythonImportsCheck = [ + "gattlib" + ]; + + meta = with lib; { + description = "Python library to use the GATT Protocol for Bluetooth LE devices"; + homepage = "https://github.com/oscaracena/pygattlib"; + license = licenses.asl20; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/development/python-modules/gattlib/setup.patch b/pkgs/development/python-modules/gattlib/setup.patch new file mode 100644 index 000000000000..32c3b1be496d --- /dev/null +++ b/pkgs/development/python-modules/gattlib/setup.patch @@ -0,0 +1,18 @@ +diff --git a/setup.py b/setup.py +index 0825241..389a59e 100755 +--- a/setup.py ++++ b/setup.py +@@ -11,12 +11,7 @@ extension_modules = [] + + + def get_boost_version(out=None): +- if out is None: +- out = subprocess.check_output( +- r"ldconfig -p | grep -E 'libboost_python.*\.so '", shell=True) +- +- ver = os.path.splitext(out.split()[0][3:])[0].decode() +- return ver ++ return "@boost_version@" + + def tests(): + # case: python3-py3x.so diff --git a/pkgs/development/python-modules/ha-av/default.nix b/pkgs/development/python-modules/ha-av/default.nix deleted file mode 100644 index 78735b67d44d..000000000000 --- a/pkgs/development/python-modules/ha-av/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib -, buildPythonPackage -, pythonOlder -, fetchPypi -, pkg-config -, ffmpeg_4 -}: - -buildPythonPackage rec { - pname = "ha-av"; - version = "8.0.4rc1"; - format = "setuptools"; - - disabled = pythonOlder "3.5"; - - src = fetchPypi { - inherit pname version; - sha256 = "sha256-txdi2/X6upqrACeHhHpEh4tGqgPpW/dyWda8y++7c3M="; - }; - - nativeBuildInputs = [ - pkg-config - ]; - - buildInputs = [ - ffmpeg_4 - ]; - - pythonImportsCheck = [ - "av" - "av._core" - ]; - - # tests fail to import av._core - doCheck = false; - - meta = with lib; { - homepage = "https://pypi.org/project/ha-av/"; - description = "Pythonic bindings for FFmpeg's libraries"; - license = licenses.bsd3; - maintainers = with maintainers; [ hexa ]; - }; -} diff --git a/pkgs/development/python-modules/hangups/default.nix b/pkgs/development/python-modules/hangups/default.nix index 3b5e0a218b78..18dd31f8af56 100644 --- a/pkgs/development/python-modules/hangups/default.nix +++ b/pkgs/development/python-modules/hangups/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "hangups"; - version = "0.4.17"; + version = "0.4.18"; disabled = pythonOlder "3.6"; @@ -26,7 +26,7 @@ buildPythonPackage rec { owner = "tdryer"; repo = "hangups"; rev = "v${version}"; - hash = "sha256-8kNWcRAip9LkmazDUVeDjGWhy/TWzT01c959LA5hb1Q="; + hash = "sha256-vq1OrOUPMQtezBFlisP2f/bvvYprDjhOuwUcT8rmIvw="; }; postPatch = '' diff --git a/pkgs/development/python-modules/hyperion-py/default.nix b/pkgs/development/python-modules/hyperion-py/default.nix index 719efb92d1da..7837deea6dba 100644 --- a/pkgs/development/python-modules/hyperion-py/default.nix +++ b/pkgs/development/python-modules/hyperion-py/default.nix @@ -4,6 +4,7 @@ , fetchFromGitHub , pytestCheckHook , pythonOlder +, pythonAtLeast , poetry-core , pytest-aiohttp , pytest-asyncio @@ -11,15 +12,15 @@ buildPythonPackage rec { pname = "hyperion-py"; - version = "0.7.4"; - disabled = pythonOlder "3.8"; + version = "0.7.5"; + disabled = pythonOlder "3.8" || pythonAtLeast "3.10"; format = "pyproject"; src = fetchFromGitHub { owner = "dermotduffy"; repo = pname; rev = "v${version}"; - sha256 = "00x12ppmvlxs3qbdxq06wnzakvwm2m39qhmpp27qfpl137b0qqyj"; + sha256 = "sha256-arcnpCQsRuiWCrAz/t4TCjTe8DRDtRuzYp8k7nnjGDk="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/lru-dict/default.nix b/pkgs/development/python-modules/lru-dict/default.nix new file mode 100644 index 000000000000..b075ead34297 --- /dev/null +++ b/pkgs/development/python-modules/lru-dict/default.nix @@ -0,0 +1,34 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pytestCheckHook +}: + +let + pname = "lru-dict"; + version = "1.1.7"; +in +buildPythonPackage { + inherit pname version; + format = "setuptools"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-RbgfZ9dTQdRDOrreeZpH6cQqniKhGFMdy15UmGQDLXw="; + }; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "lru" + ]; + + meta = with lib; { + description = "Fast and memory efficient LRU cache for Python"; + homepage = "https://github.com/amitdev/lru-dict"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix index cc2601e4a227..d5e10f32a192 100644 --- a/pkgs/development/python-modules/plugwise/default.nix +++ b/pkgs/development/python-modules/plugwise/default.nix @@ -19,14 +19,14 @@ buildPythonPackage rec { pname = "plugwise"; - version = "0.16.6"; + version = "0.17.3"; format = "setuptools"; src = fetchFromGitHub { owner = pname; repo = "python-plugwise"; rev = "v${version}"; - sha256 = "sha256-hAYbYsLpiiJYdg9Rx5BjqNA9JTtKGu3DE0SpwOxlTWw="; + sha256 = "sha256-1wSVmH7woTR2ebHS5FfWHLqwbY04rxtPx/0A/HY+N8s="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pybluez/default.nix b/pkgs/development/python-modules/pybluez/default.nix index ae90c21bea9f..55262a07a4ca 100644 --- a/pkgs/development/python-modules/pybluez/default.nix +++ b/pkgs/development/python-modules/pybluez/default.nix @@ -1,32 +1,45 @@ { lib +, stdenv , buildPythonPackage , fetchFromGitHub -, pkgs -, isPy3k +, bluez +, gattlib }: buildPythonPackage rec { - version = "unstable-20160819"; pname = "pybluez"; - # requires use2to3, which is no longer supported in setuptools>58 - disabled = isPy3k; - - propagatedBuildInputs = [ pkgs.bluez ]; + version = "unstable-2022-01-28"; + format = "setuptools"; src = fetchFromGitHub { - owner = "karulis"; + owner = pname; repo = pname; - rev = "a0b226a61b166e170d48539778525b31e47a4731"; - sha256 = "104dm5ngfhqisv1aszdlr3szcav2g3bhsgzmg4qfs09b3i5zj047"; + rev = "5096047f90a1f6a74ceb250aef6243e144170f92"; + hash = "sha256-GA58DfCFaVzZQA1HYpGQ68bznrt4SX1ojyOVn8hyCGo="; }; - # the tests do not pass + buildInputs = [ + bluez + ]; + + propagatedBuildInputs = [ + gattlib + ]; + + # there are no tests doCheck = false; + pythonImportsCheck = [ + "bluetooth" + "bluetooth.ble" + ]; + meta = with lib; { description = "Bluetooth Python extension module"; + homepage = "https://github.com/pybluez/pybluez"; license = licenses.gpl2; maintainers = with maintainers; [ leenaars ]; + broken = stdenv.isDarwin; # requires pyobjc-core, pyobjc-framework-Cocoa }; } diff --git a/pkgs/development/python-modules/pysma/default.nix b/pkgs/development/python-modules/pysma/default.nix index 81fc1d5709e9..efad8aaca948 100644 --- a/pkgs/development/python-modules/pysma/default.nix +++ b/pkgs/development/python-modules/pysma/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "pysma"; - version = "0.6.10"; + version = "0.6.11"; format = "setuptools"; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - sha256 = "990abf6dba3f52b98970fc95aaf484e521faa9ff28c9c19f5a6dca3fddf5840c"; + sha256 = "sha256-x0sFJAdueSny0XoaOYbYLN8ZRS5B/iEVT62mqd4Voe4="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/samsungtvws/default.nix b/pkgs/development/python-modules/samsungtvws/default.nix index cd137b1547ea..05dc36947650 100644 --- a/pkgs/development/python-modules/samsungtvws/default.nix +++ b/pkgs/development/python-modules/samsungtvws/default.nix @@ -1,6 +1,8 @@ { lib, buildPythonPackage, fetchPypi, isPy27 +, aiohttp , requests , websocket-client +, websockets }: buildPythonPackage rec { @@ -14,8 +16,10 @@ buildPythonPackage rec { }; propagatedBuildInputs = [ - websocket-client + aiohttp requests + websocket-client + websockets ]; # no tests diff --git a/pkgs/development/python-modules/vehicle/default.nix b/pkgs/development/python-modules/vehicle/default.nix index a56cc4ca8b43..7328494a61ff 100644 --- a/pkgs/development/python-modules/vehicle/default.nix +++ b/pkgs/development/python-modules/vehicle/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "vehicle"; - version = "0.3.1"; + version = "0.4.0"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "frenck"; repo = "python-vehicle"; rev = "v${version}"; - sha256 = "04xcs5bfjd49j870gyyznc8hkaadsa9gm9pz0w9qvzlphnxvv5h4"; + sha256 = "sha256-dvSdYrONUEe+bdZ+9nALrOQ6gJwq9e1dLvuq08xP5tQ="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/xknx/default.nix b/pkgs/development/python-modules/xknx/default.nix index b2bfeea8f7a9..6269c52c664b 100644 --- a/pkgs/development/python-modules/xknx/default.nix +++ b/pkgs/development/python-modules/xknx/default.nix @@ -1,6 +1,7 @@ { lib , buildPythonPackage , fetchFromGitHub +, cryptography , netifaces , voluptuous , pyyaml @@ -11,7 +12,7 @@ buildPythonPackage rec { pname = "xknx"; - version = "0.19.2"; + version = "0.20.1"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -20,13 +21,12 @@ buildPythonPackage rec { owner = "XKNX"; repo = pname; rev = version; - sha256 = "sha256-LJ7MmKCWx+n7caud0pN4+7f9H4XzwuAAn9u86X/FACo="; + sha256 = "sha256-7g1uAkBGlNcmfjqGNH2MS+X26Pq1hTKQy9eLJVTqxhA="; }; propagatedBuildInputs = [ - voluptuous + cryptography netifaces - pyyaml ]; checkInputs = [ diff --git a/pkgs/development/python-modules/yeelight/default.nix b/pkgs/development/python-modules/yeelight/default.nix index b64bd929f13f..b2c019889483 100644 --- a/pkgs/development/python-modules/yeelight/default.nix +++ b/pkgs/development/python-modules/yeelight/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "yeelight"; - version = "0.7.9"; + version = "0.7.10"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "stavros"; repo = "python-yeelight"; rev = "v${version}"; - sha256 = "sha256-8N+HOhUX3BXecS/kaAfLoge+NYzKLKPyoTthu+useJA="; + sha256 = "sha256-vUsL1CvhYRtv75gkmiPe/UkAtBDZPy1iK2BPUupMXz8="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix index 56d2704fcc19..881523b14d25 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.67"; + version = "0.0.69"; src = fetchFromGitHub { owner = "zigpy"; repo = "zha-device-handlers"; rev = version; - sha256 = "sha256-qkXXrwqMEtfafHsXtlyy6HFwuo/8sOZuQ9SvGRJkGtA="; + sha256 = "sha256-qPqgla+NFtZ85i+GB0lRRsoNImVghJsJfww7j8yQcFs="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/zigpy-cc/default.nix b/pkgs/development/python-modules/zigpy-cc/default.nix index 79b9d910053a..376b74c266cb 100644 --- a/pkgs/development/python-modules/zigpy-cc/default.nix +++ b/pkgs/development/python-modules/zigpy-cc/default.nix @@ -25,7 +25,6 @@ buildPythonPackage rec { }; propagatedBuildInputs = [ - pyserial pyserial-asyncio zigpy ]; @@ -36,6 +35,12 @@ buildPythonPackage rec { pytestCheckHook ]; + disabledTests = [ + "test_incoming_msg" + "test_incoming_msg2" + "test_deser" + ]; + meta = with lib; { description = "A library which communicates with Texas Instruments CC2531 radios for zigpy"; homepage = "https://github.com/zigpy/zigpy-cc"; diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix index 20d5237f76e8..0a152c3825a1 100644 --- a/pkgs/development/python-modules/zigpy/default.nix +++ b/pkgs/development/python-modules/zigpy/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "zigpy"; - version = "0.43.0"; + version = "0.44.1"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -24,7 +24,7 @@ buildPythonPackage rec { owner = "zigpy"; repo = "zigpy"; rev = version; - sha256 = "1740cv99ny6xy7wfpz754h4wj2cm874b8vnddvff90ajk07qgdia"; + sha256 = "sha256-7X3uaxzvVMhSucCGA+rZsgt+fJSNjYQkJLpCGyHOIlc="; }; propagatedBuildInputs = [ diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 822bfcbe5936..d28507247eec 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 = "2022.3.8"; + version = "2022.4.0"; components = { "abode" = ps: with ps; [ abodepy ]; "accuweather" = ps: with ps; [ accuweather ]; @@ -22,6 +22,7 @@ "airthings" = ps: with ps; [ airthings-cloud ]; "airtouch4" = ps: with ps; [ airtouch4pyapi ]; "airvisual" = ps: with ps; [ pyairvisual ]; + "airzone" = ps: with ps; [ aioairzone ]; "aladdin_connect" = ps: with ps; [ aladdin-connect ]; "alarm_control_panel" = ps: with ps; [ ]; "alarmdecoder" = ps: with ps; [ adext ]; @@ -36,7 +37,7 @@ "ambient_station" = ps: with ps; [ aioambient ]; "amcrest" = ps: with ps; [ amcrest ha-ffmpeg ]; "ampio" = ps: with ps; [ asmog ]; - "analytics" = ps: with ps; [ aiohttp-cors sqlalchemy ]; + "analytics" = ps: with ps; [ aiohttp-cors fnvhash lru-dict sqlalchemy ]; "android_ip_webcam" = ps: with ps; [ pydroid-ipcam ]; "androidtv" = ps: with ps; [ adb-shell androidtv pure-python-adb ]; "anel_pwrctrl" = ps: with ps; [ ]; # missing inputs: anel_pwrctrl-homeassistant @@ -76,13 +77,12 @@ "azure_devops" = ps: with ps; [ aioazuredevops ]; "azure_event_hub" = ps: with ps; [ azure-eventhub ]; "azure_service_bus" = ps: with ps; [ azure-servicebus ]; + "backup" = ps: with ps; [ aiohttp-cors ]; # missing inputs: securetar "baidu" = ps: with ps; [ ]; # missing inputs: baidu-aip "balboa" = ps: with ps; [ pybalboa ]; "bayesian" = ps: with ps; [ ]; - "bbb_gpio" = ps: with ps; [ ]; # missing inputs: Adafruit_BBIO "bbox" = ps: with ps; [ ]; # missing inputs: pybbox "beewi_smartclim" = ps: with ps; [ ]; # missing inputs: beewi_smartclim - "bh1750" = ps: with ps; [ i2csense smbus-cffi ]; "binary_sensor" = ps: with ps; [ ]; "bitcoin" = ps: with ps; [ blockchain ]; "bizkaibus" = ps: with ps; [ bizkaibus ]; @@ -90,16 +90,12 @@ "blebox" = ps: with ps; [ blebox-uniapi ]; "blink" = ps: with ps; [ blinkpy ]; "blinksticklight" = ps: with ps; [ BlinkStick ]; - "blinkt" = ps: with ps; [ ]; # missing inputs: blinkt "blockchain" = ps: with ps; [ ]; # missing inputs: python-blockchain-api "bloomsky" = ps: with ps; [ ]; "blueprint" = ps: with ps; [ ]; "bluesound" = ps: with ps; [ xmltodict ]; "bluetooth_le_tracker" = ps: with ps; [ pygatt ]; "bluetooth_tracker" = ps: with ps; [ bt-proximity pybluez ]; - "bme280" = ps: with ps; [ bme280spi i2csense smbus-cffi ]; - "bme680" = ps: with ps; [ bme680 smbus-cffi ]; - "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280 "bmw_connected_drive" = ps: with ps; [ bimmer-connected ]; "bond" = ps: with ps; [ bond-api ]; "bosch_shc" = ps: with ps; [ aiohttp-cors boschshcpy ifaddr zeroconf ]; @@ -130,7 +126,7 @@ "clickatell" = ps: with ps; [ ]; "clicksend" = ps: with ps; [ ]; "clicksend_tts" = ps: with ps; [ ]; - "climacell" = ps: with ps; [ pyclimacell ]; + "climacell" = ps: with ps; [ pyclimacell ]; # missing inputs: pytomorrowio "climate" = ps: with ps; [ ]; "cloud" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa ]; "cloudflare" = ps: with ps; [ pycfdns ]; @@ -165,10 +161,10 @@ "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 pyturbojpeg aiodiscover aiohttp-cors async-upnp-client hass-nabucasa home-assistant-frontend ifaddr pillow pyserial pyudev scapy sqlalchemy zeroconf ]; + "default_config" = ps: with ps; [ pynacl pyturbojpeg aiodiscover aiohttp-cors async-upnp-client fnvhash hass-nabucasa home-assistant-frontend ifaddr lru-dict pillow pyserial pyudev scapy sqlalchemy zeroconf ]; "delijn" = ps: with ps; [ pydelijn ]; "deluge" = ps: with ps; [ deluge-client ]; - "demo" = ps: with ps; [ aiohttp-cors sqlalchemy ]; + "demo" = ps: with ps; [ aiohttp-cors fnvhash lru-dict sqlalchemy ]; "denon" = ps: with ps; [ ]; "denonavr" = ps: with ps; [ denonavr ]; "derivative" = ps: with ps; [ ]; @@ -180,7 +176,6 @@ "devolo_home_network" = ps: with ps; [ devolo-plc-api ]; "dexcom" = ps: with ps; [ pydexcom ]; "dhcp" = ps: with ps; [ aiodiscover scapy ]; - "dht" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-dht "diagnostics" = ps: with ps; [ aiohttp-cors ]; "dialogflow" = ps: with ps; [ aiohttp-cors ]; "digital_ocean" = ps: with ps; [ digital-ocean ]; @@ -234,13 +229,12 @@ "emulated_hue" = ps: with ps; [ aiohttp-cors ifaddr ]; "emulated_kasa" = ps: with ps; [ sense-energy ]; "emulated_roku" = ps: with ps; [ aiohttp-cors emulated-roku ifaddr ]; - "energy" = ps: with ps; [ aiohttp-cors sqlalchemy ]; + "energy" = ps: with ps; [ aiohttp-cors fnvhash lru-dict sqlalchemy ]; "enigma2" = ps: with ps; [ openwebifpy ]; "enocean" = ps: with ps; [ enocean ]; "enphase_envoy" = ps: with ps; [ envoy-reader ]; "entur_public_transport" = ps: with ps; [ enturclient ]; "environment_canada" = ps: with ps; [ env-canada ]; - "envirophat" = ps: with ps; [ smbus-cffi ]; # missing inputs: envirophat "envisalink" = ps: with ps; [ pyenvisalink ]; "ephember" = ps: with ps; [ pyephember ]; "epson" = ps: with ps; [ epson-projector ]; @@ -268,7 +262,7 @@ "fido" = ps: with ps; [ pyfido ]; "file" = ps: with ps; [ ]; "filesize" = ps: with ps; [ ]; - "filter" = ps: with ps; [ sqlalchemy ]; + "filter" = ps: with ps; [ fnvhash lru-dict sqlalchemy ]; "fints" = ps: with ps; [ fints ]; "fireservicerota" = ps: with ps; [ pyfireservicerota ]; "firmata" = ps: with ps; [ pymata-express ]; @@ -303,18 +297,18 @@ "fritzbox" = ps: with ps; [ pyfritzhome ]; "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ]; "fronius" = ps: with ps; [ pyfronius ]; - "frontend" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ]; + "frontend" = ps: with ps; [ aiohttp-cors fnvhash home-assistant-frontend lru-dict pillow sqlalchemy ]; "frontier_silicon" = ps: with ps; [ afsapi ]; "futurenow" = ps: with ps; [ pyfnip ]; "garadget" = ps: with ps; [ ]; "garages_amsterdam" = ps: with ps; [ garages-amsterdam ]; "gc100" = ps: with ps; [ ]; # missing inputs: python-gc100 "gdacs" = ps: with ps; [ aio-georss-gdacs ]; - "generic" = ps: with ps; [ ]; + "generic" = ps: with ps; [ av pillow ]; "generic_hygrostat" = ps: with ps; [ ]; - "generic_thermostat" = ps: with ps; [ sqlalchemy ]; + "generic_thermostat" = ps: with ps; [ fnvhash lru-dict sqlalchemy ]; "geniushub" = ps: with ps; [ geniushub-client ]; - "geo_json_events" = ps: with ps; [ geojson-client ]; + "geo_json_events" = ps: with ps; [ ]; # missing inputs: aio_geojson_generic_client "geo_location" = ps: with ps; [ ]; "geo_rss_events" = ps: with ps; [ georss-generic-client ]; "geofency" = ps: with ps; [ aiohttp-cors ]; @@ -329,7 +323,7 @@ "goalzero" = ps: with ps; [ goalzero ]; "gogogate2" = ps: with ps; [ ismartgate ]; "goodwe" = ps: with ps; [ goodwe ]; - "google" = ps: with ps; [ google-api-python-client httplib2 oauth2client ]; + "google" = ps: with ps; [ aiohttp-cors google-api-python-client httplib2 oauth2client ]; "google_assistant" = ps: with ps; [ pyturbojpeg aiohttp-cors ]; "google_cloud" = ps: with ps; [ google-cloud-texttospeech ]; "google_domains" = ps: with ps; [ ]; @@ -353,7 +347,7 @@ "hangouts" = ps: with ps; [ hangups ]; "harman_kardon_avr" = ps: with ps; [ ]; # missing inputs: hkavr "harmony" = ps: with ps; [ aioharmony ]; - "hassio" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ]; + "hassio" = ps: with ps; [ aiohttp-cors fnvhash home-assistant-frontend lru-dict pillow sqlalchemy ]; "haveibeenpwned" = ps: with ps; [ ]; "hddtemp" = ps: with ps; [ ]; "hdmi_cec" = ps: with ps; [ pycec ]; @@ -363,8 +357,8 @@ "hikvision" = ps: with ps; [ ]; # missing inputs: pyhik "hikvisioncam" = ps: with ps; [ hikvision ]; "hisense_aehw4a1" = ps: with ps; [ pyaehw4a1 ]; - "history" = ps: with ps; [ aiohttp-cors sqlalchemy ]; - "history_stats" = ps: with ps; [ sqlalchemy ]; + "history" = ps: with ps; [ aiohttp-cors fnvhash lru-dict sqlalchemy ]; + "history_stats" = ps: with ps; [ fnvhash lru-dict sqlalchemy ]; "hitron_coda" = ps: with ps; [ ]; "hive" = ps: with ps; [ pyhiveapi ]; "hlk_sw16" = ps: with ps; [ hlk-sw16 ]; @@ -382,7 +376,6 @@ "hp_ilo" = ps: with ps; [ python-hpilo ]; "html5" = ps: with ps; [ aiohttp-cors pywebpush ]; "http" = ps: with ps; [ aiohttp-cors ]; - "htu21d" = ps: with ps; [ i2csense smbus-cffi ]; "huawei_lte" = ps: with ps; [ huawei-lte-api stringcase url-normalize ]; "hue" = ps: with ps; [ aiohue ]; "huisbaasje" = ps: with ps; [ huisbaasje-client ]; @@ -436,6 +429,7 @@ "joaoapps_join" = ps: with ps; [ ]; # missing inputs: python-join-api "juicenet" = ps: with ps; [ python-juicenet ]; "kaiterra" = ps: with ps; [ ]; # missing inputs: kaiterra-async-client + "kaleidescape" = ps: with ps; [ ]; # missing inputs: pykaleidescape "kankun" = ps: with ps; [ ]; "keba" = ps: with ps; [ ]; # missing inputs: keba-kecontact "keenetic_ndms2" = ps: with ps; [ ndms2-client ]; @@ -477,7 +471,7 @@ "local_ip" = ps: with ps; [ aiohttp-cors ifaddr ]; "locative" = ps: with ps; [ aiohttp-cors ]; "lock" = ps: with ps; [ ]; - "logbook" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ]; + "logbook" = ps: with ps; [ aiohttp-cors fnvhash home-assistant-frontend lru-dict pillow sqlalchemy ]; "logentries" = ps: with ps; [ ]; "logger" = ps: with ps; [ ]; "logi_circle" = ps: with ps; [ aiohttp-cors ha-ffmpeg ]; # missing inputs: logi_circle @@ -497,13 +491,12 @@ "mailgun" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pymailgunner "manual" = ps: with ps; [ ]; "manual_mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ]; - "map" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ]; + "map" = ps: with ps; [ aiohttp-cors fnvhash home-assistant-frontend lru-dict pillow sqlalchemy ]; "marytts" = ps: with ps; [ ]; # missing inputs: speak2mary "mastodon" = ps: with ps; [ mastodon-py ]; "matrix" = ps: with ps; [ matrix-client ]; "maxcube" = ps: with ps; [ maxcube-api ]; "mazda" = ps: with ps; [ pymazda ]; - "mcp23017" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-mcp230xx "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ]; "media_player" = ps: with ps; [ aiohttp-cors ]; "media_source" = ps: with ps; [ aiohttp-cors ]; @@ -519,7 +512,6 @@ "meteoclimatic" = ps: with ps; [ pymeteoclimatic ]; "metoffice" = ps: with ps; [ ]; # missing inputs: datapoint "mfi" = ps: with ps; [ ]; # missing inputs: mficlient - "mhz19" = ps: with ps; [ pmsensor ]; "microsoft" = ps: with ps; [ ]; # missing inputs: pycsspeechtts "microsoft_face" = ps: with ps; [ pyturbojpeg aiohttp-cors ]; "microsoft_face_detect" = ps: with ps; [ pyturbojpeg aiohttp-cors ]; @@ -543,7 +535,6 @@ "moon" = ps: with ps; [ ]; "motion_blinds" = ps: with ps; [ aiohttp-cors ifaddr motionblinds ]; "motioneye" = ps: with ps; [ aiohttp-cors motioneye-client ]; - "mpchc" = ps: with ps; [ ]; "mpd" = ps: with ps; [ mpd2 ]; "mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ]; "mqtt_eventstream" = ps: with ps; [ aiohttp-cors paho-mqtt ]; @@ -554,7 +545,7 @@ "mullvad" = ps: with ps; [ mullvad-api ]; "mutesync" = ps: with ps; [ mutesync ]; "mvglive" = ps: with ps; [ PyMVGLive ]; - "my" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ]; + "my" = ps: with ps; [ aiohttp-cors fnvhash home-assistant-frontend lru-dict pillow sqlalchemy ]; "mycroft" = ps: with ps; [ ]; # missing inputs: mycroftapi "myq" = ps: with ps; [ pymyq ]; "mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt pymysensors ]; @@ -609,7 +600,7 @@ "ohmconnect" = ps: with ps; [ defusedxml ]; "ombi" = ps: with ps; [ pyombi ]; "omnilogic" = ps: with ps; [ omnilogic ]; - "onboarding" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ]; + "onboarding" = ps: with ps; [ aiohttp-cors fnvhash home-assistant-frontend lru-dict pillow sqlalchemy ]; "oncue" = ps: with ps; [ aiooncue ]; "ondilo_ico" = ps: with ps; [ aiohttp-cors ondilo ]; "onewire" = ps: with ps; [ pi1wire pyownet ]; @@ -632,7 +623,6 @@ "openweathermap" = ps: with ps; [ pyowm ]; "opnsense" = ps: with ps; [ pyopnsense ]; "opple" = ps: with ps; [ ]; # missing inputs: pyoppleio - "orangepi_gpio" = ps: with ps; [ ]; # missing inputs: OPi.GPIO "oru" = ps: with ps; [ ]; # missing inputs: oru "orvibo" = ps: with ps; [ orvibo ]; "osramlightify" = ps: with ps; [ ]; # missing inputs: lightify @@ -640,29 +630,26 @@ "overkiz" = ps: with ps; [ pyoverkiz ]; "ovo_energy" = ps: with ps; [ ovoenergy ]; "owntracks" = ps: with ps; [ pynacl pyturbojpeg aiohttp-cors hass-nabucasa paho-mqtt ]; - "ozw" = ps: with ps; [ aiohttp-cors paho-mqtt python-openzwave-mqtt ]; "p1_monitor" = ps: with ps; [ p1monitor ]; "panasonic_bluray" = ps: with ps; [ panacotta ]; "panasonic_viera" = ps: with ps; [ ]; # missing inputs: panasonic_viera "pandora" = ps: with ps; [ pexpect ]; - "panel_custom" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ]; - "panel_iframe" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ]; - "pcal9535a" = ps: with ps; [ ]; # missing inputs: pcal9535a + "panel_custom" = ps: with ps; [ aiohttp-cors fnvhash home-assistant-frontend lru-dict pillow sqlalchemy ]; + "panel_iframe" = ps: with ps; [ aiohttp-cors fnvhash home-assistant-frontend lru-dict pillow sqlalchemy ]; + "peco" = ps: with ps; [ ]; # missing inputs: peco "pencom" = ps: with ps; [ ]; # missing inputs: pencompy "persistent_notification" = ps: with ps; [ ]; "person" = ps: with ps; [ aiohttp-cors pillow ]; "philips_js" = ps: with ps; [ ha-philipsjs ]; - "pi4ioe5v9xxxx" = ps: with ps; [ ]; # missing inputs: pi4ioe5v9xxxx "pi_hole" = ps: with ps; [ hole ]; "picnic" = ps: with ps; [ python-picnic-api ]; "picotts" = ps: with ps; [ ]; - "piglow" = ps: with ps; [ ]; # missing inputs: piglow "pilight" = ps: with ps; [ ]; # missing inputs: pilight "ping" = ps: with ps; [ icmplib ]; "pioneer" = ps: with ps; [ ]; "pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2 "plaato" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa pyplaato ]; - "plant" = ps: with ps; [ sqlalchemy ]; + "plant" = ps: with ps; [ fnvhash lru-dict sqlalchemy ]; "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket ]; "plugwise" = ps: with ps; [ plugwise ]; "plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad @@ -706,11 +693,10 @@ "rainforest_eagle" = ps: with ps; [ aioeagle ueagle ]; "rainmachine" = ps: with ps; [ regenmaschine ]; "random" = ps: with ps; [ ]; - "raspihats" = ps: with ps; [ smbus-cffi ]; # missing inputs: raspihats "raspyrfm" = ps: with ps; [ ]; # missing inputs: raspyrfm-client "rdw" = ps: with ps; [ vehicle ]; "recollect_waste" = ps: with ps; [ aiorecollect ]; - "recorder" = ps: with ps; [ sqlalchemy ]; + "recorder" = ps: with ps; [ fnvhash lru-dict sqlalchemy ]; "recswitch" = ps: with ps; [ ]; # missing inputs: pyrecswitch "reddit" = ps: with ps; [ praw ]; "rejseplanen" = ps: with ps; [ ]; # missing inputs: rjpl @@ -737,10 +723,7 @@ "rova" = ps: with ps; [ ]; # missing inputs: rova "rpi_camera" = ps: with ps; [ ]; "rpi_gpio" = ps: with ps; [ ]; # missing inputs: RPi.GPIO - "rpi_gpio_pwm" = ps: with ps; [ ]; # missing inputs: pwmled - "rpi_pfio" = ps: with ps; [ ]; # missing inputs: pifacecommon pifacedigitalio "rpi_power" = ps: with ps; [ rpi-bad-power ]; - "rpi_rf" = ps: with ps; [ ]; # missing inputs: RPi.GPIO rpi-rf "rss_feed_template" = ps: with ps; [ aiohttp-cors ]; "rtorrent" = ps: with ps; [ ]; "rtsp_to_webrtc" = ps: with ps; [ pyturbojpeg aiohttp-cors rtsp-to-webrtc ]; @@ -748,9 +731,9 @@ "russound_rio" = ps: with ps; [ ]; # missing inputs: russound_rio "russound_rnet" = ps: with ps; [ ]; # missing inputs: russound "sabnzbd" = ps: with ps; [ aiohttp-cors ifaddr netdisco zeroconf ]; # missing inputs: pysabnzbd - "safe_mode" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa home-assistant-frontend pillow sqlalchemy ]; + "safe_mode" = ps: with ps; [ pyturbojpeg aiohttp-cors fnvhash hass-nabucasa home-assistant-frontend lru-dict pillow sqlalchemy ]; "saj" = ps: with ps; [ ]; # missing inputs: pysaj - "samsungtv" = ps: with ps; [ getmac samsungctl samsungtvws wakeonlan ]; + "samsungtv" = ps: with ps; [ aiohttp-cors async-upnp-client getmac ifaddr samsungctl samsungtvws wakeonlan zeroconf ]; "satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra "scene" = ps: with ps; [ ]; "schluter" = ps: with ps; [ ]; # missing inputs: py-schluter @@ -763,23 +746,21 @@ "select" = ps: with ps; [ ]; "sendgrid" = ps: with ps; [ sendgrid ]; "sense" = ps: with ps; [ sense-energy ]; - "sensehat" = ps: with ps; [ ]; # missing inputs: sense-hat "senseme" = ps: with ps; [ aiosenseme ]; "sensibo" = ps: with ps; [ ]; # missing inputs: pysensibo - "sensor" = ps: with ps; [ sqlalchemy ]; + "sensor" = ps: with ps; [ fnvhash lru-dict sqlalchemy ]; "sentry" = ps: with ps; [ sentry-sdk ]; "serial" = ps: with ps; [ pyserial-asyncio ]; "serial_pm" = ps: with ps; [ pmsensor ]; "sesame" = ps: with ps; [ ]; # missing inputs: pysesame2 "seven_segments" = ps: with ps; [ pillow ]; "seventeentrack" = ps: with ps; [ py17track ]; - "sharkiq" = ps: with ps; [ sharkiqpy ]; + "sharkiq" = ps: with ps; [ ]; # missing inputs: sharkiq "shell_command" = ps: with ps; [ ]; "shelly" = ps: with ps; [ aioshelly ]; "shiftr" = ps: with ps; [ paho-mqtt ]; "shodan" = ps: with ps; [ shodan ]; "shopping_list" = ps: with ps; [ aiohttp-cors ]; - "sht31" = ps: with ps; [ ]; # missing inputs: Adafruit-GPIO Adafruit-SHT31 "sia" = ps: with ps; [ pysiaalarm ]; "sigfox" = ps: with ps; [ ]; "sighthound" = ps: with ps; [ pillow simplehound ]; @@ -799,7 +780,6 @@ "sma" = ps: with ps; [ pysma ]; "smappee" = ps: with ps; [ aiohttp-cors pysmappee ]; "smart_meter_texas" = ps: with ps; [ smart-meter-texas ]; - "smarthab" = ps: with ps; [ smarthab ]; "smartthings" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa pysmartapp pysmartthings ]; "smarttub" = ps: with ps; [ python-smarttub ]; "smarty" = ps: with ps; [ ]; # missing inputs: pysmarty @@ -809,7 +789,6 @@ "snapcast" = ps: with ps; [ snapcast ]; "snips" = ps: with ps; [ aiohttp-cors paho-mqtt ]; "snmp" = ps: with ps; [ pysnmp ]; - "sochain" = ps: with ps; [ ]; # missing inputs: python-sochain-api "solaredge" = ps: with ps; [ solaredge stringcase ]; "solaredge_local" = ps: with ps; [ ]; # missing inputs: solaredge-local "solarlog" = ps: with ps; [ sunwatcher ]; @@ -835,7 +814,7 @@ "starline" = ps: with ps; [ starline ]; "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank "startca" = ps: with ps; [ xmltodict ]; - "statistics" = ps: with ps; [ sqlalchemy ]; + "statistics" = ps: with ps; [ fnvhash lru-dict sqlalchemy ]; "statsd" = ps: with ps; [ statsd ]; "steam_online" = ps: with ps; [ ]; # missing inputs: steamodd "steamist" = ps: with ps; [ aiohttp-cors aiosteamist discovery30303 ifaddr ]; @@ -854,6 +833,7 @@ "swiss_public_transport" = ps: with ps; [ python-opendata-transport ]; "swisscom" = ps: with ps; [ ]; "switch" = ps: with ps; [ ]; + "switch_as_x" = ps: with ps; [ ]; "switchbot" = ps: with ps; [ pyswitchbot ]; "switcher_kis" = ps: with ps; [ aioswitcher ]; "switchmate" = ps: with ps; [ ]; # missing inputs: pySwitchmate @@ -893,7 +873,7 @@ "thinkingcleaner" = ps: with ps; [ ]; # missing inputs: pythinkingcleaner "thomson" = ps: with ps; [ ]; "threshold" = ps: with ps; [ ]; - "tibber" = ps: with ps; [ pytibber sqlalchemy ]; + "tibber" = ps: with ps; [ fnvhash lru-dict pytibber sqlalchemy ]; "tikteck" = ps: with ps; [ ]; # missing inputs: tikteck "tile" = ps: with ps; [ pytile ]; "time_date" = ps: with ps; [ ]; @@ -901,9 +881,9 @@ "tmb" = ps: with ps; [ tmb ]; "tod" = ps: with ps; [ ]; "todoist" = ps: with ps; [ todoist ]; - "tof" = ps: with ps; [ ]; # missing inputs: RPi.GPIO VL53L1X2 "tolo" = ps: with ps; [ tololib ]; "tomato" = ps: with ps; [ ]; + "tomorrowio" = ps: with ps; [ ]; # missing inputs: pytomorrowio "toon" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa toonapi ]; "torque" = ps: with ps; [ aiohttp-cors ]; "totalconnect" = ps: with ps; [ total-connect-client ]; @@ -940,6 +920,7 @@ "upb" = ps: with ps; [ upb-lib ]; "upc_connect" = ps: with ps; [ connect-box ]; "upcloud" = ps: with ps; [ upcloud-api ]; + "update" = ps: with ps; [ ]; "updater" = ps: with ps; [ ]; "upnp" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr zeroconf ]; "uptime" = ps: with ps; [ ]; @@ -971,6 +952,7 @@ "volkszaehler" = ps: with ps; [ volkszaehler ]; "volumio" = ps: with ps; [ pyvolumio ]; "volvooncall" = ps: with ps; [ volvooncall ]; + "vulcan" = ps: with ps; [ vulcan-api ]; "vultr" = ps: with ps; [ vultr ]; "w800rf32" = ps: with ps; [ ]; # missing inputs: pyW800rf32 "wake_on_lan" = ps: with ps; [ wakeonlan ]; @@ -984,7 +966,7 @@ "waze_travel_time" = ps: with ps; [ wazeroutecalculator ]; "weather" = ps: with ps; [ ]; "webhook" = ps: with ps; [ aiohttp-cors ]; - "webostv" = ps: with ps; [ aiowebostv sqlalchemy ]; + "webostv" = ps: with ps; [ aiowebostv ]; "websocket_api" = ps: with ps; [ aiohttp-cors ]; "wemo" = ps: with ps; [ pywemo ]; "whirlpool" = ps: with ps; [ whirlpool-sixth-sense ]; @@ -1022,7 +1004,7 @@ "youless" = ps: with ps; [ youless-api ]; "zabbix" = ps: with ps; [ py-zabbix ]; "zamg" = ps: with ps; [ ]; - "zengge" = ps: with ps; [ ]; # missing inputs: zengge + "zengge" = ps: with ps; [ bluepy ]; # missing inputs: zengge "zeroconf" = ps: with ps; [ aiohttp-cors ifaddr zeroconf ]; "zerproc" = ps: with ps; [ pyzerproc ]; "zestimate" = ps: with ps; [ xmltodict ]; @@ -1032,7 +1014,6 @@ "zodiac" = ps: with ps; [ ]; "zone" = ps: with ps; [ ]; "zoneminder" = ps: with ps; [ zm-py ]; - "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher ]; "zwave_js" = ps: with ps; [ aiohttp-cors pyserial pyudev zwave-js-server-python ]; "zwave_me" = ps: with ps; [ aiohttp-cors ifaddr url-normalize zeroconf ]; # missing inputs: zwave_me_ws }; @@ -1052,6 +1033,7 @@ "airthings" "airtouch4" "airvisual" + "airzone" "alarm_control_panel" "alarmdecoder" "alert" @@ -1107,7 +1089,6 @@ "canary" "cast" "cert_expiry" - "climacell" "climate" "cloud" "cloudflare" @@ -1132,6 +1113,7 @@ "debugpy" "deconz" "default_config" + "deluge" "demo" "denonavr" "derivative" @@ -1145,6 +1127,7 @@ "diagnostics" "dialogflow" "directv" + "discord" "discovery" "dlna_dmr" "dlna_dms" @@ -1182,6 +1165,7 @@ "fan" "feedreader" "ffmpeg" + "fibaro" "fido" "file" "filesize" @@ -1215,7 +1199,6 @@ "generic" "generic_hygrostat" "generic_thermostat" - "geo_json_events" "geo_location" "geo_rss_events" "geofency" @@ -1339,7 +1322,6 @@ "met" "met_eireann" "meteoclimatic" - "mhz19" "microsoft_face" "microsoft_face_detect" "microsoft_face_identify" @@ -1409,7 +1391,6 @@ "overkiz" "ovo_energy" "owntracks" - "ozw" "p1_monitor" "panel_custom" "panel_iframe" @@ -1478,7 +1459,6 @@ "sensor" "sentry" "seventeentrack" - "sharkiq" "shell_command" "shelly" "shopping_list" @@ -1494,7 +1474,6 @@ "sma" "smappee" "smart_meter_texas" - "smarthab" "smartthings" "smarttub" "smhi" @@ -1530,6 +1509,7 @@ "sun" "surepetcare" "switch" + "switch_as_x" "switchbot" "switcher_kis" "syncthing" @@ -1541,9 +1521,11 @@ "tado" "tag" "tailscale" + "tankerkoenig" "tasmota" "tcp" "telegram" + "telegram_bot" "tellduslive" "template" "tesla_wall_connector" @@ -1553,6 +1535,7 @@ "time_date" "timer" "tod" + "todoist" "tolo" "tomato" "toon" @@ -1562,6 +1545,7 @@ "trace" "tractive" "tradfri" + "trafikverket_train" "trafikverket_weatherstation" "transmission" "transport_nsw" @@ -1578,6 +1562,7 @@ "universal" "upb" "upcloud" + "update" "updater" "upnp" "uptime" @@ -1599,6 +1584,7 @@ "vlc_telnet" "voicerss" "volumio" + "vulcan" "vultr" "wake_on_lan" "wallbox" @@ -1635,7 +1621,6 @@ "zha" "zodiac" "zone" - "zwave" "zwave_js" ]; } diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 32273d35e7a7..ded617b35f6c 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -59,17 +59,18 @@ let }) (self: super: { - hatasmota = super.hatasmota.overridePythonAttrs (oldAttrs: { - version = "0.3.1"; + aioairzone = super.aioairzone.overridePythonAttrs (oldAttrs: rec { + version = "0.2.3"; src = fetchFromGitHub { - owner = "emontnemery"; - repo = "hatasmota"; - rev = "0.3.1"; - sha256 = "sha256-/am6cRhAdiqMq0u7Ed4qhIA+Em2O0gIt7HfP19+2XHw="; + owner = "Noltari"; + repo = "aioairzone"; + rev = version; + hash = "sha256-vy6NqtlWv2El259rC+Nm0gs/rsY+s8xe7Z+wXvT1Ing="; }; }); }) + (self: super: { huawei-lte-api = super.huawei-lte-api.overridePythonAttrs (oldAttrs: rec { version = "1.4.18"; @@ -177,7 +178,7 @@ let extraPackagesFile = writeText "home-assistant-packages" (lib.concatMapStringsSep "\n" (pkg: pkg.pname) extraBuildInputs); # Don't forget to run parse-requirements.py after updating - hassVersion = "2022.3.8"; + hassVersion = "2022.4.0"; in python.pkgs.buildPythonApplication rec { pname = "homeassistant"; @@ -195,7 +196,7 @@ in python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = version; - hash = "sha256-FGsMFt/EEokaast81iiwKHqSsB1E4Si5ejTw+MV1MnQ="; + hash = "sha256-b/YwcbcQuRIue4fr4+yF2EEXLvmnI7e3xfyz52flwJw="; }; # leave this in, so users don't have to constantly update their downstream patch handling @@ -215,8 +216,8 @@ in python.pkgs.buildPythonApplication rec { "bcrypt" "cryptography" "httpx" + "jinja2" "pip" - "PyJWT" "requests" "yarl" ]; @@ -319,6 +320,8 @@ in python.pkgs.buildPythonApplication rec { "test_merge" # Tests are flaky "test_config_platform_valid" + # Test requires pylint>=2.13.0 + "test_invalid_discovery_info" ]; preCheck = '' diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index 9f13a6652d7d..fb708313072c 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -4,7 +4,7 @@ buildPythonPackage rec { # the frontend version corresponding to a specific home-assistant version can be found here # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json pname = "home-assistant-frontend"; - version = "20220301.2"; + version = "20220405.0"; format = "wheel"; src = fetchPypi { @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - sha256 = "sha256-iIywlG9ATLV/+bHtOQFx4mRwToelpPdE3DOKSp4yxN0="; + sha256 = "sha256-M024uJJVhVSoGhJTc7d8NKItw0sAOGFuCsZNUe//vBg="; }; # there is nothing to strip in this package diff --git a/pkgs/servers/home-assistant/tests.nix b/pkgs/servers/home-assistant/tests.nix index ae2d91b933f9..58bb1670e5a0 100644 --- a/pkgs/servers/home-assistant/tests.nix +++ b/pkgs/servers/home-assistant/tests.nix @@ -5,14 +5,14 @@ let # some components' tests have additional dependencies extraCheckInputs = with home-assistant.python.pkgs; { - alexa = [ ha-av ]; - camera = [ ha-av ]; + alexa = [ av ]; + camera = [ av ]; cloud = [ mutagen ]; config = [ pydispatcher ]; - generic = [ ha-av ]; + generic = [ av ]; google_translate = [ mutagen ]; lovelace = [ PyChromecast ]; - nest = [ ha-av ]; + nest = [ av ]; onboarding = [ pymetno radios rpi-bad-power ]; version = [ aioaseko ]; voicerss = [ mutagen ]; @@ -67,8 +67,11 @@ in lib.listToAttrs (map (component: lib.nameValuePair component ( meta = old.meta // { broken = lib.elem component [ "airtouch4" + "bsblan" "dnsip" - "zwave" + "efergy" + "ssdp" + "subaru" ]; # upstream only tests on Linux, so do we. platforms = lib.platforms.linux; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index db0b456d905d..f259b7cc7f68 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -66,6 +66,7 @@ mapAliases ({ google_api_python_client = google-api-python-client; # added 2021-03-19 googleapis_common_protos = googleapis-common-protos; # added 2021-03-19 grpc_google_iam_v1 = grpc-google-iam-v1; # added 2021-08-21 + ha-av = throw "ha-av was removed, because it is no longer maintained"; # added 2022-04-06 HAP-python = hap-python; # added 2021-06-01 hbmqtt = throw "hbmqtt was removed because it is no longer maintained"; # added 2021-11-07 hdlparse = throw "hdlparse has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b908f6888290..c4e8713119fd 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3205,6 +3205,10 @@ in { garages-amsterdam = callPackage ../development/python-modules/garages-amsterdam { }; + gattlib = callPackage ../development/python-modules/gattlib { + inherit (pkgs) bluez glib pkg-config; + }; + gbinder-python = callPackage ../development/python-modules/gbinder-python { }; gcovr = callPackage ../development/python-modules/gcovr { }; @@ -3701,8 +3705,6 @@ in { hdate = callPackage ../development/python-modules/hdate { }; - ha-av = callPackage ../development/python-modules/ha-av { }; - ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { }; ha-philipsjs = callPackage ../development/python-modules/ha-philipsjs{ }; @@ -4883,6 +4885,8 @@ in { losant-rest = callPackage ../development/python-modules/losant-rest { }; + lru-dict = callPackage ../development/python-modules/lru-dict { }; + lsassy = callPackage ../development/python-modules/lsassy { }; luddite = callPackage ../development/python-modules/luddite { }; @@ -6761,7 +6765,9 @@ in { pyblock = callPackage ../development/python-modules/pyblock { }; - pybluez = callPackage ../development/python-modules/pybluez { }; + pybluez = callPackage ../development/python-modules/pybluez { + inherit (pkgs) bluez; + }; pybotvac = callPackage ../development/python-modules/pybotvac { };