feat(hass): grocy custom component

This commit is contained in:
arcnmx 2024-05-22 09:39:12 -07:00
parent cc58ac96e5
commit c3cb52066c
3 changed files with 68 additions and 0 deletions

View file

@ -42,6 +42,7 @@ in {
// {
default = elem "androidtv" cfg.extraComponents;
};
grocy.enable = mkEnableOption "Grocy custom component";
brother.enable =
mkEnableOption "brother"
// {
@ -251,6 +252,9 @@ in {
adb-shell
androidtvremote2
])
(mkIf cfg.grocy.enable [
(python3Packages.callPackage ../../packages/grocy/pygrocy.nix { })
])
];
extraComponents = mkMerge [
[

View file

@ -114,6 +114,7 @@ in {
prometheus = {};
wake_on_lan = {};
};
grocy.enable = true;
extraComponents = [
"zha"
"esphome"

View file

@ -0,0 +1,63 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, backports-zoneinfo
, deprecation
, pydantic
, requests
, responses
, pre-commit
, isort
, vcrpy
, pytest
, pytest-recording
, pytest-mock
, pythonOlder
# requires an instance of grocy api running...
, doCheckGrocy ? false
}: let
inherit (lib.lists) optional optionals;
inherit (lib.strings) optionalString;
in buildPythonPackage rec {
pname = "pygrocy";
version = "2.1.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "SebRut";
repo = "pygrocy";
rev = "v${version}";
hash = "sha256-ijwcdWMeBnYPhrNYt/IxucPvzc+0InudLxJSMVwulNw=";
};
postPatch = optionalString (!doCheckGrocy) ''
rm test/test_grocy.py
'';
propagatedBuildInputs = [
requests
deprecation
pydantic
] ++ optional (pythonOlder "3.9") backports-zoneinfo;
pythonImportsCheck = [
"pygrocy"
];
checkInputs = [
pytest
pytest-recording
pytest-mock
] ++ optionals doCheckGrocy [
responses
pre-commit
isort
vcrpy
];
meta = {
homepage = "https://github.com/SebRut/pygrocy";
license = lib.licenses.mit;
broken = pythonOlder "3.8";
};
}