PyScore

01: # -*- python -*-
02: ###### enumstat.py ###### python package PyScore.standing module enumstat ######
03: 
04: # PyScore
05: # a race scoring programme
06: # written by Matt Draisey
07: # 2004 April 6
08: 
09: reloadables=[]
10: 
11: ###### enumstat.py ###### python package PyScore.standing module enumstat ######
12: 
13: import re
14: from relational import base
15: 
16: ######## ######## working division/fleet enumerations ######## ########
17: 
18: class DivisionEnum(base.Enumeration):
19:     enum=base.Enum(
20:         "PHRF A","PHRF B","PHRF C","JOG A","JOG B","Shark",
21:         refilter=[
22:             (5,re.compile(r"Shark",re.I)),
23:             (4,re.compile(r"JOG B",re.I)),
24:             (3,re.compile(r"JOG(?: A)?",re.I)),
25:             (2,re.compile(r"PHRF C",re.I)),
26:             (1,re.compile(r"PHRF B",re.I)),
27:             (0,re.compile(r"PHRF(?: A)?",re.I)),
28:         ],
29:     )
30:     enum.create_dict()
31: DivisionEnum.PHRFA=DivisionEnum("PHRF A")
32: DivisionEnum.PHRFB=DivisionEnum("PHRF B")
33: DivisionEnum.PHRFC=DivisionEnum("PHRF C")
34: DivisionEnum.JOGA=DivisionEnum("JOG A")
35: DivisionEnum.JOGB=DivisionEnum("JOG B")
36: DivisionEnum.SHARK=DivisionEnum("Shark")
37: DivisionEnum.SHARK.levelracing=True
38: DivisionEnum.SHARK.levelrating=228
39: DivisionEnum.UNKNOWN=DivisionEnum("Unknown")
40: 
41: class FleetEnum(base.Enumeration):
42:     enum=base.Enum(
43:         "Series","Series Silver","Series Bronze","Casual","?",
44:         refilter=[
45:             (3,re.compile(r"Casual(?: .*)?")),
46:             (2,re.compile(
47:                 r"(?:Spring |Summer |Fall )?Series Bronze(?: .*)?",re.I)),
48:             (1,re.compile(
49:                 r"(?:Spring |Summer |Fall )?Series Silver(?: .*)?",re.I)),
50:             (0,re.compile(r"(?:Spring |Summer |Fall )?Series(?: .*)?",re.I)),
51:             (4,re.compile(r"")),
52:         ],
53:     )
54:     enum.create_dict()
55: FleetEnum.SERIES=FleetEnum("Series")
56: FleetEnum.SILVER=FleetEnum("Series Silver")
57: FleetEnum.BRONZE=FleetEnum("Series Bronze")
58: FleetEnum.CASUAL=FleetEnum("Casual")
59: FleetEnum.UNREGISTERED=FleetEnum("Unregistered")
60: 
61: for f in [FleetEnum.SERIES,FleetEnum.SILVER,FleetEnum.BRONZE]: f.inseries=True
62: FleetEnum.SERIES.abbrev=""
63: FleetEnum.SILVER.abbrev="Silver"
64: FleetEnum.BRONZE.abbrev="Bronze"
65: 
66: ###### enumstat.py ###### python package PyScore.standing module enumstat ######