diff --git a/imgsrc/srv/generate.py b/imgsrc/srv/generate.py
index c875063efd..5aab1a3772 100644
--- a/imgsrc/srv/generate.py
+++ b/imgsrc/srv/generate.py
@@ -7,8 +7,9 @@ import os, re, sys
from lxml import etree
-SVG_NS = 'http://www.w3.org/2000/svg'
-XLINK_NS = 'http://www.w3.org/1999/xlink'
+SVG_NS = 'http://www.w3.org/2000/svg'
+XLINK_NS = 'http://www.w3.org/1999/xlink'
+
def clone_node(node, parent):
ans = parent.makeelement(node.tag)
@@ -20,15 +21,26 @@ def clone_node(node, parent):
parent.append(ans)
return ans
+
def merge():
base = os.path.dirname(os.path.abspath(__file__))
- ans = etree.fromstring('' % (SVG_NS, XLINK_NS))
+ ans = etree.fromstring(
+ '' % (SVG_NS, XLINK_NS),
+ parser=etree.XMLParser(
+ recover=True, no_network=True, resolve_entities=False
+ )
+ )
for f in os.listdir(base):
if not f.endswith('.svg'):
continue
with open(os.path.join(base, f), 'rb') as ff:
raw = ff.read()
- svg = etree.fromstring(raw)
+ svg = etree.fromstring(
+ raw,
+ parser=etree.XMLParser(
+ recover=True, no_network=True, resolve_entities=False
+ )
+ )
symbol = ans.makeelement('{%s}symbol' % SVG_NS)
symbol.set('viewBox', svg.get('viewBox'))
symbol.set('id', 'icon-' + f.rpartition('.')[0])
@@ -39,5 +51,6 @@ def merge():
ans = re.sub('