summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2018-03-05 07:22:08 +0800
committerGitHub <noreply@github.com>2018-03-05 07:22:08 +0800
commit0b8401c4aa755a8f9c957685df4dc9b260ca6a4d (patch)
treec2d670bcb8cd800c4a30cb4ca29234450664172e /pkgs
parentdb277c22161d64a229bfff9ae0b0984c5480d87d (diff)
parent15f63cb1146aca662c26b188ea732fc033be69a5 (diff)
downloadnixlib-0b8401c4aa755a8f9c957685df4dc9b260ca6a4d.tar
nixlib-0b8401c4aa755a8f9c957685df4dc9b260ca6a4d.tar.gz
nixlib-0b8401c4aa755a8f9c957685df4dc9b260ca6a4d.tar.bz2
nixlib-0b8401c4aa755a8f9c957685df4dc9b260ca6a4d.tar.lz
nixlib-0b8401c4aa755a8f9c957685df4dc9b260ca6a4d.tar.xz
nixlib-0b8401c4aa755a8f9c957685df4dc9b260ca6a4d.tar.zst
nixlib-0b8401c4aa755a8f9c957685df4dc9b260ca6a4d.zip
Merge pull request #36108 from peterhoeg/p/ha-deps
home-assistant: add multiple dependencies
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/python-modules/aiohttp-jinja2/default.nix26
-rw-r--r--pkgs/development/python-modules/deluge-client/default.nix21
-rw-r--r--pkgs/development/python-modules/ha-ffmpeg/default.nix28
-rw-r--r--pkgs/development/python-modules/miniupnpc/default.nix18
-rw-r--r--pkgs/development/python-modules/sseclient/default.nix24
-rw-r--r--pkgs/development/python-modules/yahooweather/default.nix23
-rw-r--r--pkgs/servers/home-assistant/appdaemon.nix62
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix12
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/python-packages.nix25
10 files changed, 221 insertions, 20 deletions
diff --git a/pkgs/development/python-modules/aiohttp-jinja2/default.nix b/pkgs/development/python-modules/aiohttp-jinja2/default.nix
new file mode 100644
index 000000000000..7b3bd6bbcc52
--- /dev/null
+++ b/pkgs/development/python-modules/aiohttp-jinja2/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, buildPythonPackage, fetchPypi, aiohttp, jinja2, pytest, pytest-aiohttp }:
+
+buildPythonPackage rec {
+  pname = "aiohttp-jinja2";
+  version = "0.16.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ps182yrc5g9ph55927a7ssqx6m9kx0bivfxpaj8sa3znrdkl94d";
+  };
+
+  propagatedBuildInputs = [ aiohttp jinja2 ];
+
+  checkInputs = [ pytest pytest-aiohttp ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with lib; {
+    description = "Jinja2 support for aiohttp";
+    homepage = https://github.com/aio-libs/aiohttp_jinja2;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/development/python-modules/deluge-client/default.nix b/pkgs/development/python-modules/deluge-client/default.nix
new file mode 100644
index 000000000000..838cc8463872
--- /dev/null
+++ b/pkgs/development/python-modules/deluge-client/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "deluge-client";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "048zfidv08sr4hivdd3xxf1pywhqbnszj5qcn51h2f4y1588fhpf";
+  };
+
+  # it will try to connect to a running instance
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Lightweight pure-python rpc client for deluge";
+    homepage = https://github.com/JohnDoee/deluge-client;
+    license = licenses.mit;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/development/python-modules/ha-ffmpeg/default.nix b/pkgs/development/python-modules/ha-ffmpeg/default.nix
new file mode 100644
index 000000000000..4259b7ad0537
--- /dev/null
+++ b/pkgs/development/python-modules/ha-ffmpeg/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+, ffmpeg, async-timeout }:
+
+buildPythonPackage rec {
+  pname = "ha-ffmpeg";
+  version = "1.9";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0644j5fqw8p6li6nrnm1rw7nhvsixq1c7gik3f1yx50776yg05i8";
+  };
+
+  buildInputs = [ ffmpeg ];
+
+  propagatedBuildInputs = [ async-timeout ];
+
+  # only manual tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/pvizeli/ha-ffmpeg;
+    description = "Library for home-assistant to handle ffmpeg";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/development/python-modules/miniupnpc/default.nix b/pkgs/development/python-modules/miniupnpc/default.nix
new file mode 100644
index 000000000000..d267cb6a9762
--- /dev/null
+++ b/pkgs/development/python-modules/miniupnpc/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "miniupnpc";
+  version = "2.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ca94zz7sr2x57j218aypxqcwkr23n8js30f3yrvvqbg929nr93y";
+  };
+
+  meta = with stdenv.lib; {
+    description = "miniUPnP client";
+    homepage = http://miniupnp.free.fr/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/development/python-modules/sseclient/default.nix b/pkgs/development/python-modules/sseclient/default.nix
new file mode 100644
index 000000000000..9ac04e18e4f6
--- /dev/null
+++ b/pkgs/development/python-modules/sseclient/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, requests, six
+, backports_unittest-mock, pluggy, pytest, pytestrunner }:
+
+buildPythonPackage rec {
+  pname = "sseclient";
+  version = "0.0.19";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7a2ea3f4c8525ae9a677bc8193df5db88e23bcaafcc34938a1ee665975703a9f";
+  };
+
+  propagatedBuildInputs = [ requests six ];
+
+  checkInputs = [ backports_unittest-mock pytest pytestrunner ];
+
+  meta = with stdenv.lib; {
+    description = "Client library for reading Server Sent Event streams";
+    homepage = https://github.com/btubbs/sseclient;
+    license = licenses.mit;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/development/python-modules/yahooweather/default.nix b/pkgs/development/python-modules/yahooweather/default.nix
new file mode 100644
index 000000000000..38c060aa8e84
--- /dev/null
+++ b/pkgs/development/python-modules/yahooweather/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+
+buildPythonPackage rec {
+  pname = "yahooweather";
+  version = "0.10";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0bsxmngkpzvqm50i2cnxjzhpbdhb8s10ly8h5q08696cjihqdkpa";
+  };
+
+  # Tests require network access
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Provide an interface to the Yahoo! Weather RSS feed";
+    homepage = https://github.com/pvizeli/yahooweather;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/servers/home-assistant/appdaemon.nix b/pkgs/servers/home-assistant/appdaemon.nix
new file mode 100644
index 000000000000..db6380bcf128
--- /dev/null
+++ b/pkgs/servers/home-assistant/appdaemon.nix
@@ -0,0 +1,62 @@
+{ lib, python3, fetchpatch }:
+
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+
+      aiohttp = super.aiohttp.overridePythonAttrs (oldAttrs: rec {
+        version = "2.3.10";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "8adda6583ba438a4c70693374e10b60168663ffa6564c5c75d3c7a9055290964";
+        };
+      });
+
+      yarl = super.yarl.overridePythonAttrs (oldAttrs: rec {
+        version = "1.1.0";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "6af895b45bd49254cc309ac0fe6e1595636a024953d710e01114257736184698";
+        };
+      });
+
+      aiohttp-jinja2 = super.aiohttp-jinja2.overridePythonAttrs (oldAttrs: rec {
+        version = "0.15.0";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "0f390693f46173d8ffb95669acbb0e2a3ec54ecce676703510ad47f1a6d9dc83";
+        };
+      });
+
+    };
+  };
+
+in python.pkgs.buildPythonApplication rec {
+  pname = "appdaemon";
+  version = "3.0.0b4";
+
+  src = python.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "0dfc37ecd8e1344001d4970d32813c581aba1385cf3b82c69f8b7df2eca6c019";
+  };
+
+  patches = fetchpatch {
+    url = "${meta.homepage}/pull/252.patch";
+    sha256 = "164qvgdibd2645yxm4n16bhnan13wrchfi70jp2ff806fwdg9mg0";
+  };
+
+  propagatedBuildInputs = with python.pkgs; [
+    aiohttp aiohttp-jinja2 astral bcrypt daemonize feedparser iso8601
+    jinja2 pyyaml requests sseclient voluptuous websocket_client yarl
+  ];
+
+  # no tests implemented
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Sandboxed python execution environment for writing automation apps for Home Assistant";
+    homepage = https://github.com/home-assistant/appdaemon;
+    license = licenses.mit;
+    maintainers = with maintainers; [ peterhoeg dotlambda ];
+  };
+}
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 2b031f33555d..5961831b254e 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -95,7 +95,7 @@
     "envisalink" = ps: with ps; [  ];
     "fan.xiaomi_miio" = ps: with ps; [  ];
     "feedreader" = ps: with ps; [ feedparser ];
