swimstroke 0.1.5__py3-none-any.whl → 0.1.6__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 +6 -2
- swimstroke/hy3.py +22 -0
- swimstroke-0.1.6.dist-info/METADATA +6 -0
- {swimstroke-0.1.5.dist-info → swimstroke-0.1.6.dist-info}/RECORD +7 -7
- {swimstroke-0.1.5.dist-info → swimstroke-0.1.6.dist-info}/WHEEL +1 -1
- swimstroke-0.1.5.dist-info/METADATA +0 -6
- {swimstroke-0.1.5.dist-info → swimstroke-0.1.6.dist-info/licenses}/LICENSE +0 -0
- {swimstroke-0.1.5.dist-info → swimstroke-0.1.6.dist-info}/top_level.txt +0 -0
swimstroke/helpers.py
CHANGED
|
@@ -52,8 +52,10 @@ def _event_key_from_event(event):
|
|
|
52
52
|
event_prefix="A"
|
|
53
53
|
elif event['type']=='Prelim':
|
|
54
54
|
event_prefix="B"
|
|
55
|
-
elif event['type']==
|
|
55
|
+
elif event['type']=='Semi':
|
|
56
56
|
event_prefix="C"
|
|
57
|
+
elif event['type']=="Final":
|
|
58
|
+
event_prefix="D"
|
|
57
59
|
|
|
58
60
|
# pad some 0s on the event_str to make a lexicographic sort possible
|
|
59
61
|
event_str = event['index']
|
|
@@ -68,8 +70,10 @@ def _event_key_from_entry(entry):
|
|
|
68
70
|
event_prefix="A"
|
|
69
71
|
elif entry['event_type']=='Prelim':
|
|
70
72
|
event_prefix="B"
|
|
71
|
-
elif entry['event_type']=="
|
|
73
|
+
elif entry['event_type']=="Semi":
|
|
72
74
|
event_prefix="C"
|
|
75
|
+
elif entry['event_type']=="Final":
|
|
76
|
+
event_prefix="D"
|
|
73
77
|
|
|
74
78
|
# pad some 0s on the event_str to make a lexicographic sort possible
|
|
75
79
|
event_str = entry['event_index']
|
swimstroke/hy3.py
CHANGED
|
@@ -35,6 +35,7 @@ HY3_EVENT_COURSE_CODES = {
|
|
|
35
35
|
}
|
|
36
36
|
HY3_EVENT_TYPE_CODES = {
|
|
37
37
|
"P":"Prelim",
|
|
38
|
+
"S":"Semi",
|
|
38
39
|
"F":"Final",
|
|
39
40
|
}
|
|
40
41
|
|
|
@@ -58,6 +59,7 @@ def load(fo):
|
|
|
58
59
|
cur_team = None
|
|
59
60
|
_swimmer_code_to_ids = {}
|
|
60
61
|
_team_short_names = set()
|
|
62
|
+
already_e2_submitted = False
|
|
61
63
|
while ((record := fo.read(132))):
|
|
62
64
|
line += 1
|
|
63
65
|
try:
|
|
@@ -114,6 +116,8 @@ def load(fo):
|
|
|
114
116
|
_swimmer_code_to_ids[swimmer_code] = swimmer_id
|
|
115
117
|
|
|
116
118
|
elif rtype == b'E1': # individual entry record
|
|
119
|
+
already_e2_submitted = False
|
|
120
|
+
|
|
117
121
|
strokecode = record[21:22].decode('latin')
|
|
118
122
|
#print("stroke",HY3_STROKE_CODES[strokecode])
|
|
119
123
|
distance = int(record[15:21].decode('latin'))
|
|
@@ -151,6 +155,7 @@ def load(fo):
|
|
|
151
155
|
"event_gender":HY3_EVENT_GENDER_CODES[event_gendercode] if event_gendercode in HY3_EVENT_GENDER_CODES else "Unknown",
|
|
152
156
|
"event_course":None,
|
|
153
157
|
"event_coursecode":None,
|
|
158
|
+
"event_typecode":None,
|
|
154
159
|
"event_type":"Final", # is this the correct default?
|
|
155
160
|
"event_date":None,
|
|
156
161
|
"heat":None,
|
|
@@ -165,6 +170,8 @@ def load(fo):
|
|
|
165
170
|
"seed_time_ms":seed_time_ms,
|
|
166
171
|
"seed_time_str":swimtimefmt(seed_time_ms),
|
|
167
172
|
"swimmer_ids":[cur_swimmer['swimmer_id']],
|
|
173
|
+
"result_time_ms":None,
|
|
174
|
+
"result_time_str":None,
|
|
168
175
|
"relay":False,
|
|
169
176
|
"dq":False,
|
|
170
177
|
"points":None,
|
|
@@ -182,8 +189,17 @@ def load(fo):
|
|
|
182
189
|
entries.append(cur_entry)
|
|
183
190
|
|
|
184
191
|
elif rtype == b'E2': # continuation of an entry
|
|
192
|
+
# there can be multiple E2 lines per E1 which are multiple entries in each event (usually for prelim,semis,finals)
|
|
193
|
+
# we should probably make the seed time for semis be the prelim result time. and the result time for finals be the
|
|
194
|
+
# semis result time. TODO!
|
|
195
|
+
|
|
196
|
+
if already_e2_submitted: # we need to duplicate the entry and add it to the list
|
|
197
|
+
cur_entry = cur_entry.copy()
|
|
198
|
+
entries.append(cur_entry)
|
|
199
|
+
already_e2_submitted = True
|
|
185
200
|
|
|
186
201
|
event_type = record[2:3].decode('latin').strip()
|
|
202
|
+
cur_entry['event_typecode'] = event_type
|
|
187
203
|
if event_type in HY3_EVENT_TYPE_CODES:
|
|
188
204
|
cur_entry['event_type'] = HY3_EVENT_TYPE_CODES[event_type]
|
|
189
205
|
else:
|
|
@@ -260,6 +276,8 @@ def load(fo):
|
|
|
260
276
|
"event_gender":HY3_EVENT_GENDER_CODES[event_gendercode] if event_gendercode in HY3_EVENT_GENDER_CODES else "Unknown",
|
|
261
277
|
"event_course":None,
|
|
262
278
|
"event_coursecode":None,
|
|
279
|
+
"event_typecode":None,
|
|
280
|
+
"event_type":"Final", # is this the correct default?
|
|
263
281
|
"stroke":HY3_STROKE_CODES[strokecode],
|
|
264
282
|
"strokeshort":HY3_STROKE_CODES_SHORT[strokecode],
|
|
265
283
|
"distance":distance,
|
|
@@ -268,6 +286,8 @@ def load(fo):
|
|
|
268
286
|
"seed_coursecode":seed_coursecode,
|
|
269
287
|
"seed_time_ms":seed_time_ms,
|
|
270
288
|
"seed_time_str":swimtimefmt(seed_time_ms),
|
|
289
|
+
"result_time_ms":None,
|
|
290
|
+
"result_time_str":None,
|
|
271
291
|
"relay":True,
|
|
272
292
|
"teamname":relayname,
|
|
273
293
|
"swimmer_codes":[],
|
|
@@ -287,7 +307,9 @@ def load(fo):
|
|
|
287
307
|
entries.append(cur_entry)
|
|
288
308
|
|
|
289
309
|
elif rtype == b'F2':
|
|
310
|
+
# TODO: update this in case relays have prelims, semis, final (as per E2 records above)
|
|
290
311
|
event_type = record[2:3].decode('latin').strip()
|
|
312
|
+
cur_entry['event_typecode'] = event_type
|
|
291
313
|
if event_type in HY3_EVENT_TYPE_CODES:
|
|
292
314
|
cur_entry['event_type'] = HY3_EVENT_TYPE_CODES[event_type]
|
|
293
315
|
else:
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
swimstroke/__init__.py,sha256=HyRSzghNy1qExTdycvl7MsVvwQ7vi3FtqUQbobhepRo,78
|
|
2
2
|
swimstroke/__main__.py,sha256=d0ln2BGuqyjDIB2OOmZEA4lOjPAjHARuzuo1_WomNZU,1212
|
|
3
3
|
swimstroke/ev3.py,sha256=Ma1TsRQAop7wQNoeRBdKBZuQyuRpq08OYzdS7dr_llI,3579
|
|
4
|
-
swimstroke/helpers.py,sha256=
|
|
5
|
-
swimstroke/hy3.py,sha256=
|
|
4
|
+
swimstroke/helpers.py,sha256=0yCYNSnnr_DBHU3ROTFHiEkb2q-OXO6iRe-dFE0G7iI,6598
|
|
5
|
+
swimstroke/hy3.py,sha256=op3D7BTKGDKTjx54l3Rf2-bsh45Y-TLbS2_NdshfbQU,16855
|
|
6
6
|
swimstroke/scb.py,sha256=ow-T4Ou6jC7PQdphARncM7T0hIzj20prD-C9JVBU6Y8,4307
|
|
7
7
|
swimstroke/sd3.py,sha256=JMYeTOk66YJInRReB3KMFyB1JKnX69sCHdC2_Ey2ypg,47
|
|
8
8
|
swimstroke/util.py,sha256=5Xfvfngv9T47U_7gddiPw80pHtTAlhomW40JUGDS2iI,1244
|
|
9
9
|
swimstroke/yaml.py,sha256=4qPS58tBF5u2VOn59o-Z2q5xzfpBOw_APZ2ybMrrxKw,6855
|
|
10
|
-
swimstroke-0.1.
|
|
11
|
-
swimstroke-0.1.
|
|
12
|
-
swimstroke-0.1.
|
|
13
|
-
swimstroke-0.1.
|
|
14
|
-
swimstroke-0.1.
|
|
10
|
+
swimstroke-0.1.6.dist-info/licenses/LICENSE,sha256=ua_EyrQ3shMEJAhfgGjSeK_mFf6AIT-QiFG2lQfsntY,1103
|
|
11
|
+
swimstroke-0.1.6.dist-info/METADATA,sha256=J3zOeyFyGESqmUGeXMmSez0gflTNA4f_BwO-tdAiVBU,127
|
|
12
|
+
swimstroke-0.1.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
13
|
+
swimstroke-0.1.6.dist-info/top_level.txt,sha256=C15CTf7t6T4k83ycljKbwYVziBgz5vqOBEYdK8Y6FfY,11
|
|
14
|
+
swimstroke-0.1.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|