about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/alexapy/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/alexapy/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/alexapy/default.nix81
1 files changed, 81 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/alexapy/default.nix b/nixpkgs/pkgs/development/python-modules/alexapy/default.nix
new file mode 100644
index 000000000000..559e00e3c81c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/alexapy/default.nix
@@ -0,0 +1,81 @@
+{ lib
+, aiofiles
+, aiohttp
+, authcaptureproxy
+, backoff
+, beautifulsoup4
+, buildPythonPackage
+, certifi
+, cryptography
+, fetchFromGitLab
+, fetchpatch
+, poetry-core
+, pyotp
+, pythonOlder
+, pythonRelaxDepsHook
+, requests
+, simplejson
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "alexapy";
+  version = "1.26.8";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitLab {
+    owner = "keatontaylor";
+    repo = "alexapy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-AjtSEqUbJ5e/TZIYMX+pwBSH35tEVrfCA6H/55yrZsk=";
+  };
+
+  patches = [
+    # Switch to poetry-core, https://gitlab.com/keatontaylor/alexapy/-/merge_requests/342
+    (fetchpatch {
+      name = "switch-poetry-core.patch";
+      url = "https://gitlab.com/keatontaylor/alexapy/-/commit/843daec4ba1fb219f1c4f4a6ca01c9af73014e53.patch";
+      hash = "sha256-wlCq0/NJx4Adh/o61FSMWMQU99PZkJ0U2yqxqOfvAa8=";
+    })
+  ];
+
+  pythonRelaxDeps = [
+    "aiofiles"
+  ];
+
+  nativeBuildInputs = [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = [
+    aiofiles
+    aiohttp
+    authcaptureproxy
+    backoff
+    beautifulsoup4
+    certifi
+    cryptography
+    pyotp
+    requests
+    simplejson
+    yarl
+  ];
+
+  pythonImportsCheck = [
+    "alexapy"
+  ];
+
+  # Module has no tests (only a websocket test which seems unrelated to the module)
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python Package for controlling Alexa devices (echo dot, etc) programmatically";
+    homepage = "https://gitlab.com/keatontaylor/alexapy";
+    changelog = "https://gitlab.com/keatontaylor/alexapy/-/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}