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}