|
| 1 | +import inspect |
1 | 2 | import serial |
2 | 3 | import serial.tools.list_ports |
3 | 4 | from google.protobuf.internal.encoder import _VarintBytes |
@@ -122,16 +123,21 @@ def get_files(self, path="/ext") -> list: |
122 | 123 | cmd_data.path = path |
123 | 124 | rep_data = self._rpc_send_and_read_answer(cmd_data, "storage_list_request") |
124 | 125 |
|
125 | | - storage_response.extend( |
126 | | - MessageToDict(message=rep_data.storage_list_response, including_default_value_fields=True, )["file"]) |
| 126 | + storage_response.extend(self._message_to_dict(rep_data.storage_list_response)["file"]) |
127 | 127 |
|
128 | 128 | while rep_data.has_next: |
129 | 129 | rep_data = self._rpc_read_answer() |
130 | | - storage_response.extend( |
131 | | - MessageToDict(message=rep_data.storage_list_response, including_default_value_fields=True, )["file"]) |
| 130 | + storage_response.extend(self._message_to_dict(rep_data.storage_list_response)["file"]) |
132 | 131 |
|
133 | 132 | return storage_response |
134 | 133 |
|
| 134 | + @staticmethod |
| 135 | + def _message_to_dict(message): |
| 136 | + if 'including_default_value_fields' in inspect.signature(MessageToDict).parameters: |
| 137 | + return MessageToDict(message=message, including_default_value_fields=True) |
| 138 | + else: |
| 139 | + return MessageToDict(message=message, always_print_fields_with_no_presence=True) |
| 140 | + |
135 | 141 | def file_read(self, path=None): |
136 | 142 | storage_response = [] |
137 | 143 | cmd_data = storage_pb2.ReadRequest() |
@@ -182,7 +188,7 @@ def mkdir(self, path="/ext"): |
182 | 188 | cmd_data = storage_pb2.MkdirRequest() |
183 | 189 | cmd_data.path = path |
184 | 190 |
|
185 | | - rep_data = self._rpc_send_and_read_answer(cmd_data, "storage_mkdir_request") |
| 191 | + self._rpc_send_and_read_answer(cmd_data, "storage_mkdir_request") |
186 | 192 |
|
187 | 193 | def file_rename(self, old, new): |
188 | 194 | cmd_data = storage_pb2.RenameRequest() |
|
0 commit comments