--- a/src/eric7/DataViews/PyProfileDialog.py Wed Feb 14 10:24:23 2024 +0100 +++ b/src/eric7/DataViews/PyProfileDialog.py Thu Feb 15 13:59:02 2024 +0100 @@ -22,7 +22,8 @@ ) from eric7.EricWidgets import EricMessageBox -from eric7.SystemUtilities import PythonUtilities +from eric7.EricWidgets.EricApplication import ericApp +from eric7.SystemUtilities import FileSystemUtilities, PythonUtilities from .Ui_PyProfileDialog import Ui_PyProfileDialog @@ -104,6 +105,11 @@ self.summaryList.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.summaryList.customContextMenuRequested.connect(self.__showContextMenu) + # eric-ide server interface + self.__serverFsInterface = ericApp().getObject( + "EricServer" + ).getServiceInterface("FileSystem") + def __createResultItem( self, calls, @@ -265,7 +271,16 @@ self.basename = os.path.splitext(pfn)[0] fname = "{0}.profile".format(self.basename) - if not os.path.exists(fname): + if ( + ( + FileSystemUtilities.isRemoteFileName(fname) + and not self.__serverFsInterface.exists(fname) + ) + or ( + FileSystemUtilities.isPlainFileName(fname) + and not os.path.exists(fname) + ) + ): EricMessageBox.warning( self, self.tr("Profile Results"), @@ -277,8 +292,12 @@ self.close() return try: - with open(fname, "rb") as f: - self.stats = pickle.load(f) # secok + if FileSystemUtilities.isRemoteFileName(fname): + data = self.__serverFsInterface.readFile(fname) + self.stats = pickle.loads(data) + else: + with open(fname, "rb") as f: + self.stats = pickle.load(f) # secok except (EOFError, OSError, pickle.PickleError): EricMessageBox.critical( self, @@ -291,7 +310,10 @@ self.close() return - self.file = fn + if FileSystemUtilities.isRemoteFileName(fname): + self.file = FileSystemUtilities.plainFileName(fn) + else: + self.file = fn self.__populateLists() self.__finish()