src/eric7/RemoteServerInterface/EricServerFileSystemInterface.py

Fri, 23 Feb 2024 16:52:01 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 23 Feb 2024 16:52:01 +0100
branch
server
changeset 10605
b6f5e27daeb5
parent 10596
ea35c92a3c7c
child 10610
bb0149571d94
permissions
-rw-r--r--

Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.

10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de>
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the file system interface to the eric-ide server.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
10 import base64
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import contextlib
10583
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
12 import os
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
13 import re
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
14 import stat
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
10584
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
16 from PyQt6.QtCore import QEventLoop, QObject, pyqtSlot
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
10589
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
18 from eric7 import Utilities
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 from eric7.RemoteServer.EricRequestCategory import EricRequestCategory
10574
622e59b51640 Implemented the profiling and code coverage interface of the dialogs to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10561
diff changeset
20 from eric7.SystemUtilities import FileSystemUtilities
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 class EricServerFileSystemInterface(QObject):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Class implementing the file system interface to the eric-ide server.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
10583
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
28 _MagicCheck = re.compile("([*?[])")
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
29
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 def __init__(self, serverInterface):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 Constructor
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @param serverInterface reference to the eric-ide server interface
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @type EricServerInterface
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 super().__init__(parent=serverInterface)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.__serverInterface = serverInterface
10584
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
40 self.__serverInterface.connectionStateChanged.connect(
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
41 self.__connectionStateChanged
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
42 )
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
43
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
44 self.__serverPathSep = self.__getPathSep()
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
10583
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
46 def __hasMagic(self, pathname):
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
47 """
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
48 Private method to check, if a given path contains glob style magic characters.
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
49
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
50 Note: This was taken from 'glob.glob'.
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
51
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
52 @param pathname path name to be checked
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
53 @type str
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
54 @return flag indicating the presence of magic characters
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
55 @rtype bool
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
56 """
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
57 match = self._MagicCheck.search(pathname)
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
58 return match is not None
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
59
10584
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
60 @pyqtSlot(bool)
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
61 def __connectionStateChanged(self, connected):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
62 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
63 Private slot handling a change of the server connection state.
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
64
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
65 @param connected flag indicating a connected state
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
66 @type bool
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
67 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
68 if connected:
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
69 if not bool(self.__serverPathSep):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
70 self.__serverPathSep = self.__getPathSep()
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
71 else:
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
72 self.__serverPathSep = ""
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
73
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
74 def __getPathSep(self):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
75 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
76 Private method to get the path separator of the connected server.
10596
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
77
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
78 @return path separator character of the server
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
79 @rtype str
10584
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
80 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
81 loop = QEventLoop()
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
82 sep = ""
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
83
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
84 def callback(reply, params):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
85 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
86 Function to handle the server reply
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
87
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
88 @param reply name of the server reply
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
89 @type str
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
90 @param params dictionary containing the reply data
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
91 @type dict
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
92 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
93 nonlocal sep
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
94
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
95 if reply == "GetPathSep":
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
96 sep = params["separator"]
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
97 loop.quit()
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
98
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
99 if self.__serverInterface.isServerConnected():
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
100 self.__serverInterface.sendJson(
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
101 category=EricRequestCategory.FileSystem,
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
102 request="GetPathSep",
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
103 params={},
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
104 callback=callback,
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
105 )
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
106
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
107 loop.exec()
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
108
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
109 return sep
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
110
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 def getcwd(self):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 Public method to get the current working directory of the eric-ide server.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 @return current working directory of the eric-ide server
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 @rtype str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 loop = QEventLoop()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 cwd = ""
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 def callback(reply, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 Function to handle the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 @param reply name of the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 @param params dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 nonlocal cwd
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 if reply == "Getcwd":
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 cwd = params["directory"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 loop.quit()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
136 if self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
137 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
138 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
139 request="Getcwd",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
140 params={},
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
141 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
142 )
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
144 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
145
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 return cwd
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 def chdir(self, directory):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 Public method to change the current working directory of the eric-ide server.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 @param directory absolute path of the working directory to change to
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 @return tuple containing an OK flag and an error string in case of an issue
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 @rtype tuple of (bool, str)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 loop = QEventLoop()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 ok = False
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 error = ""
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 def callback(reply, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 Function to handle the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 @param reply name of the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 @param params dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 nonlocal ok, error
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 if reply == "Chdir":
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 ok = params["ok"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 with contextlib.suppress(KeyError):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 error = params["error"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 loop.quit()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
178 if self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
179 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
180 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
181 request="Chdir",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
182 params={"directory": FileSystemUtilities.plainFileName(directory)},
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
183 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
184 )
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
186 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
187 return ok, error
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
188
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
189 else:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
190 return False, "Not connected to an 'eric-ide' server."
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 def listdir(self, directory=""):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 Public method to get a directory listing.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 @param directory directory to be listed. An empty directory means to list
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 the eric-ide server current directory. (defaults to "")
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 @type str (optional)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 @return tuple containing the listed directory, the path separartor and the
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 directory listing. Each directory listing entry contains a dictionary
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 with the relevant data.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 @rtype tuple of (str, str, dict)
10548
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
203 @exception OSError raised in case the server reported an issue
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 if directory is None:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 # sanitize the directory in case it is None
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 directory = ""
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 loop = QEventLoop()
10548
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
210 ok = False
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
211 error = ""
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 listedDirectory = ""
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 separator = ""
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 listing = []
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 def callback(reply, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 Function to handle the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 @param reply name of the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 @param params dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 """
10548
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
225 nonlocal listedDirectory, listing, separator, ok, error
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 if reply == "Listdir":
10548
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
228 ok = params["ok"]
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
229 if ok:
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
230 listedDirectory = params["directory"]
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
231 listing = params["listing"]
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
232 separator = params["separator"]
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
233 else:
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
234 error = params["error"]
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 loop.quit()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
237 if self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
238 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
239 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
240 request="Listdir",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
241 params={"directory": FileSystemUtilities.plainFileName(directory)},
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
242 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
243 )
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
245 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
246 if not ok:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
247 raise OSError(error)
10548
d3e21f44887b Improved the 'listdir()' remote server method in order to report issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
248
10605
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
249 for entry in listing:
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
250 entry["path"] = FileSystemUtilities.remoteFileName(entry["path"])
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
251
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 return listedDirectory, separator, listing
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
254 def direntries(
10583
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
255 self,
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
256 directory,
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
257 filesonly=False,
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
258 pattern=None,
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
259 followsymlinks=True,
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
260 ignore=None,
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
261 recursive=True,
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
262 dirsonly=False,
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
263 ):
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
264 """
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
265 Public method to get a list of all files and directories of a given directory.
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
266
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
267 @param directory root of the tree to check
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
268 @type str
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
269 @param filesonly flag indicating that only files are wanted (defaults to False)
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
270 @type bool (optional)
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
271 @param pattern a filename pattern or list of filename patterns to check
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
272 against (defaults to None)
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
273 @type str or list of str (optional)
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
274 @param followsymlinks flag indicating whether symbolic links should be
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
275 followed (defaults to True)
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
276 @type bool (optional)
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
277 @param ignore list of entries to be ignored (defaults to None)
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
278 @type list of str (optional)
10583
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
279 @param recursive flag indicating a recursive search (defaults to True)
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
280 @type bool (optional)
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
281 @param dirsonly flag indicating to return only directories. When True it has
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
282 precedence over the 'filesonly' parameter ((defaults to False)
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
283 @type bool
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
284 @return list of all files and directories in the tree rooted at path.
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
285 The names are expanded to start with the given directory name.
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
286 @rtype list of str
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
287 @exception OSError raised in case the server reported an issue
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
288 """
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
289 loop = QEventLoop()
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
290 ok = False
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
291 error = ""
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
292 result = []
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
293
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
294 def callback(reply, params):
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
295 """
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
296 Function to handle the server reply
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
297
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
298 @param reply name of the server reply
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
299 @type str
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
300 @param params dictionary containing the reply data
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
301 @type dict
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
302 """
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
303 nonlocal result, ok, error
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
304
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
305 if reply == "DirEntries":
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
306 ok = params["ok"]
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
307 if ok:
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
308 result = params["result"]
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
309 else:
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
310 error = params["error"]
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
311 loop.quit()
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
312
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
313 if self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
314 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
315 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
316 request="DirEntries",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
317 params={
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
318 "directory": FileSystemUtilities.plainFileName(directory),
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
319 "files_only": filesonly,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
320 "pattern": [] if pattern is None else pattern,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
321 "follow_symlinks": followsymlinks,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
322 "ignore": [] if ignore is None else ignore,
10583
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
323 "recursive": recursive,
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
324 "dirs_only": dirsonly,
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
325 },
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
326 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
327 )
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
328
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
329 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
330 if not ok:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
331 raise OSError(error)
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
332
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
333 return result
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
334
10583
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
335 def glob(self, pathname, recursive=False, includeHidden=False):
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
336 """
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
337 Public method to get a list of of all files matching a given pattern
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
338 like 'glob.glob()'.
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
339
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
340 @param pathname path name pattern with simple shell-style wildcards
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
341 @type str
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
342 @param recursive flag indicating a recursive list (defaults to False)
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
343 @type bool (optional)
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
344 @param includeHidden flag indicating to include hidden files (defaults to False)
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
345 @type bool (optional)
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
346 @return list of all files matching the pattern
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
347 @rtype list of str
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
348 """
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
349 result = []
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
350
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
351 pathname = FileSystemUtilities.plainFileName(pathname)
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
352 dirname, basename = os.path.split(pathname)
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
353 if dirname and not self.__hasMagic(dirname):
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
354 with contextlib.suppress(OSError):
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
355 entries = self.direntries(
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
356 dirname, pattern=basename, recursive=recursive, filesonly=True
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
357 )
10596
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
358 result = (
10605
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
359 [FileSystemUtilities.remoteFileName(e) for e in entries]
10596
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
360 if includeHidden
10605
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
361 else [
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
362 FileSystemUtilities.remoteFileName(e)
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
363 for e in entries
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
364 if not e.startswith(".")
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
365 ]
10596
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
366 )
10583
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
367
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
368 return result
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10577
diff changeset
369
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
370 def stat(self, filename, stNames):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
371 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
372 Public method to get the status of a file.
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
373
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
374 @param filename name of the file
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
375 @type str
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
376 @param stNames list of 'stat_result' members to retrieve
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
377 @type list of str
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
378 @return dictionary containing the requested status data
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
379 @rtype dict
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
380 @exception OSError raised in case the server reported an issue
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
381 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
382 loop = QEventLoop()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
383 ok = False
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
384 error = ""
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
385 stResult = {}
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
386
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
387 def callback(reply, params):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
388 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
389 Function to handle the server reply
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
390
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
391 @param reply name of the server reply
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
392 @type str
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
393 @param params dictionary containing the reply data
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
394 @type dict
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
395 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
396 nonlocal ok, error, stResult
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
397
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
398 if reply == "Stat":
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
399 ok = params["ok"]
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
400 if ok:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
401 stResult = params["result"]
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
402 else:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
403 error = params["error"]
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
404 loop.quit()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
405
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
406 if self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
407 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
408 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
409 request="Stat",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
410 params={
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
411 "filename": FileSystemUtilities.plainFileName(filename),
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
412 "st_names": stNames,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
413 },
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
414 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
415 )
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
416
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
417 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
418 if not ok:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
419 raise OSError(error)
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
420
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
421 return stResult
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
422
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
423 def isdir(self, name):
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
424 """
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
425 Public method to check, if the given name is a directory.
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
426
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
427 @param name name to be checked
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
428 @type str
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
429 @return flag indicating a directory
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
430 @rtype bool
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
431 """
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
432 with contextlib.suppress(KeyError, OSError):
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
433 result = self.stat(name, ["st_mode"])
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
434 return stat.S_ISDIR(result["st_mode"])
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
435
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
436 return False
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
437
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
438 def isfile(self, name):
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
439 """
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
440 Public method to check, if the given name is a regular file.
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
441
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
442 @param name name to be checked
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
443 @type str
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
444 @return flag indicating a regular file
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
445 @rtype bool
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
446 """
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
447 with contextlib.suppress(KeyError, OSError):
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
448 result = self.stat(name, ["st_mode"])
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
449 return stat.S_ISREG(result["st_mode"])
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
450
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
451 return False
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
452
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
453 def exists(self, name):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
454 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
455 Public method the existence of a file or directory.
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
456
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
457 @param name name of the file or directory
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
458 @type str
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
459 @return flag indicating the file existence
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
460 @rtype bool
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
461 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
462 loop = QEventLoop()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
463 nameExists = False
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
464
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
465 def callback(reply, params):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
466 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
467 Function to handle the server reply
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
468
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
469 @param reply name of the server reply
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
470 @type str
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
471 @param params dictionary containing the reply data
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
472 @type dict
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
473 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
474 nonlocal nameExists
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
475
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
476 if reply == "Exists":
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
477 nameExists = params["exists"]
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
478 loop.quit()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
479
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
480 if self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
481 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
482 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
483 request="Exists",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
484 params={"name": FileSystemUtilities.plainFileName(name)},
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
485 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
486 )
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
487
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
488 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
489
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
490 return nameExists
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
491
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
492 def access(self, name, modes):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
493 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
494 Public method to test the given access rights to a file or directory.
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
495
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
496 The modes to check for are 'read', 'write' or 'execute' or any combination.
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
497
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
498 @param name name of the file or directory
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
499 @type str
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
500 @param modes list of modes to check for
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
501 @type str or list of str
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
502 @return flag indicating the user has the asked for permissions
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
503 @rtype bool
10561
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10555
diff changeset
504 @exception ValueError raised for an illegal modes list
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
505 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
506 if not modes:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
507 raise ValueError(
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
508 "At least one of 'read', 'write' or 'execute' must be specified."
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
509 )
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
510
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
511 if isinstance(modes, str):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
512 # convert to a list with one element
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
513 modes = [modes]
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
514
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
515 loop = QEventLoop()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
516 accessOK = False
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
517
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
518 def callback(reply, params):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
519 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
520 Function to handle the server reply
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
521
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
522 @param reply name of the server reply
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
523 @type str
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
524 @param params dictionary containing the reply data
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
525 @type dict
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
526 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
527 nonlocal accessOK
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
528
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
529 if reply == "Access":
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
530 accessOK = params["ok"]
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
531 loop.quit()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
532
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
533 if self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
534 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
535 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
536 request="Access",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
537 params={
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
538 "name": FileSystemUtilities.plainFileName(name),
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
539 "modes": modes,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
540 },
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
541 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
542 )
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
543
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
544 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
545
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
546 return accessOK
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
547
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
548 def mkdir(self, directory):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
549 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
550 Public method to create a new directory on the eric-ide server.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
551
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 @param directory absolute path of the new directory
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
553 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
554 @return tuple containing an OK flag and an error string in case of an issue
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
555 @rtype tuple of (bool, str)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
556 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
557 loop = QEventLoop()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
558 ok = False
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
559 error = ""
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
560
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
561 def callback(reply, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
562 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
563 Function to handle the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
564
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
565 @param reply name of the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
566 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
567 @param params dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
568 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
569 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
570 nonlocal ok, error
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
571
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
572 if reply == "Mkdir":
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
573 ok = params["ok"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
574 with contextlib.suppress(KeyError):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
575 error = params["error"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
576 loop.quit()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
577
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
578 if self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
579 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
580 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
581 request="Mkdir",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
582 params={"directory": FileSystemUtilities.plainFileName(directory)},
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
583 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
584 )
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
585
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
586 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
587 return ok, error
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
588
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
589 else:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
590 return False, "Not connected to an 'eric-ide' server."
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
591
10596
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
592 def makedirs(self, directory, exist_ok=False):
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
593 """
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
594 Public method to create a new directory on the eric-ide serverincluding all
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
595 intermediate-level directories.
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
596
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
597 @param directory absolute path of the new directory
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
598 @type str
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
599 @param exist_ok flag indicating that the existence of the directory is
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
600 acceptable (defaults to False)
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
601 @type bool (optional)
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
602 @return tuple containing an OK flag and an error string in case of an issue
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
603 @rtype tuple of (bool, str)
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
604 """
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
605 loop = QEventLoop()
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
606 ok = False
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
607 error = ""
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
608
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
609 def callback(reply, params):
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
610 """
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
611 Function to handle the server reply
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
612
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
613 @param reply name of the server reply
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
614 @type str
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
615 @param params dictionary containing the reply data
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
616 @type dict
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
617 """
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
618 nonlocal ok, error
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
619
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
620 if reply == "MakeDirs":
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
621 ok = params["ok"]
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
622 with contextlib.suppress(KeyError):
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
623 error = params["error"]
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
624 loop.quit()
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
625
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
626 if self.__serverInterface.isServerConnected():
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
627 self.__serverInterface.sendJson(
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
628 category=EricRequestCategory.FileSystem,
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
629 request="MakeDirs",
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
630 params={
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
631 "directory": FileSystemUtilities.plainFileName(directory),
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
632 "exist_ok": exist_ok,
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
633 },
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
634 callback=callback,
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
635 )
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
636
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
637 loop.exec()
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
638 return ok, error
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
639
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
640 else:
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
641 return False, "Not connected to an 'eric-ide' server."
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
642
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
643 def rmdir(self, directory):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
644 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
645 Public method to delete a directory on the eric-ide server.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
646
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
647 @param directory absolute path of the directory
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
648 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
649 @return tuple containing an OK flag and an error string in case of an issue
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
650 @rtype tuple of (bool, str)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
651 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
652 loop = QEventLoop()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
653 ok = False
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
654 error = ""
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
655
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
656 def callback(reply, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
657 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
658 Function to handle the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
660 @param reply name of the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
661 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
662 @param params dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
663 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
664 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
665 nonlocal ok, error
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
666
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
667 if reply == "Rmdir":
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
668 ok = params["ok"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
669 with contextlib.suppress(KeyError):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
670 error = params["error"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
671 loop.quit()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
672
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
673 if self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
674 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
675 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
676 request="Rmdir",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
677 params={"directory": FileSystemUtilities.plainFileName(directory)},
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
678 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
679 )
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
680
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
681 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
682 return ok, error
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
683
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
684 else:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
685 return False, "Not connected to an 'eric-ide' server."
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
686
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
687 def replace(self, oldName, newName):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
688 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
689 Public method to rename a file or directory.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
690
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
691 @param oldName current name of the file or directory
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
692 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
693 @param newName new name for the file or directory
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
694 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
695 @return tuple containing an OK flag and an error string in case of an issue
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
696 @rtype tuple of (bool, str)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
697 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
698 loop = QEventLoop()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
699 ok = False
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
700 error = ""
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
701
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
702 def callback(reply, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
703 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
704 Function to handle the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
705
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
706 @param reply name of the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
707 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
708 @param params dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
709 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
710 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
711 nonlocal ok, error
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
712
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
713 if reply == "Replace":
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
714 ok = params["ok"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
715 with contextlib.suppress(KeyError):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
716 error = params["error"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
717 loop.quit()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
718
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
719 if self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
720 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
721 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
722 request="Replace",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
723 params={
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
724 "old_name": FileSystemUtilities.plainFileName(oldName),
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
725 "new_name": FileSystemUtilities.plainFileName(newName),
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
726 },
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
727 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
728 )
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
729
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
730 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
731 return ok, error
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
732
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
733 else:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
734 return False, "Not connected to an 'eric-ide' server."
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
735
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
736 def remove(self, filename):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
737 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
738 Public method to delete a file on the eric-ide server.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
739
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
740 @param filename absolute path of the file
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
741 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
742 @return tuple containing an OK flag and an error string in case of an issue
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
743 @rtype tuple of (bool, str)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
744 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
745 loop = QEventLoop()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
746 ok = False
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
747 error = ""
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
748
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
749 def callback(reply, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
750 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
751 Function to handle the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
752
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
753 @param reply name of the server reply
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
754 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
755 @param params dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
756 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
757 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
758 nonlocal ok, error
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
759
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
760 if reply == "Remove":
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
761 ok = params["ok"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
762 with contextlib.suppress(KeyError):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
763 error = params["error"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
764 loop.quit()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
765
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
766 if self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
767 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
768 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
769 request="Remove",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
770 params={"filename": FileSystemUtilities.plainFileName(filename)},
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
771 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
772 )
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
773
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
774 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
775 return ok, error
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
776
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
777 else:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
778 return False, "Not connected to an 'eric-ide' server."
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
779
10605
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
780 def expanduser(self, name):
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
781 """
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
782 Public method to expand an initial '~' or '~user' component.
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
783
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
784 @param name path name to be expanded
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
785 @type str
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
786 @return expanded path name
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
787 @rtype str
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
788 """
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
789 loop = QEventLoop()
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
790 ok = False
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
791 expandedName = name
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
792
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
793 def callback(reply, params):
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
794 """
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
795 Function to handle the server reply
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
796
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
797 @param reply name of the server reply
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
798 @type str
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
799 @param params dictionary containing the reply data
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
800 @type dict
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
801 """
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
802 nonlocal ok, expandedName
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
803
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
804 if reply == "ExpandUser":
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
805 ok = params["ok"]
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
806 expandedName = params["name"]
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
807 loop.quit()
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
808
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
809 if self.__serverInterface.isServerConnected():
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
810 self.__serverInterface.sendJson(
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
811 category=EricRequestCategory.FileSystem,
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
812 request="ExpandUser",
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
813 params={"name": FileSystemUtilities.plainFileName(name)},
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
814 callback=callback,
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
815 )
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
816
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
817 loop.exec()
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
818 if FileSystemUtilities.isRemoteFileName(name):
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
819 return FileSystemUtilities.remoteFileName(expandedName)
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
820 else:
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
821 return expandedName
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
822
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
823 #######################################################################
10584
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
824 ## Methods for splitting or joining remote path names.
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
825 ##
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
826 ## These are simplified variants of the os.path functions. If the
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
827 ## 'eric-ide' server is not connected, the os.path functions are used.
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
828 #######################################################################
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
829
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
830 def separator(self):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
831 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
832 Public method to return the server side path separator string.
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
833
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
834 @return path separator
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
835 @rtype str
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
836 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
837 return self.__serverPathSep
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
838
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
839 def join(self, a, *p):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
840 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
841 Public method to join two or more path name components using the path separator
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
842 of the server side.
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
843
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
844 @param a first path component
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
845 @type str
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
846 @param *p list of additional path components
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
847 @type list of str
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
848 @return joined path name
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
849 @rtype str
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
850 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
851 if self.__serverInterface.isServerConnected():
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
852 path = a
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
853 for b in p:
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
854 if b.startswith(self.__serverPathSep):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
855 path = b
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
856 elif not path or path.endswith(self.__serverPathSep):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
857 path += b
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
858 else:
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
859 path += self.__serverPathSep + b
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
860 return path
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
861
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
862 else:
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
863 return os.path.join(a, *p)
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
864
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
865 def split(self, p):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
866 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
867 Public method to split a path name.
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
868
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
869 @param p path name to be split
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
870 @type str
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
871 @return tuple containing head and tail, where tail is everything after the last
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
872 path separator.
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
873 @rtype tuple of (str, str)
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
874 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
875 if self.__serverInterface.isServerConnected():
10585
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
876 if self.__serverPathSep == "\\":
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
877 # remote is a Windows system
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
878 normp = p.replace("/", "\\")
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
879 else:
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
880 # remote is a Posix system
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
881 normp = p.replace("\\", "/")
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
882
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
883 i = normp.rfind(self.__serverPathSep) + 1
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
884 head, tail = normp[:i], normp[i:]
10584
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
885 if head and head != self.__serverPathSep * len(head):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
886 head = head.rstrip(self.__serverPathSep)
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
887 return head, tail
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
888
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
889 else:
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
890 return os.path.split(p)
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
891
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
892 def splitext(self, p):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
893 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
894 Public method to split a path name into a root part and an extension.
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
895
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
896 @param p path name to be split
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
897 @type str
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
898 @return tuple containing the root part and the extension
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
899 @rtype tuple of (str, str)
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
900 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
901 return os.path.splitext(p)
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
902
10585
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
903 def splitdrive(self, p):
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
904 """
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
905 Public method to split a path into drive and path.
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
906
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
907 @param p path name to be split
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
908 @type str
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
909 @return tuple containing the drive letter (incl. colon) and the path
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
910 @rtype tuple of (str, str)
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
911 """
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
912 if self.__serverInterface.isServerConnected():
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
913 plainp = FileSystemUtilities.plainFileName(p)
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
914
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
915 if self.__serverPathSep == "\\":
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
916 # remote is a Windows system
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
917 normp = plainp.replace("/", "\\")
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
918 if normp[1:2] == ":":
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
919 return normp[:2], normp[2:]
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
920 else:
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
921 return "", normp
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
922 else:
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
923 # remote is a Posix system
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
924 normp = plainp.replace("\\", "/")
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
925 return "", normp
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
926
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
927 else:
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
928 return os.path.splitdrive(p)
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10584
diff changeset
929
10584
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
930 def dirname(self, p):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
931 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
932 Public method to extract the directory component of a path name.
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
933
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
934 @param p path name
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
935 @type str
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
936 @return directory component
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
937 @rtype str
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
938 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
939 return self.split(p)[0]
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
940
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
941 def basename(self, p):
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
942 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
943 Public method to extract the final component of a path name.
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
944
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
945 @param p path name
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
946 @type str
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
947 @return final component
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
948 @rtype str
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
949 """
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
950 return self.split(p)[1]
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
951
10596
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
952 def toNativeSeparators(self, p):
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
953 """
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
954 Public method to convert a path to use server native separator characters.
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
955
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
956 @param p path name to be converted
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
957 @type str
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
958 @return path name with converted separator characters
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
959 @rtype str
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
960 """
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
961 if self.__serverPathSep == "/":
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
962 return p.replace("\\", "/")
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
963 else:
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
964 return p.replace("/", "\\")
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
965
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
966 def fromNativeSeparators(self, p):
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
967 """
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
968 Public method to convert a path using server native separator characters to
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
969 use "/" separator characters.
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
970
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
971 @param p path name to be converted
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
972 @type str
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
973 @return path name with converted separator characters
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
974 @rtype str
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
975 """
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
976 return p.replace(self.__serverPathSep, "/")
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
977
10584
a596cf392291 Adapted the Imports diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
978 #######################################################################
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
979 ## Methods for reading and writing files
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
980 #######################################################################
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
981
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
982 def readFile(self, filename, create=False):
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
983 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
984 Public method to read a file from the eric-ide server.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
985
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
986 @param filename name of the file to read
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
987 @type str
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
988 @param create flag indicating to create an empty file, if it does not exist
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
989 (defaults to False)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
990 @type bool (optional)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
991 @return bytes data read from the eric-ide server
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
992 @rtype bytes
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
993 @exception OSError raised in case the server reported an issue
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
994 """
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
995 loop = QEventLoop()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
996 ok = False
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
997 error = ""
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
998 bText = b""
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
999
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1000 def callback(reply, params):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1001 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1002 Function to handle the server reply
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1003
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1004 @param reply name of the server reply
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1005 @type str
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1006 @param params dictionary containing the reply data
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1007 @type dict
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1008 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1009 nonlocal ok, error, bText
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1010
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1011 if reply == "ReadFile":
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1012 ok = params["ok"]
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1013 if ok:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1014 bText = base64.b85decode(
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1015 bytes(params["filedata"], encoding="ascii")
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1016 )
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1017 else:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1018 error = params["error"]
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1019 loop.quit()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1020
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1021 if not self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1022 raise OSError("Not connected to an 'eric-ide' server.")
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1023
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1024 else:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1025 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1026 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1027 request="ReadFile",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1028 params={
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1029 "filename": FileSystemUtilities.plainFileName(filename),
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1030 "create": create,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1031 },
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1032 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1033 )
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1034
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1035 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1036 if not ok:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1037 raise OSError(error)
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1038
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1039 return bText
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1040
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1041 def writeFile(self, filename, data, withBackup=False):
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1042 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1043 Public method to write the data to a file on the eric-ide server.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1044
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1045 @param filename name of the file to write
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1046 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1047 @param data data to be written
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1048 @type bytes
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1049 @param withBackup flag indicating to create a backup file first
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1050 (defaults to False)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1051 @type bool (optional)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1052 @exception OSError raised in case the server reported an issue
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1053 """
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1054 loop = QEventLoop()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1055 ok = False
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1056 error = ""
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1057
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1058 def callback(reply, params):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1059 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1060 Function to handle the server reply
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1061
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1062 @param reply name of the server reply
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1063 @type str
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1064 @param params dictionary containing the reply data
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1065 @type dict
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1066 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1067 nonlocal ok, error
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1068
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1069 if reply == "WriteFile":
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1070 ok = params["ok"]
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1071 with contextlib.suppress(KeyError):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1072 error = params["error"]
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1073 loop.quit()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1074
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1075 if not self.__serverInterface.isServerConnected():
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1076 raise OSError("Not connected to an 'eric-ide' server.")
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
1077
10577
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1078 else:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1079 self.__serverInterface.sendJson(
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1080 category=EricRequestCategory.FileSystem,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1081 request="WriteFile",
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1082 params={
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1083 "filename": FileSystemUtilities.plainFileName(filename),
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1084 "filedata": str(base64.b85encode(data), encoding="ascii"),
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1085 "with_backup": withBackup,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1086 },
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1087 callback=callback,
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1088 )
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1089
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1090 loop.exec()
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1091 if not ok:
b9edebd77c91 Made the coverage and file system server interfaces more resilient against not being connected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
1092 raise OSError(error)
10589
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1093
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1094 def readEncodedFile(self, filename, create=False):
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1095 """
10596
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
1096 Public method to read a file and decode its contents into proper text.
10589
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1097
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1098 @param filename name of the file to read
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1099 @type str
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1100 @param create flag indicating to create an empty file, if it does not exist
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1101 (defaults to False)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1102 @type bool (optional)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1103 @return tuple of decoded text and encoding
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1104 @rtype tuple of (str, str)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1105 """
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1106 data = self.readFile(filename, create=create)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1107 return Utilities.decode(data)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1108
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1109 def readEncodedFileWithEncoding(self, filename, encoding, create=False):
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1110 """
10596
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
1111 Public method to read a file and decode its contents into proper text.
10589
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1112
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1113 @param filename name of the file to read
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1114 @type str
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1115 @param encoding encoding to be used to read the file
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1116 @type str
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1117 @param create flag indicating to create an empty file, if it does not exist
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1118 (defaults to False)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1119 @type bool (optional)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1120 @return tuple of decoded text and encoding
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1121 @rtype tuple of (str, str)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1122 """
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1123 data = self.readFile(filename, create=create)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1124 return Utilities.decodeWithEncoding(data, encoding)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1125
10596
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
1126 def writeEncodedFile(
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
1127 self, filename, text, origEncoding, forcedEncoding="", withBackup=False
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
1128 ):
10589
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1129 """
10596
ea35c92a3c7c Implemented first stage of remote project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10589
diff changeset
1130 Public method to write a file with properly encoded text.
10589
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1131
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1132 @param filename name of the file to read
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1133 @type str
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1134 @param text text to be written
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1135 @type str
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1136 @param origEncoding type of the original encoding
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1137 @type str
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1138 @param forcedEncoding encoding to be used for writing, if no coding
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1139 line is present (defaults to "")
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1140 @type str (optional)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1141 @param withBackup flag indicating to create a backup file first
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1142 (defaults to False)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1143 @type bool (optional)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1144 @return encoding used for writing the file
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1145 @rtype str
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1146 """
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1147 data, encoding = Utilities.encode(
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1148 text, origEncoding, forcedEncoding=forcedEncoding
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1149 )
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1150 self.writeFile(filename, data, withBackup=withBackup)
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1151
75b656c80a40 Added methods to read and write files with a given encoding to the eric-ide server file system interface and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10585
diff changeset
1152 return encoding
10605
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1153
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1154 #######################################################################
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1155 ## Methods implementing some 'shutil' like functionality.
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1156 #######################################################################
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1157
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1158 def shutilCopy(self, srcName, dstName):
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1159 loop = QEventLoop()
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1160 ok = False
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1161 error = ""
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1162 dst = ""
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1163
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1164 def callback(reply, params):
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1165 """
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1166 Function to handle the server reply
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1167
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1168 @param reply name of the server reply
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1169 @type str
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1170 @param params dictionary containing the reply data
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1171 @type dict
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1172 """
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1173 nonlocal ok, error, dst
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1174
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1175 if reply == "ShutilCopy":
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1176 ok = params["ok"]
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1177 if ok:
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1178 dst = params["dst"]
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1179 else:
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1180 error = params["error"]
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1181 loop.quit()
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1182
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1183 if not self.__serverInterface.isServerConnected():
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1184 raise OSError("Not connected to an 'eric-ide' server.")
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1185
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1186 else:
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1187 self.__serverInterface.sendJson(
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1188 category=EricRequestCategory.FileSystem,
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1189 request="ShutilCopy",
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1190 params={
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1191 "src_name": FileSystemUtilities.plainFileName(srcName),
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1192 "dst_name": FileSystemUtilities.plainFileName(dstName),
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1193 },
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1194 callback=callback,
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1195 )
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1196
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1197 loop.exec()
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1198 if not ok:
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1199 raise OSError(error)
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1200
b6f5e27daeb5 Adapted the project 'Add Files' and 'Add Directory' functions to work with remote projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10596
diff changeset
1201 return dst

eric ide

mercurial