{ lib, buildPythonPackage, fetchFromGitHub, setuptools, aiohttp, ciso8601, async-timeout, kasa-crypt, orjson, pythonOlder, requests, websocket-client, websockets, }: buildPythonPackage rec { pname = "sense-energy"; version = "0.12.4"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "scottbonline"; repo = "sense"; rev = "refs/tags/${version}"; hash = "sha256-jHYXqlRV1JR95GtO9E6oYj69Jj8TsvLANcI1kl7/Gl4="; }; postPatch = '' substituteInPlace setup.py \ --replace-fail "{{VERSION_PLACEHOLDER}}" "${version}" ''; nativeBuildInputs = [ setuptools ]; propagatedBuildInputs = [ aiohttp async-timeout kasa-crypt orjson ciso8601 requests websocket-client websockets ]; # no tests implemented doCheck = false; pythonImportsCheck = [ "sense_energy" ]; meta = with lib; { description = "API for the Sense Energy Monitor"; homepage = "https://github.com/scottbonline/sense"; changelog = "https://github.com/scottbonline/sense/releases/tag/${version}"; license = licenses.mit; maintainers = with maintainers; [ dotlambda ]; }; }