Merge pull request #236534 from NixOS/home-assistant

home-assistant: 2023.5.4 -> 2023.6.0
This commit is contained in:
Martin Weinelt 2023-06-08 14:47:11 +02:00 committed by GitHub
commit 93d26ea597
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 187 additions and 105 deletions

View file

@ -62,7 +62,6 @@ in {
frontend = {};
# include some popular integrations, that absolutely shouldn't break
esphome = {};
knx = {};
shelly = {};
zha = {};
@ -198,7 +197,7 @@ in {
with subtest("Check that new components get setup after restart"):
journal = get_journal_since(cursor)
for domain in ["esphome"]:
for domain in ["backup"]:
assert f"Setup of domain {domain} took" in journal, f"{domain} setup missing"
with subtest("Check that no errors were logged"):

View file

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "accuweather";
version = "0.5.2";
version = "1.0.0";
format = "setuptools";
disabled = pythonOlder "3.9";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "bieniu";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-rXA5A80PWn08VPeimJeMNWMGvzaE/gWrRuJseHiDkRg=";
hash = "sha256-CWPhdu0lttYhAS6hzyKPL3vtNRVqbDexxY6nvMya3jA=";
};
propagatedBuildInputs = [

View file

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "aioairzone";
version = "0.5.5";
version = "0.6.3";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "Noltari";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-6PBNwCfh5ryR3Jub3GDykY6lRQt9wdkV8yWkvivuQpM=";
hash = "sha256-grUfhUc8U7d7GgUa8TfvSPYOYr4IW1mZM0tl6I5gUdg=";
};
nativeBuildInputs = [

View file

@ -1,7 +1,6 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, fetchpatch
, httpx
, protobuf
, pytest-asyncio
@ -10,12 +9,13 @@
, pytestCheckHook
, pythonOlder
, setuptools-scm
, syrupy
, zeroconf
}:
buildPythonPackage rec {
pname = "devolo-plc-api";
version = "1.3.0";
version = "1.3.1";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -24,9 +24,14 @@ buildPythonPackage rec {
owner = "2Fake";
repo = "devolo_plc_api";
rev = "refs/tags/v${version}";
hash = "sha256-ika0mypHo7a8GCa2eNhOLIhMZ2ASwJOxV4mmAzvJm0E=";
hash = "sha256-wJyBCQ9rk+UwjWhMIeqsIbMR8cXA9Xu+lmubJoOauEg=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace "protobuf>=4.22.0" "protobuf"
'';
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
@ -44,6 +49,7 @@ buildPythonPackage rec {
pytest-httpx
pytest-mock
pytestCheckHook
syrupy
];
pythonImportsCheck = [

View file

@ -0,0 +1,37 @@
{ lib
, buildPythonPackage
, fetchPypi
, setuptools
}:
buildPythonPackage rec {
pname = "knx-frontend";
version = "2023.5.31.141540";
format = "pyproject";
# TODO: source build, uses yarn.lock
src = fetchPypi {
pname = "knx_frontend";
inherit version;
hash = "sha256-j0p3PUYnKsyuDaN+nMrIHhxLYhNXVkZQkgsp//ZTsXE=";
};
nativeBuildInputs = [
setuptools
];
pythonImportsCheck = [
"knx_frontend"
];
# no tests
doCheck = false;
meta = with lib; {
changelog = "https://github.com/XKNX/knx-frontend/releases/tag/${version}";
description = "Home Assistant Panel for managing the KNX integration";
homepage = "https://github.com/XKNX/knx-frontend";
license = licenses.mit;
maintainers = with maintainers; [ hexa ];
};
}

View file

@ -1,9 +1,8 @@
{ lib
, buildPythonPackage
, pythonAtLeast
, pythonOlder
, fetchFromGitHub
, unittestCheckHook
, pytestCheckHook
}:
buildPythonPackage rec {
@ -23,7 +22,14 @@ buildPythonPackage rec {
substituteInPlace setup.py --replace "license=license" "license='MIT'"
'';
nativeCheckInputs = [ unittestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
];
disabledTests = [
"testSendRadioMsgClosesConnectionOnErrorAndRetriesIfReusingConnection"
"testSendRadioMsgReusesConnection"
];
pythonImportsCheck = [
"maxcube"
@ -31,8 +37,6 @@ buildPythonPackage rec {
];
meta = with lib; {
# Tests indicate lack of 3.11 compatibility
broken = pythonAtLeast "3.11";
description = "eQ-3/ELV MAX! Cube Python API";
homepage = "https://github.com/hackercowboy/python-maxcube-api";
license = licenses.mit;

View file

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "pydeconz";
version = "111";
version = "113";
format = "setuptools";
disabled = pythonOlder "3.9";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "Kane610";
repo = "deconz";
rev = "refs/tags/v${version}";
hash = "sha256-QBun9VT42W9EMvNuLZoe6VnXKXAKEXstDKCU7LXEvNQ=";
hash = "sha256-Vf3nYUopaGY5JK//rqqsz47VRHwql1cQcslYbkH3owQ=";
};
propagatedBuildInputs = [

View file

@ -23,6 +23,12 @@ buildPythonPackage rec {
hash = "sha256-HMJqZn0yzN2dP5WTRCbem1Xw8nyH2Hy7oVP4kEKHHAo=";
};
postPatch = ''
# Upstream doesn't set a version for the tagged releases
substituteInPlace setup.py \
--replace "main" ${version}
'';
propagatedBuildInputs = [
aiohttp
awesomeversion
@ -34,17 +40,16 @@ buildPythonPackage rec {
pytestCheckHook
];
postPatch = ''
# Upstream doesn't set a version for the tagged releases
substituteInPlace setup.py \
--replace "main" ${version}
'';
pythonImportsCheck = [
"pyhaversion"
];
disabledTests = [
# Error fetching version information from HaVersionSource.SUPERVISOR Server disconnected
"test_stable_version"
"test_etag"
];
meta = with lib; {
description = "Python module to the newest version number of Home Assistant";
homepage = "https://github.com/ludeeus/pyhaversion";

View file

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "python-otbr-api";
version = "1.2.0";
version = "2.1.0";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "home-assistant-libs";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-IPglUB+Xla+IjWzHhfG+SDHY/jucg46ppnhHBHKTEiE=";
hash = "sha256-LM09hQ5ELWLCymk8oxHcqTngs4mXg59uY2OrSpizQXo=";
};
nativeBuildInputs = [

View file

@ -1,20 +1,33 @@
{ buildPythonPackage, fetchFromGitHub, lib, pytestCheckHook, pythonOlder, requests }:
{ buildPythonPackage
, fetchFromGitHub
, lib
, pytestCheckHook
, pythonOlder
, requests
}:
buildPythonPackage rec {
buildPythonPackage {
pname = "python-tado";
version = "0.12.0";
version = "0.15.0";
format = "setuptools";
disabled = pythonOlder "3.5";
src = fetchFromGitHub {
owner = "wmalgadey";
repo = "PyTado";
rev = version;
hash = "sha256-n+H6H2ORLizv9cn1P5Cd8wHDWMNonPrs+x+XMQbEzZQ=";
# https://github.com/wmalgadey/PyTado/issues/62
rev = "674dbc450170a380e76460c22d6ba943dfedb8e9";
hash = "sha256-gduqQVw/a64aDzTHFmgZu7OVB53jZb7L5vofzL3Ho6s=";
};
propagatedBuildInputs = [ requests ];
nativeCheckInputs = [ pytestCheckHook ];
propagatedBuildInputs = [
requests
];
nativeCheckInputs = [
pytestCheckHook
];
meta = with lib; {
description =

View file

@ -5,6 +5,7 @@
, fetchFromGitHub
, pytest-asyncio
, pytest-mock
, pythonAtLeast
, pytestCheckHook
, pythonOlder
}:
@ -38,6 +39,11 @@ buildPythonPackage rec {
pytestCheckHook
];
disabledTestPaths = lib.optionals (pythonAtLeast "3.11") [
# unittest.mock.InvalidSpecError: Cannot spec a Mock object.
"tests/test_light.py"
];
pythonImportsCheck = [
"pyzerproc"
];

View file

@ -17,7 +17,7 @@
buildPythonPackage rec {
pname = "rokuecp";
version = "0.17.1";
version = "0.18.0";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "ctalkington";
repo = "python-rokuecp";
rev = "refs/tags/${version}";
hash = "sha256-3GHG4FBGMiF5kNk2gl05xiX9+5tcrUyi4SUCXTa6Qco=";
hash = "sha256-YvJ1+o7/S/QNROedYGsP8m99Dr+WpAkfe5YPEN+2ZhU=";
};
nativeBuildInputs = [

View file

@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "xiaomi-ble";
version = "0.17.1";
version = "0.17.2";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-CioXmv5VJBiJx97k69Sp5kaeD59p+OSL14RVse/gYUA=";
hash = "sha256-2zS34feelJNVarfe8GEZxBNL45IK+Owl6TlBDOTVvSs=";
};
nativeBuildInputs = [

View file

@ -1,5 +1,4 @@
{ lib
, asynctest
, buildPythonPackage
, fetchFromGitHub
, pyserial
@ -31,7 +30,6 @@ buildPythonPackage rec {
];
nativeCheckInputs = [
asynctest
pytest-asyncio
pytestCheckHook
];

View file

@ -1,8 +1,6 @@
{ lib
, asynctest
, buildPythonPackage
, fetchFromGitHub
, fetchpatch
, pyserial
, pyserial-asyncio
, pytest-asyncio
@ -33,7 +31,6 @@ buildPythonPackage rec {
];
nativeCheckInputs = [
asynctest
pytest-asyncio
pytestCheckHook
];

View file

@ -6,8 +6,8 @@
, jsonschema
, pytest-asyncio
, pytest-mock
, pytest-rerunfailures
, pytest-timeout
, pytest-xdist
, pytestCheckHook
, pythonOlder
, voluptuous
@ -44,20 +44,13 @@ buildPythonPackage rec {
nativeCheckInputs = [
pytest-asyncio
pytest-mock
pytest-rerunfailures
pytest-timeout
pytest-xdist
pytestCheckHook
];
disabledTests = [
# https://github.com/zigpy/zigpy-znp/issues/209
"test_join_device"
"test_permit_join"
"test_request_recovery_route_rediscovery_af"
"test_request_recovery_route_rediscovery_zdo"
"test_zigpy_request"
"test_zigpy_request_failure"
"test_mgmt_nwk_update_req"
pytestFlagsArray = [
"--reruns=3"
];
pythonImportsCheck = [

View file

@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "zwave-js-server-python";
version = "0.48.1";
version = "0.49.0";
format = "setuptools";
disabled = pythonOlder "3.9";
@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "home-assistant-libs";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-fkOzt5dFDbteMMuNAxOfdlsT83dB1528gQooTqv4WB8=";
hash = "sha256-6CN2Smwm693RUuRUdqrNKa7j2I3pjmR+QoPfpjti+h8=";
};
propagatedBuildInputs = [

View file

@ -2,7 +2,7 @@
# Do not edit!
{
version = "2023.5.4";
version = "2023.6.0";
components = {
"3_day_blinds" = ps: with ps; [
];
@ -93,6 +93,9 @@
"airzone" = ps: with ps; [
aioairzone
];
"airzone_cloud" = ps: with ps; [
aioairzone-cloud
];
"aladdin_connect" = ps: with ps; [
aioaladdinconnect
];
@ -686,6 +689,10 @@
"datadog" = ps: with ps; [
datadog
];
"date" = ps: with ps; [
];
"datetime" = ps: with ps; [
];
"ddwrt" = ps: with ps; [
];
"debugpy" = ps: with ps; [
@ -902,8 +909,15 @@
"dweet" = ps: with ps; [
]; # missing inputs: dweepy
"dynalite" = ps: with ps; [
aiohttp-cors
dynalite-devices
];
fnv-hash-fast
home-assistant-frontend
janus
pillow
psutil-home-assistant
sqlalchemy
]; # missing inputs: dynalite_panel
"eafm" = ps: with ps; [
aioeafm
];
@ -947,6 +961,8 @@
"eight_sleep" = ps: with ps; [
pyeight
];
"electrasmart" = ps: with ps; [
]; # missing inputs: pyelectra
"elgato" = ps: with ps; [
elgato
];
@ -1395,8 +1411,6 @@
"glances" = ps: with ps; [
glances-api
];
"goalfeed" = ps: with ps; [
]; # missing inputs: pysher
"goalzero" = ps: with ps; [
goalzero
];
@ -1430,6 +1444,11 @@
];
"google_domains" = ps: with ps; [
];
"google_generative_ai_conversation" = ps: with ps; [
aiohttp-cors
hassil
home-assistant-intents
]; # missing inputs: google-generativeai
"google_mail" = ps: with ps; [
aiohttp-cors
fnv-hash-fast
@ -1898,8 +1917,7 @@
zeroconf
];
"iotawatt" = ps: with ps; [
iotawattpy
];
]; # missing inputs: ha-iotawattpy
"iperf3" = ps: with ps; [
]; # missing inputs: iperf3
"ipma" = ps: with ps; [
@ -1945,6 +1963,8 @@
"justnimbus" = ps: with ps; [
justnimbus
];
"jvc_projector" = ps: with ps; [
]; # missing inputs: pyjvcprojector
"kaiterra" = ps: with ps; [
]; # missing inputs: kaiterra-async-client
"kaleidescape" = ps: with ps; [
@ -2034,8 +2054,15 @@
];
"knx" = ps: with ps; [
aiohttp-cors
fnv-hash-fast
home-assistant-frontend
janus
knx-frontend
pillow
psutil-home-assistant
sqlalchemy
xknx
xknxproject
];
"kodi" = ps: with ps; [
aiohttp-cors
@ -2577,8 +2604,6 @@
psutil-home-assistant
sqlalchemy
];
"mycroft" = ps: with ps; [
]; # missing inputs: mycroftapi
"myq" = ps: with ps; [
pymyq
];
@ -2838,7 +2863,7 @@
opensensemap-api
];
"opensky" = ps: with ps; [
];
]; # missing inputs: python-opensky
"opentherm_gw" = ps: with ps; [
pyotgw
];
@ -2991,6 +3016,8 @@
];
"pioneer" = ps: with ps; [
];
"piper" = ps: with ps; [
];
"pjlink" = ps: with ps; [
]; # missing inputs: pypjlink2
"plaato" = ps: with ps; [
@ -3672,8 +3699,6 @@
"smarttub" = ps: with ps; [
python-smarttub
];
"smarty" = ps: with ps; [
]; # missing inputs: pysmarty
"smhi" = ps: with ps; [
smhi-pkg
];
@ -4124,6 +4149,8 @@
webrtcvad
zeroconf
];
"time" = ps: with ps; [
];
"time_date" = ps: with ps; [
];
"timer" = ps: with ps; [
@ -4417,9 +4444,6 @@
];
"watson_iot" = ps: with ps; [
]; # missing inputs: ibmiotf
"watson_tts" = ps: with ps; [
ibm-watson
];
"watttime" = ps: with ps; [
aiowatttime
];
@ -4446,6 +4470,8 @@
"whirlpool" = ps: with ps; [
whirlpool-sixth-sense
];
"whisper" = ps: with ps; [
];
"whois" = ps: with ps; [
whois
];
@ -4557,6 +4583,8 @@
];
"xs1" = ps: with ps; [
]; # missing inputs: xs1-api-client
"yale_home" = ps: with ps; [
];
"yale_smart_alarm" = ps: with ps; [
yalesmartalarmclient
];
@ -4629,6 +4657,13 @@
"youless" = ps: with ps; [
youless-api
];
"youtube" = ps: with ps; [
aiohttp-cors
fnv-hash-fast
google-api-python-client
psutil-home-assistant
sqlalchemy
];
"zabbix" = ps: with ps; [
py-zabbix
];
@ -4723,6 +4758,7 @@
"airvisual"
"airvisual_pro"
"airzone"
"airzone_cloud"
"aladdin_connect"
"alarm_control_panel"
"alarmdecoder"
@ -4809,6 +4845,8 @@
"crownstone"
"daikin"
"datadog"
"date"
"datetime"
"debugpy"
"deconz"
"default_config"
@ -4838,7 +4876,7 @@
"dte_energy_bridge"
"duckdns"
"dunehd"
"dynalite"
"dwd_weather_warnings"
"eafm"
"easyenergy"
"ecobee"
@ -5001,7 +5039,6 @@
"intent"
"intent_script"
"ios"
"iotawatt"
"ipma"
"ipp"
"iqvia"
@ -5337,6 +5374,7 @@
"tibber"
"tile"
"tilt_ble"
"time"
"time_date"
"timer"
"tod"
@ -5433,6 +5471,7 @@
"yeelight"
"yolink"
"youless"
"youtube"
"zamg"
"zeroconf"
"zerproc"

View file

@ -3,7 +3,7 @@
, callPackage
, fetchFromGitHub
, fetchPypi
, python3
, python311
, substituteAll
, ffmpeg-headless
, inetutils
@ -183,16 +183,6 @@ let
};
});
python-roborock = super.python-roborock.overridePythonAttrs (oldAttrs: rec {
version = "0.8.3";
src = fetchFromGitHub {
owner = "humbertogontijo";
repo = "python-roborock";
rev = "refs/tags/v${version}";
hash = "sha256-O7MjxCQ4JwFFC2ibdU8hCPhFPQhV5/LsmDO6vRdyYL0=";
};
});
python-slugify = super.python-slugify.overridePythonAttrs (oldAttrs: rec {
pname = "python-slugify";
version = "4.0.1";
@ -261,17 +251,6 @@ let
};
});
# Pinned due to API changes in 0.4.0
vilfo-api-client = super.vilfo-api-client.overridePythonAttrs (oldAttrs: rec {
version = "0.3.3";
src = fetchFromGitHub {
owner = "ManneW";
repo = "vilfo-api-client-python";
rev = "v${version}";
sha256 = "1gy5gpsg99rcm1cc3m30232za00r9i46sp74zpd12p3vzz1wyyqf";
};
});
# Pinned due to API changes ~1.0
vultr = super.vultr.overridePythonAttrs (oldAttrs: rec {
version = "0.1.2";
@ -299,7 +278,7 @@ let
})
];
python = python3.override {
python = python311.override {
packageOverrides = lib.composeManyExtensions (defaultOverrides ++ [ packageOverrides ]);
};
@ -317,7 +296,7 @@ let
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run parse-requirements.py after updating
hassVersion = "2023.5.4";
hassVersion = "2023.6.0";
in python.pkgs.buildPythonApplication rec {
pname = "homeassistant";
@ -333,7 +312,7 @@ in python.pkgs.buildPythonApplication rec {
# Primary source is the pypi sdist, because it contains translations
src = fetchPypi {
inherit pname version;
hash = "sha256-mRiRKMafRkgAOshH/5i6yj379FEzZgXhkdkK557sMaQ=";
hash = "sha256-dEszA95EIwGMR2Ztpe7P8weh4FbqGJBkso7nCvTkPDc=";
};
# Secondary source is git for tests
@ -341,10 +320,10 @@ in python.pkgs.buildPythonApplication rec {
owner = "home-assistant";
repo = "core";
rev = "refs/tags/${version}";
hash = "sha256-r28BhC6lBIoxu7Wp/1h+qgPEDaUCqH4snyKk/h/vgyQ=";
hash = "sha256-0rhjh/mIevRdisWvTSx9QQjHdY7nMVpuGyTr9sChipk=";
};
nativeBuildInputs = with python3.pkgs; [
nativeBuildInputs = with python.pkgs; [
setuptools
];
@ -500,7 +479,7 @@ in python.pkgs.buildPythonApplication rec {
getPackages
python
supportedComponentsWithTests;
pythonPath = python3.pkgs.makePythonPath (componentBuildInputs ++ extraBuildInputs);
pythonPath = python.pkgs.makePythonPath (componentBuildInputs ++ extraBuildInputs);
frontend = python.pkgs.home-assistant-frontend;
intents = python.pkgs.home-assistant-intents;
tests = {

View file

@ -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 = "20230503.3";
version = "20230607.0";
format = "wheel";
src = fetchPypi {
@ -12,7 +12,7 @@ buildPythonPackage rec {
pname = "home_assistant_frontend";
dist = "py3";
python = "py3";
hash = "sha256-BOSXRpHgHUygrbd7LaGHFj5aM+Bfp5VkB791tJ5jCwU=";
hash = "sha256-O3hAF3QgZHm6q+manxlqWZLlSDxHMr86B3GdwMClxEk=";
};
# there is nothing to strip in this package

View file

@ -19,7 +19,7 @@
buildPythonPackage rec {
pname = "home-assistant-intents";
version = "2023.4.26";
version = "2023.6.5";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -28,11 +28,16 @@ buildPythonPackage rec {
owner = "home-assistant";
repo = "intents";
rev = "refs/tags/${version}";
hash = "sha256-l22+scT/4qIU5qWlWURr5wVEBoWNXGqYEaS3IVwG1Zs=";
hash = "sha256-ZfPOxTFPQNdZ3Tq8p410RHlLGej+FOqhafD+91MRbRo=";
};
sourceRoot = "source/package";
postPatch = ''
substituteInPlace pyproject.toml \
--replace "2023.4.26" "${version}"
'';
nativeBuildInputs = [
hassil
jinja2

View file

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "homeassistant-stubs";
version = "2023.5.4";
version = "2023.6.0";
format = "pyproject";
disabled = python.version != home-assistant.python.version;
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "KapJI";
repo = "homeassistant-stubs";
rev = "refs/tags/${version}";
hash = "sha256-2vexK+b+Zy1hvOgjOnsyUMxn2zdu6Gr3Sdk6XqEQRH4=";
hash = "sha256-efwrTHWc4m4biP7b39OU1GRifoKm49hEUTtIfrNGUeA=";
};
nativeBuildInputs = [

View file

@ -87,7 +87,6 @@ in lib.listToAttrs (map (component: lib.nameValuePair component (
dontUsePytestXdist = true;
pytestFlagsArray = lib.remove "tests" old.pytestFlagsArray
++ [ "--numprocesses=2" ]
++ extraPytestFlagsArray.${component} or [ ]
++ [ "tests/components/${component}" ];

View file

@ -5490,6 +5490,8 @@ self: super: with self; {
kneed = callPackage ../development/python-modules/kneed { };
knx-frontend = callPackage ../development/python-modules/knx-frontend { };
kombu = callPackage ../development/python-modules/kombu { };
konnected = callPackage ../development/python-modules/konnected { };