From 88f7f232b7e373cad07133c98209cb9c8993d73b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Thu, 19 Oct 2017 23:13:57 +0200 Subject: [PATCH] clean up generated xml before parsing it --- src/c3nav/mapdata/utils/geometry.py | 1 - src/c3nav/mapdata/utils/svg.py | 18 +++++------------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/c3nav/mapdata/utils/geometry.py b/src/c3nav/mapdata/utils/geometry.py index 5a6592f9..6f06faf2 100644 --- a/src/c3nav/mapdata/utils/geometry.py +++ b/src/c3nav/mapdata/utils/geometry.py @@ -6,7 +6,6 @@ from matplotlib.path import Path from shapely import speedups from shapely.geometry import LineString, Polygon - if speedups.available: speedups.enable() diff --git a/src/c3nav/mapdata/utils/svg.py b/src/c3nav/mapdata/utils/svg.py index 069317cd..8f7ca574 100644 --- a/src/c3nav/mapdata/utils/svg.py +++ b/src/c3nav/mapdata/utils/svg.py @@ -3,7 +3,6 @@ import math import re import subprocess import xml.etree.ElementTree as ET -from itertools import chain from django.conf import settings from django.core.checks import Error, register @@ -151,18 +150,11 @@ class SVGImage: geometry = affine_transform(geometry, (self.scale, 0.0, 0.0, -self.scale, -(self.left)*self.scale, (self.top)*self.scale)) - element = ET.fromstring(self._trim_decimals(geometry.svg(0, '#FFFFFF'))) - if element.tag != 'g': - new_element = ET.Element('g') - new_element.append(element) - element = new_element - - for elem in chain(element.findall('polyline'), element.findall('path')): - elem.attrib.pop('opacity', None) - elem.attrib.pop('fill', None) - elem.attrib.pop('fill-rule', None) - elem.attrib.pop('stroke', None) - elem.attrib.pop('stroke-width', None) + element = self._trim_decimals(re.sub(r' (opacity|fill|fill-rule|stroke|stroke-width)="[^"]*"', '', + geometry.svg(0, '#FFFFFF'))) + if not element.startswith('' + element = ET.fromstring(element) return element def register_geometry(self, geometry, defid=None, as_clip_path=False, comment=None):