1{
2 lib,
3 aiohttp,
4 aresponses,
5 buildPythonPackage,
6 certifi,
7 fetchFromGitHub,
8 poetry-core,
9 pydantic,
10 pytest-aiohttp,
11 pytest-asyncio,
12 pytestCheckHook,
13 pythonOlder,
14}:
15
16buildPythonPackage rec {
17 pname = "aiopurpleair";
18 version = "2025.08.1";
19 pyproject = true;
20
21 disabled = pythonOlder "3.9";
22
23 src = fetchFromGitHub {
24 owner = "bachya";
25 repo = "aiopurpleair";
26 tag = version;
27 hash = "sha256-VmKIIgfZFk9z8WORDHA4ibL4FZchiRrT6L0rCkxosoc=";
28 };
29
30 build-system = [ poetry-core ];
31
32 dependencies = [
33 aiohttp
34 pydantic
35 certifi
36 ];
37
38 __darwinAllowLocalNetworking = true;
39
40 nativeCheckInputs = [
41 aresponses
42 pytest-aiohttp
43 pytest-asyncio
44 pytestCheckHook
45 ];
46
47 disabledTestPaths = [
48 # Ignore the examples directory as the files are prefixed with test_.
49 "examples/"
50 ];
51
52 pythonImportsCheck = [ "aiopurpleair" ];
53
54 meta = with lib; {
55 description = "Python library for interacting with the PurpleAir API";
56 homepage = "https://github.com/bachya/aiopurpleair";
57 changelog = "https://github.com/bachya/aiopurpleair/releases/tag/${src.tag}";
58 license = licenses.mit;
59 maintainers = with maintainers; [ fab ];
60 };
61}