annotate Mac/Lib/pythonprefs.py @ 7029:a367aaa6503c legacy-trunk

Loading defaults for gusi/sys.path didn't work for applets. Fixed.
author Jack Jansen <jack.jansen@cwi.nl>
date Tue, 06 Jan 1998 12:11:48 +0000
parents 3d61474a1550
children fa85a7fd740b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6282
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
1 from preferences import *
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
2
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
3 # Names of Python resources
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
4 PREFNAME_NAME="PythonPreferenceFileName"
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
5
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
6 # Resource IDs in the preferences file
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
7 PATH_ID = 128
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
8 DIR_ID = 128
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
9 POPT_ID = 128
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
10 GUSI_ID = 10240
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
11
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
12 # Override IDs (in the applet)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
13 OVERRIDE_PATH_ID = 129
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
14 OVERRIDE_DIR_ID = 129
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
15 OVERRIDE_POPT_ID = 129
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
16 OVERRIDE_GUSI_ID = 10241
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
17
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
18 # version
6291
3d61474a1550 Added old-exceptions and no-site-python preferences and upped version
Jack Jansen <jack.jansen@cwi.nl>
parents: 6282
diff changeset
19 CUR_VERSION=4
6282
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
20
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
21 preffilename = PstringLoader(AnyResLoader('STR ', resname=PREFNAME_NAME)).load()
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
22 pref_fss = preferencefile(preffilename, 'Pyth', 'pref')
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
23
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
24 class PoptLoader(VersionLoader):
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
25 def __init__(self, loader):
6291
3d61474a1550 Added old-exceptions and no-site-python preferences and upped version
Jack Jansen <jack.jansen@cwi.nl>
parents: 6282
diff changeset
26 VersionLoader.__init__(self, "bbbbbbbbbbbb", loader)
6282
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
27
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
28 def versioncheck(self, data):
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
29 if data[0] == CUR_VERSION:
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
30 return data
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
31 print 'old resource'
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
32 raise Error, "old resource"
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
33
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
34 class GusiLoader:
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
35 def __init__(self, loader):
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
36 self.loader = loader
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
37 self.data = None
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
38
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
39 def load(self):
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
40 self.data = self.loader.load()
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
41 while self.data[10:14] != '0181':
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
42 self.loader.delete(1)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
43 self.loader.load()
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
44 tp = self.data[0:4]
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
45 cr = self.data[4:8]
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
46 flags = ord(self.data[9])
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
47 delay = ((flags & 0x20) == 0x20)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
48 return cr, tp, delay
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
49
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
50 def save(self, (cr, tp, delay)):
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
51 flags = ord(self.data[9])
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
52 if delay:
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
53 flags = flags | 0x20
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
54 else:
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
55 flags = flags & ~0x20
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
56 newdata = tp + cr + self.data[8] + chr(flags) + self.data[10:]
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
57 self.loader.save(newdata)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
58
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
59 popt_default_default = NullLoader(chr(CUR_VERSION) + 8*'\0')
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
60 popt_default = AnyResLoader('Popt', POPT_ID, default=popt_default_default)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
61 popt_loader = ResLoader(pref_fss, 'Popt', POPT_ID, default=popt_default)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
62 popt = PoptLoader(popt_loader)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
63
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
64 dir_default = AnyResLoader('alis', DIR_ID)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
65 dir = ResLoader(pref_fss, 'alis', DIR_ID, default=dir_default)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
66
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
67 gusi_default = AnyResLoader('GU\267I', GUSI_ID)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
68 gusi_loader = ResLoader(pref_fss, 'GU\267I', GUSI_ID, default=gusi_default)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
69 gusi = GusiLoader(gusi_loader)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
70
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
71 path_default = AnyResLoader('STR#', PATH_ID)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
72 path_loader = ResLoader(pref_fss, 'STR#', PATH_ID, default=path_default)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
73 path = StrListLoader(path_loader)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
74
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
75 class PythonOptions:
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
76 def __init__(self, popt=popt, dir=dir, gusi=gusi, path=path):
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
77 self.popt = popt
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
78 self.dir = dir
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
79 self.gusi = gusi
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
80 self.path = path
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
81
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
82 def load(self):
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
83 dict = {}
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
84 dict['path'] = self.path.load()
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
85 diralias = self.dir.load()
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
86 dirfss, dummy = macfs.RawAlias(diralias).Resolve()
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
87 dict['dir'] = dirfss
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
88 dict['creator'], dict['type'], dict['delayconsole'] = self.gusi.load()
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
89 flags = self.popt.load()
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
90 dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
91 dict['unbuffered'], dict['debugging'], dict['keepopen'], dict['keeperror'], \
6291
3d61474a1550 Added old-exceptions and no-site-python preferences and upped version
Jack Jansen <jack.jansen@cwi.nl>
parents: 6282
diff changeset
92 dict['nointopt'], dict['noargs'], dict['oldexc'], \
3d61474a1550 Added old-exceptions and no-site-python preferences and upped version
Jack Jansen <jack.jansen@cwi.nl>
parents: 6282
diff changeset
93 dict['nosite'] = flags
6282
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
94 return dict
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
95
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
96 def save(self, dict):
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
97 self.path.save(dict['path'])
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
98 diralias = macfs.FSSpec(dict['dir']).NewAlias().data
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
99 self.dir.save(diralias)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
100 self.gusi.save((dict['creator'], dict['type'], dict['delayconsole']))
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
101 flags = dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
102 dict['unbuffered'], dict['debugging'], dict['keepopen'], dict['keeperror'], \
6291
3d61474a1550 Added old-exceptions and no-site-python preferences and upped version
Jack Jansen <jack.jansen@cwi.nl>
parents: 6282
diff changeset
103 dict['nointopt'], dict['noargs'], dict['oldexc'], \
3d61474a1550 Added old-exceptions and no-site-python preferences and upped version
Jack Jansen <jack.jansen@cwi.nl>
parents: 6282
diff changeset
104 dict['nosite']
6282
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
105 self.popt.save(flags)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
106
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
107 def AppletOptions(file):
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
108 fss = macfs.FSSpec(file)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
109 a_popt = PoptLoader(ResLoader(fss, 'Popt', OVERRIDE_POPT_ID, default=popt_loader))
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
110 a_dir = ResLoader(fss, 'alis', OVERRIDE_DIR_ID, default=dir)
7029
a367aaa6503c Loading defaults for gusi/sys.path didn't work for applets. Fixed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 6291
diff changeset
111 a_gusi = GusiLoader(
a367aaa6503c Loading defaults for gusi/sys.path didn't work for applets. Fixed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 6291
diff changeset
112 ResLoader(fss, 'GU\267I', OVERRIDE_GUSI_ID, default=gusi_loader))
a367aaa6503c Loading defaults for gusi/sys.path didn't work for applets. Fixed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 6291
diff changeset
113 a_path = StrListLoader(
a367aaa6503c Loading defaults for gusi/sys.path didn't work for applets. Fixed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 6291
diff changeset
114 ResLoader(fss, 'STR#', OVERRIDE_PATH_ID, default=path_loader))
6282
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
115 return PythonOptions(a_popt, a_dir, a_gusi, a_path)
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
116
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
117 def _test():
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
118 import preferences
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
119 preferences.debug = 1
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
120 dict = PythonOptions().load()
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
121 for k in dict.keys():
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
122 print k, '\t', dict[k]
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
123
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
124 if __name__ == '__main__':
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
125 _test()
f6839e532be2 Preferences is a general module to get (and set) preferences in
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
126