Merge pull request #115016 from mweinelt/home-assistant
This commit is contained in:
commit
b349460dd8
|
@ -183,8 +183,14 @@ in {
|
|||
};
|
||||
|
||||
package = mkOption {
|
||||
default = pkgs.home-assistant;
|
||||
defaultText = "pkgs.home-assistant";
|
||||
default = pkgs.home-assistant.overrideAttrs (oldAttrs: {
|
||||
doInstallCheck = false;
|
||||
});
|
||||
defaultText = literalExample ''
|
||||
pkgs.home-assistant.overrideAttrs (oldAttrs: {
|
||||
doInstallCheck = false;
|
||||
})
|
||||
'';
|
||||
type = types.package;
|
||||
example = literalExample ''
|
||||
pkgs.home-assistant.override {
|
||||
|
@ -192,7 +198,7 @@ in {
|
|||
}
|
||||
'';
|
||||
description = ''
|
||||
Home Assistant package to use.
|
||||
Home Assistant package to use. By default the tests are disabled, as they take a considerable amout of time to complete.
|
||||
Override <literal>extraPackages</literal> or <literal>extraComponents</literal> in order to add additional dependencies.
|
||||
If you specify <option>config</option> and do not set <option>autoExtraComponents</option>
|
||||
to <literal>false</literal>, overriding <literal>extraComponents</literal> will have no effect.
|
||||
|
|
|
@ -24,6 +24,8 @@ in {
|
|||
services.home-assistant = {
|
||||
inherit configDir;
|
||||
enable = true;
|
||||
# includes the package with all tests enabled
|
||||
package = pkgs.home-assistant;
|
||||
config = {
|
||||
homeassistant = {
|
||||
name = "Home";
|
||||
|
|
|
@ -1,22 +1,43 @@
|
|||
{ aiohttp, buildPythonPackage, fetchFromGitHub, lib, pytest, pytestCheckHook
|
||||
, pytestcov, pytestrunner, pytest-asyncio, python, pythonOlder }:
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pythonOlder
|
||||
, pytestrunner
|
||||
, aiohttp
|
||||
, aioresponses
|
||||
, pytestCheckHook
|
||||
, pytestcov
|
||||
, pytest-asyncio
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "accuweather";
|
||||
version = "0.0.11";
|
||||
version = "0.1.0";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bieniu";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1sgbw9yldf81phwx6pbvqg9sp767whxymyj0ca9pwx1r6ipr080h";
|
||||
sha256 = "0jp2x7fgg1shgr1fx296rni00lmjjmjgg141giljzizgd04dwgy3";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# we don't have pytest-error-for-skips packaged
|
||||
substituteInPlace pytest.ini --replace "--error-for-skips" ""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ pytestrunner ];
|
||||
|
||||
propagatedBuildInputs = [ aiohttp ];
|
||||
checkInputs = [ pytestCheckHook pytestcov pytest-asyncio ];
|
||||
|
||||
checkInputs = [
|
||||
aioresponses
|
||||
pytestCheckHook
|
||||
pytestcov
|
||||
pytest-asyncio
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description =
|
||||
|
|
|
@ -1,24 +1,26 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, setuptools-scm
|
||||
, alarmdecoder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "adext";
|
||||
version = "0.3";
|
||||
version = "0.4.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "184qxw6i5ixnhgkjnby4zwn4jg90mxb8xy9vbg80x5w331p4z50f";
|
||||
sha256 = "1yz1rpfvhbf7kfjck5vadbj9rd3bkx5248whaa3impdrjh7vs03x";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "alarmdecoder==1.13.2" "alarmdecoder>=1.13.2"
|
||||
'';
|
||||
nativeBuildInputs = [
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ alarmdecoder ];
|
||||
propagatedBuildInputs = [
|
||||
alarmdecoder
|
||||
];
|
||||
|
||||
# Tests are not published yet
|
||||
doCheck = false;
|
||||
|
|
|
@ -3,14 +3,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "alarmdecoder";
|
||||
version = "1.13.9";
|
||||
version = "1.13.10";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nutechsoftware";
|
||||
repo = "alarmdecoder";
|
||||
rev = version;
|
||||
sha256 = "0plr2h1qn4ryawbaxf29cfna4wailghhaqy1jcm9kxq6q7b9xqqy";
|
||||
sha256 = "05581j78181p6mwbfpbkp5irnrzsvps1lslgqrh7xbdcmz5b2nxd";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ pyserial pyftdi pyusb pyopenssl ];
|
||||
|
|
|
@ -1,21 +1,40 @@
|
|||
{ lib, buildPythonPackage, fetchFromGitHub
|
||||
, click, click-log, pure-pcapy3
|
||||
, pyserial-asyncio, voluptuous, zigpy
|
||||
, asynctest, pytestCheckHook, pytest-asyncio }:
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, click
|
||||
, click-log
|
||||
, pure-pcapy3
|
||||
, pyserial-asyncio
|
||||
, voluptuous
|
||||
, zigpy
|
||||
, asynctest
|
||||
, pytestCheckHook
|
||||
, pytest-asyncio
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "bellows";
|
||||
version = "0.21.0";
|
||||
version = "0.22.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zigpy";
|
||||
repo = "bellows";
|
||||
rev = version;
|
||||
sha256 = "1gja7cb1cyzbi19k8awa2gyc3bjam0adapalpk5slxny0vxlc73a";
|
||||
sha256 = "0il2cwnrcvgxx9jkj1xr2caqyza3kqjys3fpmcx7avy04xbf5dbv";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "click-log==0.2.1" "click-log>=0.2.1"
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
click click-log pure-pcapy3 pyserial-asyncio voluptuous zigpy
|
||||
click
|
||||
click-log
|
||||
pure-pcapy3
|
||||
pyserial-asyncio
|
||||
voluptuous
|
||||
zigpy
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
|
@ -24,11 +43,6 @@ buildPythonPackage rec {
|
|||
pytest-asyncio
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "click-log==0.2.0" "click-log>=0.2.0"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Python 3 project to implement EZSP for EmberZNet devices";
|
||||
homepage = "https://github.com/zigpy/bellows";
|
||||
|
|
|
@ -9,14 +9,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "PlexAPI";
|
||||
version = "4.3.1";
|
||||
version = "4.4.0";
|
||||
disabled = isPy27;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pkkid";
|
||||
repo = "python-plexapi";
|
||||
rev = version;
|
||||
sha256 = "sha256-gRXNOGd9YGcGysKbAtiNwi5NxPvv39F6PEXBjiYbVq4=";
|
||||
sha256 = "0wzdzi5afncinavz5g77ximdr9y2ndzwb0gl819n0l6pnvbxdwp2";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, poetry-core
|
||||
, pytest-cov
|
||||
, pytest-asyncio
|
||||
|
@ -13,24 +12,16 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyvera";
|
||||
version = "0.3.11";
|
||||
version = "0.3.13";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pavoni";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0yi2cjd3jag95xa0k24f7d7agi26ywb3219a0j0k8l2nsx2sdi87";
|
||||
sha256 = "0vh82bwgbq93jrwi9q4da534paknpak8hxi4wwlxh3qcvnpy1njv";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# build-system section is missing https://github.com/pavoni/pyvera/pull/142
|
||||
url = "https://github.com/pavoni/pyvera/pull/142/commits/e90995a8d55107118d324e8cf189ddf1d9e3aa6c.patch";
|
||||
sha256 = "1psq3fiwg20kcwyybzh5g17dzn5fh29lhm238npyg846innbzgs7";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ poetry-core ];
|
||||
|
||||
propagatedBuildInputs = [ requests ];
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "zha-quirks";
|
||||
version = "0.0.53";
|
||||
version = "0.0.54";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zigpy";
|
||||
repo = "zha-device-handlers";
|
||||
rev = version;
|
||||
sha256 = "16n99r7bjd3lnxn72lfnxg44n7mkv196vdhkw2sf1nq1an4ks1nc";
|
||||
sha256 = "1xc4rky9x2n15rsb18vyg4lb2897k14gkz03khgf8gp37bg2dk5h";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ aiohttp zigpy ];
|
||||
|
|
|
@ -17,13 +17,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "zigpy-znp";
|
||||
version = "0.3.0";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zha-ng";
|
||||
repo = "zigpy-znp";
|
||||
rev = "v${version}";
|
||||
sha256 = "18dav2n5fqdigf8dl7gcqa9z8l6p2ig6l5q78gqg2wj7wjpncwyj";
|
||||
sha256 = "1g5jssdnibhb4i4k1js9iy9w40cipf1gdnyp847x0bv6wblzx8rl";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -45,11 +45,6 @@ buildPythonPackage rec {
|
|||
pytestCheckHook
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# zigpy-znp was too slow to sync up with the zigpy 0.29 release and has API breakage, remove >0.3.0
|
||||
"test_force_remove"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A library for zigpy which communicates with TI ZNP radios";
|
||||
homepage = "https://github.com/zha-ng/zigpy-znp";
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Do not edit!
|
||||
|
||||
{
|
||||
version = "2021.2.3";
|
||||
version = "2021.3.2";
|
||||
components = {
|
||||
"abode" = ps: with ps; [ abodepy ];
|
||||
"accuweather" = ps: with ps; [ accuweather ];
|
||||
|
@ -12,6 +12,7 @@
|
|||
"adguard" = ps: with ps; [ adguardhome ];
|
||||
"ads" = ps: with ps; [ pyads ];
|
||||
"advantage_air" = ps: with ps; [ advantage-air ];
|
||||
"aemet" = ps: with ps; [ ]; # missing inputs: AEMET-OpenData
|
||||
"aftership" = ps: with ps; [ pyaftership ];
|
||||
"agent_dvr" = ps: with ps; [ agent-py ];
|
||||
"air_quality" = ps: with ps; [ ];
|
||||
|
@ -120,13 +121,13 @@
|
|||
"clickatell" = ps: with ps; [ ];
|
||||
"clicksend" = ps: with ps; [ ];
|
||||
"clicksend_tts" = ps: with ps; [ ];
|
||||
"climacell" = ps: with ps; [ ]; # missing inputs: pyclimacell
|
||||
"climate" = ps: with ps; [ ];
|
||||
"cloud" = ps: with ps; [ aiohttp-cors hass-nabucasa ];
|
||||
"cloudflare" = ps: with ps; [ pycfdns ];
|
||||
"cmus" = ps: with ps; [ ]; # missing inputs: pycmus
|
||||
"co2signal" = ps: with ps; [ ]; # missing inputs: co2signal
|
||||
"coinbase" = ps: with ps; [ ]; # missing inputs: coinbase
|
||||
"coinmarketcap" = ps: with ps; [ coinmarketcap ];
|
||||
"color_extractor" = ps: with ps; [ ]; # missing inputs: colorthief
|
||||
"comed_hourly_pricing" = ps: with ps; [ ];
|
||||
"comfoconnect" = ps: with ps; [ ]; # missing inputs: pycomfoconnect
|
||||
|
@ -142,7 +143,6 @@
|
|||
"cover" = ps: with ps; [ ];
|
||||
"cppm_tracker" = ps: with ps; [ ]; # missing inputs: clearpasspy
|
||||
"cpuspeed" = ps: with ps; [ py-cpuinfo ];
|
||||
"crimereports" = ps: with ps; [ ]; # missing inputs: crimereports
|
||||
"cups" = ps: with ps; [ pycups ];
|
||||
"currencylayer" = ps: with ps; [ ];
|
||||
"daikin" = ps: with ps; [ pydaikin ];
|
||||
|
@ -154,7 +154,7 @@
|
|||
"deconz" = ps: with ps; [ ]; # missing inputs: pydeconz
|
||||
"decora" = ps: with ps; [ bluepy ]; # missing inputs: decora
|
||||
"decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
|
||||
"default_config" = ps: with ps; [ pynacl aiohttp-cors defusedxml distro emoji hass-nabucasa netdisco pillow scapy sqlalchemy zeroconf ];
|
||||
"default_config" = ps: with ps; [ pynacl aiohttp-cors async-upnp-client defusedxml distro emoji hass-nabucasa netdisco pillow scapy sqlalchemy zeroconf ];
|
||||
"delijn" = ps: with ps; [ ]; # missing inputs: pydelijn
|
||||
"deluge" = ps: with ps; [ deluge-client ];
|
||||
"demo" = ps: with ps; [ aiohttp-cors ];
|
||||
|
@ -238,6 +238,7 @@
|
|||
"everlights" = ps: with ps; [ pyeverlights ];
|
||||
"evohome" = ps: with ps; [ ]; # missing inputs: evohome-async
|
||||
"ezviz" = ps: with ps; [ ]; # missing inputs: pyezviz
|
||||
"faa_delays" = ps: with ps; [ faadelays ];
|
||||
"facebook" = ps: with ps; [ ];
|
||||
"facebox" = ps: with ps; [ ];
|
||||
"fail2ban" = ps: with ps; [ ];
|
||||
|
@ -276,7 +277,7 @@
|
|||
"foscam" = ps: with ps; [ ]; # missing inputs: libpyfoscam
|
||||
"foursquare" = ps: with ps; [ aiohttp-cors ];
|
||||
"free_mobile" = ps: with ps; [ ]; # missing inputs: freesms
|
||||
"freebox" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: aiofreepybox
|
||||
"freebox" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: freebox-api
|
||||
"freedns" = ps: with ps; [ ];
|
||||
"fritz" = ps: with ps; [ fritzconnection ];
|
||||
"fritzbox" = ps: with ps; [ pyfritzhome ];
|
||||
|
@ -421,6 +422,7 @@
|
|||
"keyboard_remote" = ps: with ps; [ aionotify evdev ];
|
||||
"kira" = ps: with ps; [ pykira ];
|
||||
"kiwi" = ps: with ps; [ ]; # missing inputs: kiwiki-client
|
||||
"kmtronic" = ps: with ps; [ pykmtronic ];
|
||||
"knx" = ps: with ps; [ xknx ];
|
||||
"kodi" = ps: with ps; [ ]; # missing inputs: pykodi
|
||||
"konnected" = ps: with ps; [ aiohttp-cors ]; # missing inputs: konnected
|
||||
|
@ -446,6 +448,7 @@
|
|||
"linux_battery" = ps: with ps; [ batinfo ];
|
||||
"lirc" = ps: with ps; [ ]; # missing inputs: python-lirc
|
||||
"litejet" = ps: with ps; [ ]; # missing inputs: pylitejet
|
||||
"litterrobot" = ps: with ps; [ ]; # missing inputs: pylitterbot
|
||||
"llamalab_automate" = ps: with ps; [ ];
|
||||
"local_file" = ps: with ps; [ ];
|
||||
"local_ip" = ps: with ps; [ ];
|
||||
|
@ -466,6 +469,7 @@
|
|||
"lutron_caseta" = ps: with ps; [ ]; # missing inputs: aiolip pylutron-caseta
|
||||
"lw12wifi" = ps: with ps; [ ]; # missing inputs: lw12
|
||||
"lyft" = ps: with ps; [ ]; # missing inputs: lyft_rides
|
||||
"lyric" = ps: with ps; [ aiohttp-cors aiolyric ];
|
||||
"magicseaweed" = ps: with ps; [ ]; # missing inputs: magicseaweed
|
||||
"mailbox" = ps: with ps; [ aiohttp-cors ];
|
||||
"mailgun" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pymailgunner
|
||||
|
@ -476,6 +480,7 @@
|
|||
"mastodon" = ps: with ps; [ ]; # missing inputs: Mastodon.py
|
||||
"matrix" = ps: with ps; [ matrix-client ];
|
||||
"maxcube" = ps: with ps; [ ]; # missing inputs: 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 ];
|
||||
|
@ -519,7 +524,9 @@
|
|||
"mqtt_room" = ps: with ps; [ aiohttp-cors paho-mqtt ];
|
||||
"mqtt_statestream" = ps: with ps; [ aiohttp-cors paho-mqtt ];
|
||||
"msteams" = ps: with ps; [ pymsteams ];
|
||||
"mullvad" = ps: with ps; [ mullvad-api ];
|
||||
"mvglive" = ps: with ps; [ PyMVGLive ];
|
||||
"my" = ps: with ps; [ aiohttp-cors pillow ];
|
||||
"mychevy" = ps: with ps; [ ]; # missing inputs: mychevy
|
||||
"mycroft" = ps: with ps; [ ]; # missing inputs: mycroftapi
|
||||
"myq" = ps: with ps; [ pymyq ];
|
||||
|
@ -560,7 +567,6 @@
|
|||
"nsw_fuel_station" = ps: with ps; [ ]; # missing inputs: nsw-fuel-api-client
|
||||
"nsw_rural_fire_service_feed" = ps: with ps; [ ]; # missing inputs: aio_geojson_nsw_rfs_incidents
|
||||
"nuheat" = ps: with ps; [ ]; # missing inputs: nuheat
|
||||
"nuimo_controller" = ps: with ps; [ ]; # missing inputs: --only-binary=all nuimo
|
||||
"nuki" = ps: with ps; [ pynuki ];
|
||||
"numato" = ps: with ps; [ ]; # missing inputs: numato-gpio
|
||||
"number" = ps: with ps; [ ];
|
||||
|
@ -622,7 +628,7 @@
|
|||
"ping" = ps: with ps; [ icmplib ];
|
||||
"pioneer" = ps: with ps; [ ];
|
||||
"pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2
|
||||
"plaato" = ps: with ps; [ aiohttp-cors ];
|
||||
"plaato" = ps: with ps; [ aiohttp-cors hass-nabucasa pyplaato ];
|
||||
"plant" = ps: with ps; [ sqlalchemy ];
|
||||
"plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket ];
|
||||
"plugwise" = ps: with ps; [ plugwise ];
|
||||
|
@ -682,6 +688,7 @@
|
|||
"ring" = ps: with ps; [ ha-ffmpeg ring-doorbell ];
|
||||
"ripple" = ps: with ps; [ ]; # missing inputs: python-ripple-api
|
||||
"risco" = ps: with ps; [ pyrisco ];
|
||||
"rituals_perfume_genie" = ps: with ps; [ pyrituals ];
|
||||
"rmvtransport" = ps: with ps; [ PyRMVtransport ];
|
||||
"rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API
|
||||
"roku" = ps: with ps; [ ]; # missing inputs: rokuecp
|
||||
|
@ -749,6 +756,7 @@
|
|||
"smart_meter_texas" = ps: with ps; [ ]; # missing inputs: smart-meter-texas
|
||||
"smarthab" = ps: with ps; [ ]; # missing inputs: smarthab
|
||||
"smartthings" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: pysmartapp pysmartthings
|
||||
"smarttub" = ps: with ps; [ python-smarttub ];
|
||||
"smarty" = ps: with ps; [ ]; # missing inputs: pysmarty
|
||||
"smhi" = ps: with ps; [ ]; # missing inputs: smhi-pkg
|
||||
"sms" = ps: with ps; [ python-gammu ];
|
||||
|
@ -780,7 +788,7 @@
|
|||
"sql" = ps: with ps; [ sqlalchemy ];
|
||||
"squeezebox" = ps: with ps; [ pysqueezebox ];
|
||||
"srp_energy" = ps: with ps; [ ]; # missing inputs: srpenergy
|
||||
"ssdp" = ps: with ps; [ aiohttp-cors defusedxml netdisco zeroconf ];
|
||||
"ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml netdisco zeroconf ];
|
||||
"starline" = ps: with ps; [ ]; # missing inputs: starline
|
||||
"starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank
|
||||
"startca" = ps: with ps; [ xmltodict ];
|
||||
|
@ -792,6 +800,7 @@
|
|||
"stream" = ps: with ps; [ aiohttp-cors av ];
|
||||
"streamlabswater" = ps: with ps; [ ]; # missing inputs: streamlabswater
|
||||
"stt" = ps: with ps; [ aiohttp-cors ];
|
||||
"subaru" = ps: with ps; [ subarulink ];
|
||||
"suez_water" = ps: with ps; [ ]; # missing inputs: pysuez
|
||||
"sun" = ps: with ps; [ ];
|
||||
"supervisord" = ps: with ps; [ ];
|
||||
|
@ -805,7 +814,6 @@
|
|||
"switcher_kis" = ps: with ps; [ aioswitcher ];
|
||||
"switchmate" = ps: with ps; [ ]; # missing inputs: pySwitchmate
|
||||
"syncthru" = ps: with ps; [ url-normalize ]; # missing inputs: pysyncthru
|
||||
"synology" = ps: with ps; [ ]; # missing inputs: py-synology
|
||||
"synology_chat" = ps: with ps; [ ];
|
||||
"synology_dsm" = ps: with ps; [ ]; # missing inputs: synologydsm-api
|
||||
"synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm
|
||||
|
@ -873,7 +881,7 @@
|
|||
"twinkly" = ps: with ps; [ twinkly-client ];
|
||||
"twitch" = ps: with ps; [ python-twitch-client ];
|
||||
"twitter" = ps: with ps; [ twitterapi ];
|
||||
"ubus" = ps: with ps; [ ];
|
||||
"ubus" = ps: with ps; [ openwrt-ubus-rpc ];
|
||||
"ue_smart_radio" = ps: with ps; [ ];
|
||||
"uk_transport" = ps: with ps; [ ];
|
||||
"unifi" = ps: with ps; [ aiounifi ];
|
||||
|
@ -946,7 +954,6 @@
|
|||
"xbox" = ps: with ps; [ aiohttp-cors ]; # missing inputs: xbox-webapi
|
||||
"xbox_live" = ps: with ps; [ xboxapi ];
|
||||
"xeoma" = ps: with ps; [ pyxeoma ];
|
||||
"xfinity" = ps: with ps; [ ]; # missing inputs: xfinity-gateway
|
||||
"xiaomi" = ps: with ps; [ ha-ffmpeg ];
|
||||
"xiaomi_aqara" = ps: with ps; [ pyxiaomigateway aiohttp-cors netdisco zeroconf ];
|
||||
"xiaomi_miio" = ps: with ps; [ construct python-miio ];
|
||||
|
|
|
@ -61,14 +61,14 @@ let
|
|||
extraBuildInputs = extraPackages py.pkgs;
|
||||
|
||||
# Don't forget to run parse-requirements.py after updating
|
||||
hassVersion = "2021.2.3";
|
||||
hassVersion = "2021.3.2";
|
||||
|
||||
in with py.pkgs; buildPythonApplication rec {
|
||||
pname = "homeassistant";
|
||||
version = assert (componentPackages.version == hassVersion); hassVersion;
|
||||
|
||||
# check REQUIRED_PYTHON_VER in homeassistant/const.py
|
||||
disabled = pythonOlder "3.7.1";
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
# don't try and fail to strip 6600+ python files, it takes minutes!
|
||||
dontStrip = true;
|
||||
|
@ -80,7 +80,7 @@ in with py.pkgs; buildPythonApplication rec {
|
|||
owner = "home-assistant";
|
||||
repo = "core";
|
||||
rev = version;
|
||||
sha256 = "0s1jcd94wwvmvzq86w8s9dwfvnmjs9l661z9pc6kwgagggjjgd8c";
|
||||
sha256 = "09z2sds9my4vq0vmryjpzi7fv787zjfikfkd711d34c140bgcjch";
|
||||
};
|
||||
|
||||
# leave this in, so users don't have to constantly update their downstream patch handling
|
||||
|
@ -88,15 +88,15 @@ in with py.pkgs; buildPythonApplication rec {
|
|||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "aiohttp==3.7.4" "aiohttp>=3.7.3" \
|
||||
--replace "attrs==19.3.0" "attrs>=19.3.0" \
|
||||
--replace "bcrypt==3.1.7" "bcrypt>=3.1.7" \
|
||||
--replace "awesomeversion==21.2.2" "awesomeversion>=21.2.2" \
|
||||
--replace "cryptography==3.2" "cryptography" \
|
||||
--replace "cryptography==3.3.2" "cryptography" \
|
||||
--replace "httpx==0.16.1" "httpx>=0.16.1" \
|
||||
--replace "jinja2>=2.11.3" "jinja2>=2.11.2" \
|
||||
--replace "pip>=8.0.3,<20.3" "pip" \
|
||||
--replace "pytz>=2020.5" "pytz>=2020.4" \
|
||||
--replace "pytz>=2021.1" "pytz>=2020.5" \
|
||||
--replace "pyyaml==5.4.1" "pyyaml" \
|
||||
--replace "requests==2.25.1" "requests>=2.25.0" \
|
||||
--replace "ruamel.yaml==0.15.100" "ruamel.yaml>=0.15.100"
|
||||
substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"'
|
||||
'';
|
||||
|
@ -127,6 +127,8 @@ in with py.pkgs; buildPythonApplication rec {
|
|||
yarl
|
||||
] ++ componentBuildInputs ++ extraBuildInputs;
|
||||
|
||||
makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";
|
||||
|
||||
# upstream only tests on Linux, so do we.
|
||||
doCheck = stdenv.isLinux;
|
||||
|
||||
|
@ -134,78 +136,207 @@ in with py.pkgs; buildPythonApplication rec {
|
|||
# test infrastructure
|
||||
asynctest
|
||||
pytest-aiohttp
|
||||
pytest-rerunfailures
|
||||
pytest-xdist
|
||||
pytestCheckHook
|
||||
requests-mock
|
||||
# component dependencies
|
||||
pyotp
|
||||
respx
|
||||
] ++ lib.concatMap (component: getPackages component py.pkgs) componentTests;
|
||||
|
||||
# We cannot test all components, since they'd introduce lots of dependencies, some of which are unpackaged,
|
||||
# but we should test very common stuff, like what's in `default_config`.
|
||||
# https://github.com/home-assistant/core/commits/dev/homeassistant/components/default_config/manifest.json
|
||||
# We can reasonably test components that don't communicate with any network
|
||||
# services. Before adding new components to this list make sure we have all
|
||||
# its dependencies packaged and listed in ./component-packages.nix.
|
||||
componentTests = [
|
||||
"alert"
|
||||
"api"
|
||||
"auth"
|
||||
"automation"
|
||||
"bayesian"
|
||||
"binary_sensor"
|
||||
"caldav"
|
||||
"calendar"
|
||||
"camera"
|
||||
"climate"
|
||||
"cloud"
|
||||
"command_line"
|
||||
"config"
|
||||
"configurator"
|
||||
"conversation"
|
||||
"counter"
|
||||
"cover"
|
||||
"default_config"
|
||||
"demo"
|
||||
"derivative"
|
||||
"device_automation"
|
||||
"device_sun_light_trigger"
|
||||
"device_tracker"
|
||||
"dhcp"
|
||||
"discovery"
|
||||
"emulated_hue"
|
||||
"esphome"
|
||||
"fan"
|
||||
"faa_delays"
|
||||
"ffmpeg"
|
||||
"file"
|
||||
"filesize"
|
||||
"filter"
|
||||
"flux"
|
||||
"folder"
|
||||
"folder_watcher"
|
||||
"fritzbox"
|
||||
"fritzbox_callmonitor"
|
||||
"frontend"
|
||||
"generic"
|
||||
"generic_thermostat"
|
||||
"geo_json_events"
|
||||
"geo_location"
|
||||
"group"
|
||||
"hddtemp"
|
||||
"history"
|
||||
"history_stats"
|
||||
"homekit_controller"
|
||||
"homeassistant"
|
||||
"html5"
|
||||
"http"
|
||||
"hue"
|
||||
"ifttt"
|
||||
"image"
|
||||
"image_processing"
|
||||
"influxdb"
|
||||
"input_boolean"
|
||||
"input_datetime"
|
||||
"input_text"
|
||||
"input_number"
|
||||
"input_select"
|
||||
"intent"
|
||||
"intent_script"
|
||||
"ipp"
|
||||
"kmtronic"
|
||||
"light"
|
||||
"local_file"
|
||||
"local_ip"
|
||||
"lock"
|
||||
"logbook"
|
||||
"logentries"
|
||||
"logger"
|
||||
"lovelace"
|
||||
"manual"
|
||||
"manual_mqtt"
|
||||
"mazda"
|
||||
"media_player"
|
||||
"media_source"
|
||||
"met"
|
||||
"mobile_app"
|
||||
"modbus"
|
||||
"moon"
|
||||
"mqtt"
|
||||
"mqtt_eventstream"
|
||||
"mqtt_json"
|
||||
"mqtt_room"
|
||||
"mqtt_statestream"
|
||||
"mullvad"
|
||||
"notify"
|
||||
"number"
|
||||
"ozw"
|
||||
"panel_custom"
|
||||
"panel_iframe"
|
||||
"persistent_notification"
|
||||
"person"
|
||||
"plaato"
|
||||
"prometheus"
|
||||
"proximity"
|
||||
"push"
|
||||
"python_script"
|
||||
"random"
|
||||
"recorder"
|
||||
"rest"
|
||||
"rest_command"
|
||||
"rituals_perfume_genie"
|
||||
"rmvtransport"
|
||||
"rss_feed_template"
|
||||
"safe_mode"
|
||||
"scene"
|
||||
"script"
|
||||
"search"
|
||||
"shell_command"
|
||||
"shopping_list"
|
||||
"simulated"
|
||||
"sensor"
|
||||
"smarttub"
|
||||
"smtp"
|
||||
"sql"
|
||||
"ssdp"
|
||||
"stream"
|
||||
"sun"
|
||||
"switch"
|
||||
"system_health"
|
||||
"system_log"
|
||||
"tag"
|
||||
"tasmota"
|
||||
"tcp"
|
||||
"template"
|
||||
"threshold"
|
||||
"time_date"
|
||||
"timer"
|
||||
"tod"
|
||||
"tts"
|
||||
"universal"
|
||||
"updater"
|
||||
"upnp"
|
||||
"uptime"
|
||||
"vacuum"
|
||||
"weather"
|
||||
"webhook"
|
||||
"websocket_api"
|
||||
"wled"
|
||||
"workday"
|
||||
"worldclock"
|
||||
"zeroconf"
|
||||
"zha"
|
||||
"zone"
|
||||
"zwave"
|
||||
];
|
||||
|
||||
pytestFlagsArray = [
|
||||
# limit amout of runners to reduce race conditions
|
||||
"-n 2"
|
||||
"-n auto"
|
||||
# retry racy tests that end in "RuntimeError: Event loop is closed"
|
||||
"--reruns 3"
|
||||
"--only-rerun RuntimeError"
|
||||
# assign tests grouped by file to workers
|
||||
"--dist loadfile"
|
||||
# don't bulk test all components
|
||||
"--ignore tests/components"
|
||||
# pyotp since v2.4.0 complains about the short mock keys, hass pins v2.3.0
|
||||
"--ignore tests/auth/mfa_modules/test_notify.py"
|
||||
# tests are located in tests/
|
||||
"tests"
|
||||
# dynamically add packages required for component tests
|
||||
] ++ map (component: "tests/components/" + component) componentTests;
|
||||
|
||||
disabledTestPaths = [
|
||||
# don't bulk test all components
|
||||
"tests/components"
|
||||
# pyotp since v2.4.0 complains about the short mock keys, hass pins v2.3.0
|
||||
"tests/auth/mfa_modules/test_notify.py"
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# AssertionError: assert 1 == 0
|
||||
"test_error_posted_as_event"
|
||||
"test_merge"
|
||||
# ModuleNotFoundError: No module named 'pyqwikswitch'
|
||||
"test_merge_id_schema"
|
||||
# keyring.errors.NoKeyringError: No recommended backend was available.
|
||||
"test_secrets_from_unrelated_fails"
|
||||
"test_secrets_credstash"
|
||||
# generic/test_camera.py: AssertionError: 500 == 200
|
||||
"test_fetching_without_verify_ssl"
|
||||
"test_fetching_url_with_verify_ssl"
|
||||
] ++ lib.optionals (stdenv.isAarch64) [
|
||||
# tests getting stuck on aarch64
|
||||
# components/stream/test_hls.py
|
||||
"test_stream_ended"
|
||||
# components/stream/test_recorder.py
|
||||
"test_record_stream"
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
|
@ -213,8 +344,6 @@ in with py.pkgs; buildPythonApplication rec {
|
|||
mkdir /build/media
|
||||
'';
|
||||
|
||||
makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";
|
||||
|
||||
passthru = {
|
||||
inherit (py.pkgs) hass-frontend;
|
||||
tests = {
|
||||
|
|
|
@ -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 = "20210127.7";
|
||||
version = "20210302.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-N+n1DI1oZ/j+GydH+Du21zTNA6leW4YBri7cAMvAac4=";
|
||||
sha256 = "sha256-+SKXLOuvMYfNyR++uQMMY4M5deRgm2w3AhMM/DP470k=";
|
||||
};
|
||||
|
||||
# there is nothing to strip in this package
|
||||
|
|
Loading…
Reference in a new issue