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 +3 -1
- swimstroke/hy3.py +40 -9
- {swimstroke-0.1.2.dist-info → swimstroke-0.1.3.dist-info}/METADATA +1 -1
- {swimstroke-0.1.2.dist-info → swimstroke-0.1.3.dist-info}/RECORD +7 -7
- {swimstroke-0.1.2.dist-info → swimstroke-0.1.3.dist-info}/WHEEL +1 -1
- {swimstroke-0.1.2.dist-info → swimstroke-0.1.3.dist-info}/LICENSE +0 -0
- {swimstroke-0.1.2.dist-info → swimstroke-0.1.3.dist-info}/top_level.txt +0 -0
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
311
|
-
|
|
312
|
-
|
|
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
|
-
|
|
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,14 +1,14 @@
|
|
|
1
1
|
swimstroke/__init__.py,sha256=HyRSzghNy1qExTdycvl7MsVvwQ7vi3FtqUQbobhepRo,78
|
|
2
|
-
swimstroke/__main__.py,sha256=
|
|
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=
|
|
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.
|
|
11
|
-
swimstroke-0.1.
|
|
12
|
-
swimstroke-0.1.
|
|
13
|
-
swimstroke-0.1.
|
|
14
|
-
swimstroke-0.1.
|
|
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,,
|
|
File without changes
|
|
File without changes
|