Tue, 19 Nov 2024 16:08:15 +0100
MicroPython
- Enhanced the WiFi and BLE detection for Pimoroni RP2350 boards because their firmware has modules for these even if the CYW43 chip is not present.
7067
3fc4082fc6ba
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
3fc4082fc6ba
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
10439
21c28b0f9e41
Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
3 | # Copyright (c) 2019 - 2024 Detlev Offenbach <detlev@die-offenbachs.de> |
7067
3fc4082fc6ba
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
3fc4082fc6ba
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
3fc4082fc6ba
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
3fc4082fc6ba
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing some file system commands for MicroPython. |
3fc4082fc6ba
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
3fc4082fc6ba
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
10 | import os |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9249
diff
changeset
|
11 | import shutil |
7070
3368ce0e7879
Started to implement the device file system interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7067
diff
changeset
|
12 | import stat |
3368ce0e7879
Started to implement the device file system interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7067
diff
changeset
|
13 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9249
diff
changeset
|
14 | from PyQt6.QtCore import QObject, pyqtSignal, pyqtSlot |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
15 | |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
16 | from .MicroPythonFileSystemUtilities import ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
17 | decoratedName, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
18 | listdirStat, |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9249
diff
changeset
|
19 | mode2string, |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9249
diff
changeset
|
20 | mtime2string, |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
21 | ) |
7067
3fc4082fc6ba
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
7088
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
23 | |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
24 | class MicroPythonFileManager(QObject): |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
25 | """ |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
26 | Class implementing an interface to the device file system commands with |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
27 | some additional sugar. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
28 | |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
29 | @signal longListFiles(result) emitted with a tuple of tuples containing the |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
30 | name, mode, size and time for each directory entry |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
31 | @signal currentDir(dirname) emitted to report the current directory of the |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
32 | device |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
33 | @signal currentDirChanged(dirname) emitted to report back a change of the |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
34 | current directory |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
35 | @signal getFileDone(deviceFile, localFile) emitted after the file was |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
36 | fetched from the connected device and written to the local file system |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
37 | @signal putFileDone(localFile, deviceFile) emitted after the file was |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
38 | copied to the connected device |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
39 | @signal deleteFileDone(deviceFile) emitted after the file has been deleted |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
40 | on the connected device |
9760 | 41 | @signal putDataDone(deviceFile) emitted after data has been save to a file |
42 | on the connected device | |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
43 | @signal rsyncDone(localName, deviceName) emitted after the rsync operation |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
44 | has been completed |
7083
217862c28319
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7082
diff
changeset
|
45 | @signal rsyncProgressMessage(msg) emitted to send a message about what |
217862c28319
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7082
diff
changeset
|
46 | rsync is doing |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
47 | @signal removeDirectoryDone() emitted after a directory has been deleted |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
48 | @signal createDirectoryDone() emitted after a directory was created |
7088
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
49 | @signal fsinfoDone(fsinfo) emitted after the file system information was |
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
50 | obtained |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
51 | |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
52 | @signal error(exc) emitted with a failure message to indicate a failure |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
53 | during the most recent operation |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
54 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
55 | |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
56 | longListFiles = pyqtSignal(tuple) |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
57 | currentDir = pyqtSignal(str) |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
58 | currentDirChanged = pyqtSignal(str) |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
59 | getFileDone = pyqtSignal(str, str) |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
60 | putFileDone = pyqtSignal(str, str) |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
61 | deleteFileDone = pyqtSignal(str) |
9760 | 62 | putDataDone = pyqtSignal(str) |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
63 | rsyncDone = pyqtSignal(str, str) |
7083
217862c28319
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7082
diff
changeset
|
64 | rsyncProgressMessage = pyqtSignal(str) |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
65 | removeDirectoryDone = pyqtSignal() |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
66 | createDirectoryDone = pyqtSignal() |
7088
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
67 | fsinfoDone = pyqtSignal(tuple) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
68 | |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
69 | error = pyqtSignal(str, str) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
70 | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
71 | def __init__(self, device, parent=None): |
7070
3368ce0e7879
Started to implement the device file system interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7067
diff
changeset
|
72 | """ |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
73 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
74 | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
75 | @param device MicroPython device object |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
76 | @type BaseDevice |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
77 | @param parent reference to the parent object |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
78 | @type QObject |
7070
3368ce0e7879
Started to implement the device file system interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7067
diff
changeset
|
79 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
80 | super().__init__(parent) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
81 | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
82 | self.__device = device |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
83 | |
9852
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
84 | def exists(self, pathname): |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
85 | """ |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
86 | Public method to check the existence of a file or directory. |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
87 | |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
88 | @param pathname name of the path to check |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
89 | @type str |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
90 | @return flag indicating the existence |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
91 | @rtype bool |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
92 | """ |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
93 | try: |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
94 | return self.__device.exists(pathname) |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
95 | except Exception as exc: |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
96 | self.error.emit("exists", str(exc)) |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
97 | return False |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
98 | |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
99 | @pyqtSlot(str) |
7137
4ed2573947ff
MicroPythonFileManagerWidget: added option to show hidden files to the local and device files list context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7131
diff
changeset
|
100 | def lls(self, dirname, showHidden=False): |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
101 | """ |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
102 | Public slot to get a long listing of the given directory. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
103 | |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
104 | @param dirname name of the directory to list |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
105 | @type str |
7137
4ed2573947ff
MicroPythonFileManagerWidget: added option to show hidden files to the local and device files list context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7131
diff
changeset
|
106 | @param showHidden flag indicating to show hidden files as well |
4ed2573947ff
MicroPythonFileManagerWidget: added option to show hidden files to the local and device files list context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7131
diff
changeset
|
107 | @type bool |
7070
3368ce0e7879
Started to implement the device file system interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7067
diff
changeset
|
108 | """ |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
109 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
110 | filesList = self.__device.lls(dirname, showHidden=showHidden) |
10019
e56089d00750
Fixed a few issue in the MicroPython support related to behavior of devices and change caused by MicroPython release 1.20.0 on ESP32 devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9853
diff
changeset
|
111 | adjustEpoch = ( |
e56089d00750
Fixed a few issue in the MicroPython support related to behavior of devices and change caused by MicroPython release 1.20.0 on ESP32 devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9853
diff
changeset
|
112 | not self.__device.hasCircuitPython() |
e56089d00750
Fixed a few issue in the MicroPython support related to behavior of devices and change caused by MicroPython release 1.20.0 on ESP32 devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9853
diff
changeset
|
113 | and self.__device.getDeviceData(key="epoch_year") == 2000 |
e56089d00750
Fixed a few issue in the MicroPython support related to behavior of devices and change caused by MicroPython release 1.20.0 on ESP32 devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9853
diff
changeset
|
114 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
115 | result = [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
116 | ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
117 | decoratedName(name, mode), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
118 | mode2string(mode), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
119 | str(size), |
10019
e56089d00750
Fixed a few issue in the MicroPython support related to behavior of devices and change caused by MicroPython release 1.20.0 on ESP32 devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9853
diff
changeset
|
120 | mtime2string(mtime, adjustEpoch=adjustEpoch), |
10621
f5631f40c4d9
Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10523
diff
changeset
|
121 | ( |
f5631f40c4d9
Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10523
diff
changeset
|
122 | f"{dirname}{name}" |
f5631f40c4d9
Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10523
diff
changeset
|
123 | if dirname.endswith("/") |
f5631f40c4d9
Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10523
diff
changeset
|
124 | else f"{dirname}/{name}" |
f5631f40c4d9
Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10523
diff
changeset
|
125 | ), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
126 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
127 | for name, (mode, size, mtime) in filesList |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
128 | ] |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
129 | self.longListFiles.emit(tuple(result)) |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
130 | except Exception as exc: |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
131 | self.error.emit("lls", str(exc)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
132 | |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
133 | @pyqtSlot() |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
134 | def pwd(self): |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
135 | """ |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
136 | Public slot to get the current directory of the device. |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
137 | """ |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
138 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
139 | pwd = self.__device.pwd() |
7077
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
140 | self.currentDir.emit(pwd) |
3b7475b7a1ef
MicroPython: started to implement the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7070
diff
changeset
|
141 | except Exception as exc: |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
142 | self.error.emit("pwd", str(exc)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
143 | |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
144 | @pyqtSlot(str) |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
145 | def cd(self, dirname): |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
146 | """ |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
147 | Public slot to change the current directory of the device. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
148 | |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
149 | @param dirname name of the desired current directory |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
150 | @type str |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
151 | """ |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
152 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
153 | self.__device.cd(dirname) |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
154 | self.currentDirChanged.emit(dirname) |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
155 | except Exception as exc: |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
156 | self.error.emit("cd", str(exc)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
157 | |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
158 | @pyqtSlot(str) |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
159 | @pyqtSlot(str, str) |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
160 | def get(self, deviceFileName, hostFileName=""): |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
161 | """ |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
162 | Public slot to get a file from the connected device. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
163 | |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
164 | @param deviceFileName name of the file on the device |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
165 | @type str |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
166 | @param hostFileName name of the local file |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
167 | @type str |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
168 | """ |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
169 | if hostFileName and os.path.isdir(hostFileName): |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
170 | # only a local directory was given |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
171 | hostFileName = os.path.join(hostFileName, os.path.basename(deviceFileName)) |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
172 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
173 | self.__device.get(deviceFileName, hostFileName) |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
174 | self.getFileDone.emit(deviceFileName, hostFileName) |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
175 | except Exception as exc: |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
176 | self.error.emit("get", str(exc)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
177 | |
9760 | 178 | def getData(self, deviceFileName): |
179 | """ | |
180 | Public method to read data from the connected device. | |
181 | ||
182 | @param deviceFileName name of the file to read from | |
183 | @type str | |
184 | @return data read from the device | |
185 | @rtype bytes | |
186 | """ | |
187 | try: | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
188 | data = self.__device.getData(deviceFileName) |
9760 | 189 | return data |
190 | except Exception as exc: | |
191 | self.error.emit("getData", str(exc)) | |
192 | return b"" | |
193 | ||
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
194 | @pyqtSlot(str) |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
195 | @pyqtSlot(str, str) |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
196 | def put(self, hostFileName, deviceFileName=""): |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
197 | """ |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
198 | Public slot to put a file onto the device. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
199 | |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
200 | @param hostFileName name of the local file |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
201 | @type str |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
202 | @param deviceFileName name of the file on the connected device |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
203 | @type str |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
204 | """ |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
205 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
206 | self.__device.put(hostFileName, deviceFileName) |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
207 | self.putFileDone.emit(hostFileName, deviceFileName) |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
208 | except Exception as exc: |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
209 | self.error.emit("put", str(exc)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
210 | |
9760 | 211 | def putData(self, deviceFileName, data): |
212 | """ | |
213 | Public method to write data to the connected device. | |
214 | ||
215 | @param deviceFileName name of the file to write to | |
216 | @type str | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
217 | @param data data to write |
9760 | 218 | @type bytes |
219 | """ | |
220 | try: | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
221 | self.__device.putData(deviceFileName, data) |
9760 | 222 | self.putDataDone.emit(deviceFileName) |
223 | except Exception as exc: | |
224 | self.error.emit("putData", str(exc)) | |
225 | ||
9853
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
226 | def writeFile(self, filename, text): |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
227 | """ |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
228 | Public method to write some text to a file on the connected device. |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
229 | |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
230 | @param filename name of the file on the connected device |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
231 | @type str |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
232 | @param text text to be written |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
233 | @type str |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
234 | @return flag indicating success |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
235 | @rtype bool |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
236 | """ |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
237 | if self.__device.supportsLocalFileAccess(): |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
238 | try: |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
239 | with open(filename, "w") as f: |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
240 | f.write(text) |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
241 | return True |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
242 | except OSError as exc: |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
243 | self.error.emit("writeFile", str(exc)) |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
244 | return False |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
245 | else: |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
246 | try: |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
247 | self.__device.putData(filename, text.encode("utf-8")) |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
248 | self.putDataDone.emit(filename) |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
249 | return True |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
250 | except Exception as exc: |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
251 | self.error.emit("writeFile", str(exc)) |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
252 | return False |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
253 | |
10515 | 254 | def rename(self, oldname, newname): |
255 | """ | |
256 | Public method to rename a file on the device. | |
257 | ||
258 | @param oldname current name of the file | |
259 | @type str | |
260 | @param newname new name for the file | |
261 | @type str | |
262 | @return flag indicating success | |
263 | @rtype bool | |
264 | """ | |
265 | try: | |
266 | self.__device.rename(oldname, newname) | |
267 | return True | |
268 | except Exception as exc: | |
269 | self.error.emit("rename", str(exc)) | |
270 | return False | |
271 | ||
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
272 | @pyqtSlot(str) |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
273 | def delete(self, deviceFileName): |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
274 | """ |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
275 | Public slot to delete a file on the device. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
276 | |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
277 | @param deviceFileName name of the file on the connected device |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
278 | @type str |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
279 | """ |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
280 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
281 | self.__device.rm(deviceFileName) |
7080
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
282 | self.deleteFileDone.emit(deviceFileName) |
9a3adf033f90
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7077
diff
changeset
|
283 | except Exception as exc: |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
284 | self.error.emit("delete", str(exc)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
285 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
286 | def __rsync( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
287 | self, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
288 | hostDirectory, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
289 | deviceDirectory, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
290 | mirror=True, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
291 | localDevice=False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
292 | indentLevel=0, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
293 | ): |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
294 | """ |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
295 | Private method to synchronize a local directory to the device. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
296 | |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
297 | @param hostDirectory name of the local directory |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
298 | @type str |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
299 | @param deviceDirectory name of the directory on the device |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
300 | @type str |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
301 | @param mirror flag indicating to mirror the local directory to |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
302 | the device directory |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
303 | @type bool |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
304 | @param localDevice flag indicating device access via local file system |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
305 | @type bool |
7174
de8175253dfc
MicroPython: did some fine tuning of the MicroPython interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7139
diff
changeset
|
306 | @param indentLevel indentation level for progress messages |
de8175253dfc
MicroPython: did some fine tuning of the MicroPython interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7139
diff
changeset
|
307 | @type int |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
308 | @return list of errors |
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
309 | @rtype list of str |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
310 | """ |
7174
de8175253dfc
MicroPython: did some fine tuning of the MicroPython interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7139
diff
changeset
|
311 | indent = 4 * " " |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
312 | errors = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
313 | |
7083
217862c28319
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7082
diff
changeset
|
314 | if not os.path.isdir(hostDirectory): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
315 | return [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
316 | self.tr( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
317 | "The given name '{0}' is not a directory or does not exist." |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
318 | ).format(hostDirectory) |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
319 | ] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
320 | |
7174
de8175253dfc
MicroPython: did some fine tuning of the MicroPython interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7139
diff
changeset
|
321 | indentStr = indentLevel * indent |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
322 | self.rsyncProgressMessage.emit( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
323 | self.tr("{1}Synchronizing <b>{0}</b>.").format(deviceDirectory, indentStr) |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
324 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
325 | |
7174
de8175253dfc
MicroPython: did some fine tuning of the MicroPython interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7139
diff
changeset
|
326 | doneMessage = self.tr("{1}Done synchronizing <b>{0}</b>.").format( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
327 | deviceDirectory, indentStr |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
328 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
329 | |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
330 | sourceDict = {} |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
331 | sourceFiles = listdirStat(hostDirectory) |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
332 | for name, nstat in sourceFiles: |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
333 | sourceDict[name] = nstat |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
334 | |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
335 | destinationDict = {} |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
336 | if localDevice: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
337 | if not os.path.isdir(deviceDirectory): |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
338 | # simply copy destination to source |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
339 | shutil.copytree(hostDirectory, deviceDirectory) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
340 | self.rsyncProgressMessage.emit(doneMessage) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
341 | return errors |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
342 | else: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
343 | destinationFiles = listdirStat(deviceDirectory) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
344 | for name, nstat in destinationFiles: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
345 | destinationDict[name] = nstat |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
346 | else: |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
347 | try: |
10137
fe5195fba5f7
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10019
diff
changeset
|
348 | if not self.__device.exists(deviceDirectory): |
fe5195fba5f7
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10019
diff
changeset
|
349 | self.__device.mkdir(deviceDirectory) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
350 | destinationFiles = self.__device.lls(deviceDirectory, fullstat=True) |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
351 | except Exception as exc: |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
352 | return [str(exc)] |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
353 | if destinationFiles is None: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
354 | # the destination directory does not exist |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
355 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
356 | self.__device.mkdir(deviceDirectory) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
357 | except Exception as exc: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
358 | return [str(exc)] |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
359 | else: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
360 | for name, nstat in destinationFiles: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
361 | destinationDict[name] = nstat |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
362 | |
10373
093dcebe5ecb
Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10137
diff
changeset
|
363 | destinationSet = set(destinationDict) |
093dcebe5ecb
Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10137
diff
changeset
|
364 | sourceSet = set(sourceDict) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
365 | toAdd = sourceSet - destinationSet # add to dev |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
366 | toDelete = destinationSet - sourceSet # delete from dev |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
367 | toUpdate = destinationSet.intersection(sourceSet) # update files |
7174
de8175253dfc
MicroPython: did some fine tuning of the MicroPython interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7139
diff
changeset
|
368 | indentStr = (indentLevel + 1) * indent |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
369 | |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
370 | if localDevice: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
371 | for sourceBasename in toAdd: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
372 | # name exists in source but not in device |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
373 | sourceFilename = os.path.join(hostDirectory, sourceBasename) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
374 | destFilename = os.path.join(deviceDirectory, sourceBasename) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
375 | self.rsyncProgressMessage.emit( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
376 | self.tr("{1}Adding <b>{0}</b>...").format(destFilename, indentStr) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
377 | ) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
378 | if os.path.isfile(sourceFilename): |
9249
83d59e29bd91
MicroPythonFileManager: improved error reporting when syncing files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
379 | try: |
83d59e29bd91
MicroPythonFileManager: improved error reporting when syncing files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
380 | shutil.copy2(sourceFilename, destFilename) |
83d59e29bd91
MicroPythonFileManager: improved error reporting when syncing files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
381 | except OSError as err: |
83d59e29bd91
MicroPythonFileManager: improved error reporting when syncing files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
382 | errors.append(str(err)) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
383 | elif os.path.isdir(sourceFilename): |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
384 | # recurse |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
385 | errs = self.__rsync( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
386 | sourceFilename, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
387 | destFilename, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
388 | mirror=mirror, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
389 | localDevice=localDevice, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
390 | indentLevel=indentLevel + 1, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
391 | ) |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
392 | # just note issues but ignore them otherwise |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
393 | errors.extend(errs) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
394 | |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
395 | if mirror: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
396 | for destBasename in toDelete: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
397 | # name exists in device but not local, delete |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
398 | destFilename = os.path.join(deviceDirectory, destBasename) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
399 | if os.path.isdir(destFilename): |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
400 | shutil.rmtree(destFilename, ignore_errors=True) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
401 | elif os.path.isfile(destFilename): |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
402 | os.remove(destFilename) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
403 | |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
404 | for sourceBasename in toUpdate: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
405 | # names exist in both; do an update |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
406 | sourceStat = sourceDict[sourceBasename] |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
407 | destStat = destinationDict[sourceBasename] |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
408 | sourceFilename = os.path.join(hostDirectory, sourceBasename) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
409 | destFilename = os.path.join(deviceDirectory, sourceBasename) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
410 | destMode = destStat[0] |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
411 | if os.path.isdir(sourceFilename): |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
412 | if os.path.isdir(destFilename): |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
413 | # both are directories => recurs |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
414 | errs = self.__rsync( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
415 | sourceFilename, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
416 | destFilename, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
417 | mirror=mirror, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
418 | localDevice=localDevice, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
419 | indentLevel=indentLevel + 1, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
420 | ) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
421 | # just note issues but ignore them otherwise |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
422 | errors.extend(errs) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
423 | else: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
424 | self.rsyncProgressMessage.emit( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
425 | self.tr( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
426 | "Source <b>{0}</b> is a directory and" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
427 | " destination <b>{1}</b> is a file." |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
428 | " Ignoring it." |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
429 | ).format(sourceFilename, destFilename) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
430 | ) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
431 | else: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
432 | if os.path.isdir(destFilename): |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
433 | self.rsyncProgressMessage.emit( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
434 | self.tr( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
435 | "Source <b>{0}</b> is a file and" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
436 | " destination <b>{1}</b> is a directory." |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
437 | " Ignoring it." |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
438 | ).format(sourceFilename, destFilename) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
439 | ) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
440 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
441 | if sourceStat[8] > destStat[8]: # mtime |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
442 | self.rsyncProgressMessage.emit( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
443 | self.tr("Updating <b>{0}</b>...").format(destFilename) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
444 | ) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
445 | shutil.copy2(sourceFilename, destFilename) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
446 | else: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
447 | for sourceBasename in toAdd: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
448 | # name exists in source but not in device |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
449 | sourceFilename = os.path.join(hostDirectory, sourceBasename) |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
450 | destFilename = ( |
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
451 | "/" + sourceBasename |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
452 | if deviceDirectory == "/" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
453 | else deviceDirectory + "/" + sourceBasename |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
454 | ) |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
455 | self.rsyncProgressMessage.emit( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
456 | self.tr("{1}Adding <b>{0}</b>...").format(destFilename, indentStr) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
457 | ) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
458 | if os.path.isfile(sourceFilename): |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
459 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
460 | self.__device.put(sourceFilename, destFilename) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
461 | except Exception as exc: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
462 | # just note issues but ignore them otherwise |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
463 | errors.append(str(exc)) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
464 | elif os.path.isdir(sourceFilename): |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
465 | # recurse |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
466 | errs = self.__rsync( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
467 | sourceFilename, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
468 | destFilename, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
469 | mirror=mirror, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
470 | indentLevel=indentLevel + 1, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
471 | ) |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
472 | # just note issues but ignore them otherwise |
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
473 | errors.extend(errs) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
474 | |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
475 | if mirror: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
476 | for destBasename in toDelete: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
477 | # name exists in device but not local, delete |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
478 | destFilename = ( |
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
479 | "/" + sourceBasename |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
480 | if deviceDirectory == "/" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
481 | else deviceDirectory + "/" + destBasename |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
482 | ) |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
483 | self.rsyncProgressMessage.emit( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
484 | self.tr("{1}Removing <b>{0}</b>...").format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
485 | destFilename, indentStr |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
486 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
487 | ) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
488 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
489 | self.__device.rmrf(destFilename, recursive=True, force=True) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
490 | except Exception as exc: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
491 | # just note issues but ignore them otherwise |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
492 | errors.append(str(exc)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
493 | |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
494 | for sourceBasename in toUpdate: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
495 | # names exist in both; do an update |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
496 | sourceStat = sourceDict[sourceBasename] |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
497 | destStat = destinationDict[sourceBasename] |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
498 | sourceFilename = os.path.join(hostDirectory, sourceBasename) |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
499 | destFilename = ( |
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
500 | "/" + sourceBasename |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
501 | if deviceDirectory == "/" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
502 | else deviceDirectory + "/" + sourceBasename |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
503 | ) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
504 | destMode = destStat[0] |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
505 | if os.path.isdir(sourceFilename): |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
506 | if stat.S_ISDIR(destMode): |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
507 | # both are directories => recurs |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
508 | errs = self.__rsync( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
509 | sourceFilename, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
510 | destFilename, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
511 | mirror=mirror, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
512 | indentLevel=indentLevel + 1, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
513 | ) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
514 | # just note issues but ignore them otherwise |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
515 | errors.extend(errs) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
516 | else: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
517 | self.rsyncProgressMessage.emit( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
518 | self.tr( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
519 | "Source <b>{0}</b> is a directory and" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
520 | " destination <b>{1}</b> is a file." |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
521 | " Ignoring it." |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
522 | ).format(sourceFilename, destFilename) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
523 | ) |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
524 | else: |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
525 | if stat.S_ISDIR(destMode): |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
526 | self.rsyncProgressMessage.emit( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
527 | self.tr( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
528 | "Source <b>{0}</b> is a file and" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
529 | " destination <b>{1}</b> is a directory." |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
530 | " Ignoring it." |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
531 | ).format(sourceFilename, destFilename) |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
532 | ) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
533 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
534 | if sourceStat[8] > destStat[8]: # mtime |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
535 | self.rsyncProgressMessage.emit( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
536 | self.tr("{1}Updating <b>{0}</b>...").format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
537 | destFilename, indentStr |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
538 | ) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
539 | ) |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
540 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
541 | self.__device.put(sourceFilename, destFilename) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
542 | except Exception as exc: |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
543 | errors.append(str(exc)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
544 | |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
545 | self.rsyncProgressMessage.emit(doneMessage) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
546 | |
7084
3eddfc540614
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7083
diff
changeset
|
547 | return errors |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
548 | |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
549 | @pyqtSlot(str, str) |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
550 | @pyqtSlot(str, str, bool) |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
551 | @pyqtSlot(str, str, bool, bool) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
552 | def rsync(self, hostDirectory, deviceDirectory, mirror=True, localDevice=False): |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
553 | """ |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
554 | Public slot to synchronize a local directory to the device. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
555 | |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
556 | @param hostDirectory name of the local directory |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
557 | @type str |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
558 | @param deviceDirectory name of the directory on the device |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
559 | @type str |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
560 | @param mirror flag indicating to mirror the local directory to |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
561 | the device directory |
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
562 | @type bool |
7131
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
563 | @param localDevice flag indicating device access via local file system |
f75e990caf99
MicroPythonFileManager: finished the file access via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
564 | @type bool |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
565 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
566 | errors = self.__rsync( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
567 | hostDirectory, deviceDirectory, mirror=mirror, localDevice=localDevice |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
568 | ) |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
569 | if errors: |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
570 | self.error.emit("rsync", "\n".join(errors)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
571 | |
7081
ed510767c096
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7080
diff
changeset
|
572 | self.rsyncDone.emit(hostDirectory, deviceDirectory) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
573 | |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
574 | @pyqtSlot(str) |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
575 | def mkdir(self, dirname): |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
576 | """ |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
577 | Public slot to create a new directory. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
578 | |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
579 | @param dirname name of the directory to create |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
580 | @type str |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
581 | """ |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
582 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
583 | self.__device.mkdir(dirname) |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
584 | self.createDirectoryDone.emit() |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
585 | except Exception as exc: |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
586 | self.error.emit("mkdir", str(exc)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
587 | |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
588 | @pyqtSlot(str) |
9853
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
589 | def makedirs(self, dirname): |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
590 | """ |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
591 | Public slot to create a new directory and all intermediates. |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
592 | |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
593 | @param dirname name of the directory to create |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
594 | @type str |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
595 | """ |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
596 | parts = [d for d in dirname.split("/") if bool(d)] |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
597 | dname = "" |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
598 | try: |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
599 | for part in parts: |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
600 | dname += "/" + part |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
601 | if not self.__device.exists(dname): |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
602 | self.__device.mkdir(dname) |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
603 | self.createDirectoryDone.emit() |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
604 | except Exception as exc: |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
605 | self.error.emit("makedirs", str(exc)) |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
606 | |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
607 | @pyqtSlot(str) |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
608 | @pyqtSlot(str, bool) |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
609 | def rmdir(self, dirname, recursive=False): |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
610 | """ |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
611 | Public slot to (recursively) remove a directory. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
612 | |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
613 | @param dirname name of the directory to be removed |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
614 | @type str |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
615 | @param recursive flag indicating a recursive removal |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
616 | @type bool |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
617 | """ |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
618 | try: |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
619 | if recursive: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
620 | self.__device.rmrf(dirname, recursive=True, force=True) |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
621 | else: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
622 | self.__device.rmdir(dirname) |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
623 | self.removeDirectoryDone.emit() |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
624 | except Exception as exc: |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7081
diff
changeset
|
625 | self.error.emit("rmdir", str(exc)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
626 | |
7088
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
627 | def fileSystemInfo(self): |
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
628 | """ |
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
629 | Public method to obtain information about the currently mounted file |
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
630 | systems. |
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
631 | """ |
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
632 | try: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9760
diff
changeset
|
633 | fsinfo = self.__device.fileSystemInfo() |
7088
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
634 | self.fsinfoDone.emit(fsinfo) |
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
635 | except Exception as exc: |
e29b0ee86b29
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7084
diff
changeset
|
636 | self.error.emit("fileSystemInfo", str(exc)) |