From 538be61afd1bc7addae33b6e55ae86dd3ec568af Mon Sep 17 00:00:00 2001 From: Thomas Klaehn Date: Tue, 24 Jul 2018 10:37:53 +0200 Subject: [PATCH] gpx_parser: Fix crash if gpx doesn't contain timings Signed-off-by: Thomas Klaehn --- .gitignore | 4 +++- example-gpx-parser | 2 +- gpx2html | 2 +- gpx_parser/__init__.py | 12 ++++++++---- setup.py | 2 +- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index adbb97d..a51e862 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -data/ \ No newline at end of file +data/ +.vscode/settings.json +gpx_parser/__init__.pyc diff --git a/example-gpx-parser b/example-gpx-parser index 9872568..25484de 100755 --- a/example-gpx-parser +++ b/example-gpx-parser @@ -24,7 +24,7 @@ def main(): max_day = (datetime.date(year + 1, 1, 1) - datetime.timedelta(days=1)).day else: max_day = (datetime.date(year, month + 1, 1) - datetime.timedelta(days=1)).day - for day in range(1, max_day): + for day in range(1, max_day + 1): date_tracks = tracks.get(year, month, day) date_date = datetime.datetime(year, month, day) date_dist = 0.0 diff --git a/gpx2html b/gpx2html index b5916b4..700bcb4 100755 --- a/gpx2html +++ b/gpx2html @@ -67,7 +67,7 @@ def main(): max_day = (datetime.date(year + 1, 1, 1) - datetime.timedelta(days=1)).day else: max_day = (datetime.date(year, month + 1, 1) - datetime.timedelta(days=1)).day - for day in range(1, max_day): + for day in range(1, max_day + 1): date_tracks = tracks.get(year, month, day) for track in date_tracks: month_distance[month] += (track.distance / 1000) # km diff --git a/gpx_parser/__init__.py b/gpx_parser/__init__.py index d028920..f3d0f17 100644 --- a/gpx_parser/__init__.py +++ b/gpx_parser/__init__.py @@ -34,10 +34,14 @@ class Track(object): ' ' + str(segment.points[i].longitude)) seg.distance += distance.distance(point1, point2).meters - if self.duration is None: - self.duration = seg.end_time - seg.start_time - else: - self.duration += seg.end_time - seg.start_time + try: + if self.duration is None: + self.duration = seg.end_time - seg.start_time + else: + self.duration += seg.end_time - seg.start_time + except Exception: + # TODO: Add logging mechanism. + pass self.end_time = seg.end_time self.distance += seg.distance self.avg_speed = self.distance / self.duration.total_seconds() * 3.6 diff --git a/setup.py b/setup.py index 81b92c2..ecd4b9d 100755 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from distutils.core import setup NAME = 'gpx_parser' -VERSION = '0.2.0' +VERSION = '0.2.1' AUTHOR = 'Thomas Klaehn' EMAIL = 'tkl@blackfinn.de' PACKAGES = [NAME]