diff --git a/pkgs/development/python-modules/pycasperglow/default.nix b/pkgs/development/python-modules/pycasperglow/default.nix new file mode 100644 index 000000000000..ddc0ca637937 --- /dev/null +++ b/pkgs/development/python-modules/pycasperglow/default.nix @@ -0,0 +1,45 @@ +{ + lib, + bleak, + bleak-retry-connector, + buildPythonPackage, + fetchFromGitHub, + pytest-asyncio, + pytestCheckHook, + setuptools, +}: + +buildPythonPackage (finalAttrs: { + pname = "pycasperglow"; + version = "1.2.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "mikeodr"; + repo = "pycasperglow"; + tag = "v${finalAttrs.version}"; + hash = "sha256-sLjEo8GSGBtx0GDAHQZad5ePQAwzChdmBE5TU+ebuFI="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + bleak + bleak-retry-connector + ]; + + nativeCheckInputs = [ + pytest-asyncio + pytestCheckHook + ]; + + pythonImportsCheck = [ "pycasperglow" ]; + + meta = { + description = "Async Python library for controlling Casper Glow lights via BLE"; + homepage = "https://github.com/mikeodr/pycasperglow"; + changelog = "https://github.com/mikeodr/pycasperglow/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.jamiemagee ]; + }; +}) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 46466ac38b74..d6e6f1db85f1 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -908,11 +908,12 @@ home-assistant-intents ifaddr mutagen + pycasperglow pymicro-vad pyspeex-noise serialx zeroconf - ]; # missing inputs: pycasperglow + ]; "cast" = ps: with ps; [ aiohasupervisor @@ -7565,6 +7566,7 @@ "cambridge_audio" "camera" "canary" + "casper_glow" "cast" "ccm15" "cert_expiry" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 84c4a5375876..dcbc1af01ac1 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13518,6 +13518,8 @@ self: super: with self; { pycasbin = callPackage ../development/python-modules/pycasbin { }; + pycasperglow = callPackage ../development/python-modules/pycasperglow { }; + pycatch22 = callPackage ../development/python-modules/pycatch22 { }; pycayennelpp = callPackage ../development/python-modules/pycayennelpp { };