diff --git a/pkgs/development/python-modules/aiopvpc/default.nix b/pkgs/development/python-modules/aiopvpc/default.nix new file mode 100644 index 000000000000..489ca5d6f6fb --- /dev/null +++ b/pkgs/development/python-modules/aiopvpc/default.nix @@ -0,0 +1,66 @@ +{ lib +, aiohttp +, async-timeout +, buildPythonPackage +, fetchFromGitHub +, fetchpatch +, poetry-core +, pytest-asyncio +, pytest-timeout +, pytestCheckHook +, pythonOlder +, pytz +}: + +buildPythonPackage rec { + pname = "aiopvpc"; + version = "2.0.2"; + disabled = pythonOlder "3.7"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "azogue"; + repo = pname; + rev = "v${version}"; + sha256 = "1ajs4kbdlfn4h7f3d6lwkp4yl1rl7zyvj997nhsz93jjwxbajkpv"; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + aiohttp + pytz + async-timeout + ]; + + checkInputs = [ + pytest-asyncio + pytest-timeout + pytestCheckHook + ]; + + patches = [ + # Switch to poetry-core, https://github.com/azogue/aiopvpc/pull/10 + (fetchpatch { + name = "use-peotry-core.patch"; + url = "https://github.com/azogue/aiopvpc/commit/4bc2740ffd485a60acf579b4f3eb5ee6a353245c.patch"; + sha256 = "0ynj7pqq3akdvdrvqcwnnslay3mn1q92qhk8fg95ppflzscixli6"; + }) + ]; + + postPatch = '' + substituteInPlace pytest.ini --replace \ + " --cov --cov-report term --cov-report html" "" + ''; + + pythonImportsCheck = [ "aiopvpc" ]; + + meta = with lib; { + description = "Python module to download Spanish electricity hourly prices (PVPC)"; + homepage = "https://github.com/azogue/aiopvpc"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index cdd00d07d868..ffc18f585039 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -660,7 +660,7 @@ "pushover" = ps: with ps; [ pushover-complete ]; "pushsafer" = ps: with ps; [ ]; "pvoutput" = ps: with ps; [ jsonpath xmltodict ]; - "pvpc_hourly_pricing" = ps: with ps; [ ]; # missing inputs: aiopvpc + "pvpc_hourly_pricing" = ps: with ps; [ aiopvpc ]; "pyload" = ps: with ps; [ ]; "python_script" = ps: with ps; [ restrictedpython ]; "qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index f61040ae939b..e1f05a38c156 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -321,6 +321,7 @@ in with py.pkgs; buildPythonApplication rec { "prometheus" "proximity" "push" + "pvpc_hourly_pricing" "python_script" "random" "recorder" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a40e14cf358d..6656e8b8cacc 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -315,6 +315,8 @@ in { aiopulse = callPackage ../development/python-modules/aiopulse { }; + aiopvpc = callPackage ../development/python-modules/aiopvpc { }; + aiopylgtv = callPackage ../development/python-modules/aiopylgtv { }; aiorecollect = callPackage ../development/python-modules/aiorecollect { };