1{
2 aiohttp,
3 aioresponses,
4 buildPythonPackage,
5 fetchFromGitHub,
6 lib,
7 mashumaro,
8 orjson,
9 poetry-core,
10 pytest-asyncio,
11 pytest-cov-stub,
12 pytestCheckHook,
13 yarl,
14}:
15
16buildPythonPackage rec {
17 pname = "python-melcloud";
18 version = "0.1.2";
19 pyproject = true;
20
21 src = fetchFromGitHub {
22 owner = "erwindouna";
23 repo = "python-melcloud";
24 tag = version;
25 hash = "sha256-ccc6mIYWZEBENbmkbAZ0cFXJFhFNBjXoU/VDe+ETgoQ=";
26 };
27
28 postPatch = ''
29 substituteInPlace pyproject.toml \
30 --replace-fail "poetry-core>=1.5,<2.0" poetry-core
31 '';
32
33 build-system = [ poetry-core ];
34
35 pythonRemoveDeps = [
36 "aioresponses"
37 "mashumaro"
38 "orjson"
39 "yarl"
40 ];
41
42 dependencies = [
43 aiohttp
44 ];
45
46 pythonImportsCheck = [ "pymelcloud" ];
47
48 nativeCheckInputs = [
49 pytest-asyncio
50 pytest-cov-stub
51 pytestCheckHook
52 ];
53
54 meta = {
55 changelog = "https://github.com/erwindouna/python-melcloud/blob/${src.tag}/CHANGELOG.md";
56 description = "Asynchronous Python client for controlling Melcloud devices";
57 homepage = "https://github.com/erwindouna/python-melcloud";
58 license = lib.licenses.mit;
59 maintainers = with lib.maintainers; [ dotlambda ];
60 };
61}