| """macfs - Pure Python module designed to be backward compatible with |
| macfs and MACFS. |
| """ |
| import sys |
| |
| # First step: ensure we also emulate the MACFS module, which contained |
| # all the constants |
| |
| sys.modules['MACFS'] = sys.modules[__name__] |
| |
| # Import all those constants |
| from Carbon.Files import * |
| from Carbon.Folders import * |
| # Another method: |
| from Carbon.Folder import FindFolder |
| |
| # For some obscure historical reason these are here too: |
| READ = 1 |
| WRITE = 2 |
| smAllScripts = -3 |
| |
| |
| import Carbon.File |
| # The old name of the error object: |
| error = Carbon.File.Error |
| |
| class FSSpec(Carbon.File.FSSpec): |
| def as_fsref(self): |
| return FSRef(self) |
| |
| def NewAlias(self, src=None): |
| return Alias(Carbon.File.NewAlias(src, self)) |
| |
| def GetCreatorType(self): |
| finfo = self.FSpGetFInfo() |
| return finfo.Creator, finfo.Type |
| |
| def SetCreatorType(self, ctor, tp): |
| finfo = self.FSpGetFInfo() |
| finfo.Creator = ctor |
| finfo.Type = tp |
| self.FSpSetFInfo(finfo) |
| |
| def GetFInfo(self): |
| return self.FSpGetFInfo() |
| |
| def SetFInfo(self, info): |
| return self.FSpSetFInfo(info) |
| |
| def GetDates(self): |
| import os |
| statb = os.stat(self.as_pathname()) |
| return statb.st_ctime, statb.st_mtime, 0 |
| |
| def SetDates(self, *dates): |
| print "FSSpec.SetDates no longer implemented" |
| |
| class FSRef(Carbon.File.FSRef): |
| def as_fsspec(self): |
| return FSSpec(self) |
| |
| class Alias(Carbon.File.Alias): |
| |
| def GetInfo(self, index): |
| return self.GetAliasInfo(index) |
| |
| def Update(self, *args): |
| print "Alias.Update not yet implemented" |
| |
| def Resolve(self, src=None): |
| return self.ResolveAlias(src)[1:] |
| |
| from Carbon.File import FInfo |
| |
| FSSpecType = FSSpec |
| FSRefType = FSRef |
| AliasType = Alias |
| FInfoType = FInfo |
| |
| def ResolveAliasFile(fss, chain=1): |
| return Carbon.File.ResolveAliasFile(fss, chain) |
| |
| def RawFSSpec(data): |
| return FSSpec(rawdata=data) |
| |
| def RawAlias(data): |
| return Alias(rawdata=data) |
| |
| def FindApplication(*args): |
| raise NotImplementedError, "FindApplication no longer implemented" |
| |
| def NewAliasMinimalFromFullPath(path): |
| return Carbon.Files.NewAliasMinimalFromFullPath(path, '', '') |
| |
| # Finally, install nav services |
| import macfsn |