swimstroke 0.1.2__py3-none-any.whl → 0.1.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/__main__.py CHANGED
@@ -1,11 +1,13 @@
1
1
  import sys
2
2
  from .helpers import load, populate_events_entries, populate_heats
3
3
  from .util import swimtimefmt
4
+ import logging
5
+ logging.basicConfig(level=logging.INFO)
4
6
 
5
7
  for filename in sys.argv[1:]:
6
8
  print(filename)
7
9
  meetinfo = load(filename)
8
- #print(repr(meetinfo.))
10
+ #print(repr(meetinfo.keys()))
9
11
 
10
12
  populate_events_entries(meetinfo)
11
13
  for event in meetinfo['events']:
swimstroke/hy3.py CHANGED
@@ -1,4 +1,6 @@
1
1
  from .util import *
2
+ import logging
3
+ logger = logging.getLogger(__name__)
2
4
 
3
5
  HY3_STROKE_CODES = {
4
6
  "A":"Freestyle",
@@ -50,7 +52,6 @@ def load(fo):
50
52
  teams = meetinfo['teams']
51
53
  swimmers = meetinfo['swimmers']
52
54
  entries = meetinfo['entries']
53
- rtypes = {}
54
55
  line = 0
55
56
  cur_swimmer = None
56
57
  cur_entry = None
@@ -118,7 +119,7 @@ def load(fo):
118
119
  distance = int(record[15:21].decode('latin'))
119
120
  event_gendercode = record[14:15].decode('latin')
120
121
  if event_gendercode not in HY3_EVENT_GENDER_CODES:
121
- print("unknown gender code",event_gendercode)
122
+ logger.warning("unknown gender code %s",event_gendercode)
122
123
  #print("distance",repr(record[67:71]))
123
124
  #print("event #",record[72:76])
124
125
  event_num_str = record[38:42].decode('latin').strip()
@@ -162,7 +163,18 @@ def load(fo):
162
163
  "swimmer_ids":[cur_swimmer['swimmer_id']],
163
164
  "relay":False,
164
165
  "dq":False,
166
+ "points":None,
167
+ "place":None,
168
+ "splits":None,
165
169
  }
170
+
171
+ points = record[62:68].decode('latin').strip()
172
+ if points:
173
+ points = float(points)
174
+ else:
175
+ points = None
176
+ cur_entry['points'] = points
177
+
166
178
  entries.append(cur_entry)
167
179
 
168
180
  elif rtype == b'E2': # continuation of an entry
@@ -184,7 +196,7 @@ def load(fo):
184
196
  if cur_entry['event_coursecode'] in HY3_EVENT_COURSE_CODES:
185
197
  cur_entry['event_course'] = HY3_EVENT_COURSE_CODES[cur_entry['event_coursecode']]
186
198
  else:
187
- print("no course?",record)
199
+ logger.warning("no course found? %s",repr(record))
188
200
 
189
201
  # results
190
202
  cur_entry['result_time'] = record[4:11].decode('latin').strip()
@@ -256,7 +268,18 @@ def load(fo):
256
268
  "teamname":relayname,
257
269
  "swimmer_codes":[],
258
270
  "dq":False,
271
+ "points":None,
272
+ "place":None,
273
+ "splits":None,
259
274
  }
275
+
276
+ points = record[62:68].decode('latin').strip()
277
+ if points:
278
+ points = float(points)
279
+ else:
280
+ points = None
281
+ cur_entry['points'] = points
282
+
260
283
  entries.append(cur_entry)
261
284
 
262
285
  elif rtype == b'F2':
@@ -280,7 +303,7 @@ def load(fo):
280
303
  if cur_entry['event_coursecode'] in HY3_EVENT_COURSE_CODES:
281
304
  cur_entry['event_course'] = HY3_EVENT_COURSE_CODES[cur_entry['event_coursecode']]
282
305
  else:
283
- print("no course?",record)
306
+ logger.warning("no course found in record? %s",repr(record))
284
307
 
285
308
  # results
286
309
  cur_entry['result_time'] = record[5:11].decode('latin').strip()
@@ -299,7 +322,7 @@ def load(fo):
299
322
  cur_entry['place'] = int(place,10)
300
323
 
301
324
  elif rtype == b'F3':
