summary refs log tree commit diff
diff options
context:
space:
mode:
authorFabian Affolter <fabian@affolter-engineering.ch>2021-06-18 09:22:52 +0200
committerGitHub <noreply@github.com>2021-06-18 09:22:52 +0200
commitc67ec6ddeafbb77b7c7da5f9cb759203a114dca4 (patch)
tree0c6c024a11fffa5525b1bc081c14bdd1a1fad5c6
parenteea216fede56d1410a9f416afd4829216d9bed9f (diff)
parentbe2b5534e20faaef3fe5dc95542fd276db0cbe81 (diff)
downloadnixpkgs-c67ec6ddeafbb77b7c7da5f9cb759203a114dca4.tar
nixpkgs-c67ec6ddeafbb77b7c7da5f9cb759203a114dca4.tar.gz
nixpkgs-c67ec6ddeafbb77b7c7da5f9cb759203a114dca4.tar.bz2
nixpkgs-c67ec6ddeafbb77b7c7da5f9cb759203a114dca4.tar.lz
nixpkgs-c67ec6ddeafbb77b7c7da5f9cb759203a114dca4.tar.xz
nixpkgs-c67ec6ddeafbb77b7c7da5f9cb759203a114dca4.tar.zst
nixpkgs-c67ec6ddeafbb77b7c7da5f9cb759203a114dca4.zip
Merge pull request #127281 from dotlambda/eebrightbox-init
home-assistant: support ee_brightbox component
-rw-r--r--pkgs/development/python-modules/calmjs-parse/default.nix49
-rw-r--r--pkgs/development/python-modules/eebrightbox/default.nix58
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix2
-rw-r--r--pkgs/servers/home-assistant/default.nix14
-rw-r--r--pkgs/top-level/python-packages.nix4
5 files changed, 126 insertions, 1 deletions
diff --git a/pkgs/development/python-modules/calmjs-parse/default.nix b/pkgs/development/python-modules/calmjs-parse/default.nix
new file mode 100644
index 00000000000..33cf052a442
--- /dev/null
+++ b/pkgs/development/python-modules/calmjs-parse/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, ply
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "calmjs-parse";
+  version = "1.2.5";
+
+  src = fetchFromGitHub {
+    owner = "calmjs";
+    repo = "calmjs.parse";
+    rev = version;
+    sha256 = "0ypfbas33k1706p6w1bf9gnrv38z8fa4qci1iaks80dp58g8sv4r";
+  };
+
+  propagatedBuildInputs = [
+    setuptools
+    ply
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    ${python.interpreter} -m unittest calmjs.parse.tests.make_suite
+
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [
+    "calmjs.parse"
+    "calmjs.parse.asttypes"
+    "calmjs.parse.parsers"
+    "calmjs.parse.rules"
+    "calmjs.parse.sourcemap"
+    "calmjs.parse.unparsers.es5"
+    "calmjs.parse.walkers"
+  ];
+
+  meta = with lib; {
+    description = "Various parsers for ECMA standards";
+    homepage = "https://github.com/calmjs/calmjs.parse";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/eebrightbox/default.nix b/pkgs/development/python-modules/eebrightbox/default.nix
new file mode 100644
index 00000000000..d8050b9bf5e
--- /dev/null
+++ b/pkgs/development/python-modules/eebrightbox/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pbr
+, calmjs-parse
+, certifi
+, chardet
+, idna
+, ply
+, requests
+, urllib3
+, httpretty
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "eebrightbox";
+  version = "0.0.6";
+
+  src = fetchFromGitHub {
+    owner = "krygal";
+    repo = "eebrightbox";
+    rev = version;
+    sha256 = "1kms240g01871qbvyc5rzf86yxsrlnfvp323jh4k35fpf45z44rr";
+  };
+
+  postPatch = ''
+    substituteInPlace requirements.txt --replace "==" ">="
+  '';
+
+  nativeBuildInputs = [
+    pbr
+  ];
+
+  PBR_VERSION = version;
+
+  propagatedBuildInputs = [
+    calmjs-parse
+    certifi
+    chardet
+    idna
+    ply
+    requests
+    urllib3
+  ];
+
+  checkInputs = [
+    httpretty
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Connector for EE BrightBox routers";
+    homepage = "https://github.com/krygal/eebrightbox";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 95a7ef3c606..00ae505cbfb 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -209,7 +209,7 @@
     "eddystone_temperature" = ps: with ps; [ construct ]; # missing inputs: beacontools[scan]
     "edimax" = ps: with ps; [ pyedimax ];
     "edl21" = ps: with ps; [ ]; # missing inputs: pysml
-    "ee_brightbox" = ps: with ps; [ ]; # missing inputs: eebrightbox
+    "ee_brightbox" = ps: with ps; [ eebrightbox ];
     "efergy" = ps: with ps; [ ];
     "egardia" = ps: with ps; [ pythonegardia ];
     "eight_sleep" = ps: with ps; [ pyeight ];
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 004a65daee9..c17fe16dbf8 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -134,6 +134,19 @@ let
       });
     })
 
+    # Pinned due to API changes in eebrightbox>=0.0.5
+    (self: super: {
+      eebrightbox = super.eebrightbox.overridePythonAttrs (oldAttrs: rec {
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "krygal";
+          repo = "eebrightbox";
+          rev = version;
+          sha256 = "0d8mmpwgrd7gymw5263r1v2wjv6dx6w6pq13d62fkfm4h2hya4a4";
+        };
+      });
+    })
+
     # home-assistant-frontend does not exist in python3.pkgs
     (self: super: {
       home-assistant-frontend = self.callPackage ./frontend.nix { };
@@ -352,6 +365,7 @@ in with py.pkgs; buildPythonApplication rec {
     "eafm"
     "ecobee"
     "econet"
+    "ee_brightbox"
     "efergy"
     "emonitor"
     "emulated_hue"
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 49b5d629e9a..c52c1b8ad03 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1277,6 +1277,8 @@ in {
 
   caldav = callPackage ../development/python-modules/caldav { };
 
+  calmjs-parse = callPackage ../development/python-modules/calmjs-parse { };
+
   can = callPackage ../development/python-modules/can { };
 
   canmatrix = callPackage ../development/python-modules/canmatrix { };
@@ -2229,6 +2231,8 @@ in {
 
   edward = callPackage ../development/python-modules/edward { };
 
+  eebrightbox = callPackage ../development/python-modules/eebrightbox { };
+
   effect = callPackage ../development/python-modules/effect { };
 
   eggdeps = callPackage ../development/python-modules/eggdeps { };