1{
2 lib,
3 aiohttp,
4 buildPythonPackage,
5 fetchFromGitHub,
6 mashumaro,
7 pytestCheckHook,
8 pyyaml,
9 requests,
10 setuptools,
11}:
12
13buildPythonPackage rec {
14 pname = "pyvesync";
15 version = "3.0.0";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "webdjoe";
20 repo = "pyvesync";
21 tag = version;
22 hash = "sha256-P5zIdc+lUmiBfibRiWIcwyoKqjw8F7XBj85Nwvawreo=";
23 };
24
25 build-system = [ setuptools ];
26
27 dependencies = [
28 aiohttp
29 mashumaro
30 ]
31 ++ mashumaro.optional-dependencies.orjson;
32
33 nativeCheckInputs = [
34 pytestCheckHook
35 pyyaml
36 requests
37 ];
38
39 pythonImportsCheck = [ "pyvesync" ];
40
41 meta = with lib; {
42 description = "Python library to manage Etekcity Devices and Levoit Air Purifier";
43 homepage = "https://github.com/webdjoe/pyvesync";
44 changelog = "https://github.com/webdjoe/pyvesync/releases/tag/${src.tag}";
45 license = licenses.mit;
46 maintainers = with maintainers; [ fab ];
47 };
48}