1{
2 lib,
3 aiofiles,
4 aiohttp,
5 authcaptureproxy,
6 backoff,
7 beautifulsoup4,
8 buildPythonPackage,
9 certifi,
10 cryptography,
11 fetchFromGitLab,
12 poetry-core,
13 pyotp,
14 pythonOlder,
15 pythonRelaxDepsHook,
16 requests,
17 simplejson,
18 yarl,
19}:
20
21buildPythonPackage rec {
22 pname = "alexapy";
23 version = "1.27.10";
24 pyproject = true;
25
26 disabled = pythonOlder "3.10";
27
28 src = fetchFromGitLab {
29 owner = "keatontaylor";
30 repo = "alexapy";
31 rev = "refs/tags/v${version}";
32 hash = "sha256-eoL7q+p0m3YZd7Ub7U8nE3tQGNA2oQXelvN+H01b0BM=";
33 };
34
35 pythonRelaxDeps = [ "aiofiles" ];
36
37 nativeBuildInputs = [
38 poetry-core
39 pythonRelaxDepsHook
40 ];
41
42 propagatedBuildInputs = [
43 aiofiles
44 aiohttp
45 authcaptureproxy
46 backoff
47 beautifulsoup4
48 certifi
49 cryptography
50 pyotp
51 requests
52 simplejson
53 yarl
54 ];
55
56 pythonImportsCheck = [ "alexapy" ];
57
58 # Module has no tests (only a websocket test which seems unrelated to the module)
59 doCheck = false;
60
61 meta = with lib; {
62 description = "Python Package for controlling Alexa devices (echo dot, etc) programmatically";
63 homepage = "https://gitlab.com/keatontaylor/alexapy";
64 changelog = "https://gitlab.com/keatontaylor/alexapy/-/blob/v${version}/CHANGELOG.md";
65 license = licenses.asl20;
66 maintainers = with maintainers; [ fab ];
67 };
68}