1{ 2 lib, 3 aiohttp, 4 buildPythonPackage, 5 fetchFromGitHub, 6 httpx, 7 pytest-aiohttp, 8 pytest-mock, 9 pytestCheckHook, 10 pythonOlder, 11 requests, 12 setuptools-scm, 13 setuptools, 14 websockets, 15}: 16 17buildPythonPackage rec { 18 pname = "homematicip"; 19 version = "2.3.0"; 20 pyproject = true; 21 22 disabled = pythonOlder "3.12"; 23 24 src = fetchFromGitHub { 25 owner = "hahn-th"; 26 repo = "homematicip-rest-api"; 27 tag = version; 28 hash = "sha256-yH9Yis6NyKD+mSjaff0S9J6UtoVceML06ny50/6aG/0="; 29 }; 30 31 build-system = [ 32 setuptools 33 setuptools-scm 34 ]; 35 36 dependencies = [ 37 aiohttp 38 httpx 39 requests 40 websockets 41 ]; 42 43 nativeCheckInputs = [ 44 pytest-aiohttp 45 pytest-mock 46 pytestCheckHook 47 ]; 48 49 pytestFlags = [ "--asyncio-mode=auto" ]; 50 51 disabledTests = [ 52 # Assert issues with datetime 53 "test_contact_interface_device" 54 "test_dimmer" 55 "test_external_device" 56 "test_heating_failure_alert_group" 57 "test_heating" 58 "test_humidity_warning_rule_group" 59 "test_meta_group" 60 "test_pluggable_switch_measuring" 61 "test_rotary_handle_sensor" 62 "test_security_group" 63 "test_security_zone" 64 "test_shutter_device" 65 "test_smoke_detector" 66 "test_switching_group" 67 "test_temperature_humidity_sensor_outdoor" 68 "test_wall_mounted_thermostat_pro" 69 "test_weather_sensor" 70 # Random failures 71 "test_home_getSecurityJournal" 72 "test_home_unknown_types" 73 # Requires network access 74 "test_websocket" 75 ]; 76 77 pythonImportsCheck = [ "homematicip" ]; 78 79 meta = with lib; { 80 description = "Module for the homematicIP REST API"; 81 homepage = "https://github.com/hahn-th/homematicip-rest-api"; 82 changelog = "https://github.com/hahn-th/homematicip-rest-api/releases/tag/${src.tag}"; 83 license = licenses.gpl3Plus; 84 maintainers = with maintainers; [ fab ]; 85 }; 86}