diff --git a/pkgs/development/python-modules/solaredge-local/default.nix b/pkgs/development/python-modules/solaredge-local/default.nix new file mode 100644 index 000000000000..b778482ae5ad --- /dev/null +++ b/pkgs/development/python-modules/solaredge-local/default.nix @@ -0,0 +1,39 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + setuptools, + uplink, + uplink-protobuf, +}: + +buildPythonPackage rec { + pname = "solaredge-local"; + version = "0.2.3"; + pyproject = true; + + src = fetchPypi { + pname = "solaredge_local"; + inherit version; + hash = "sha256-tGUr4zlMdyJqRyFAs7INiH5rJYPmu7qoaImg4dzW5rk="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + uplink + uplink-protobuf + ]; + + # Package has no tests + doCheck = false; + + pythonImportsCheck = [ "solaredge_local" ]; + + meta = { + description = "API wrapper to communicate locally with SolarEdge Inverters"; + homepage = "https://github.com/drobtravels/solaredge-local"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.jamiemagee ]; + }; +} diff --git a/pkgs/development/python-modules/uplink-protobuf/default.nix b/pkgs/development/python-modules/uplink-protobuf/default.nix new file mode 100644 index 000000000000..1bf054a94386 --- /dev/null +++ b/pkgs/development/python-modules/uplink-protobuf/default.nix @@ -0,0 +1,45 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + uplink, + protobuf, + pytestCheckHook, + pytest-mock, +}: + +buildPythonPackage rec { + pname = "uplink-protobuf"; + version = "0.1.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "prkumar"; + repo = "uplink-protobuf"; + tag = "v${version}"; + hash = "sha256-HeA5bGmYSysidhz8YbST0uTqZ9BKFYQENrWuhcUZ7qY="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + uplink + protobuf + ]; + + nativeCheckInputs = [ + pytestCheckHook + pytest-mock + ]; + + pythonImportsCheck = [ "uplink_protobuf" ]; + + meta = { + description = "Protocol Buffers (Protobuf) support for Uplink"; + homepage = "https://github.com/prkumar/uplink-protobuf"; + changelog = "https://github.com/prkumar/uplink-protobuf/releases/tag/${src.tag}"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.jamiemagee ]; + }; +} diff --git a/pkgs/development/python-modules/uplink/default.nix b/pkgs/development/python-modules/uplink/default.nix new file mode 100644 index 000000000000..4020d8e0b9d5 --- /dev/null +++ b/pkgs/development/python-modules/uplink/default.nix @@ -0,0 +1,64 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + hatchling, + requests, + six, + uritemplate, + pytestCheckHook, + pytest-mock, + aiohttp, + marshmallow, + pydantic, + pytest-asyncio, + pytest-twisted, + twisted, + pythonOlder, +}: + +buildPythonPackage rec { + pname = "uplink"; + version = "0.10.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "prkumar"; + repo = "uplink"; + tag = "v${version}"; + hash = "sha256-gI7oHLyC6a5s3jhgG5jj+7q495seMSyUV4XVAp1URTA="; + }; + + build-system = [ hatchling ]; + + dependencies = [ + requests + six + uritemplate + ]; + + optional-dependencies = { + aiohttp = [ aiohttp ]; + marshmallow = [ marshmallow ]; + pydantic = [ pydantic ]; + twisted = [ twisted ]; + }; + + nativeCheckInputs = [ + pytestCheckHook + pytest-mock + pytest-asyncio + pytest-twisted + ] + ++ lib.flatten (lib.attrValues optional-dependencies); + + pythonImportsCheck = [ "uplink" ]; + + meta = { + description = "Declarative HTTP client for Python"; + homepage = "https://github.com/prkumar/uplink"; + changelog = "https://github.com/prkumar/uplink/releases/tag/${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 d6731d9505f9..693c0572297b 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -5550,7 +5550,8 @@ ]; "solaredge_local" = ps: with ps; [ - ]; # missing inputs: solaredge-local + solaredge-local + ]; "solarlog" = ps: with ps; [ solarlog-cli diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9ebff811a85c..0429260e530b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -16922,6 +16922,8 @@ self: super: with self; { softlayer = callPackage ../development/python-modules/softlayer { }; + solaredge-local = callPackage ../development/python-modules/solaredge-local { }; + solarlog-cli = callPackage ../development/python-modules/solarlog-cli { }; solax = callPackage ../development/python-modules/solax { }; @@ -19333,6 +19335,10 @@ self: super: with self; { uplc = callPackage ../development/python-modules/uplc { }; + uplink = callPackage ../development/python-modules/uplink { }; + + uplink-protobuf = callPackage ../development/python-modules/uplink-protobuf { }; + upnpy = callPackage ../development/python-modules/upnpy { }; uproot = callPackage ../development/python-modules/uproot { };