-    "ffmpeg" = ps: with ps; [  ];
+    "ffmpeg" = ps: with ps; [ ha-ffmpeg ];
     "frontend" = ps: with ps; [ user-agents ];
     "gc100" = ps: with ps; [  ];
     "goalfeed" = ps: with ps; [  ];
@@ -272,7 +272,7 @@
     "sensor.crimereports" = ps: with ps; [  ];
     "sensor.cups" = ps: with ps; [  ];
     "sensor.darksky" = ps: with ps; [  ];
-    "sensor.deluge" = ps: with ps; [  ];
+    "sensor.deluge" = ps: with ps; [ deluge-client ];
     "sensor.deutsche_bahn" = ps: with ps; [  ];
     "sensor.dht" = ps: with ps; [  ];
     "sensor.discogs" = ps: with ps; [ discogs_client ];
@@ -365,7 +365,7 @@
     "sensor.xbox_live" = ps: with ps; [  ];
     "sensor.yahoo_finance" = ps: with ps; [  ];
     "sensor.yr" = ps: with ps; [ xmltodict ];
-    "sensor.yweather" = ps: with ps; [  ];
+    "sensor.yweather" = ps: with ps; [ yahooweather ];
     "shiftr" = ps: with ps; [ paho-mqtt ];
     "skybell" = ps: with ps; [  ];
     "sleepiq" = ps: with ps; [  ];
