Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / meshtastic / default.nix
blob8bfb65056f165c33cd6aaad54e05ea767ddccd9e
1 { lib
2 , buildPythonPackage
3 , dotmap
4 , fetchFromGitHub
5 , pexpect
6 , protobuf
7 , pygatt
8 , pypubsub
9 , pyqrcode
10 , pyserial
11 , pytap2
12 , pytestCheckHook
13 , pythonOlder
14 , pyyaml
15 , requests
16 , setuptools
17 , tabulate
18 , timeago
21 buildPythonPackage rec {
22   pname = "meshtastic";
23   version = "2.2.12";
24   format = "setuptools";
26   disabled = pythonOlder "3.7";
28   src = fetchFromGitHub {
29     owner = "meshtastic";
30     repo = "Meshtastic-python";
31     rev = "refs/tags/${version}";
32     hash = "sha256-W//mDKtTWjcKT43n82OU3h4yKrNZMAVzLzQCjsmkJP0=";
33   };
35   propagatedBuildInputs = [
36     dotmap
37     pexpect
38     protobuf
39     pygatt
40     pypubsub
41     pyqrcode
42     pyserial
43     pyyaml
44     setuptools
45     requests
46     tabulate
47     timeago
48   ];
50   passthru.optional-dependencies = {
51     tunnel = [
52       pytap2
53     ];
54   };
56   nativeCheckInputs = [
57     pytap2
58     pytestCheckHook
59   ];
61   preCheck = ''
62     export PATH="$PATH:$out/bin";
63   '';
65   pythonImportsCheck = [
66     "meshtastic"
67   ];
69   disabledTests = [
70     # AttributeError: 'HardwareMessage'...
71     "test_handleFromRadio_with_my_info"
72     "test_handleFromRadio_with_node_info"
73     "test_main_ch_longsfast_on_non_primary_channel"
74     "test_main_ch_set_name_with_ch_index"
75     "test_main_configure_with_camel_case_keys"
76     "test_main_configure_with_snake_case"
77     "test_main_export_config_called_from_main"
78     "test_main_export_config_use_camel"
79     "test_main_export_config"
80     "test_main_get_with_invalid"
81     "test_main_get_with_valid_values_camel"
82     "test_main_getPref_invalid_field_camel"
83     "test_main_getPref_invalid_field"
84     "test_main_getPref_valid_field_bool_camel"
85     "test_main_getPref_valid_field_bool"
86     "test_main_getPref_valid_field_camel"
87     "test_main_getPref_valid_field_string_camel"
88     "test_main_getPref_valid_field_string"
89     "test_main_getPref_valid_field"
90     "test_main_set_invalid_wifi_passwd"
91     "test_main_set_valid_camel_case"
92     "test_main_set_valid_wifi_passwd"
93     "test_main_set_valid"
94     "test_main_set_with_invalid"
95     "test_main_setPref_ignore_incoming_0"
96     "test_main_setPref_ignore_incoming_123"
97     "test_main_setPref_invalid_field_camel"
98     "test_main_setPref_invalid_field"
99     "test_main_setPref_valid_field_int_as_string"
100     "test_readGPIOs"
101     "test_onGPIOreceive"
102     "test_setURL_empty_url"
103     "test_watchGPIOs"
104     "test_writeConfig_with_no_radioConfig"
105     "test_writeGPIOs"
106     "test_reboot"
107     "test_shutdown"
108     "test_main_sendtext"
109     "test_main_sendtext_with_channel"
110     "test_MeshInterface"
111     "test_getNode_not_local"
112     "test_getNode_not_local_timeout"
113     "test_main_onConnected_exception"
114   ];
116   meta = with lib; {
117     description = "Python API for talking to Meshtastic devices";
118     homepage = "https://github.com/meshtastic/Meshtastic-python";
119     changelog = "https://github.com/meshtastic/python/releases/tag/${version}";
120     license = with licenses; [ asl20 ];
121     maintainers = with maintainers; [ fab ];
122   };