passing some tests on py3, all on py2
This commit is contained in:
@@ -1,574 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?><gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" creator="Oregon 400t" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd"><metadata><link href="http://www.garmin.com"><text>Garmin International</text></link><time>2016-05-20T15:41:26</time></metadata><trk><name>Export by rowingdata</name><trkseg> <trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:26+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:29.238150+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:32.148290+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:35.269000+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:38.152180+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:41.148270+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:44.148910+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:46.908250+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:49.819010+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:52.942510+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:55.639670+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:41:58.370000+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:01.188270+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:04.008300+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:06.888990+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:09.678900+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:12.469140+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:15.199010+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:17.963080+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:20.658340+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:23.538800+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:26.269790+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:28.848350+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:31.729550+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:34.398400+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:37.038360+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:39.499250+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:42.349070+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:45.079070+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:47.752890+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:50.452350+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:53.182630+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:55.789410+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:42:58.671890+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:01.338860+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:04.068490+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:06.862620+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:09.618500+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:12.379160+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:15.229200+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:17.963150+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:20.692490+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:23.628520+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:26.329210+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:29.148960+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:31.668570+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:34.490920+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:37.369250+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:40.189230+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:42.798860+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:45.708750+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:48.318590+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:51.199500+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:53.869290+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:56.572490+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:43:59.212410+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:01.912890+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:04.459350+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:07.249360+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:09.949930+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:12.619870+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:15.378800+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:18.049420+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:20.719440+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:23.298970+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:26.178820+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:28.669980+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:31.429270+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:34.042790+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:36.589070+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:39.412800+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:42.078870+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:44.783760+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:47.450710+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:50.149400+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:52.789720+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:55.429750+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:44:58.069700+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:00.742790+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:03.442700+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:06.139610+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:08.689490+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:11.479530+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:14.119610+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:16.792860+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:19.368950+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:22.158960+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:24.889580+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:27.558940+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:30.469760+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:33.259860+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:36.079590+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:38.899560+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:41.689980+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:44.568940+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:47.329670+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:50.149560+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:52.969660+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:55.879910+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:45:58.789690+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:01.729660+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:04.669610+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:07.549730+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:10.458930+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:13.488980+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:16.429320+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:19.519650+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:22.459630+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:25.338880+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:28.459530+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:31.401590+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:34.339560+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:37.309450+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:40.098920+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:43.039950+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:46.039490+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:48.979630+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:51.949590+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:54.709590+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:46:57.589710+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:00.503120+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:03.408950+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:06.323410+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:09.229670+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:12.198960+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:15.079930+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:17.989660+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:20.959680+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:23.869730+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:26.782970+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:29.688910+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:32.539570+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:35.449720+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:38.329080+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:41.148960+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:44.088880+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:47.150600+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:50.029750+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:52.998850+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:55.880360+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:47:58.789400+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:01.639760+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:04.492770+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:07.429530+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:10.373270+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:13.309500+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:16.279570+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:19.160740+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:21.948820+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:25.039520+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:27.949340+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:30.890880+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:33.648790+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:36.770050+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:39.499600+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:42.559140+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:45.439020+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:48.439810+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:51.379570+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:54.259600+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:48:57.139300+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:00.049550+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:02.838790+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:05.839540+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:08.749400+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:11.689540+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:14.538900+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:17.389440+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:20.058880+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:23.059530+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:25.880610+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:28.608730+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:31.582600+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:34.278700+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:37.068660+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:40.039460+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:42.889790+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:45.772580+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:48.708690+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:51.679450+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:54.499470+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:49:57.409440+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:50:00.439330+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:50:03.408680+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:50:06.378680+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:50:09.168860+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:50:12.229650+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:50:15.138650+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:50:18.049470+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:50:20.959460+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
<trkpt lat="0.0" lon="0.0">
|
|
||||||
<time>2016-05-20T13:50:23.242360+00:00</time>
|
|
||||||
</trkpt>
|
|
||||||
</trkseg></trk></gpx>
|
|
||||||
@@ -913,7 +913,7 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
|
|||||||
try:
|
try:
|
||||||
checks = row.check_consistency()
|
checks = row.check_consistency()
|
||||||
allchecks = 1
|
allchecks = 1
|
||||||
for key, value in checks.iteritems():
|
for key, value in checks.items():
|
||||||
if not value:
|
if not value:
|
||||||
allchecks = 0
|
allchecks = 0
|
||||||
if consistencychecks:
|
if consistencychecks:
|
||||||
@@ -2093,7 +2093,7 @@ def dataprep(rowdatadf, id=0, bands=True, barchart=True, otwpower=True,
|
|||||||
if rowdatadf.empty:
|
if rowdatadf.empty:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
rowdatadf.set_index([range(len(rowdatadf))], inplace=True)
|
#rowdatadf.set_index([range(len(rowdatadf))], inplace=True)
|
||||||
t = rowdatadf.loc[:, 'TimeStamp (sec)']
|
t = rowdatadf.loc[:, 'TimeStamp (sec)']
|
||||||
t = pd.Series(t - rowdatadf.loc[:, 'TimeStamp (sec)'].iloc[0])
|
t = pd.Series(t - rowdatadf.loc[:, 'TimeStamp (sec)'].iloc[0])
|
||||||
|
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ def getcp(dfgrouped,logarr):
|
|||||||
length = len(ww)
|
length = len(ww)
|
||||||
dt = []
|
dt = []
|
||||||
cpw = []
|
cpw = []
|
||||||
for i in xrange(length-2):
|
for i in range(length-2):
|
||||||
deltat,wmax = getmaxwattinterval(tt,ww,i)
|
deltat,wmax = getmaxwattinterval(tt,ww,i)
|
||||||
|
|
||||||
if not np.isnan(deltat) and not np.isnan(wmax):
|
if not np.isnan(deltat) and not np.isnan(wmax):
|
||||||
|
|||||||
@@ -246,9 +246,12 @@ def interactive_boxchart(datadf,fieldname,extratitle=''):
|
|||||||
|
|
||||||
return script,div
|
return script,div
|
||||||
|
|
||||||
import holoviews as hv
|
try:
|
||||||
hv.extension('bokeh')
|
import holoviews as hv
|
||||||
renderer = hv.renderer('bokeh')
|
hv.extension('bokeh')
|
||||||
|
renderer = hv.renderer('bokeh')
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
|
||||||
def interactive_activitychart(workouts,startdate,enddate,stack='type'):
|
def interactive_activitychart(workouts,startdate,enddate,stack='type'):
|
||||||
|
|
||||||
@@ -908,7 +911,12 @@ def interactive_histoall(theworkouts):
|
|||||||
axis_label="Cumulative % of strokes"),'right')
|
axis_label="Cumulative % of strokes"),'right')
|
||||||
|
|
||||||
plot.sizing_mode = 'scale_width'
|
plot.sizing_mode = 'scale_width'
|
||||||
script, div = components(plot)
|
try:
|
||||||
|
script, div = components(plot)
|
||||||
|
except ValueError:
|
||||||
|
script = ''
|
||||||
|
div = ''
|
||||||
|
|
||||||
return [script,div]
|
return [script,div]
|
||||||
|
|
||||||
def course_map(course):
|
def course_map(course):
|
||||||
@@ -4249,7 +4257,11 @@ def interactive_otw_advanced_pace_chart(id=0,promember=0):
|
|||||||
|
|
||||||
hover.mode = 'mouse'
|
hover.mode = 'mouse'
|
||||||
|
|
||||||
script, div = components(plot)
|
try:
|
||||||
|
script, div = components(plot)
|
||||||
|
except:
|
||||||
|
script = ''
|
||||||
|
div = ''
|
||||||
|
|
||||||
return [script,div]
|
return [script,div]
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ from rowers.opaque import encoder
|
|||||||
|
|
||||||
import arrow
|
import arrow
|
||||||
|
|
||||||
|
from six import string_types
|
||||||
|
|
||||||
def strfdelta(tdelta):
|
def strfdelta(tdelta):
|
||||||
minutes,seconds = divmod(tdelta.seconds,60)
|
minutes,seconds = divmod(tdelta.seconds,60)
|
||||||
@@ -220,7 +221,7 @@ def jsdict(dict,key):
|
|||||||
def lookup(dict, key):
|
def lookup(dict, key):
|
||||||
s = dict.get(key)
|
s = dict.get(key)
|
||||||
|
|
||||||
if isinstance(s,basestring) and len(s) > 22:
|
if isinstance(s,string_types) and len(s) > 22:
|
||||||
s = s[:22]
|
s = s[:22]
|
||||||
return s
|
return s
|
||||||
|
|
||||||
|
|||||||
@@ -105,13 +105,13 @@ def mocked_sqlalchemy(*args, **kwargs):
|
|||||||
#@pytest.mark.django_db
|
#@pytest.mark.django_db
|
||||||
class DjangoTestCase(TestCase): #, MockTestCase):
|
class DjangoTestCase(TestCase): #, MockTestCase):
|
||||||
def _pre_setup(self):
|
def _pre_setup(self):
|
||||||
MockTestCase.setUp(self)
|
# MockTestCase.setUp(self)
|
||||||
TestCase._pre_setup(self)
|
TestCase._pre_setup(self)
|
||||||
self.client = Client()
|
self.client = Client()
|
||||||
|
|
||||||
def _post_teardown(self):
|
def _post_teardown(self):
|
||||||
TestCase._post_teardown(self)
|
TestCase._post_teardown(self)
|
||||||
MockTestCase.tearDown(self)
|
#MockTestCase.tearDown(self)
|
||||||
# delete_strokedata(1)
|
# delete_strokedata(1)
|
||||||
|
|
||||||
def mocked_tcx_parser(*args, **kwargs):
|
def mocked_tcx_parser(*args, **kwargs):
|
||||||
|
|||||||
@@ -3,6 +3,11 @@ try:
|
|||||||
except NameError:
|
except NameError:
|
||||||
WindowsError = None
|
WindowsError = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
FileNotFoundError
|
||||||
|
except NameError:
|
||||||
|
FileNotFoundError = None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
OSError
|
OSError
|
||||||
except NameError:
|
except NameError:
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
Binary file not shown.
@@ -206,7 +206,7 @@ def uniqify(seq, idfun=None):
|
|||||||
|
|
||||||
def serialize_list(value,token=','):
|
def serialize_list(value,token=','):
|
||||||
assert(isinstance(value, list) or isinstance(value, tuple) or isinstance(value,np.ndarray))
|
assert(isinstance(value, list) or isinstance(value, tuple) or isinstance(value,np.ndarray))
|
||||||
return token.join([s for s in value])
|
return token.join([str(s) for s in value])
|
||||||
|
|
||||||
def deserialize_list(value,token=','):
|
def deserialize_list(value,token=','):
|
||||||
if isinstance(value, list):
|
if isinstance(value, list):
|
||||||
|
|||||||
@@ -2106,7 +2106,7 @@ def virtualevent_submit_result_view(request,id=0,workoutid=0):
|
|||||||
entrychoices = []
|
entrychoices = []
|
||||||
|
|
||||||
for record in records:
|
for record in records:
|
||||||
rtpl = (record.id, record.__unicode__())
|
rtpl = (record.id, record.__str__())
|
||||||
entrychoices.append(rtpl)
|
entrychoices.append(rtpl)
|
||||||
|
|
||||||
entries = {}
|
entries = {}
|
||||||
@@ -2153,7 +2153,7 @@ def virtualevent_submit_result_view(request,id=0,workoutid=0):
|
|||||||
choices = []
|
choices = []
|
||||||
|
|
||||||
for w in ws:
|
for w in ws:
|
||||||
wtpl = (w.id, w.__unicode__())
|
wtpl = (w.id, w.__str__())
|
||||||
choices.append(wtpl)
|
choices.append(wtpl)
|
||||||
if w.id in initialworkouts:
|
if w.id in initialworkouts:
|
||||||
workoutdata['initial'].append(w.id)
|
workoutdata['initial'].append(w.id)
|
||||||
|
|||||||
@@ -726,7 +726,10 @@ def get_stored_tasks_status(request):
|
|||||||
taskstatus = []
|
taskstatus = []
|
||||||
for id,func_name in reversed(taskids):
|
for id,func_name in reversed(taskids):
|
||||||
progress = 0
|
progress = 0
|
||||||
cached_progress = cache.get(id)
|
try:
|
||||||
|
cached_progress = cache.get(id)
|
||||||
|
except ValueError:
|
||||||
|
cached_progress = 0
|
||||||
finished = get_job_status(id)['finished']
|
finished = get_job_status(id)['finished']
|
||||||
if finished:
|
if finished:
|
||||||
cache.set(id,100)
|
cache.set(id,100)
|
||||||
|
|||||||
@@ -874,7 +874,7 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
labeldict = {
|
labeldict = {
|
||||||
int(w.id): w.__unicode__() for w in workouts
|
int(w.id): w.__str__() for w in workouts
|
||||||
}
|
}
|
||||||
|
|
||||||
chartform = ChartParamChoiceForm(
|
chartform = ChartParamChoiceForm(
|
||||||
@@ -906,7 +906,7 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
labeldict = {
|
labeldict = {
|
||||||
int(w.id): w.__unicode__() for w in workouts
|
int(w.id): w.__str__() for w in workouts
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
raise HttpResponse('Only GET and POST allowed',status=405)
|
raise HttpResponse('Only GET and POST allowed',status=405)
|
||||||
@@ -988,7 +988,7 @@ def plannedsession_compare_view(request,id=0,userid=0):
|
|||||||
ids = [int(w.id) for w in workouts]
|
ids = [int(w.id) for w in workouts]
|
||||||
|
|
||||||
labeldict = {
|
labeldict = {
|
||||||
int(w.id): w.__unicode__() for w in workouts
|
int(w.id): w.__str__() for w in workouts
|
||||||
}
|
}
|
||||||
|
|
||||||
xparam = 'time'
|
xparam = 'time'
|
||||||
@@ -1033,7 +1033,7 @@ def multi_compare_view(request,id=0,userid=0):
|
|||||||
request.session['ids'] = ids
|
request.session['ids'] = ids
|
||||||
|
|
||||||
labeldict = {
|
labeldict = {
|
||||||
int(w.id): w.__unicode__() for w in workouts
|
int(w.id): w.__str__() for w in workouts
|
||||||
}
|
}
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@@ -1055,7 +1055,7 @@ def multi_compare_view(request,id=0,userid=0):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
labeldict = {
|
labeldict = {
|
||||||
int(w.id): w.__unicode__() for w in workouts
|
int(w.id): w.__str__() for w in workouts
|
||||||
}
|
}
|
||||||
elif 'ids' in request.session and 'plottype' in request.session:
|
elif 'ids' in request.session and 'plottype' in request.session:
|
||||||
xparam = request.session['xparam']
|
xparam = request.session['xparam']
|
||||||
@@ -1071,7 +1071,7 @@ def multi_compare_view(request,id=0,userid=0):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
labeldict = {
|
labeldict = {
|
||||||
int(w.id): w.__unicode__() for w in workouts
|
int(w.id): w.__str__() for w in workouts
|
||||||
}
|
}
|
||||||
chartform = ChartParamChoiceForm(
|
chartform = ChartParamChoiceForm(
|
||||||
initial = {
|
initial = {
|
||||||
@@ -2510,7 +2510,7 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
|
|||||||
fielddict.pop('workoutstate')
|
fielddict.pop('workoutstate')
|
||||||
fielddict.pop('workoutid')
|
fielddict.pop('workoutid')
|
||||||
|
|
||||||
for field,verbosename in fielddict.iteritems():
|
for field,verbosename in fielddict.items():
|
||||||
thedict = {
|
thedict = {
|
||||||
'mean':datadf[field].mean(),
|
'mean':datadf[field].mean(),
|
||||||
'wmean': wavg(datadf, field, 'deltat'),
|
'wmean': wavg(datadf, field, 'deltat'),
|
||||||
@@ -2528,9 +2528,9 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
|
|||||||
cor = datadf.corr(method='spearman')
|
cor = datadf.corr(method='spearman')
|
||||||
cor.fillna(value=0,inplace=True)
|
cor.fillna(value=0,inplace=True)
|
||||||
cordict = {}
|
cordict = {}
|
||||||
for field1,verbosename in fielddict.iteritems():
|
for field1,verbosename in fielddict.items():
|
||||||
thedict = {}
|
thedict = {}
|
||||||
for field2,verbosename in fielddict.iteritems():
|
for field2,verbosename in fielddict.items():
|
||||||
try:
|
try:
|
||||||
thedict[field2] = cor.loc[field1,field2]
|
thedict[field2] = cor.loc[field1,field2]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
@@ -3211,10 +3211,14 @@ def workout_comment_view(request,id=0):
|
|||||||
cd = form.cleaned_data
|
cd = form.cleaned_data
|
||||||
comment = cd['comment']
|
comment = cd['comment']
|
||||||
comment = bleach.clean(comment)
|
comment = bleach.clean(comment)
|
||||||
if isinstance(comment,unicode):
|
try:
|
||||||
comment = comment.encode('utf8')
|
if isinstance(comment,unicode):
|
||||||
elif isinstance(comment, str):
|
comment = comment.encode('utf8')
|
||||||
comment = comment.decode('utf8')
|
elif isinstance(comment, str):
|
||||||
|
comment = comment.decode('utf8')
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
notification = cd['notification']
|
notification = cd['notification']
|
||||||
c = WorkoutComment(workout=w,user=request.user,comment=comment,
|
c = WorkoutComment(workout=w,user=request.user,comment=comment,
|
||||||
@@ -4978,7 +4982,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
|||||||
iunits = []
|
iunits = []
|
||||||
itypes = []
|
itypes = []
|
||||||
iresults = []
|
iresults = []
|
||||||
for i in xrange(nrintervals):
|
for i in range(nrintervals):
|
||||||
try:
|
try:
|
||||||
t = datetime.datetime.strptime(request.POST['intervalt_%s' % i],"%H:%M:%S.%f")
|
t = datetime.datetime.strptime(request.POST['intervalt_%s' % i],"%H:%M:%S.%f")
|
||||||
except ValueError:
|
except ValueError:
|
||||||
@@ -5042,7 +5046,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
|||||||
iunits = []
|
iunits = []
|
||||||
itypes = []
|
itypes = []
|
||||||
iresults = []
|
iresults = []
|
||||||
for i in xrange(nrintervals):
|
for i in range(nrintervals):
|
||||||
t = cd['intervalt_%s' % i]
|
t = cd['intervalt_%s' % i]
|
||||||
timesecs = t.total_seconds()
|
timesecs = t.total_seconds()
|
||||||
itime += [timesecs]
|
itime += [timesecs]
|
||||||
@@ -5076,7 +5080,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
|
|||||||
|
|
||||||
|
|
||||||
initial = {}
|
initial = {}
|
||||||
for i in xrange(nrintervals):
|
for i in range(nrintervals):
|
||||||
try:
|
try:
|
||||||
initial['intervald_%s' % i] = idist[i]
|
initial['intervald_%s' % i] = idist[i]
|
||||||
initial['intervalt_%s' % i] = get_time(itime[i])
|
initial['intervalt_%s' % i] = get_time(itime[i])
|
||||||
|
|||||||
Reference in New Issue
Block a user