@@ -374,7 +374,7 @@
     "switch.acer_projector" = ps: with ps; [ pyserial ];
     "switch.anel_pwrctrl" = ps: with ps; [  ];
     "switch.broadlink" = ps: with ps; [  ];
-    "switch.deluge" = ps: with ps; [  ];
+    "switch.deluge" = ps: with ps; [ deluge-client ];
     "switch.digitalloggers" = ps: with ps; [  ];
     "switch.dlink" = ps: with ps; [  ];
     "switch.edimax" = ps: with ps; [  ];
@@ -409,7 +409,7 @@
     "tts.microsoft" = ps: with ps; [  ];
     "twilio" = ps: with ps; [ twilio ];
     "updater" = ps: with ps; [ distro ];
-    "upnp" = ps: with ps; [  ];
+    "upnp" = ps: with ps; [ miniupnpc ];
     "usps" = ps: with ps; [  ];
     "vacuum.roomba" = ps: with ps; [  ];
     "vacuum.xiaomi_miio" = ps: with ps; [  ];
@@ -425,7 +425,7 @@
     "weather.darksky" = ps: with ps; [  ];
     "weather.metoffice" = ps: with ps; [  ];
     "weather.openweathermap" = ps: with ps; [  ];
-    "weather.yweather" = ps: with ps; [  ];
+    "weather.yweather" = ps: with ps; [ yahooweather ];
     "wemo" = ps: with ps; [  ];
     "wink" = ps: with ps; [  ];
     "xiaomi_aqara" = ps: with ps; [  ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ab1b4218bb71..c9b4fcdf4123 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12058,6 +12058,8 @@ with pkgs;
   apacheHttpdPackages = apacheHttpdPackagesFor pkgs.apacheHttpd pkgs.apacheHttpdPackages;
   apacheHttpdPackages_2_4 = apacheHttpdPackagesFor pkgs.apacheHttpd_2_4 pkgs.apacheHttpdPackages_2_4;
 
+  appdaemon = callPackage ../servers/home-assistant/appdaemon.nix { };
+
   archiveopteryx = callPackage ../servers/mail/archiveopteryx/default.nix { };
 
   atlassian-confluence = callPackage ../servers/atlassian/confluence.nix { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index edb7f0c62a79..4092628fe0e6 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -241,6 +241,8 @@ in {
     hdf5 = pkgs.hdf5-mpi;
   };
 
+  ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
+
   habanero = callPackage ../development/python-modules/habanero { };
 
   i3ipc = callPackage ../development/python-modules/i3ipc { };
@@ -430,6 +432,8 @@ in {
 
   aiohttp-cors = callPackage ../development/python-modules/aiohttp/cors.nix { };
 
+  aiohttp-jinja2 = callPackage ../development/python-modules/aiohttp-jinja2 { };
+
   alabaster = callPackage ../development/python-modules/alabaster {};
 
   alembic = callPackage ../development/python-modules/alembic {};
@@ -622,23 +626,10 @@ in {
     gui = false;
   };
 
+  deluge-client = callPackage ../development/python-modules/deluge-client { };
 
   arrow = callPackage ../development/python-modules/arrow { };
 
-  async = buildPythonPackage rec {
-    name = "async-0.6.1";
-    disabled = isPy3k;
-    meta.maintainers = with maintainers; [ ];
-
-    buildInputs = with self; [ pkgs.zlib ];
-    doCheck = false;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/async/${name}.tar.gz";
-      sha256 = "1lfmjm8apy9qpnpbq8g641fd01qxh9jlya5g2d6z60vf8p04rla1";
-    };
-  };
-
   asynctest = callPackage ../development/python-modules/asynctest { };
 
   async-timeout = callPackage ../development/python-modules/async_timeout { };
@@ -2832,6 +2823,8 @@ in {
     };
   };
 
+  miniupnpc = callPackage ../development/python-modules/miniupnpc {};
+
   mixpanel = buildPythonPackage rec {
     version = "4.0.2";
     name = "mixpanel-${version}";
@@ -20922,10 +20915,14 @@ EOF
 
   thinc = callPackage ../development/python-modules/thinc { };
 
+  yahooweather = callPackage ../development/python-modules/yahooweather { };
+
   spacy = callPackage ../development/python-modules/spacy { };
 
   spacy_models = callPackage ../development/python-modules/spacy/models.nix { };
 
+  sseclient = callPackage ../development/python-modules/sseclient { };
+
   textacy = callPackage ../development/python-modules/textacy { };
 
   pyemd  = callPackage ../development/python-modules/pyemd { };