Bytta tilbake til to lister for strekktider istedet for dictionary
This commit is contained in:
parent
0160ffaec8
commit
b5160008d7
5
cli.py
5
cli.py
@ -83,15 +83,14 @@ def print_class_splits(runners, o_class):
|
|||||||
runners_ok.sort(key=lambda x: x.totaltime())
|
runners_ok.sort(key=lambda x: x.totaltime())
|
||||||
pos = 0
|
pos = 0
|
||||||
for i in runners_ok:
|
for i in runners_ok:
|
||||||
splits = i.res_splits().values()
|
splits = i.res_splits()
|
||||||
pos += 1
|
pos += 1
|
||||||
list_string = map(lambda x:str(datetime.timedelta(seconds=x)), splits)
|
list_string = map(lambda x:str(datetime.timedelta(seconds=x)), splits)
|
||||||
table.add_row(str(pos)+'.', i.fullname(), i.club, *list_string)
|
table.add_row(str(pos)+'.', i.fullname(), i.club, *list_string)
|
||||||
for i in runners_dsq:
|
for i in runners_dsq:
|
||||||
splits = i.res_splits().values()
|
splits = i.res_splits()
|
||||||
list_string = map(lambda x:str(datetime.timedelta(seconds=x)), splits)
|
list_string = map(lambda x:str(datetime.timedelta(seconds=x)), splits)
|
||||||
table.add_row('Dsq', i.fullname(), i.club, *list_string)
|
table.add_row('Dsq', i.fullname(), i.club, *list_string)
|
||||||
|
|
||||||
console = Console()
|
console = Console()
|
||||||
console.print(table)
|
console.print(table)
|
||||||
def print_o_classes(class_list):
|
def print_o_classes(class_list):
|
||||||
|
44
otime.py
44
otime.py
@ -85,7 +85,7 @@ class event:
|
|||||||
#</Organisation>
|
#</Organisation>
|
||||||
#<Result>
|
#<Result>
|
||||||
result = ET.SubElement(person_result, 'Result')
|
result = ET.SubElement(person_result, 'Result')
|
||||||
if hasattr(n,'card_r') and len(n.card_r.punches) > 2:
|
if hasattr(n,'card_r') and len(n.card_r.splits) > 2:
|
||||||
xml_child(result, 'StartTime', n.card_r.s_time.isoformat())
|
xml_child(result, 'StartTime', n.card_r.s_time.isoformat())
|
||||||
xml_child(result, 'FinishTime', n.card_r.f_time.isoformat())
|
xml_child(result, 'FinishTime', n.card_r.f_time.isoformat())
|
||||||
xml_child(result, 'Time', n.totaltime())
|
xml_child(result, 'Time', n.totaltime())
|
||||||
@ -96,7 +96,7 @@ class event:
|
|||||||
xml_child(result, 'Position', n.rank(self.runners))
|
xml_child(result, 'Position', n.rank(self.runners))
|
||||||
xml_child(result, 'Status', n.status())
|
xml_child(result, 'Status', n.status())
|
||||||
#<SplitTime>
|
#<SplitTime>
|
||||||
for code,split in n.res_splits().items():
|
for code,split in zip(n.card_r.controls,n.card_r.splits):
|
||||||
st = ET.SubElement(result, 'SplitTime')
|
st = ET.SubElement(result, 'SplitTime')
|
||||||
xml_child(st, 'ControlCode', code)
|
xml_child(st, 'ControlCode', code)
|
||||||
xml_child(st, 'Time', split)
|
xml_child(st, 'Time', split)
|
||||||
@ -106,7 +106,7 @@ class event:
|
|||||||
for code in n.o_class.course.codes:
|
for code in n.o_class.course.codes:
|
||||||
st = ET.SubElement(result, 'SplitTime')
|
st = ET.SubElement(result, 'SplitTime')
|
||||||
xml_child(st, 'ControlCode', code)
|
xml_child(st, 'ControlCode', code)
|
||||||
for control,split in n.card_r.punches.items():
|
for control,split in zip(n.card_r.controls,n.card_r.splits):
|
||||||
if code == control:
|
if code == control:
|
||||||
xml_child(st, 'Time', split)
|
xml_child(st, 'Time', split)
|
||||||
else:
|
else:
|
||||||
@ -132,13 +132,14 @@ class runner:
|
|||||||
return '{} {}'.format(self.first, self.last)
|
return '{} {}'.format(self.first, self.last)
|
||||||
def check_codes(self):
|
def check_codes(self):
|
||||||
# Returns False if not ok and touple if ok
|
# Returns False if not ok and touple if ok
|
||||||
return contains(self.o_class.course.codes, list(self.card_r.punches.keys()))
|
return contains(self.o_class.course.codes, list(self.card_r.controls))
|
||||||
def totaltime(self):
|
def totaltime(self):
|
||||||
f_control = self.o_class.course.codes[-1]
|
f_control = self.o_class.course.codes[-1]
|
||||||
try:
|
try:
|
||||||
return self.card_r.punches[f_control]
|
index = self.card_r.controls.index(f_control)
|
||||||
|
return self.card_r.splits[index]
|
||||||
except:
|
except:
|
||||||
return list(self.card_r.punches.values())[-1]
|
return self.card_r.splits[-1]
|
||||||
|
|
||||||
def status(self):
|
def status(self):
|
||||||
if hasattr(self, 'card_r') == False:
|
if hasattr(self, 'card_r') == False:
|
||||||
@ -151,17 +152,19 @@ class runner:
|
|||||||
c_ranked = rank_runners(allrunners, self.o_class)
|
c_ranked = rank_runners(allrunners, self.o_class)
|
||||||
return c_ranked.index(self) + 1
|
return c_ranked.index(self) + 1
|
||||||
def res_splits(self):
|
def res_splits(self):
|
||||||
punches = self.card_r.punches
|
splits_cpy = self.card_r.splits.copy()
|
||||||
punches_ret = punches.copy()
|
for control in self.card_r.controls:
|
||||||
for key in punches.keys():
|
if control not in self.o_class.course.codes:
|
||||||
if key not in self.o_class.course.codes:
|
index = self.card_r.controls.index(control)
|
||||||
punches_ret.pop(key)
|
split = self.card_r.splits[index]
|
||||||
return punches_ret
|
splits_cpy.remove(split)
|
||||||
|
return splits_cpy
|
||||||
|
|
||||||
class card_punch:
|
class card_punch:
|
||||||
def __init__(self, card, punches, s_time, f_time):
|
def __init__(self, card, controls, splits, s_time, f_time):
|
||||||
self.card = card
|
self.card = card
|
||||||
self.punches = punches
|
self.controls = controls
|
||||||
|
self.splits = splits
|
||||||
self.s_time = s_time
|
self.s_time = s_time
|
||||||
self.f_time = f_time
|
self.f_time = f_time
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
@ -184,11 +187,18 @@ class card_punch:
|
|||||||
splits = []
|
splits = []
|
||||||
# postkodene kommer på oddetall fra og med den 11. De blir hevet inn i controls
|
# postkodene kommer på oddetall fra og med den 11. De blir hevet inn i controls
|
||||||
for item in row[11::2]:
|
for item in row[11::2]:
|
||||||
if item != '000' and item != '0000' and item != '00000':
|
if item == '250':
|
||||||
|
controls.append(int(item))
|
||||||
|
break
|
||||||
|
elif item == '000':
|
||||||
|
break
|
||||||
|
else:
|
||||||
controls.append(int(item))
|
controls.append(int(item))
|
||||||
# strekktidene kommer på partall fra og med den 12. De blir hevet i splits.
|
# strekktidene kommer på partall fra og med den 12. De blir hevet i splits.
|
||||||
for item in row[12::2]:
|
for item in row[12::2]:
|
||||||
if item != '000' and item != '0000' and item != '00000':
|
if item == '00000':
|
||||||
|
break
|
||||||
|
else:
|
||||||
splits.append(int(item))
|
splits.append(int(item))
|
||||||
# looper gjonnom løperobjektene og legger til poster og strekktider + start og sluttid
|
# looper gjonnom løperobjektene og legger til poster og strekktider + start og sluttid
|
||||||
# usikker på om dette er riktig klokeslett
|
# usikker på om dette er riktig klokeslett
|
||||||
@ -204,7 +214,7 @@ class card_punch:
|
|||||||
s_time = f_time - datetime.timedelta(seconds = splits[-2])
|
s_time = f_time - datetime.timedelta(seconds = splits[-2])
|
||||||
else:
|
else:
|
||||||
s_time = f_time
|
s_time = f_time
|
||||||
cards.append(card_punch(int(row[6]), dict(zip(controls, splits)), s_time, f_time))
|
cards.append(card_punch(int(row[6]), controls, splits, s_time, f_time))
|
||||||
return cards
|
return cards
|
||||||
class course:
|
class course:
|
||||||
def __init__(self, name, codes):
|
def __init__(self, name, codes):
|
||||||
|
Loading…
Reference in New Issue
Block a user