tkrajina / gpxpy

gpx-py is a python GPX parser. GPX (GPS eXchange Format) is an XML based file format for GPS tracks.
Apache License 2.0
987 stars 223 forks source link

Force stdlib etree instead of lxml? #248

Open narfel opened 2 years ago

narfel commented 2 years ago

For my use case, when lxml is installed I get drastically less performance. In the init.py it says "

parser may be 'lxml', 'minidom' or None (then it will be automatically detected, lxml if possible).

How do I tell gpxpy to use that? parse(xml_or_file: Union[AnyStr, IO[str]], version: Optional[str] = None) has no option for a parser, or am I missing something?

tkrajina commented 7 months ago

No, you're right. When I first implemented this lxml was faster, so I made to be default. But it absolutely makes sense to use the default parser by default. Maybe something like this: https://github.com/tkrajina/gpxpy/commit/b75314df87b9fd5e7e267bbfc13159624da16533

That way, you gahe a global gpxpy.set_xml_etree() function where you can set lxml if you want.