1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 setuptools,
8 setuptools-scm,
9
10 # dependencies
11 httpx,
12 pycryptodome,
13
14 # tests
15 pytestCheckHook,
16}:
17
18buildPythonPackage rec {
19 pname = "msmart-ng";
20 version = "2025.5.1";
21 pyproject = true;
22
23 src = fetchFromGitHub {
24 owner = "mill1000";
25 repo = "midea-msmart";
26 tag = version;
27 hash = "sha256-dZD93ZZiQLmWuMAR/nnYB7oGBBYr4YPEi+LdpSzweVc=";
28 };
29
30 build-system = [
31 setuptools
32 setuptools-scm
33 ];
34
35 dependencies = [
36 httpx
37 pycryptodome
38 ];
39
40 nativeCheckInputs = [ pytestCheckHook ];
41
42 disabledTestPaths = [
43 # network access
44 "msmart/tests/test_cloud.py"
45 ];
46
47 pythonImportsCheck = [ "msmart" ];
48
49 meta = with lib; {
50 changelog = "https://github.com/mill1000/midea-msmart/releases/tag/${src.tag}";
51 description = "Python library for local control of Midea (and associated brands) smart air conditioners";
52 homepage = "https://github.com/mill1000/midea-msmart";
53 license = licenses.mit;
54 mainProgram = "msmart-ng";
55 maintainers = with maintainers; [
56 hexa
57 emilylange
58 ];
59 };
60}