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
, "bbbbbbbbbbbbbb", 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])
49 def save(self
, (cr
, tp
)):
50 flags
= ord(self
.data
[9])
51 newdata
= tp
+ cr
+ self
.data
[8:]
52 self
.loader
.save(newdata
)
54 popt_default_default
= NullLoader(chr(CUR_VERSION
) + 8*'\0')
55 popt_default
= AnyResLoader('Popt', POPT_ID
, default
=popt_default_default
)
56 popt_loader
= ResLoader(pref_fss
, 'Popt', POPT_ID
, default
=popt_default
)
57 popt
= PoptLoader(popt_loader
)
59 dir_default
= AnyResLoader('alis', DIR_ID
)
60 dir = ResLoader(pref_fss
, 'alis', DIR_ID
, default
=dir_default
)
62 gusi_default
= AnyResLoader('GU\267I', GUSI_ID
)
63 gusi_loader
= ResLoader(pref_fss
, 'GU\267I', GUSI_ID
, default
=gusi_default
)
64 gusi
= GusiLoader(gusi_loader
)
66 path_default
= AnyResLoader('STR#', PATH_ID
)
67 path_loader
= ResLoader(pref_fss
, 'STR#', PATH_ID
, default
=path_default
)
68 path
= StrListLoader(path_loader
)
71 def __init__(self
, popt
=popt
, dir=dir, gusi
=gusi
, path
=path
):
79 dict['path'] = self
.path
.load()
80 diralias
= self
.dir.load()
81 dirfss
, dummy
= macfs
.RawAlias(diralias
).Resolve()
83 dict['creator'], dict['type'] = self
.gusi
.load()
84 flags
= self
.popt
.load()
85 dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \
86 dict['unbuffered'], dict['debugging'], dummy
, dict['keep_console'], \
87 dict['nointopt'], dict['noargs'], dict['tabwarn'], \
88 dict['nosite'], dict['nonavservice'], dict['delayconsole'] = flags
92 self
.path
.save(dict['path'])
93 diralias
= macfs
.FSSpec(dict['dir']).NewAlias().data
94 self
.dir.save(diralias
)
95 self
.gusi
.save((dict['creator'], dict['type']))
96 flags
= dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \
97 dict['unbuffered'], dict['debugging'], 0, dict['keep_console'], \
98 dict['nointopt'], dict['noargs'], dict['tabwarn'], \
99 dict['nosite'], dict['nonavservice'], dict['delayconsole']
100 self
.popt
.save(flags
)
102 def AppletOptions(file):
103 fss
= macfs
.FSSpec(file)
104 a_popt
= PoptLoader(ResLoader(fss
, 'Popt', OVERRIDE_POPT_ID
, default
=popt_loader
))
105 a_dir
= ResLoader(fss
, 'alis', OVERRIDE_DIR_ID
, default
=dir)
107 ResLoader(fss
, 'GU\267I', OVERRIDE_GUSI_ID
, default
=gusi_loader
))
108 a_path
= StrListLoader(
109 ResLoader(fss
, 'STR#', OVERRIDE_PATH_ID
, default
=path_loader
))
110 return PythonOptions(a_popt
, a_dir
, a_gusi
, a_path
)
114 preferences
.debug
= 1
115 dict = PythonOptions().load()
116 for k
in dict.keys():
117 print k
, '\t', dict[k
]
119 if __name__
== '__main__':