From 224ba521e36ae0326f433c4adadcfafdb7da3c3e Mon Sep 17 00:00:00 2001 From: Sean Breckenridge Date: Sun, 3 Dec 2023 09:49:05 -0800 Subject: [PATCH] gpslogger: catch broken xml file error --- my/location/gpslogger.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/my/location/gpslogger.py b/my/location/gpslogger.py index 17f828f..29e2547 100644 --- a/my/location/gpslogger.py +++ b/my/location/gpslogger.py @@ -23,6 +23,7 @@ from pathlib import Path from typing import Iterator, Sequence, List import gpxpy +from gpxpy.gpx import GPXXMLSyntaxException from more_itertools import unique_everseen from my.core import Stats, LazyLogger @@ -58,7 +59,11 @@ def locations() -> Iterator[Location]: def _extract_locations(path: Path) -> Iterator[Location]: with path.open("r") as gf: - gpx_obj = gpxpy.parse(gf) + try: + gpx_obj = gpxpy.parse(gf) + except GPXXMLSyntaxException as e: + logger.warning("failed to parse XML %s: %s", path, e) + return for track in gpx_obj.tracks: for segment in track.segments: for point in segment.points: