1{
2 lib,
3 buildPythonPackage,
4 dlms-cosem,
5 fetchFromGitHub,
6 pyserial,
7 pyserial-asyncio,
8 pytestCheckHook,
9 pythonAtLeast,
10 pythonOlder,
11 pytz,
12 tailer,
13}:
14
15buildPythonPackage rec {
16 pname = "dsmr-parser";
17 version = "1.4.0";
18 format = "setuptools";
19
20 disabled = pythonOlder "3.8";
21
22 src = fetchFromGitHub {
23 owner = "ndokter";
24 repo = "dsmr_parser";
25 rev = "refs/tags/v${version}";
26 hash = "sha256-4L7hLDd/hYYdhnkcPRK48FnHutbyDXpnhQoVXUQLoDo=";
27 };
28
29 propagatedBuildInputs = [
30 dlms-cosem
31 pyserial
32 pyserial-asyncio
33 pytz
34 tailer
35 ];
36
37 nativeCheckInputs = [ pytestCheckHook ];
38
39 disabledTests = lib.optionals (pythonAtLeast "3.12") [ "test_receive_packet" ];
40
41 pythonImportsCheck = [ "dsmr_parser" ];
42
43 meta = with lib; {
44 description = "Python module to parse Dutch Smart Meter Requirements (DSMR)";
45 mainProgram = "dsmr_console";
46 homepage = "https://github.com/ndokter/dsmr_parser";
47 changelog = "https://github.com/ndokter/dsmr_parser/releases/tag/v${version}";
48 license = with licenses; [ mit ];
49 maintainers = with maintainers; [ fab ];
50 };
51}