{ lib, buildPythonPackage, fetchFromGitHub, fetchNpmDeps, # build-system setuptools, nodejs, npmHooks, }: buildPythonPackage rec { pname = "esphome-dashboard"; version = "20250814.0"; pyproject = true; src = fetchFromGitHub { owner = "esphome"; repo = "dashboard"; rev = "refs/tags/${version}"; hash = "sha256-WQsyv3s3LKKOwYEkX5GcAPnbH061q1ts7TU4HU6I8CI="; }; npmDeps = fetchNpmDeps { inherit src; hash = "sha256-ShuJPS7qP2XZ3lwJrFeKRkQwX7tvyiC/0L7sGn0cMn8="; }; build-system = [ setuptools ]; nativeBuildInputs = [ nodejs npmHooks.npmConfigHook ]; postPatch = '' # https://github.com/esphome/dashboard/pull/639 patchShebangs script/build ''; preBuild = '' script/build ''; # no tests doCheck = false; pythonImportsCheck = [ "esphome_dashboard" ]; meta = with lib; { description = "ESPHome dashboard"; homepage = "https://esphome.io/"; license = with licenses; [ asl20 ]; maintainers = with maintainers; [ hexa ]; }; }