110 def get_all_periods(cls):
111 if cls.all_periods is not None:
112 return cls.all_periods
113 cls.all_periods = []
114 p = re.compile(r"(?P<periodletter>[A-Za-z]+)(?P<periodnumber>\d+)?$")
115 try:
116 result = cls.get_periods(0, 0)
117 for period, projectName in result:
118 year = int(projectName[4:6])
119 m = p.match(period)
120 if not m:
121 print ("Period '%s'does not match pattern [A-Za-z]+\\d+" % period)
122 continue
123
124 period_letter = m.group('periodletter')
125 period_number = int(m.group('periodnumber')) if m.group('periodnumber') else 0
126 if len(period_letter)!=1:
127 pc = 0
128 else:
129 pc = 10000*year + 100*(ord(period_letter.upper())-65) + period_number
130
131 cls.all_periods += [ ((year, period, pc, projectName), projectName+".period" + period) ]
132
133 cls.all_periods.
sort()
134 except Exception:
135 import traceback
136 traceback.print_exc()
137 pass
138 return cls.all_periods
139
140
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.