merged SVG export fixes for python 3

This commit is contained in:
Luke Campagnola 2013-09-10 10:40:19 -04:00
commit f6ed67fc33

View File

@ -1,4 +1,5 @@
from .Exporter import Exporter from .Exporter import Exporter
from pyqtgraph.python2_3 import asUnicode
from pyqtgraph.parametertree import Parameter from pyqtgraph.parametertree import Parameter
from pyqtgraph.Qt import QtGui, QtCore, QtSvg from pyqtgraph.Qt import QtGui, QtCore, QtSvg
import pyqtgraph as pg import pyqtgraph as pg
@ -91,8 +92,8 @@ class SVGExporter(Exporter):
md.setData('image/svg+xml', QtCore.QByteArray(xml.encode('UTF-8'))) md.setData('image/svg+xml', QtCore.QByteArray(xml.encode('UTF-8')))
QtGui.QApplication.clipboard().setMimeData(md) QtGui.QApplication.clipboard().setMimeData(md)
else: else:
with open(fileName, 'w') as fh: with open(fileName, 'wb') as fh:
fh.write(xml.encode('UTF-8')) fh.write(asUnicode(xml).encode('utf-8'))
xmlHeader = """\ xmlHeader = """\
@ -221,8 +222,8 @@ def _generateItemSvg(item, nodes=None, root=None):
## this is taken care of in generateSvg instead. ## this is taken care of in generateSvg instead.
#if hasattr(item, 'setExportMode'): #if hasattr(item, 'setExportMode'):
#item.setExportMode(False) #item.setExportMode(False)
xmlStr = str(arr) xmlStr = bytes(arr).decode('utf-8')
doc = xml.parseString(xmlStr) doc = xml.parseString(xmlStr)
try: try:
@ -340,7 +341,7 @@ def correctCoordinates(node, item):
if match is None: if match is None:
vals = [1,0,0,1,0,0] vals = [1,0,0,1,0,0]
else: else:
vals = map(float, match.groups()[0].split(',')) vals = [float(a) for a in match.groups()[0].split(',')]
tr = np.array([[vals[0], vals[2], vals[4]], [vals[1], vals[3], vals[5]]]) tr = np.array([[vals[0], vals[2], vals[4]], [vals[1], vals[3], vals[5]]])
removeTransform = False removeTransform = False
@ -349,9 +350,9 @@ def correctCoordinates(node, item):
continue continue
if ch.tagName == 'polyline': if ch.tagName == 'polyline':
removeTransform = True removeTransform = True
coords = np.array([map(float, c.split(',')) for c in ch.getAttribute('points').strip().split(' ')]) coords = np.array([[float(a) for a in c.split(',')] for c in ch.getAttribute('points').strip().split(' ')])
coords = pg.transformCoordinates(tr, coords, transpose=True) coords = pg.transformCoordinates(tr, coords, transpose=True)
ch.setAttribute('points', ' '.join([','.join(map(str, c)) for c in coords])) ch.setAttribute('points', ' '.join([','.join([str(a) for a in c]) for c in coords]))
elif ch.tagName == 'path': elif ch.tagName == 'path':
removeTransform = True removeTransform = True
newCoords = '' newCoords = ''