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