From c07485ad7471f5e87ac31fd8e05e4d0882fd0971 Mon Sep 17 00:00:00 2001 From: acspike Date: Thu, 21 Feb 2008 05:03:20 +0000 Subject: [PATCH] Attempt fix for Bug #178022 Evidently somewhere between versions 1.3.6 and 2.0 lxml began requiring that parameters passed to the Element.xpath() be keyword arguments (positional arguments had been allowed). Best guess places this at "2.0alpha6 (2007-12-19)" based upon the lxml Changelog. This fix appears to be backward compatible. Please test. --- share/extensions/coloreffect.py | 4 ++-- share/extensions/dxf_outlines.py | 4 ++-- share/extensions/edge3d.py | 2 +- share/extensions/embedimage.py | 4 ++-- share/extensions/gimp_xcf.py | 2 +- share/extensions/inkex.py | 14 +++++++------- share/extensions/markers_strokepaint.py | 2 +- share/extensions/pathmodifier.py | 4 ++-- share/extensions/perfectboundcover.py | 4 ++-- share/extensions/simpletransform.py | 2 +- share/extensions/svg_and_media_zip_output.py | 2 +- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/share/extensions/coloreffect.py b/share/extensions/coloreffect.py index 52eff5c0d..77f3c8d6c 100644 --- a/share/extensions/coloreffect.py +++ b/share/extensions/coloreffect.py @@ -67,7 +67,7 @@ class ColorEffect(inkex.Effect): newid = '%s-%d' % (id, int(random.random() * 1000)) #inkex.debug('ID:' + id ) path = '//*[@id="%s"]' % id - for node in self.document.xpath(path, inkex.NSS): + for node in self.document.xpath(path, namespaces=inkex.NSS): self.process_gradient(node, newid) col = 'url(#%s)' % newid return col @@ -96,7 +96,7 @@ class ColorEffect(inkex.Effect): newhref = '%s-%d' % (id, int(random.random() * 1000)) newnode.set(xlink, '#%s' % newhref) path = '//*[@id="%s"]' % id - for node in self.document.xpath(path,inkex.NSS): + for node in self.document.xpath(path, namespaces=inkex.NSS): self.process_gradient(node, newhref) def colmod(self,r,g,b): diff --git a/share/extensions/dxf_outlines.py b/share/extensions/dxf_outlines.py index 40beee95c..6cb4e1eaa 100755 --- a/share/extensions/dxf_outlines.py +++ b/share/extensions/dxf_outlines.py @@ -45,10 +45,10 @@ class MyEffect(inkex.Effect): self.dxf_add("999\nDXF created by Inkscape\n0\nSECTION\n2\nENTITIES") scale = 25.4/90.0 - h = inkex.unittouu(self.document.getroot().xpath('@height',inkex.NSS)[0]) + h = inkex.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0]) path = '//svg:path' - for node in self.document.getroot().xpath(path,inkex.NSS): + for node in self.document.getroot().xpath(path, namespaces=inkex.NSS): d = node.get('d') sim = simplepath.parsePath(d) simplepath.scalePath(sim,scale,-scale) diff --git a/share/extensions/edge3d.py b/share/extensions/edge3d.py index 318e97c72..62f84af63 100644 --- a/share/extensions/edge3d.py +++ b/share/extensions/edge3d.py @@ -112,7 +112,7 @@ class Edge3d(inkex.Effect): g.append(nn) def getGroup(self, node): - defs = self.document.getroot().xpath('//svg:defs',inkex.NSS) + defs = self.document.getroot().xpath('//svg:defs', namespaces=inkex.NSS) if defs: defs = defs[0] # make a clipped group, clip with clone of original, clipped group diff --git a/share/extensions/embedimage.py b/share/extensions/embedimage.py index 06281a4b0..263cf5925 100644 --- a/share/extensions/embedimage.py +++ b/share/extensions/embedimage.py @@ -46,7 +46,7 @@ class Embedder(inkex.Effect): def embedAll(self, document): self.document=document #not that nice... oh well path = '//svg:image' - for node in self.document.getroot().xpath(path, inkex.NSS): + for node in self.document.getroot().xpath(path, namespaces=inkex.NSS): self.embedImage(node) def embedImage(self, node): @@ -54,7 +54,7 @@ class Embedder(inkex.Effect): if (xlink[:4]!='data'): absref=node.get(inkex.addNS('absref','sodipodi')) href=xlink - svg=self.document.getroot().xpath('/svg:svg',inkex.NSS)[0] + svg=self.document.getroot().xpath('/svg:svg', namespaces=inkex.NSS)[0] docbase=svg.get(inkex.addNS('docbase','sodipodi')) path='' diff --git a/share/extensions/gimp_xcf.py b/share/extensions/gimp_xcf.py index 7951ad190..d24b32c35 100755 --- a/share/extensions/gimp_xcf.py +++ b/share/extensions/gimp_xcf.py @@ -35,7 +35,7 @@ class MyEffect(inkex.Effect): pngs = [] names = [] path = "/svg:svg/*[name()='g' or @style][@id]" - for node in self.document.xpath(path,inkex.NSS): + for node in self.document.xpath(path, namespaces=inkex.NSS): id = node.get('id') name = "%s.png" % id filename = os.path.join(tmp_dir, name) diff --git a/share/extensions/inkex.py b/share/extensions/inkex.py index d5c1ce213..79921aa55 100755 --- a/share/extensions/inkex.py +++ b/share/extensions/inkex.py @@ -116,15 +116,15 @@ class Effect: self.current_layer = self.document.getroot() self.view_center = (0.0,0.0) - layerattr = self.document.xpath('//sodipodi:namedview/@inkscape:current-layer', NSS) + layerattr = self.document.xpath('//sodipodi:namedview/@inkscape:current-layer', namespaces=NSS) if layerattr: layername = layerattr[0] - layer = self.document.xpath('//g[@id="%s"]' % layername, NSS) + layer = self.document.xpath('//g[@id="%s"]' % layername, namespaces=NSS) if layer: self.current_layer = layer[0] - xattr = self.document.xpath('//sodipodi:namedview/@inkscape:cx', NSS) - yattr = self.document.xpath('//sodipodi:namedview/@inkscape:cy', NSS) + xattr = self.document.xpath('//sodipodi:namedview/@inkscape:cx', namespaces=NSS) + yattr = self.document.xpath('//sodipodi:namedview/@inkscape:cy', namespaces=NSS) doc_height = unittouu(self.document.getroot().get('height')) if xattr and yattr: x = xattr[0] @@ -135,10 +135,10 @@ class Effect: """Collect selected nodes""" for id in self.options.ids: path = '//*[@id="%s"]' % id - for node in self.document.xpath(path, NSS): + for node in self.document.xpath(path, namespaces=NSS): self.selected[id] = node def getdocids(self): - docIdNodes = self.document.xpath('//@id', NSS) + docIdNodes = self.document.xpath('//@id', namespaces=NSS) for m in docIdNodes: self.doc_ids[m] = 1 def output(self): @@ -163,7 +163,7 @@ class Effect: return new_id def xpathSingle(self, path): try: - retval = self.document.xpath(path, NSS)[0] + retval = self.document.xpath(path, namespaces=NSS)[0] except: debug("No matching node for expression: %s" % path) retval = None diff --git a/share/extensions/markers_strokepaint.py b/share/extensions/markers_strokepaint.py index 04fd4c5c7..5442cfa48 100644 --- a/share/extensions/markers_strokepaint.py +++ b/share/extensions/markers_strokepaint.py @@ -61,7 +61,7 @@ class MyEffect(inkex.Effect): mnode.set(inkex.addNS('stockid','inkscape'), new_id) defs.append(mnode) - children = mnode.xpath('.//*[@style]',inkex.NSS) + children = mnode.xpath('.//*[@style]', namespaces=inkex.NSS) for child in children: cstyle = simplestyle.parseStyle(child.get('style')) if ('stroke' in cstyle and cstyle['stroke'] != 'none') or 'stroke' not in cstyle: diff --git a/share/extensions/pathmodifier.py b/share/extensions/pathmodifier.py index a7e312ae0..76b9d77b1 100644 --- a/share/extensions/pathmodifier.py +++ b/share/extensions/pathmodifier.py @@ -69,7 +69,7 @@ class PathModifier(inkex.Effect): def uniqueId(self, prefix): id="%s%04i"%(prefix,random.randint(0,9999)) - while len(self.document.getroot().xpath('//*[@id="%s"]' % id,inkex.NSS)): + while len(self.document.getroot().xpath('//*[@id="%s"]' % id,namespaces=inkex.NSS)): id="%s%04i"%(prefix,random.randint(0,9999)) return(id) @@ -118,7 +118,7 @@ class PathModifier(inkex.Effect): if node.get(inkex.addNS('href','xlink')): refid=node.get(inkex.addNS('href','xlink')) path = '//*[@id="%s"]' % refid[1:] - newNode = self.document.getroot().xpath(path,inkex.NSS)[0] + newNode = self.document.getroot().xpath(path, namespaces=inkex.NSS)[0] return newNode else: raise AssertionError, "Trying to follow empty xlink.href attribute." diff --git a/share/extensions/perfectboundcover.py b/share/extensions/perfectboundcover.py index 0482feb87..71558af74 100644 --- a/share/extensions/perfectboundcover.py +++ b/share/extensions/perfectboundcover.py @@ -126,10 +126,10 @@ class PerfectBoundCover(inkex.Effect): guides.append(["vertical", (document_width / 2) - (spine_width / 2)]) guides.append(["vertical", (document_width / 2) + (spine_width / 2)]) - namedview = self.document.xpath('/svg:svg/sodipodi:namedview', inkex.NSS) + namedview = self.document.xpath('/svg:svg/sodipodi:namedview', namespaces=inkex.NSS) if namedview: if self.options.removeguides == True: - for node in self.document.xpath('/svg:svg/sodipodi:namedview/sodipodi:guide', inkex.NSS): + for node in self.document.xpath('/svg:svg/sodipodi:namedview/sodipodi:guide', namespaces=inkex.NSS): parent = node.getparent() parent.remove(node) for guide in guides: diff --git a/share/extensions/simpletransform.py b/share/extensions/simpletransform.py index 983874f7c..cf0751ca8 100644 --- a/share/extensions/simpletransform.py +++ b/share/extensions/simpletransform.py @@ -155,7 +155,7 @@ def computeBBox(aList,mat=[[1,0,0],[0,1,0]]): if node.tag == inkex.addNS('use','svg') or node.tag=='use': refid=node.get(inkex.addNS('href','xlink')) path = '//*[@id="%s"]' % refid[1:] - refnode = node.getroottree().xpath(path,inkex.NSS) + refnode = node.getroottree().xpath(path, namespaces=inkex.NSS) bbox=boxunion(computeBBox(refnode,m),bbox) bbox=boxunion(computeBBox(node,m),bbox) diff --git a/share/extensions/svg_and_media_zip_output.py b/share/extensions/svg_and_media_zip_output.py index ccb1363c9..29add99e3 100644 --- a/share/extensions/svg_and_media_zip_output.py +++ b/share/extensions/svg_and_media_zip_output.py @@ -66,7 +66,7 @@ class MyEffect(inkex.Effect): docstripped = docname.replace('.zip', '') #read tmpdoc and copy all images to temp dir - for node in self.document.xpath('//svg:image',inkex.NSS): + for node in self.document.xpath('//svg:image', namespaces=inkex.NSS): self.collectAndZipImages(node, tmp_dir, docname, z) ##copy tmpdoc to tempdir -- 2.30.2