| """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 |
| import Carbon.Files |
| from Carbon.Folder import FindFolder |
| |
| # For some obscure historical reason these are here too: |
| READ = 1 |
| WRITE = 2 |
| smAllScripts = -3 |
| |
| import Carbon.File |
| |
| class FSSpec(Carbon.File.FSSpec): |
| def as_FSRef(self): |
| return FSRef(self) |
| |
| def NewAlias(self, src=None): |
| if src is None: |
| src = FSSpec((0,0,'')) |
| return self.NewAlias(src) |
| |
| def GetCreatorType(self): |
| finfo = self.FSpGetFInfo() |
| return finfo[1], finfo[0] |
| |
| def SetCreatorType(self, ctor, tp): |
| finfo = self.FSpGetFInfo() |
| finfo = (tp, ctor) + finfo[2:] |
| self.FSpSetFInfo(finfo) |
| |
| def GetFInfo(self): |
| return self.FSpGetFInfo() |
| |
| def SetFInfo(self, info): |
| return self.FSpSetFInfo(info) |
| |
| def GetDates(self): |
| raise NotImplementedError, "FSSpec.GetDates no longer implemented" |
| |
| def SetDates(self, *dates): |
| raise NotImplementedError, "FSSpec.SetDates no longer implemented" |
| |
| class FSRef(Carbon.File.FSRef): |
| def as_FSSpec(self): |
| return FSSpec(self) |
| |
| class Alias(Carbon.File.Alias): |
| |
| def Resolve(self, src=None): |
| if src is None: |
| src = FSSpec((0, 0, '')) |
| return self.ResolveAlias(src) |
| |
| def GetInfo(self, index): |
| return self.GetAliasInfo(index) |
| |
| def Update(self, *args): |
| raise NotImplementedError, "Alias.Update not yet implemented" |
| |
| class FInfo: |
| pass |
| |
| FSSpecType = FSSpec |
| FSRefType = FSRef |
| AliasType = Alias |
| FInfoType = FInfo |
| |
| def ResolveAliasFile(fss, chain=1): |
| return Carbon.Files.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, '', '') |