diff --git a/pkgs/development/python-modules/ha-garmin/default.nix b/pkgs/development/python-modules/ha-garmin/default.nix new file mode 100644 index 000000000000..a445591e5dc3 --- /dev/null +++ b/pkgs/development/python-modules/ha-garmin/default.nix @@ -0,0 +1,52 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + curl-cffi, + pydantic, + pytest-asyncio, + pytestCheckHook, + requests, +}: + +buildPythonPackage (finalAttrs: { + pname = "ha-garmin"; + version = "0.1.19"; + pyproject = true; + + src = fetchFromGitHub { + owner = "cyberjunky"; + repo = "ha-garmin"; + tag = "v${finalAttrs.version}"; + hash = "sha256-vzr32vuAVafdx64Fmv257gS2a+ZbfwZNwwuF5NPQbS0="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + curl-cffi + pydantic + requests + ]; + + nativeCheckInputs = [ + pytest-asyncio + pytestCheckHook + ]; + + disabledTests = [ + # Upstream test relies on a field not present in the test fixture + "test_fetch_core_data_sleep_fields" + ]; + + pythonImportsCheck = [ "ha_garmin" ]; + + meta = { + description = "Python client for Garmin Connect API, designed for Home Assistant integration"; + homepage = "https://github.com/cyberjunky/ha-garmin"; + changelog = "https://github.com/cyberjunky/ha-garmin/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.jamiemagee ]; + }; +}) diff --git a/pkgs/servers/home-assistant/custom-components/garmin_connect/package.nix b/pkgs/servers/home-assistant/custom-components/garmin_connect/package.nix index cb06ea0f4ff4..76aede544d9f 100644 --- a/pkgs/servers/home-assistant/custom-components/garmin_connect/package.nix +++ b/pkgs/servers/home-assistant/custom-components/garmin_connect/package.nix @@ -2,25 +2,23 @@ lib, buildHomeAssistantComponent, fetchFromGitHub, - garminconnect, - tzlocal, + ha-garmin, }: buildHomeAssistantComponent rec { owner = "cyberjunky"; domain = "garmin_connect"; - version = "0.2.38"; + version = "3.0.5"; src = fetchFromGitHub { owner = "cyberjunky"; repo = "home-assistant-garmin_connect"; tag = version; - hash = "sha256-Df/ecgePR10LIeaGy0kmIWqiP9G7j+KscL/YA3VsARE="; + hash = "sha256-omHgfkrje5xR9gLnQpAz33+LtXm5eGJ8nERYBX4F2sY="; }; dependencies = [ - garminconnect - tzlocal + ha-garmin ]; meta = { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 75ecf2659151..40fa449d95c9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6909,6 +6909,8 @@ self: super: with self; { ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { }; + ha-garmin = callPackage ../development/python-modules/ha-garmin { }; + ha-iotawattpy = callPackage ../development/python-modules/ha-iotawattpy { }; ha-mqtt-discoverable = callPackage ../development/python-modules/ha-mqtt-discoverable { };