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 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']=="Final":
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']=="Final":
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:
@@ -0,0 +1,6 @@
1
+ Metadata-Version: 2.4
2
+ Name: swimstroke
3
+ Version: 0.1.6
4
+ License-File: LICENSE
5
+ Requires-Dist: PyYAML>=6.0.1
6
+ Dynamic: license-file
@@ -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=v74U9SnSVhrvYdJLZO0kqZcPJHruKo8eiJaZRtXh0uc,6478
5
- swimstroke/hy3.py,sha256=_nQfsv94TEGrQWQN1IeusWo13AfhJih0xZyQuYgWI2Y,15667
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.5.dist-info/LICENSE,sha256=ua_EyrQ3shMEJAhfgGjSeK_mFf6AIT-QiFG2lQfsntY,1103
11
- swimstroke-0.1.5.dist-info/METADATA,sha256=RQEpoOMg2wk4z4r22Fhst3314HLCSDSqpn8kQvOgR6k,107
12
- swimstroke-0.1.5.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
13
- swimstroke-0.1.5.dist-info/top_level.txt,sha256=C15CTf7t6T4k83ycljKbwYVziBgz5vqOBEYdK8Y6FfY,11
14
- swimstroke-0.1.5.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,6 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: swimstroke
3
- Version: 0.1.5
4
- License-File: LICENSE
5
- Requires-Dist: PyYAML >=6.0.1
6
-