swimstroke 0.0.2__py3-none-any.whl → 0.0.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- swimstroke/helpers.py +72 -48
- {swimstroke-0.0.2.dist-info → swimstroke-0.0.3.dist-info}/METADATA +1 -1
- {swimstroke-0.0.2.dist-info → swimstroke-0.0.3.dist-info}/RECORD +6 -6
- {swimstroke-0.0.2.dist-info → swimstroke-0.0.3.dist-info}/LICENSE +0 -0
- {swimstroke-0.0.2.dist-info → swimstroke-0.0.3.dist-info}/WHEEL +0 -0
- {swimstroke-0.0.2.dist-info → swimstroke-0.0.3.dist-info}/top_level.txt +0 -0
swimstroke/helpers.py
CHANGED
|
@@ -70,56 +70,80 @@ def _event_key_from_entry(entry):
|
|
|
70
70
|
return event_prefix+"-"+event_str
|
|
71
71
|
|
|
72
72
|
def get_events(meetinfo):
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
73
|
+
if 'teams' in meetinfo:
|
|
74
|
+
teams_by_short_name = {}
|
|
75
|
+
events_by_key = {}
|
|
76
|
+
for team in meetinfo['teams']:
|
|
77
|
+
swimmers_by_code = {}
|
|
78
|
+
teams_by_short_name[team['short_name']] = team
|
|
79
|
+
for swimmer in team['swimmers']:
|
|
80
|
+
assert swimmer['swimmer_code'] not in swimmers_by_code
|
|
81
|
+
swimmers_by_code[swimmer['swimmer_code']] = swimmer
|
|
82
|
+
for entry in team['entries']:
|
|
83
|
+
event_key = _event_key_from_entry(entry)
|
|
84
|
+
if event_key not in events_by_key:
|
|
85
|
+
events_by_key[event_key] = {
|
|
86
|
+
"event":entry['event_str'],
|
|
87
|
+
"event_number":int(entry['event']),
|
|
88
|
+
"date":entry['event_date'],
|
|
89
|
+
"gender":entry['event_gender'],
|
|
90
|
+
"gendercode":entry['event_gendercode'],
|
|
91
|
+
"course":entry['event_course'],
|
|
92
|
+
"coursecode":entry['event_coursecode'],
|
|
93
|
+
"stroke":entry['stroke'],
|
|
94
|
+
"strokeshort":entry['strokeshort'],
|
|
95
|
+
"distance":entry['distance'],
|
|
96
|
+
"relay":entry['relay'],
|
|
97
|
+
"type":entry['event_type'],
|
|
98
|
+
"entries":[],
|
|
99
|
+
"num_heats":None
|
|
100
|
+
}
|
|
101
|
+
event = events_by_key[event_key]
|
|
102
|
+
name = "%s %d %s"%(event['gender'],event['distance'],event['strokeshort'])
|
|
103
|
+
if entry['relay']:
|
|
104
|
+
name += " Relay"
|
|
105
|
+
event['name'] = name
|
|
106
|
+
|
|
107
|
+
entry = entry.copy()
|
|
108
|
+
entry['swimmers'] = [swimmers_by_code[s] for s in entry['swimmer_codes']]
|
|
105
109
|
|
|
106
|
-
|
|
107
|
-
|
|
110
|
+
events_by_key[event_key]['entries'].append(entry)
|
|
111
|
+
if entry['heat'] is not None:
|
|
112
|
+
if events_by_key[event_key]['num_heats'] is None or \
|
|
113
|
+
events_by_key[event_key]['num_heats']<entry['heat_number']:
|
|
114
|
+
events_by_key[event_key]['num_heats'] = entry['heat_number']
|
|
108
115
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
116
|
+
return [events_by_key[event_key] for event_key in sorted([event_key for event_key in events_by_key.keys()])]
|
|
117
|
+
elif 'events' in meetinfo:
|
|
118
|
+
return meetinfo['events']
|
|
119
|
+
else:
|
|
120
|
+
raise ValueError("meetinfo doesn't have entries or events keys")
|
|
114
121
|
|
|
115
|
-
|
|
116
|
-
|
|
122
|
+
def populate_heats(event):
|
|
123
|
+
event['heats'] = []
|
|
124
|
+
heats_by_key = {}
|
|
125
|
+
for entry in event['entries']:
|
|
126
|
+
if entry['heat'] is not None:
|
|
127
|
+
if entry['heat_number'] not in heats_by_key:
|
|
128
|
+
heats_by_key[entry['heat_number']] = {
|
|
129
|
+
"heat":entry['heat'],
|
|
130
|
+
"heat_number":entry['heat_number'],
|
|
131
|
+
"entries":[]
|
|
132
|
+
}
|
|
133
|
+
heats_by_key[entry['heat_number']]['entries'].append(entry)
|
|
134
|
+
for heat_num in sorted([hnum for hnum in heats_by_key.keys()]):
|
|
135
|
+
heats_by_key[heat_num]['entries'].sort(key=lambda e:e['lane'])
|
|
136
|
+
event['heats'].append(heats_by_key[heat_num])
|
|
137
|
+
return event
|
|
117
138
|
|
|
118
139
|
def get_lanes(meetinfo):
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
for
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
140
|
+
if 'teams' in meetinfo:
|
|
141
|
+
lanes = []
|
|
142
|
+
for team in meetinfo['teams']:
|
|
143
|
+
for entry in team['entries']:
|
|
144
|
+
if entry['lane'] is not None and entry['lane'] not in lanes:
|
|
145
|
+
lanes.append(entry['lane'])
|
|
146
|
+
lanes.sort()
|
|
147
|
+
return lanes
|
|
148
|
+
else:
|
|
149
|
+
raise ValueError("meetinfo doesn't have entries")
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
swimstroke/__init__.py,sha256=HTxCVaw1TLgpHMH8guB3hHYQ80cX6_fSEoPT_hz2Y8w,23
|
|
2
2
|
swimstroke/__main__.py,sha256=XtPUjZM3ZTd_fEMmgZBqFlkp65eqXXcVWTXmQR9PF_A,657
|
|
3
3
|
swimstroke/ev3.py,sha256=P5IkzYCqAH3E5ZzhJMyFztxo0PE4_-wmwIyOsDkagws,3793
|
|
4
|
-
swimstroke/helpers.py,sha256=
|
|
4
|
+
swimstroke/helpers.py,sha256=HgdD5bPzPZXHRWQANyha_n0oloZFPpjZ4pccd_4ICDE,5945
|
|
5
5
|
swimstroke/hy3.py,sha256=Exs_cjsISZqOGUBaowhOQrspL_lcGvcWbESQ6CI8ZZc,13053
|
|
6
6
|
swimstroke/scb.py,sha256=cC-rhzRvKpq60ux7MHm0ylj16qc21ZqhUBLQqxdJMQI,86
|
|
7
7
|
swimstroke/sd3.py,sha256=JMYeTOk66YJInRReB3KMFyB1JKnX69sCHdC2_Ey2ypg,47
|
|
8
8
|
swimstroke/util.py,sha256=s7cBEfHsdbYuID3bH2bAnw72zYHC2A4LroSf8iTH74o,586
|
|
9
9
|
swimstroke/yaml.py,sha256=JMYeTOk66YJInRReB3KMFyB1JKnX69sCHdC2_Ey2ypg,47
|
|
10
|
-
swimstroke-0.0.
|
|
11
|
-
swimstroke-0.0.
|
|
12
|
-
swimstroke-0.0.
|
|
13
|
-
swimstroke-0.0.
|
|
14
|
-
swimstroke-0.0.
|
|
10
|
+
swimstroke-0.0.3.dist-info/LICENSE,sha256=ua_EyrQ3shMEJAhfgGjSeK_mFf6AIT-QiFG2lQfsntY,1103
|
|
11
|
+
swimstroke-0.0.3.dist-info/METADATA,sha256=WgM6E9-UJM8e95NVtSxzEAA6LjkIwmA6-lYvbBXkHBk,77
|
|
12
|
+
swimstroke-0.0.3.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
13
|
+
swimstroke-0.0.3.dist-info/top_level.txt,sha256=C15CTf7t6T4k83ycljKbwYVziBgz5vqOBEYdK8Y6FfY,11
|
|
14
|
+
swimstroke-0.0.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|