diff --git a/pkgs/development/python-modules/dsmr-parser/default.nix b/pkgs/development/python-modules/dsmr-parser/default.nix new file mode 100644 index 00000000000..155927368ee --- /dev/null +++ b/pkgs/development/python-modules/dsmr-parser/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pyserial +, pyserial-asyncio +, pytestCheckHook +, pytz +, tailer +}: + +buildPythonPackage rec { + pname = "dsmr-parser"; + version = "0.29"; + + src = fetchFromGitHub { + owner = "ndokter"; + repo = "dsmr_parser"; + rev = "v${version}"; + sha256 = "11d6cwmabzc8p6jkqwj72nrj7p6cxbvr0x3jdrxyx6zki8chyw4p"; + }; + + propagatedBuildInputs = [ + pyserial + pyserial-asyncio + pytz + tailer + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "dsmr_parser" ]; + + meta = with lib; { + description = "Python module to parse Dutch Smart Meter Requirements (DSMR)"; + homepage = "https://github.com/ndokter/dsmr_parser"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/tailer/default.nix b/pkgs/development/python-modules/tailer/default.nix new file mode 100644 index 00000000000..b8e19b7d97d --- /dev/null +++ b/pkgs/development/python-modules/tailer/default.nix @@ -0,0 +1,32 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, python +}: + +buildPythonPackage rec { + pname = "tailer"; + version = "0.4.1"; + + src = fetchFromGitHub { + owner = "six8"; + repo = "pytailer"; + rev = version; + sha256 = "1s5p5m3q9k7r1m0wx5wcxf20xzs0rj14qwg1ydwhf6adr17y2w5y"; + }; + + checkPhase = '' + runHook preCheck + ${python.interpreter} -m doctest -v src/tailer/__init__.py + runHook postCheck + ''; + + pythonImportsCheck = [ "tailer" ]; + + meta = with lib; { + description = "Python implementation implementation of GNU tail and head"; + homepage = "https://github.com/six8/pytailer"; + 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 b71be6be6dd..4d86e743d15 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -187,7 +187,7 @@ "doorbird" = ps: with ps; [ aiohttp-cors ]; # missing inputs: doorbirdpy "dovado" = ps: with ps; [ ]; # missing inputs: dovado "downloader" = ps: with ps; [ ]; - "dsmr" = ps: with ps; [ ]; # missing inputs: dsmr_parser + "dsmr" = ps: with ps; [ dsmr-parser ]; "dsmr_reader" = ps: with ps; [ aiohttp-cors paho-mqtt ]; "dte_energy_bridge" = ps: with ps; [ ]; "dublin_bus_transport" = ps: with ps; [ ]; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index f3d312cd3f5..ea9a7f5d150 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -228,6 +228,7 @@ in with py.pkgs; buildPythonApplication rec { "devolo_home_control" "dhcp" "discovery" + "dsmr" "econet" "emulated_hue" "esphome" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5f7de470d2b..52597041382 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2109,6 +2109,8 @@ in { ds4drv = callPackage ../development/python-modules/ds4drv { }; + dsmr-parser = callPackage ../development/python-modules/dsmr-parser { }; + dtopt = callPackage ../development/python-modules/dtopt { }; duckdb = callPackage ../development/python-modules/duckdb { @@ -8288,6 +8290,8 @@ in { tahoma-api = callPackage ../development/python-modules/tahoma-api { }; + tailer = callPackage ../development/python-modules/tailer { }; + tarman = callPackage ../development/python-modules/tarman { }; tasklib = callPackage ../development/python-modules/tasklib { };