001:
002:
003:
004:
005:
006:
007:
008:
009: reloadable=True
010: reloadables=[]
011:
012:
013:
014: import re,cPickle as pickle
015: from relational import base
016: from standing import boatbase,boatconf,confbase,enumstat,eventstat
017:
018: SPLITTER = re.compile(r"\t+")
019:
020:
021:
022:
023:
024:
025:
026: sample_boats_file="""
027: CAN 3 Zamboni Andrews 26 ZamboniCartel PHRF A 144
028: 17 Nimue Mirage 27 Howarth,David JOG A 186
029: 25 Clewless S2 6.7 Bowsher,Sarah PHRF C 207
030: 31 On A Tack Kirby 30 Blyth,Ken PHRF A 135
031: CAN 36 Boomerang B 25 Salter,Mike PHRF A 138
032: 54 Mai Toi Mirage 33 Brown,Rene JOG A 155
033: 56 Breezin Mirage 30 Layfield,Bob JOG A 175
034: 93 Azura Kirby 25 Popel,Ted PHRF B 177
035: 94 Kiwitea Mirage 30 Domney,Lyn JOG A 175
036: 106 Chinook Mirage 32 Murphy,John JOG A 169
037: 107 Xanadu Mirage 25 Hind,Wayne PHRF C 213
038: 146 Maidstone Cross Mirage 25 O'Brien,Mike JOG B
039: 147 Skylark Mirage 35 Halpin,Jim JOG A
040: 189 Panic Kirby 25 Mogyorody,Kevin PHRF B 177
041: 228 Breakaway Santana 20 Fergusuon,Robby JOG B
042: 246 Nugget C&C 25 Soles,Peter PHRF C 219
043: 275 Dentuso Shark Rindlisbacher,Tom Silver 228
044: 277 Shikasta Shark Dawson,Ian Gold 228
045: 313 Kazz Mirage 27 Allum,Paul JOG A 210
046: 330 Dead Ahead Mirage 24 Arthur,Wesley JOG B
047: 383 Dream On C&C 25 Watson,Doug PHRF C
048: 392 Tia Lisa Tanzer 7.5 Eagan,Chris JOG B
049: 478 Katabatic Shark Malone,Robert Silver
050: 543 Aurora C&C 27 Mark III Richardson,Gord JOG A
051: 559 Shorething C&C 30 Shore,Robert PHRF B
052: 707 Spindrift Shark Utley,Brayden Silver 228
053: 746 Finn McCoul Shark Edgley,Frank Silver 228
054: 915 Stringendo Shark Colborne,David Silver 228
055: 924 Marmoset Shark Barlow,Andrew Gold 228
056: 1009 Scallywagg Shark Andrews,Graham Gold 228
057: 1028 Pursuit Shark MacDonald,Frank Silver 228
058: 1030 Buckaneer Shark Buckner,Doug Silver 228
059: 1037 Spongeworthy Shark Regnier,Mo Gold 228
060: 1038 Invincible Shark Lehmann,Vince Gold 228
061: 1070 Dozer Shark Mendoza,Rommel Silver 228
062: 1829 Megabyte Shark Shaw,John Gold 228
063: 4207 Firewater C&C 35 Hellenbart,Andy PHRF A
064: 5872 Alcoholics Alluvus Columbia 26 Giles,Scott PHRF C
065: 5964 No Resistance HR 25 Robichaud,David PHRF C 234
066: 14091 Ruffian C&C 35 Noakes,Bill PHRF A 126
067: 15587 Dynamo Hummm C&C 30 Davidson,Joe PHRF B 171
068: 15775 Escapade C&C 25 Illi,Ted PHRF C 216
069: 15898 Cirrus Morgan 27 Beaumont,Chuck JOG A
070: 25512 Risky Business S2 9.1 Stridiron,Bill PHRF A
071: 34433 Sorceress X Gispen,Bill PHRF A 114
072: 64178 Addendum C&C 30 Fuller,Bob PHRF B 171
073:
074:
075:
076:
077:
078:
079:
080: PHRF A Fleet
081: PHRF A Casual
082: PHRF A
083: PHRF B Fleet
084: PHRF B Casual
085: PHRF B
086: JOG A Fleet
087: JOG A Casual
088: JOG A
089: JOG B Fleet
090: JOG B Casual
091: JOG B
092: Shark Gold Fleet
093: Shark Silver Fleet
094: Shark Casual
095: Shark
096:
097:
098:
099:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214: :""")
215:
216: def populate(configfile):
217: from standing import boatconf
218: boater=boatbase.BoatConfBase()
219: try:
220: boater.load_hierarchy(configfile)
221: except (IOError,EOFError,ValueError):
222: pass
223: else:
224: for (boid,certifications) in boater.flcolist.adjoin_hierarchy(
225: [("cert",lambda e,c: confbase.objectify(c.boid)),"cert"]
226: ):
227: sample_boats_tab.append((
228: boid.sailnumber,boid.boatname,boid.makeofboat,boid.boatowner,
229: ))
230: configurations=[]
231: for (cert,fleetconfigs) in certifications:
232: assert cert.boid is boid[0]
233: rating=str(cert.rating)
234: for fleetconfig in fleetconfigs:
235: assert fleetconfig.cert==cert
236: configurations.append((
237: str(fleetconfig.division),fleetconfig.coname,rating,
238: ))
239: sample_boats_class.append(configurations)
240: classes_defaults_tab.extend(
241: [tuple(SPLITTER.split(s,1)) for s in classes_defaults_file]
242: )
243:
244: boater.boat_identifications_fleet_configurations_for_race(S1R1)
245:
246:
247:
248: def certified_boats_tab():
249: return sample_boats_tab
250:
251: def certified_boats_class(zipnum):
252: return sample_boats_class[zipnum]
253:
254: def certified_classes_defaults_tab():
255: return classes_defaults_tab
256:
257:
258:
259: boater=boatbase.BoatConfBase()
260:
261: def loadconf(boatfile):
262: try:
263: boater.load_hierarchy(boatfile)
264: except (IOError,EOFError,ValueError):
265: pass
266:
267: