diff -r 8cf53170e290 -r a34ce7f42e8b src/eric7/SystemUtilities/FileSystemUtilities.py --- a/src/eric7/SystemUtilities/FileSystemUtilities.py Wed Dec 06 14:20:35 2023 +0100 +++ b/src/eric7/SystemUtilities/FileSystemUtilities.py Wed Dec 06 14:23:36 2023 +0100 @@ -664,3 +664,86 @@ break return mountedPaths + + +################################################################################ +## Functions below handle (MicroPython) device and remote file names. +################################################################################ + + +_DeviceFileMarker = "device:" + + +def deviceFileName(fileName): + """ + Function to create a device (MicroPython) file name given a plain file name. + + @param fileName plain file name + @type str + @return device file name + @rtype str + """ + return f"{_DeviceFileMarker}{fileName}" + + +def isDeviceFileName(fileName): + """ + Function to check, if the given file name is a device file name. + + @param fileName file name to be checked + @type str + @return flag indicating a device file name + @rtype bool + """ + return fileName.startswith(_DeviceFileMarker) + + +_RemoteFileMarker = "remote:" + + +def remoteFileName(fileName): + """ + Function to create a remote file name given a plain file name. + + @param fileName plain file name + @type str + @return remote file name + @rtype str + """ + return f"{_RemoteFileMarker}{fileName}" + + +def isRemoteFileName(fileName): + """ + Function to check, if the given file name is a remote file name. + + @param fileName file name to be checked + @type str + @return flag indicating a remote file name + @rtype bool + """ + return fileName.startswith(_RemoteFileMarker) + + +def isPlainFileName(fileName): + """ + Function to check, if the given file name is a plain (i.e. local) file name. + + @param fileName file name to be checked + @type str + @return flag indicating a local file name + @rtype bool + """ + return not fileName.startswith((_DeviceFileMarker, _RemoteFileMarker)) + + +def plainFileName(fileName): + """ + Function to create a plain file name given a device or remote file name. + + @param fileName device or remote file name + @type str + @return plain file name + @rtype str + """ + return fileName.replace(_DeviceFileMarker, "").replace(_RemoteFileMarker, "")