1{
2 lib,
3 acme,
4 aiohttp,
5 atomicwrites-homeassistant,
6 attrs,
7 buildPythonPackage,
8 ciso8601,
9 cryptography,
10 fetchFromGitHub,
11 pycognito,
12 pyjwt,
13 pytest-aiohttp,
14 pytest-timeout,
15 pytestCheckHook,
16 pythonOlder,
17 setuptools,
18 snitun,
19 syrupy,
20 webrtc-models,
21 xmltodict,
22}:
23
24buildPythonPackage rec {
25 pname = "hass-nabucasa";
26 version = "0.106.0";
27 pyproject = true;
28
29 disabled = pythonOlder "3.13";
30
31 src = fetchFromGitHub {
32 owner = "nabucasa";
33 repo = "hass-nabucasa";
34 tag = version;
35 hash = "sha256-GrdtZGAaDZWVsKatiWxp9uSNSLjnzM0Cw+26IHm1KN0=";
36 };
37
38 build-system = [ setuptools ];
39
40 pythonRelaxDeps = [
41 "acme"
42 "josepy"
43 ];
44
45 dependencies = [
46 acme
47 aiohttp
48 atomicwrites-homeassistant
49 attrs
50 ciso8601
51 cryptography
52 pycognito
53 pyjwt
54 snitun
55 webrtc-models
56 ];
57
58 nativeCheckInputs = [
59 pytest-aiohttp
60 pytest-timeout
61 pytestCheckHook
62 syrupy
63 xmltodict
64 ];
65
66 disabledTests = [
67 # mock time 10800s (3h) vs 43200s (12h)
68 "test_subscription_reconnection_handler_renews_and_starts"
69 ];
70
71 pythonImportsCheck = [ "hass_nabucasa" ];
72
73 meta = with lib; {
74 description = "Python module for the Home Assistant cloud integration";
75 homepage = "https://github.com/NabuCasa/hass-nabucasa";
76 changelog = "https://github.com/NabuCasa/hass-nabucasa/releases/tag/${src.tag}";
77 license = licenses.gpl3Only;
78 maintainers = with maintainers; [ Scriptkiddi ];
79 };
80}