summaryrefslogtreecommitdiffstats
path: root/Mac/Lib/macfs.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Lib/macfs.py')
-rw-r--r--Mac/Lib/macfs.py231
1 files changed, 0 insertions, 231 deletions
diff --git a/Mac/Lib/macfs.py b/Mac/Lib/macfs.py
deleted file mode 100644
index 3cf56d0..0000000
--- a/Mac/Lib/macfs.py
+++ /dev/null
@@ -1,231 +0,0 @@
-"""macfs - Pure Python module designed to be backward compatible with
-macfs and MACFS.
-"""
-import sys
-import struct
-import Carbon.Res
-import Carbon.File
-import Nav
-
-# 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 *
-
-# For some obscure historical reason these are here too:
-READ = 1
-WRITE = 2
-smAllScripts = -3
-
-# The old name of the error object:
-error = Carbon.File.Error
-
-#
-# The various objects macfs used to export. We override them here, because some
-# of the method names are subtly different.
-#
-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):
- fss, changed = self.ResolveAlias(src)
- return FSSpec(fss), changed
-
-from Carbon.File import FInfo
-
-# Backward-compatible type names:
-FSSpecType = FSSpec
-FSRefType = FSRef
-AliasType = Alias
-FInfoType = FInfo
-
-# Global functions:
-def ResolveAliasFile(fss, chain=1):
- fss, isdir, isalias = Carbon.File.ResolveAliasFile(fss, chain)
- return FSSpec(fss), isdir, isalias
-
-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 Alias(Carbon.File.NewAliasMinimalFromFullPath(path, '', ''))
-
-# Another global function:
-from Carbon.Folder import FindFolder
-
-#
-# Finally the old Standard File routine emulators.
-#
-
-_movablemodal = 0
-_curfolder = None
-
-def _mktypelist(typelist):
- # Workaround for OSX typeless files:
- if 'TEXT' in typelist and not '\0\0\0\0' in typelist:
- typelist = typelist + ('\0\0\0\0',)
- if not typelist:
- return None
- data = 'Pyth' + struct.pack("hh", 0, len(typelist))
- for type in typelist:
- data = data+type
- return Carbon.Res.Handle(data)
-
-def StandardGetFile(*typelist):
- """Ask for an input file, optionally specifying 4-char file types that are
- allowable"""
- return apply(PromptGetFile, (None,)+typelist)
-
-def PromptGetFile(prompt, *typelist):
- """Ask for an input file giving the user a prompt message. Optionally you can
- specifying 4-char file types that are allowable"""
- args = {}
- flags = 0x56
- typehandle = _mktypelist(typelist)
- if typehandle:
- args['typeList'] = typehandle
- else:
- flags = flags | 0x01
- if prompt:
- args['message'] = prompt
- args['preferenceKey'] = 'PyMC'
- if _movablemodal:
- args['eventProc'] = None
- args['dialogOptionFlags'] = flags
- _handleSetFolder(args)
- try:
- rr = Nav.NavChooseFile(args)
- good = 1
- except Nav.error, arg:
- if arg[0] != -128: # userCancelledErr
- raise Nav.error, arg
- good = 0
- fss = None
- else:
- if rr.selection:
- fss = FSSpec(rr.selection[0])
- else:
- fss = None
- good = 0
-## if typehandle:
-## typehandle.DisposeHandle()
- return fss, good
-
-def StandardPutFile(prompt, default=None):
- """Ask the user for an output file, with a prompt. Optionally you cn supply a
- default output filename"""
- args = {}
- flags = 0x07
- if prompt:
- args['message'] = prompt
- args['preferenceKey'] = 'PyMC'
- if _movablemodal:
- args['eventProc'] = None
- if default:
- args['savedFileName'] = default
- args['dialogOptionFlags'] = flags
- _handleSetFolder(args)
- try:
- rr = Nav.NavPutFile(args)
- good = 1
- except Nav.error, arg:
- if arg[0] != -128: # userCancelledErr
- raise Nav.error, arg
- good = 0
- fss = None
- else:
- fss = FSSpec(rr.selection[0])
- return fss, good
-
-def SetFolder(folder):
- global _curfolder
- if _curfolder:
- rv = _curfolder
- else:
- rv = None
- _curfolder = FSSpec(folder)
- return rv
-
-def _handleSetFolder(args):
- global _curfolder
- if not _curfolder:
- return
- import aepack
- fss = _curfolder
- aedesc = aepack.pack(fss)
- args['defaultLocation'] = aedesc
- _curfolder = None
-
-def GetDirectory(prompt=None):
- """Ask the user to select a folder. Optionally you can give a prompt."""
- args = {}
- flags = 0x17
- if prompt:
- args['message'] = prompt
- args['preferenceKey'] = 'PyMC'
- if _movablemodal:
- args['eventProc'] = None
- args['dialogOptionFlags'] = flags
- _handleSetFolder(args)
- try:
- rr = Nav.NavChooseFolder(args)
- good = 1
- except Nav.error, arg:
- if arg[0] != -128: # userCancelledErr
- raise Nav.error, arg
- good = 0
- fss = None
- else:
- fss = FSSpec(rr.selection[0])
- return fss, good
-