Code

Attempt fix for Bug #178022
authoracspike <acspike@users.sourceforge.net>
Thu, 21 Feb 2008 05:03:20 +0000 (05:03 +0000)
committeracspike <acspike@users.sourceforge.net>
Thu, 21 Feb 2008 05:03:20 +0000 (05:03 +0000)
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
share/extensions/dxf_outlines.py
share/extensions/edge3d.py
share/extensions/embedimage.py
share/extensions/gimp_xcf.py
share/extensions/inkex.py
share/extensions/markers_strokepaint.py
share/extensions/pathmodifier.py
share/extensions/perfectboundcover.py
share/extensions/simpletransform.py
share/extensions/svg_and_media_zip_output.py

index 52eff5c0db5871ff42f97730aa0ac134082b6939..77f3c8d6c2000ee4400cd19378733ca933b1755c 100644 (file)
@@ -67,7 +67,7 @@ class ColorEffect(inkex.Effect):
       newid = '%s-%d' % (id, int(random.random() * 1000))\r
       #inkex.debug('ID:' + id )\r
       path = '//*[@id="%s"]' % id\r
-      for node in self.document.xpath(path, inkex.NSS):\r
+      for node in self.document.xpath(path, namespaces=inkex.NSS):\r
         self.process_gradient(node, newid)\r
       col = 'url(#%s)' % newid\r
     return col\r
@@ -96,7 +96,7 @@ class ColorEffect(inkex.Effect):
         newhref = '%s-%d' % (id, int(random.random() * 1000))\r
         newnode.set(xlink, '#%s' % newhref)\r
         path = '//*[@id="%s"]' % id\r
-        for node in self.document.xpath(path,inkex.NSS):\r
+        for node in self.document.xpath(path, namespaces=inkex.NSS):\r
           self.process_gradient(node, newhref)\r
  \r
   def colmod(self,r,g,b):\r
index 40beee95cfab46064b7ef19cfaa16b26c8123282..6cb4e1eaacbddd33c9250abf39bd155d6607c589 100755 (executable)
@@ -45,10 +45,10 @@ class MyEffect(inkex.Effect):
         self.dxf_add("999\nDXF created by Inkscape\n0\nSECTION\n2\nENTITIES")\r
         \r
         scale = 25.4/90.0
-        h = inkex.unittouu(self.document.getroot().xpath('@height',inkex.NSS)[0])\r
+        h = inkex.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0])\r
         
         path = '//svg:path'
-        for node in self.document.getroot().xpath(path,inkex.NSS):\r
+        for node in self.document.getroot().xpath(path, namespaces=inkex.NSS):\r
             d = node.get('d')\r
             sim = simplepath.parsePath(d)\r
             simplepath.scalePath(sim,scale,-scale)\r
index 318e97c7266569d6b422e09c8620705af6cdf086..62f84af6324b4ba3c957156f2564f843e42bdcbc 100644 (file)
@@ -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:\r
             defs = defs[0]
             # make a clipped group, clip with clone of original, clipped group
index 06281a4b03c641444b8ed53e071f562c6dc9dd9a..263cf592505a6489c307041ab4108d445208b2bf 100644 (file)
@@ -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=''
index 7951ad1905309c2ab34b605a02144aa4e71f6808..d24b32c35d36e5da478e426b34ef8ef883f37137 100755 (executable)
@@ -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)
index d5c1ce2136fd630ca417fd43f8e457122d95c2f2..79921aa55aac69062ff16f02184ff5160d80bae2 100755 (executable)
@@ -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
index 04fd4c5c7d3107320c4c64cf383f9954b7bfa43f..5442cfa48e54501eae8d7bbddf76c19797fde03e 100644 (file)
@@ -61,7 +61,7 @@ class MyEffect(inkex.Effect):
                     mnode.set(inkex.addNS('stockid','inkscape'), new_id)\r
                     defs.append(mnode)\r
                     \r
-                    children = mnode.xpath('.//*[@style]',inkex.NSS)\r
+                    children = mnode.xpath('.//*[@style]', namespaces=inkex.NSS)\r
                     for child in children:\r
                         cstyle = simplestyle.parseStyle(child.get('style'))\r
                         if ('stroke' in cstyle and cstyle['stroke'] != 'none') or 'stroke' not in cstyle:\r
index a7e312ae06a6d44ec43584c91d37f227485499e5..76b9d77b133f06876ed1337426b8fe7eee5ce08e 100644 (file)
@@ -69,7 +69,7 @@ class PathModifier(inkex.Effect):
 \r
     def uniqueId(self, prefix):\r
         id="%s%04i"%(prefix,random.randint(0,9999))\r
-        while len(self.document.getroot().xpath('//*[@id="%s"]' % id,inkex.NSS)):\r
+        while len(self.document.getroot().xpath('//*[@id="%s"]' % id,namespaces=inkex.NSS)):\r
             id="%s%04i"%(prefix,random.randint(0,9999))\r
         return(id)\r
 \r
@@ -118,7 +118,7 @@ class PathModifier(inkex.Effect):
         if node.get(inkex.addNS('href','xlink')):\r
             refid=node.get(inkex.addNS('href','xlink'))\r
             path = '//*[@id="%s"]' % refid[1:]\r
-            newNode = self.document.getroot().xpath(path,inkex.NSS)[0]\r
+            newNode = self.document.getroot().xpath(path, namespaces=inkex.NSS)[0]\r
             return newNode\r
         else:\r
             raise AssertionError, "Trying to follow empty xlink.href attribute."\r
index 0482feb87428c1554c8da75e7b458e724321cfad..71558af742db5375bcc50b2cbd484476e6051def 100644 (file)
@@ -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:
index 983874f7c701e061dba624acd419a208905a6d4e..cf0751ca85df2f4ecc42d4d65a983c6c69c713d5 100644 (file)
@@ -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':\r
             refid=node.get(inkex.addNS('href','xlink'))\r
             path = '//*[@id="%s"]' % refid[1:]\r
-            refnode = node.getroottree().xpath(path,inkex.NSS)\r
+            refnode = node.getroottree().xpath(path, namespaces=inkex.NSS)\r
             bbox=boxunion(computeBBox(refnode,m),bbox)\r
             \r
         bbox=boxunion(computeBBox(node,m),bbox)\r
index ccb1363c96b524431625d27fceee47d5bb661bca..29add99e3dc4c90bc1b1a68be708d4623ace6ac1 100644 (file)
@@ -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