home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 1.5)
-
- import macfs
- import marshal
- import types
- kOnSystemDisk = 32768
-
- class PrefObject:
-
- def __init__(self, dict = None):
- if dict == None:
- self._prefsdict = { }
- else:
- self._prefsdict = dict
-
-
- def __len__(self):
- return len(self._prefsdict)
-
-
- def __delattr__(self, attr):
- if self._prefsdict.has_key(attr):
- del self._prefsdict[attr]
- else:
- raise AttributeError, 'delete non-existing instance attribute'
-
-
- def __getattr__(self, attr):
- if attr == '__members__':
- keys = self._prefsdict.keys()
- keys.sort()
- return keys
-
-
- try:
- return self._prefsdict[attr]
- except KeyError:
- raise AttributeError, attr
-
-
-
- def __setattr__(self, attr, value):
- if attr[0] != '_':
- self._prefsdict[attr] = value
- else:
- self.__dict__[attr] = value
-
-
- def getprefsdict(self):
- return self._prefsdict
-
-
-
- class PrefFile(PrefObject):
-
- def __init__(self, path, creator = 'Pyth'):
- self._PrefFile__path = path
- self._PrefFile__creator = creator
- self._prefsdict = { }
-
- try:
- prefdict = marshal.load(open(self._PrefFile__path, 'rb'))
- except IOError:
- pass
-
- for key, value in prefdict.items():
- pass
-
-
-
- def save(self):
- prefdict = { }
- for key, value in self._prefsdict.items():
- if type(value) == types.InstanceType:
- prefdict[key] = value.getprefsdict()
- if not prefdict[key]:
- del prefdict[key]
-
- else:
- prefdict[key] = value
-
- marshal.dump(prefdict, open(self._PrefFile__path, 'wb'))
- fss = macfs.FSSpec(self._PrefFile__path)
- fss.SetCreatorType(self._PrefFile__creator, 'pref')
-
-
- def __getattr__(self, attr):
- if attr == '__members__':
- keys = self._prefsdict.keys()
- keys.sort()
- return keys
-
-
- try:
- return self._prefsdict[attr]
- except KeyError:
- if attr[0] != '_':
- self._prefsdict[attr] = PrefObject()
- return self._prefsdict[attr]
- else:
- raise AttributeError, attr
- except:
- attr[0] != '_'
-
-
-
- _prefscache = { }
-
- def GetPrefs(prefname, creator = 'Pyth'):
- import macostools
- import os
- if _prefscache.has_key(prefname):
- return _prefscache[prefname]
-
- (vrefnum, dirid) = macfs.FindFolder(kOnSystemDisk, 'pref', 0)
- prefsfolder_fss = macfs.FSSpec((vrefnum, dirid, ''))
- prefsfolder = prefsfolder_fss.as_pathname()
- path = os.path.join(prefsfolder, prefname)
- (head, tail) = os.path.split(path)
- macostools.mkdirs(head)
- preffile = PrefFile(path, creator)
- _prefscache[prefname] = preffile
- return preffile
-
-