302
- # load swimmers (could be more or less than 4! FIXME)
325
+ # load swimmers for the relay
303
326
  swimmercodes = []
304
327
  for swimmerposn in [4,17,30,43,56,69,82,95]:
305
328
  swimmercode = record[swimmerposn:swimmerposn+SWIMMER_CODE_LENGTH].decode('latin').lower()
@@ -307,11 +330,19 @@ def load(fo):
307
330
  swimmercodes.append(swimmercode)
308
331
  cur_entry['swimmer_codes'] = swimmercodes
309
332
 
310
- if rtype not in rtypes:
311
- rtypes[rtype]=0
312
- rtypes[rtype] = rtypes[rtype]+1
333
+ elif rtype == b'G1':
334
+ if cur_entry['splits'] is None:
335
+ cur_entry['splits'] = []
336
+ for startidx in range(3,112,11):
337
+ laps = record[startidx:startidx+2].decode('latin').strip()
338
+ if not laps:
339
+ break # no more splits
340
+ laps = int(laps)
341
+ splittime = record[startidx+2:startidx+10].decode('latin').strip()
342
+ splittime = int(splittime.replace('.',''))*10 # convert to ms
343
+ cur_entry['splits'].append((laps*25,splittime))
313
344
  except:
314
- print("exception on line",line)
345
+ logger.exception("exception on line %d data %s", line, repr(record))
315
346
  raise
316
347
 
317
348
  # Make a mapping for all entries to swimmer IDs (which are more unique and useful than the swimmer codes)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: swimstroke
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  License-File: LICENSE
5
5
  Requires-Dist: PyYAML >=6.0.1
6
6
 
@@ -1,14 +1,14 @@
1
1
  swimstroke/__init__.py,sha256=HyRSzghNy1qExTdycvl7MsVvwQ7vi3FtqUQbobhepRo,78
2
- swimstroke/__main__.py,sha256=V5TQxvoArXuLENnkxFM0LWP98cZNhhAm65Rs-Fd88NU,1151
2
+ swimstroke/__main__.py,sha256=d0ln2BGuqyjDIB2OOmZEA4lOjPAjHARuzuo1_WomNZU,1212
3
3
  swimstroke/ev3.py,sha256=Ma1TsRQAop7wQNoeRBdKBZuQyuRpq08OYzdS7dr_llI,3579
4
4
  swimstroke/helpers.py,sha256=QA_GTUqVM7mYa_-n33e2AymBv76faV9_IGsNsv78GPw,6523
5
- swimstroke/hy3.py,sha256=sunAAKuQV-uTZqbcRgI4jZwNlUMqyTLQe55k_Ct3TbU,14205
5
+ swimstroke/hy3.py,sha256=KwhRFHS0T81NrvWF22ek9kdiCWbN4bHJViPqVIV4HO8,15500
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=KEZcsiMsq7TtWyxzZ06dzSm-oXJbipfKOybNNPmK8xE,6900
10
- swimstroke-0.1.2.dist-info/LICENSE,sha256=ua_EyrQ3shMEJAhfgGjSeK_mFf6AIT-QiFG2lQfsntY,1103
11
- swimstroke-0.1.2.dist-info/METADATA,sha256=VCZtKjZXHfVM-1RdvATw5nYEReRZz3wG-VkXM4RF_N4,107
12
- swimstroke-0.1.2.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
13
- swimstroke-0.1.2.dist-info/top_level.txt,sha256=C15CTf7t6T4k83ycljKbwYVziBgz5vqOBEYdK8Y6FfY,11
14
- swimstroke-0.1.2.dist-info/RECORD,,
10
+ swimstroke-0.1.3.dist-info/LICENSE,sha256=ua_EyrQ3shMEJAhfgGjSeK_mFf6AIT-QiFG2lQfsntY,1103
11
+ swimstroke-0.1.3.dist-info/METADATA,sha256=66Ae9c2E2yBYG4tbRiEGpy6vhDgOmY1p2bjASjuqvA8,107
12
+ swimstroke-0.1.3.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91
13
+ swimstroke-0.1.3.dist-info/top_level.txt,sha256=C15CTf7t6T4k83ycljKbwYVziBgz5vqOBEYdK8Y6FfY,11
14
+ swimstroke-0.1.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.3)
2
+ Generator: setuptools (70.1.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5