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