1{ lib 2, buildPythonPackage 3, dotmap 4, fetchFromGitHub 5, pexpect 6, protobuf 7, pygatt 8, pypubsub 9, pyqrcode 10, pyserial 11, pytestCheckHook 12, pythonOlder 13, pyyaml 14, tabulate 15, pytap2 16, timeago 17}: 18 19buildPythonPackage rec { 20 pname = "meshtastic"; 21 version = "2.0.3"; 22 format = "setuptools"; 23 24 disabled = pythonOlder "3.7"; 25 26 src = fetchFromGitHub { 27 owner = "meshtastic"; 28 repo = "Meshtastic-python"; 29 rev = "refs/tags/${version}"; 30 hash = "sha256-h8OuDmm9I8lElhAGSpPx8sPUTY+EnFp2VXOYrYjiYNk="; 31 }; 32 33 propagatedBuildInputs = [ 34 dotmap 35 pexpect 36 protobuf 37 pygatt 38 pypubsub 39 pyqrcode 40 pyserial 41 pyyaml 42 tabulate 43 timeago 44 ]; 45 46 passthru.optional-dependencies = { 47 tunnel = [ 48 pytap2 49 ]; 50 }; 51 52 checkInputs = [ 53 pytap2 54 pytestCheckHook 55 ]; 56 57 preCheck = '' 58 export PATH="$PATH:$out/bin"; 59 ''; 60 61 pythonImportsCheck = [ 62 "meshtastic" 63 ]; 64 65 disabledTests = [ 66 # AttributeError: 'HardwareMessage'... 67 "test_handleFromRadio_with_my_info" 68 "test_handleFromRadio_with_node_info" 69 "test_main_ch_longsfast_on_non_primary_channel" 70 "test_main_ch_set_name_with_ch_index" 71 "test_main_configure_with_camel_case_keys" 72 "test_main_configure_with_snake_case" 73 "test_main_export_config_called_from_main" 74 "test_main_export_config_use_camel" 75 "test_main_export_config" 76 "test_main_get_with_invalid" 77 "test_main_get_with_valid_values_camel" 78 "test_main_getPref_invalid_field_camel" 79 "test_main_getPref_invalid_field" 80 "test_main_getPref_valid_field_bool_camel" 81 "test_main_getPref_valid_field_bool" 82 "test_main_getPref_valid_field_camel" 83 "test_main_getPref_valid_field_string_camel" 84 "test_main_getPref_valid_field_string" 85 "test_main_getPref_valid_field" 86 "test_main_set_invalid_wifi_passwd" 87 "test_main_set_valid_camel_case" 88 "test_main_set_valid_wifi_passwd" 89 "test_main_set_valid" 90 "test_main_set_with_invalid" 91 "test_main_setPref_ignore_incoming_0" 92 "test_main_setPref_ignore_incoming_123" 93 "test_main_setPref_invalid_field_camel" 94 "test_main_setPref_invalid_field" 95 "test_main_setPref_valid_field_int_as_string" 96 "test_readGPIOs" 97 "test_setURL_empty_url" 98 "test_watchGPIOs" 99 "test_writeConfig_with_no_radioConfig" 100 "test_writeGPIOs" 101 ]; 102 103 meta = with lib; { 104 description = "Python API for talking to Meshtastic devices"; 105 homepage = "https://github.com/meshtastic/Meshtastic-python"; 106 license = with licenses; [ asl20 ]; 107 maintainers = with maintainers; [ fab ]; 108 }; 109}