1{
2 lib,
3 aiohttp,
4 aresponses,
5 buildPythonPackage,
6 certifi,
7 fetchFromGitHub,
8 poetry-core,
9 pytest-aiohttp,
10 pytest-asyncio,
11 pytestCheckHook,
12 python-engineio,
13 python-socketio,
14 pythonOlder,
15 websockets,
16 yarl,
17}:
18
19buildPythonPackage rec {
20 pname = "aioambient";
21 version = "2025.02.0";
22 pyproject = true;
23
24 disabled = pythonOlder "3.11";
25
26 src = fetchFromGitHub {
27 owner = "bachya";
28 repo = "aioambient";
29 tag = version;
30 hash = "sha256-F1c2S0c/CWHeCd24Zc8ib3aPR7yj9gCPBJpmpgoddQY=";
31 };
32
33 postPatch = ''
34 substituteInPlace pyproject.toml \
35 --replace-fail poetry-core==2.0.1 poetry-core
36 '';
37
38 build-system = [ poetry-core ];
39
40 dependencies = [
41 aiohttp
42 certifi
43 python-engineio
44 python-socketio
45 websockets
46 yarl
47 ];
48
49 __darwinAllowLocalNetworking = true;
50
51 nativeCheckInputs = [
52 aresponses
53 pytest-aiohttp
54 pytest-asyncio
55 pytestCheckHook
56 ];
57
58 # Ignore the examples directory as the files are prefixed with test_
59 disabledTestPaths = [ "examples/" ];
60
61 pythonImportsCheck = [ "aioambient" ];
62
63 meta = with lib; {
64 description = "Python library for the Ambient Weather API";
65 homepage = "https://github.com/bachya/aioambient";
66 changelog = "https://github.com/bachya/aioambient/releases/tag/${version}";
67 license = licenses.mit;
68 maintainers = with maintainers; [ fab ];
69 };
70}