diff --git a/pkgs/development/python-modules/home-assistant-datasets/default.nix b/pkgs/development/python-modules/home-assistant-datasets/default.nix new file mode 100644 index 000000000000..256262b4fc22 --- /dev/null +++ b/pkgs/development/python-modules/home-assistant-datasets/default.nix @@ -0,0 +1,66 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + google-generativeai, + hass-client, + jinja2, + mashumaro, + openai, + pyrate-limiter, + pytestCheckHook, + python-slugify, + pyyaml, + setuptools-scm, + setuptools, + synthetic-home, + syrupy, +}: + +buildPythonPackage (finalAttrs: { + pname = "home-assistant-datasets"; + version = "0.3.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "allenporter"; + repo = "home-assistant-datasets"; + tag = finalAttrs.version; + hash = "sha256-csvjbPtsl7/olJAFmiLES9GH7wAZHxOADTpqbcQbM3s="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + google-generativeai + hass-client + mashumaro + openai + pyrate-limiter + pyyaml + synthetic-home + ]; + + nativeCheckInputs = [ + jinja2 + pytestCheckHook + python-slugify + syrupy + ]; + + pythonImportsCheck = [ "home_assistant_datasets" ]; + + # Tests want to import Home Assistant as a module + doCheck = false; + + meta = { + description = "Collection of datasets for evaluating AI Models in the context of Home Assistant"; + homepage = "https://github.com/allenporter/home-assistant-datasets"; + changelog = "https://github.com/allenporter/home-assistant-datasets/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/development/python-modules/synthetic-home/default.nix b/pkgs/development/python-modules/synthetic-home/default.nix new file mode 100644 index 000000000000..6c974e90bdd7 --- /dev/null +++ b/pkgs/development/python-modules/synthetic-home/default.nix @@ -0,0 +1,55 @@ +{ + lib, + aiohttp, + buildPythonPackage, + fetchFromGitHub, + mashumaro, + pytest-asyncio, + pytestCheckHook, + python-slugify, + pyyaml, + setuptools, + syrupy, +}: + +buildPythonPackage (finalAttrs: { + pname = "synthetic-home"; + version = "5.0.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "allenporter"; + repo = "synthetic-home"; + tag = finalAttrs.version; + hash = "sha256-u5suLTK7Cdp6IKVxnmiw8p+xQiXV5nfc6QUvpqCyxTk="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + aiohttp + mashumaro + ]; + + nativeCheckInputs = [ + pytest-asyncio + pytestCheckHook + python-slugify + pyyaml + syrupy + ]; + + pythonImportsCheck = [ "synthetic_home" ]; + + preCheck = '' + export PATH="$PATH:$out/bin"; + ''; + + meta = { + description = "Library for managing synthetic home device registry"; + homepage = "https://github.com/allenporter/synthetic-home"; + changelog = "https://github.com/allenporter/synthetic-home/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 87f315ef871e..a9dd0eda53f7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7108,6 +7108,8 @@ self: super: with self; { callPackage ../development/python-modules/home-assistant-chip-wheels { } ); + home-assistant-datasets = callPackage ../development/python-modules/home-assistant-datasets { }; + home-connect-async = callPackage ../development/python-modules/home-connect-async { }; homeassistant-stubs = callPackage ../servers/home-assistant/stubs.nix { }; @@ -18906,6 +18908,8 @@ self: super: with self; { synology-srm = callPackage ../development/python-modules/synology-srm { }; + synthetic-home = callPackage ../development/python-modules/synthetic-home { }; + syrupy = callPackage ../development/python-modules/syrupy { }; syslog-rfc5424-formatter = callPackage ../development/python-modules/syslog-rfc5424-formatter { };