1 from preferences
import *
3 # Names of Python resources
4 PREFNAME_NAME
="PythonPreferenceFileName"
6 # Resource IDs in the preferences file
12 # Override IDs (in the applet)
13 OVERRIDE_PATH_ID
= 229
15 OVERRIDE_POPT_ID
= 229
16 OVERRIDE_GUSI_ID
= 10241
21 preffilename
= PstringLoader(AnyResLoader('STR ', resname
=PREFNAME_NAME
)).load()
22 pref_fss
= preferencefile(preffilename
, 'Pyth', 'pref')
24 class PoptLoader(VersionLoader
):
25 def __init__(self
, loader
):
26 VersionLoader
.__init
__(self
, "bbbbbbbbbbbb", loader
)
28 def versioncheck(self
, data
):
29 if data
[0] == CUR_VERSION
:
32 raise Error
, "old resource"
35 def __init__(self
, loader
):
40 self
.data
= self
.loader
.load()
41 while self
.data
[10:14] != '0181':
46 flags
= ord(self
.data
[9])
47 delay
= ((flags
& 0x20) == 0x20)
50 def save(self
, (cr
, tp
, delay
)):
51 flags
= ord(self
.data
[9])
56 newdata
= tp
+ cr
+ self
.data
[8] + chr(flags
) + self
.data
[10:]
57 self
.loader
.save(newdata
)
59 popt_default_default
= NullLoader(chr(CUR_VERSION
) + 8*'\0')
60 popt_default
= AnyResLoader('Popt', POPT_ID
, default
=popt_default_default
)
61 popt_loader
= ResLoader(pref_fss
, 'Popt', POPT_ID
, default
=popt_default
)
62 popt
= PoptLoader(popt_loader
)
64 dir_default
= AnyResLoader('alis', DIR_ID
)
65 dir = ResLoader(pref_fss
, 'alis', DIR_ID
, default
=dir_default
)
67 gusi_default
= AnyResLoader('GU\267I', GUSI_ID
)
68 gusi_loader
= ResLoader(pref_fss
, 'GU\267I', GUSI_ID
, default
=gusi_default
)
69 gusi
= GusiLoader(gusi_loader
)
71 path_default
= AnyResLoader('STR#', PATH_ID
)
72 path_loader
= ResLoader(pref_fss
, 'STR#', PATH_ID
, default
=path_default
)
73 path
= StrListLoader(path_loader
)
76 def __init__(self
, popt
=popt
, dir=dir, gusi
=gusi
, path
=path
):
84 dict['path'] = self
.path
.load()
85 diralias
= self
.dir.load()
86 dirfss
, dummy
= macfs
.RawAlias(diralias
).Resolve()
88 dict['creator'], dict['type'], dict['delayconsole'] = self
.gusi
.load()
89 flags
= self
.popt
.load()
90 dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \
91 dict['unbuffered'], dict['debugging'], dict['keepopen'], dict['keeperror'], \
92 dict['nointopt'], dict['noargs'], dict['oldexc'], \
93 dict['nosite'] = flags
97 self
.path
.save(dict['path'])
98 diralias
= macfs
.FSSpec(dict['dir']).NewAlias().data
99 self
.dir.save(diralias
)
100 self
.gusi
.save((dict['creator'], dict['type'], dict['delayconsole']))
101 flags
= dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \
102 dict['unbuffered'], dict['debugging'], dict['keepopen'], dict['keeperror'], \
103 dict['nointopt'], dict['noargs'], dict['oldexc'], \
105 self
.popt
.save(flags
)
107 def AppletOptions(file):
108 fss
= macfs
.FSSpec(file)
109 a_popt
= PoptLoader(ResLoader(fss
, 'Popt', OVERRIDE_POPT_ID
, default
=popt_loader
))
110 a_dir
= ResLoader(fss
, 'alis', OVERRIDE_DIR_ID
, default
=dir)
112 ResLoader(fss
, 'GU\267I', OVERRIDE_GUSI_ID
, default
=gusi_loader
))
113 a_path
= StrListLoader(
114 ResLoader(fss
, 'STR#', OVERRIDE_PATH_ID
, default
=path_loader
))
115 return PythonOptions(a_popt
, a_dir
, a_gusi
, a_path
)
119 preferences
.debug
= 1
120 dict = PythonOptions().load()
121 for k
in dict.keys():
122 print k
, '\t', dict[k
]
124 if __name__
== '__main__':