From b7ba8cc5fd466dec4d6b6a3cacab670f86ac73cf Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 10 Sep 2015 21:19:24 +0200 Subject: [PATCH 001/421] Dissociate python-qwt version numbering from Qwt: restarting at 0.1 --- CHANGELOG | 2 +- README.md | 2 +- qwt/__init__.py | 3 ++- setup.py | 40 +++++++++++++++++++++++----------------- 4 files changed, 27 insertions(+), 20 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 2119003..37de62a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,5 @@ = History of changes = -== Version 6.1.2 == +== Version ??? == First public release. \ No newline at end of file diff --git a/README.md b/README.md index c7a96ec..ae74844 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ powerful features already exist in `guiqwt`: `QwtPlotZoomer`, Only the following plot items are currently implemented in `qwt` (the only plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem`, `QwtPlotHistogram`, -`QwtPlotCurve` +`QwtPlotCurve`. The `QwtClipper` class is not implemented yet (and it will probably be very difficult or even impossible to implement it in pure Python without diff --git a/qwt/__init__.py b/qwt/__init__.py index 6d1f235..132a6bd 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -5,7 +5,8 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) -__version__ = QWT_VERSION_STR = '6.1.2a7' +__version__ = '0.1.0' +QWT_VERSION_STR = '6.1.2' import warnings diff --git a/setup.py b/setup.py index 2cb16e3..41805c5 100644 --- a/setup.py +++ b/setup.py @@ -27,29 +27,35 @@ DESCRIPTION = 'Qt plotting widgets for Python' LONG_DESCRIPTION = """\ -The ``python-qwt`` project is a pure Python translation of the Qwt C++ library -which implements Qt widgets for plotting curves. -It consists of a single Python package named `qwt` (and examples, doc, ...). - The ``python-qwt`` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is -no longer maintained. The idea was to translate the Qwt C++ code to Python and -then to optimize some parts of the code by writing new modules based on NumPy -and other libraries. - -The following ``Qwt`` classes won't be reimplemented in ``python-qwt`` because -most powerful features already exist in ``guiqwt``: QwtCounter, QwtPicker, -QwtPlotPicker, QwtPlotZoomer and QwtEventPattern. -QwtClipper is not implemented (and it will probably be very difficult or -impossible to implement it in pure Python without performance issues). As a -consequence, when zooming in a plot curve, the entire curve is still painted -(in other words, when working with large amount of data, there is no -performance gain when zooming in).""" +no longer maintained. The idea was to translate the original Qwt C++ code to +Python and then to optimize some parts of the code by writing new modules +based on NumPy and other libraries. + + +The ``python-qwt`` package consists of a single Python package named `qwt` +which is a pure Python implementation of Qwt C++ library with the following +limitations. + +The following `Qwt` classes won't be reimplemented in `qwt` because more +powerful features already exist in `guiqwt`: `QwtPlotZoomer`, `QwtCounter`, +`QwtEventPattern`, `QwtPicker`, `QwtPlotPicker`. + +Only the following plot items are currently implemented in `qwt` (the only +plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotItem`, +`QwtPlotMarker`, `QwtPlotSeriesItem`, `QwtPlotHistogram`, `QwtPlotCurve`. + +The `QwtClipper` class is not implemented yet (and it will probably be +very difficult or even impossible to implement it in pure Python without +performance issues). As a consequence, when zooming in a plot curve, the +entire curve is still painted (in other words, when working with large +amount of data, there is no performance gain when zooming in).""" KEYWORDS = '' CLASSIFIERS = [] if 'beta' in version or 'b' in version: CLASSIFIERS += ['Development Status :: 4 - Beta'] -elif 'alpha' in version or 'a' in version: +elif 'alpha' in version or 'a' in version or version.startswith('0.'): CLASSIFIERS += ['Development Status :: 3 - Alpha'] else: CLASSIFIERS += ['Development Status :: 5 - Production/Stable'] From 706f85cd19bea6d03b535eeb60039e9773d2ab78 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 10 Sep 2015 23:01:30 +0200 Subject: [PATCH 002/421] Added guidata-based test launcher + curve benchmark test --- README.md | 1 + qwt/tests/__init__.py | 23 ++++++ qwt/tests/curve_benchmark.py | 132 +++++++++++++++++++++++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 qwt/tests/__init__.py create mode 100644 qwt/tests/curve_benchmark.py diff --git a/README.md b/README.md index ae74844..0af54e1 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ amount of data, there is no performance gain when zooming in). - Python >=2.6 or Python >=3.0 - PyQt4 >=4.4 or PyQt5 >= 5.5 - NumPy >= 1.5 +- guidata >= 1.7 for the GUI-based test launcher ## Installation diff --git a/qwt/tests/__init__.py b/qwt/tests/__init__.py new file mode 100644 index 0000000..615c3c0 --- /dev/null +++ b/qwt/tests/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the terms of the MIT License +# Copyright (c) 2015 Pierre Raybaut +# (see LICENSE file for more details) + +""" +python-qwt test package +======================= +""" + +def run(): + """Run python-qwt test launcher (requires `guidata`)""" + import qwt + try: + from guidata.guitest import run_testlauncher + except ImportError: + raise ImportError("This feature requires `guidata` 1.7+.") + run_testlauncher(qwt) + +if __name__ == '__main__': + run() + \ No newline at end of file diff --git a/qwt/tests/curve_benchmark.py b/qwt/tests/curve_benchmark.py new file mode 100644 index 0000000..d689e9e --- /dev/null +++ b/qwt/tests/curve_benchmark.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the terms of the MIT License +# Copyright (c) 2015 Pierre Raybaut +# (see LICENSE file for more details) + +"""Curve benchmark example""" + +SHOW = True # Show test in GUI-based test launcher + +import time +import numpy as np + +from qwt.qt.QtGui import (QApplication, QPen, QBrush, QMainWindow, QGridLayout, + QTabWidget, QWidget, QTextEdit, QLineEdit, QFont, + QFontDatabase) +from qwt.qt.QtCore import QSize +from qwt.qt.QtCore import Qt +from qwt import QwtPlot, QwtSymbol, QwtPlotCurve + + +COLOR_INDEX = None + +def get_curve_color(): + global COLOR_INDEX + colors = (Qt.blue, Qt.red, Qt.green, Qt.yellow, Qt.magenta, Qt.cyan) + if COLOR_INDEX is None: + COLOR_INDEX = 0 + else: + COLOR_INDEX = (COLOR_INDEX + 1) % len(colors) + return colors[COLOR_INDEX] + + +class BMPlot(QwtPlot): + def __init__(self, title, xdata, ydata, style, symbol=None, *args): + super(BMPlot, self).__init__(*args) + self.setMinimumSize(200, 200) + self.setTitle(title) + self.setAxisTitle(QwtPlot.xBottom, 'x') + self.setAxisTitle(QwtPlot.yLeft, 'y') + curve = QwtPlotCurve() + curve.setPen(QPen(get_curve_color())) + curve.setStyle(style) + curve.setRenderHint(QwtPlotCurve.RenderAntialiased) + if symbol is not None: + curve.setSymbol(symbol) + curve.attach(self) + curve.setData(xdata, ydata) + self.replot() + + +class BMWidget(QWidget): + def __init__(self, points, parent=None): + super(BMWidget, self).__init__(parent) + layout = QGridLayout() + x = np.linspace(.001, 20., points) + y = (np.sin(x)/x)*np.cos(20*x) + symb1 = QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.yellow), + QPen(Qt.blue), QSize(5, 5)) + symb2 = QwtSymbol(QwtSymbol.XCross, QBrush(), + QPen(Qt.darkMagenta), QSize(5, 5)) + nbcol, col, row = 2, 0, 0 +# for style, symbol in (('Lines', None), +# ('Lines', None), +# ('Lines', None), +# ('Lines', None)): + for style, symbol in (('Sticks', symb1), + ('Lines', None), + ('Steps', None), + ('NoCurve', symb2)): + layout.addWidget(BMPlot(style, x, y, getattr(QwtPlotCurve, style), + symbol=symbol), row, col) + col += 1 + if col >= nbcol: + row +=1 + col = 0 + self.text = QLineEdit() + self.text.setReadOnly(True) + self.text.setAlignment(Qt.AlignCenter) + self.text.setText("Rendering plot...") + layout.addWidget(self.text, row+1, 0, 1, 2) + self.setLayout(layout) + + +class BMText(QTextEdit): + def __init__(self, parent=None): + super(BMText, self).__init__(parent) + self.setReadOnly(True) + self.setText("""\ +Curve benchmark example:

+Click on each tab to test if plotting performance is acceptable in terms of +GUI response time (switch between tabs, resize main windows, ...).
+

+Benchmarks results: +""") + + +class BMDemo(QMainWindow): + def __init__(self, max_n, parent=None, **kwargs): + super(BMDemo, self).__init__(parent=parent) + self.setWindowTitle('Curve benchmark') + tabs = QTabWidget() + self.setCentralWidget(tabs) + contents = BMText() + tabs.addTab(contents, 'Contents') + self.resize(1000, 800) + self.show() + t0g = time.time() + for idx in range(3, -1, -1): + points = max_n/10**idx + t0 = time.time() + widget = BMWidget(points) + title = '%d points' % points + tabs.addTab(widget, title) + tabs.setCurrentWidget(widget) + QApplication.processEvents() + time_str = "Elapsed time: %d ms" % ((time.time()-t0)*1000) + widget.text.setText(time_str) + contents.append("
%s:
%s" % (title, time_str)) + dt = time.time()-t0g + contents.append("

Total elapsed time: %d ms" % (dt*1000)) + tabs.setCurrentIndex(0) + + +if __name__ == '__main__': + app = QApplication([]) + for name in ('Calibri', 'Verdana', 'Arial'): + if name in QFontDatabase().families(): + app.setFont(QFont(name)) + break + demo = BMDemo(100000) + app.exec_() From b487dc85455c7c2093abfb6e5dbfdcc534e90302 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 11 Sep 2015 23:39:38 +0200 Subject: [PATCH 003/421] Removed unnecessary option QwtPlot.MinimizeMemory --- CHANGELOG | 10 ++++++++-- qwt/plot_curve.py | 12 +----------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 37de62a..71a1234 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,11 @@ = History of changes = -== Version ??? == +== Version 0.1.0 == -First public release. \ No newline at end of file +First public release. + +API compatibility issues with Qwt 6.1.2: + * `QwtPlot.MinimizeMemory` option was removed as this option has no sense + in python-qwt (the polyline plotting is not taking more memory than the + array data that is already there). + * diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 99e1b0b..433b7b3 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -85,7 +85,7 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): # enum PaintAttribute ClipPolygons = 0x01 FilterPoints = 0x02 - MinimizeMemory = 0x04 + # MinimizeMemory = 0x04 --> not necessary, see CHANGELOG ImageBuffer = 0x08 def __init__(self, title=None): @@ -322,16 +322,6 @@ def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): painter.testRenderHint(QPainter.Antialiasing), self.renderThreadCount()) painter.drawImage(canvasRect.toAlignedRect(), image) - elif self.__data.paintAttributes & self.MinimizeMemory: - series = self.data() - for i in range(from_, to+1): - sample = series.sample(i) - xi = xMap.transform(sample.x()) - yi = yMap.transform(sample.y()) - if doAlign: - xi = round(xi) - yi = round(yi) - QwtPainter.drawPoint(painter, QPointF(xi, yi)) else: if doAlign: points = mapper.toPoints(xMap, yMap, self.data(), from_, to) From 5402648f189633fdb3f0e6e3565d4ab5b98fdd6b Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 11 Sep 2015 23:42:02 +0200 Subject: [PATCH 004/421] Curve plotting: fixed bugs/performance issues (dots) --- qwt/painter.py | 43 +++++++--------- qwt/point_mapper.py | 119 +++++++++++++++++++++++++------------------- 2 files changed, 86 insertions(+), 76 deletions(-) diff --git a/qwt/painter.py b/qwt/painter.py index d08aa07..40bc888 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -309,37 +309,28 @@ def drawPoint(self, painter, pos): return painter.drawPoint(pos) - def drawPoints(self, painter, points, pointCount): - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - if isinstance(points[0], QPointF): - if deviceClipping: - clippedPolygon = QPolygonF(pointCount) - clippedData = clippedPolygon.data() - numClippedPoints = 0 - for point in points: - if clipRect.contains(point): - clippedData[numClippedPoints] = point - numClippedPoints += 1 - painter.drawPoints(clippedData, numClippedPoints) - else: - painter.drawPoints(points, pointCount) + def drawPoints(self, painter, *args): + if len(args) == 2: + points, pointCount = args else: - if deviceClipping: + polygon, = args + points, pointCount = polygon.data(), polygon.size() + if isinstance(polygon, QPolygonF): + points.setsize(pointCount*np.finfo(float).dtype.itemsize) + else: + points.setsize(pointCount*np.iinfo(int).dtype.itemsize) + deviceClipping, clipRect = qwtIsClippingNeeded(painter) + if deviceClipping: + if isinstance(polygon, QPointF): minX = np.ceil(clipRect.left()) maxX = np.floor(clipRect.right()) minY = np.ceil(clipRect.top()) maxY = np.floor(clipRect.bottom()) - r = QRect(minX, minY, maxX-minX, maxY-minY) - clippedPolygon = QPolygon(pointCount) - clippedData = clippedPolygon.data() - numClippedPoints = 0 - for point in points: - if r.contains(point): - clippedData[numClippedPoints] = point - numClippedPoints += 1 - painter.drawPoints(clippedData, numClippedPoints) - else: - painter.drawPoints(points, pointCount) + clipRect = QRect(minX, minY, maxX-minX, maxY-minY) + clippedPolygon = polygon.intersected(QPolygon(clipRect)) + painter.drawPoints(clippedPolygon) + else: + painter.drawPoints(polygon) def drawImage(self, painter, rect, image): alignedRect = rect.toAlignedRect() diff --git a/qwt/point_mapper.py b/qwt/point_mapper.py index c8745f4..6880481 100644 --- a/qwt/point_mapper.py +++ b/qwt/point_mapper.py @@ -10,11 +10,21 @@ from qwt.qt.QtGui import QPolygon, QPolygonF, QImage, QPainter from qwt.qt.QtCore import QThread, Qt, QPoint, QPointF, QRectF -from qwt.pixel_matrix import QwtPixelMatrix +#from qwt.pixel_matrix import QwtPixelMatrix import numpy as np +def qwtNoRoundF(data): + return data + +def qwtRoundF(data): + return np.rint(data) + +def qwtRoundI(data): + return np.array(np.rint(data), dtype=np.int) + + class QwtDotsCommand(object): def __init__(self): self.series = None @@ -39,26 +49,31 @@ def qwtRenderDots(xMap, yMap, command, pos, image): def qwtToPoints(boundingRect, xMap, yMap, series, from_, to, round_, Polygon): - Point = QPointF if isinstance(Polygon, QPolygonF) else QPoint - points = [] - if boundingRect.isValid(): - for i in range(from_, to+1): - sample = series.sample(i) - x = xMap.transform(sample.x()) - y = yMap.transform(sample.y()) - if boundingRect.contains(x, y): - points.append(Point(round_(x), round_(y))) - else: - for i in range(from_, to+1): - sample = series.sample(i) - x = xMap.transform(sample.x()) - y = yMap.transform(sample.y()) - points.append(Point(round_(x), round_(y))) - return Polygon(list(set(points))) + Point = QPointF if Polygon is QPolygonF else QPoint + polygon = qwtToPolylineFiltered(xMap, yMap, series, from_, to, round_, + Polygon, Point) + return polygon +# # Pure Python implementation (catastophic performance) +# Point = QPointF if Polygon is QPolygonF else QPoint +# points = [] +# if boundingRect.isValid(): +# for i in range(from_, to+1): +# sample = series.sample(i) +# x = xMap.transform(sample.x()) +# y = yMap.transform(sample.y()) +# if boundingRect.contains(x, y): +# points.append(Point(round_(x), round_(y))) +# else: +# for i in range(from_, to+1): +# sample = series.sample(i) +# x = xMap.transform(sample.x()) +# y = yMap.transform(sample.y()) +# points.append(Point(round_(x), round_(y))) +# return Polygon(list(set(points))) def qwtToPointsI(boundingRect, xMap, yMap, series, from_, to): - return qwtToPoints(boundingRect, xMap, yMap, series, from_, to, round, - QPolygon) + return qwtToPoints(boundingRect, xMap, yMap, series, from_, to, + qwtNoRoundF, QPolygon) def qwtToPointsF(boundingRect, xMap, yMap, series, from_, to, round_): return qwtToPoints(boundingRect, xMap, yMap, series, from_, to, round_, @@ -69,14 +84,18 @@ def qwtToPolylineFiltered(xMap, yMap, series, from_, to, round_, Polygon, Point): polyline = Polygon(to-from_+1) pointer = polyline.data() - dtype = np.float if Polygon is QPolygonF else np.int - pointer.setsize(2*polyline.size()*np.finfo(dtype).dtype.itemsize) + if Polygon is QPolygonF: + dtype, tinfo = np.float, np.finfo + else: + dtype, tinfo = np.int, np.iinfo + pointer.setsize(2*polyline.size()*tinfo(dtype).dtype.itemsize) memory = np.frombuffer(pointer, dtype) - memory[from_*2:to*2+1:2] =\ - np.round(xMap.transform(series.xData()))[from_:to+1] - memory[from_*2+1:to*2+2:2] =\ - np.round(yMap.transform(series.yData()))[from_:to+1] + memory[:(to-from_)*2+1:2] =\ + round_(xMap.transform(series.xData()))[from_:to+1] + memory[1:(to-from_)*2+2:2] =\ + round_(yMap.transform(series.yData()))[from_:to+1] return polyline +# # Pure Python implementation (catastophic performance) # points = polyline.data() # sample0 = series.sample(from_) # points[0].setX(round_(xMap.transform(sample0.x()))) @@ -93,7 +112,7 @@ def qwtToPolylineFiltered(xMap, yMap, series, from_, to, round_, # return polyline def qwtToPolylineFilteredI(xMap, yMap, series, from_, to): - return qwtToPolylineFiltered(xMap, yMap, series, from_, to, round, + return qwtToPolylineFiltered(xMap, yMap, series, from_, to, qwtRoundI, QPolygon, QPoint) def qwtToPolylineFilteredF(xMap, yMap, series, from_, to, round_): @@ -104,18 +123,22 @@ def qwtToPolylineFilteredF(xMap, yMap, series, from_, to, round_): def qwtToPointsFiltered(boundingRect, xMap, yMap, series, from_, to, Polygon): Point = QPointF if isinstance(Polygon, QPolygonF) else QPoint - if isinstance(boundingRect, QRectF): - pixelMatrix = QwtPixelMatrix(boundingRect.toAlignedRect()) - else: - pixelMatrix = QwtPixelMatrix(boundingRect) - points = [] - for i in range(from_, to+1): - sample = series.sample(i) - x = int(round(xMap.transform(sample.x()))) - y = int(round(yMap.transform(sample.y()))) - if pixelMatrix.testAndSetPixel(x, y, True) == False: - points.append(Point(x, y)) - return Polygon(list(points)) + return qwtToPolylineFiltered(xMap, yMap, series, from_, to, qwtRoundI, + Polygon, Point) +# # Pure Python implementation (catastophic performance) +# Point = QPointF if Polygon is QPolygonF else QPoint +# if isinstance(boundingRect, QRectF): +# pixelMatrix = QwtPixelMatrix(boundingRect.toAlignedRect()) +# else: +# pixelMatrix = QwtPixelMatrix(boundingRect) +# points = [] +# for i in range(from_, to+1): +# sample = series.sample(i) +# x = int(round(xMap.transform(sample.x()))) +# y = int(round(yMap.transform(sample.y()))) +# if pixelMatrix.testAndSetPixel(x, y, True) == False: +# points.append(Point(x, y)) +# return Polygon(list(points)) def qwtToPointsFilteredI(boundingRect, xMap, yMap, series, from_, to): return qwtToPointsFiltered(boundingRect, xMap, yMap, series, from_, to, @@ -163,22 +186,20 @@ def boundingRect(self): return self.__data.boundingRect def toPolygonF(self, xMap, yMap, series, from_, to): - round_ = round - no_round = lambda x: x if self.__data.flags & QwtPointMapper.WeedOutPoints: if self.__data.flags & QwtPointMapper.RoundPoints: polyline = qwtToPolylineFilteredF(xMap, yMap, series, - from_, to, round_) + from_, to, qwtRoundF) else: polyline = qwtToPolylineFilteredF(xMap, yMap, series, - from_, to, no_round) + from_, to, qwtNoRoundF) else: if self.__data.flags & QwtPointMapper.RoundPoints: polyline = qwtToPointsF(self.qwtInvalidRect, xMap, yMap, - series, from_, to, round_) + series, from_, to, qwtRoundF) else: polyline = qwtToPointsF(self.qwtInvalidRect, xMap, yMap, - series, from_, to, no_round) + series, from_, to, qwtNoRoundF) return polyline def toPolygon(self, xMap, yMap, series, from_, to): @@ -190,8 +211,6 @@ def toPolygon(self, xMap, yMap, series, from_, to): return polyline def toPointsF(self, xMap, yMap, series, from_, to): - round_ = round - no_round = lambda x: x if self.__data.flags & QwtPointMapper.WeedOutPoints: if self.__data.flags & QwtPointMapper.RoundPoints: if self.__data.boundingRect.isValid(): @@ -199,17 +218,17 @@ def toPointsF(self, xMap, yMap, series, from_, to): xMap, yMap, series, from_, to) else: points = qwtToPolylineFilteredF(xMap, yMap, series, - from_, to, round_) + from_, to, qwtRoundF) else: points = qwtToPolylineFilteredF(xMap, yMap, series, - from_, to, no_round) + from_, to, qwtNoRoundF) else: if self.__data.flags & QwtPointMapper.RoundPoints: points = qwtToPointsF(self.__data.boundingRect, - xMap, yMap, series, from_, to, round_) + xMap, yMap, series, from_, to, qwtRoundF) else: points = qwtToPointsF(self.__data.boundingRect, - xMap, yMap, series, from_, to, no_round) + xMap, yMap, series, from_, to, qwtNoRoundF) return points def toPoints(self, xMap, yMap, series, from_, to): From af7aad8029d70d7e1e68a31f0b859c3085b3e0b1 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 11 Sep 2015 23:42:50 +0200 Subject: [PATCH 005/421] Improved curve benchmark test + added curve styles test --- .gitignore | 1 + qwt/tests/curve_benchmark.py | 41 ++++++++++-------- qwt/tests/curve_styles.py | 82 ++++++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+), 18 deletions(-) create mode 100644 qwt/tests/curve_styles.py diff --git a/.gitignore b/.gitignore index 9e15c43..82285b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .spyderproject +qwt-6.1.2 # Created by https://www.gitignore.io/api/python diff --git a/qwt/tests/curve_benchmark.py b/qwt/tests/curve_benchmark.py index d689e9e..0b8cdaf 100644 --- a/qwt/tests/curve_benchmark.py +++ b/qwt/tests/curve_benchmark.py @@ -50,24 +50,22 @@ def __init__(self, title, xdata, ydata, style, symbol=None, *args): class BMWidget(QWidget): - def __init__(self, points, parent=None): - super(BMWidget, self).__init__(parent) - layout = QGridLayout() + def __init__(self, points, *args): + super(BMWidget, self).__init__() + self.setup(points, *args) + + def params(self, *args): + return ( + ('Lines', None), + ('Dots', None), + ) + + def setup(self, points, *args): x = np.linspace(.001, 20., points) y = (np.sin(x)/x)*np.cos(20*x) - symb1 = QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.yellow), - QPen(Qt.blue), QSize(5, 5)) - symb2 = QwtSymbol(QwtSymbol.XCross, QBrush(), - QPen(Qt.darkMagenta), QSize(5, 5)) + layout = QGridLayout() nbcol, col, row = 2, 0, 0 -# for style, symbol in (('Lines', None), -# ('Lines', None), -# ('Lines', None), -# ('Lines', None)): - for style, symbol in (('Sticks', symb1), - ('Lines', None), - ('Steps', None), - ('NoCurve', symb2)): + for style, symbol in self.params(*args): layout.addWidget(BMPlot(style, x, y, getattr(QwtPlotCurve, style), symbol=symbol), row, col) col += 1 @@ -103,17 +101,24 @@ def __init__(self, max_n, parent=None, **kwargs): self.setCentralWidget(tabs) contents = BMText() tabs.addTab(contents, 'Contents') - self.resize(1000, 800) + self.resize(1000, 600) + + # Force window to show up and refresh (for test purpose only) self.show() + QApplication.processEvents() + t0g = time.time() - for idx in range(3, -1, -1): + for idx in range(4, -1, -1): points = max_n/10**idx t0 = time.time() widget = BMWidget(points) title = '%d points' % points tabs.addTab(widget, title) tabs.setCurrentWidget(widget) + + # Force widget to refresh (for test purpose only) QApplication.processEvents() + time_str = "Elapsed time: %d ms" % ((time.time()-t0)*1000) widget.text.setText(time_str) contents.append("
%s:
%s" % (title, time_str)) @@ -128,5 +133,5 @@ def __init__(self, max_n, parent=None, **kwargs): if name in QFontDatabase().families(): app.setFont(QFont(name)) break - demo = BMDemo(100000) + demo = BMDemo(1000000) app.exec_() diff --git a/qwt/tests/curve_styles.py b/qwt/tests/curve_styles.py new file mode 100644 index 0000000..3bf01e6 --- /dev/null +++ b/qwt/tests/curve_styles.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the terms of the MIT License +# Copyright (c) 2015 Pierre Raybaut +# (see LICENSE file for more details) + +"""Curve styles""" + +SHOW = True # Show test in GUI-based test launcher + +import time + +from qwt.qt.QtGui import (QApplication, QPen, QBrush, QMainWindow, QTabWidget, + QFont, QFontDatabase) +from qwt.qt.QtCore import QSize +from qwt.qt.QtCore import Qt + +from qwt.tests import curve_benchmark as cb +from qwt import QwtSymbol + + +class CSWidget(cb.BMWidget): + def params(self, *args): + symbols, = args + symb1 = QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.yellow), + QPen(Qt.blue), QSize(5, 5)) + symb2 = QwtSymbol(QwtSymbol.XCross, QBrush(), + QPen(Qt.darkMagenta), QSize(5, 5)) + if symbols: + return ( + ('Sticks', symb1), + ('Lines', symb1), + ('Steps', symb2), + ('Dots', symb2), + ) + else: + return ( + ('Sticks', None), + ('Lines', None), + ('Steps', None), + ('Dots', None), + ) + + +class BMDemo(QMainWindow): + def __init__(self, max_n, parent=None, **kwargs): + super(BMDemo, self).__init__(parent=parent) + self.setWindowTitle('Curve styles') + tabs = QTabWidget() + self.resize(1000, 800) + + # Force window to show up and refresh (for test purpose only) + self.show() + QApplication.processEvents() + + self.setCentralWidget(tabs) + pts = 1000 + for points, symbols in zip((pts/10, pts/10, pts, pts), + (True, False)*2): + t0 = time.time() + widget = CSWidget(points, symbols) + symtext = "with%s symbols" % ("" if symbols else "out") + title = '%d points, %s' % (points, symtext) + tabs.addTab(widget, title) + tabs.setCurrentWidget(widget) + + # Force widget to refresh (for test purpose only) + QApplication.processEvents() + + time_str = "Elapsed time: %d ms" % ((time.time()-t0)*1000) + widget.text.setText(time_str) + tabs.setCurrentIndex(0) + + +if __name__ == '__main__': + app = QApplication([]) + for name in ('Calibri', 'Verdana', 'Arial'): + if name in QFontDatabase().families(): + app.setFont(QFont(name)) + break + demo = BMDemo(100000) + app.exec_() From 14feb43728c0abce5e62f2bf81a0e04ee42b9197 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 11 Sep 2015 23:50:02 +0200 Subject: [PATCH 006/421] Added python-qwt-tests cl script to launch tests --- MANIFEST.in | 1 + scripts/python-qwt-tests | 3 +++ scripts/python-qwt-tests.bat | 2 ++ setup.py | 6 ++++++ 4 files changed, 12 insertions(+) create mode 100644 scripts/python-qwt-tests create mode 100644 scripts/python-qwt-tests.bat diff --git a/MANIFEST.in b/MANIFEST.in index 1def0a7..b5ccd74 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,6 @@ recursive-include qwt *.png *.svg *.pot *.po *.mo *.dcm *.ui recursive-include examples *.py *.png *.svg *.pot *.po *.mo *.dcm *.ui +recursive-include scripts *.* recursive-include src *.hpp *.cpp *.pyx recursive-include doc *.py *.rst *.png *.ico include MANIFEST.in diff --git a/scripts/python-qwt-tests b/scripts/python-qwt-tests new file mode 100644 index 0000000..e5cff12 --- /dev/null +++ b/scripts/python-qwt-tests @@ -0,0 +1,3 @@ +#!/usr/bin/env python +from qwt import tests +tests.run() \ No newline at end of file diff --git a/scripts/python-qwt-tests.bat b/scripts/python-qwt-tests.bat new file mode 100644 index 0000000..0aad2d4 --- /dev/null +++ b/scripts/python-qwt-tests.bat @@ -0,0 +1,2 @@ +@echo off +python "%~dpn0" %* \ No newline at end of file diff --git a/setup.py b/setup.py index 41805c5..9f342a0 100644 --- a/setup.py +++ b/setup.py @@ -59,6 +59,11 @@ CLASSIFIERS += ['Development Status :: 3 - Alpha'] else: CLASSIFIERS += ['Development Status :: 5 - Production/Stable'] +if os.name == 'nt': + SCRIPTS = ['python-qwt-tests', 'python-qwt-tests.bat'] +else: + SCRIPTS = ['python-tests'] +SCRIPTS = [osp.join('scripts', fname) for fname in SCRIPTS] def get_package_data(name, extlist): @@ -123,6 +128,7 @@ def run(self): package_data={PACKAGE_NAME: get_package_data(PACKAGE_NAME, ('.png', '.svg', '.mo'))}, requires=["PyQt4 (>4.3)",], + scripts=SCRIPTS, author = "Pierre Raybaut", author_email = 'pierre.raybaut@gmail.com', url = 'https://github.com/PierreRaybaut/%s' % LIBNAME, From abb79088a91466b0c056960dd32e5edc03368782 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 12 Sep 2015 13:47:53 +0200 Subject: [PATCH 007/421] Moved examples to qwt/tests So that they are available in the GUI-based test launcher --- LICENSE | 6 +++--- MANIFEST.in | 1 - {examples => qwt/tests}/BodeDemo.py | 8 ++------ {examples => qwt/tests}/CPUplot.py | 2 ++ {examples => qwt/tests}/CartesianDemo.py | 2 ++ qwt/tests/{curve_benchmark.py => CurveBenchmark.py} | 0 {examples => qwt/tests}/CurveDemo1.py | 2 ++ {examples => qwt/tests}/CurveDemo2.py | 2 ++ qwt/tests/{curve_styles.py => CurveStyles.py} | 0 {examples => qwt/tests}/DataDemo.py | 2 ++ {examples => qwt/tests}/ErrorBarDemo.py | 2 ++ {examples => qwt/tests}/EventFilterDemo.py | 2 ++ {examples => qwt/tests}/HistogramDemo.py | 2 ++ {examples => qwt/tests}/ImagePlotDemo.py | 6 ++++-- {examples => qwt/tests}/MapDemo.py | 2 ++ {examples => qwt/tests}/MultiDemo.py | 2 ++ {examples => qwt/tests}/ReallySimpleDemo.py | 2 ++ 17 files changed, 31 insertions(+), 12 deletions(-) rename {examples => qwt/tests}/BodeDemo.py (98%) rename {examples => qwt/tests}/CPUplot.py (99%) rename {examples => qwt/tests}/CartesianDemo.py (98%) rename qwt/tests/{curve_benchmark.py => CurveBenchmark.py} (100%) rename {examples => qwt/tests}/CurveDemo1.py (98%) rename {examples => qwt/tests}/CurveDemo2.py (98%) rename qwt/tests/{curve_styles.py => CurveStyles.py} (100%) rename {examples => qwt/tests}/DataDemo.py (98%) rename {examples => qwt/tests}/ErrorBarDemo.py (99%) rename {examples => qwt/tests}/EventFilterDemo.py (99%) rename {examples => qwt/tests}/HistogramDemo.py (99%) rename {examples => qwt/tests}/ImagePlotDemo.py (98%) rename {examples => qwt/tests}/MapDemo.py (98%) rename {examples => qwt/tests}/MultiDemo.py (97%) rename {examples => qwt/tests}/ReallySimpleDemo.py (97%) diff --git a/LICENSE b/LICENSE index 8d9ff9e..e939599 100644 --- a/LICENSE +++ b/LICENSE @@ -15,9 +15,9 @@ of the MIT License (see [*] and [**]). [3] Software licensed under the terms of PyQwt License -Some files under the "examples" folder at the root directory of the source -package were derived from PyQwt PyQt4 examples and are thus distributed under -the terms of the GPL License from which the PyQwt License 1.0 is derived from +Some files under the "tests" subfolder of the main Python package directory +were derived from PyQwt PyQt4 examples and are thus distributed under the +terms of the GPL License from which the PyQwt License 1.0 is derived from (see [****] for more details). diff --git a/MANIFEST.in b/MANIFEST.in index b5ccd74..1c68899 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,4 @@ recursive-include qwt *.png *.svg *.pot *.po *.mo *.dcm *.ui -recursive-include examples *.py *.png *.svg *.pot *.po *.mo *.dcm *.ui recursive-include scripts *.* recursive-include src *.hpp *.cpp *.pyx recursive-include doc *.py *.rst *.png *.ico diff --git a/examples/BodeDemo.py b/qwt/tests/BodeDemo.py similarity index 98% rename from examples/BodeDemo.py rename to qwt/tests/BodeDemo.py index be1787b..0dda487 100644 --- a/examples/BodeDemo.py +++ b/qwt/tests/BodeDemo.py @@ -6,14 +6,10 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) -# The Python version of Qwt-5.1.1/examples/bode - -# To get an impression of the expressive power of NumPy, -# compare the Python and C++ versions of setDamp() - -# BodeDemo.py requires at least Python v2.6. from __future__ import unicode_literals +SHOW = True # Show test in GUI-based test launcher + import sys import numpy as np diff --git a/examples/CPUplot.py b/qwt/tests/CPUplot.py similarity index 99% rename from examples/CPUplot.py rename to qwt/tests/CPUplot.py index 177eed2..c496d72 100644 --- a/examples/CPUplot.py +++ b/qwt/tests/CPUplot.py @@ -6,6 +6,8 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) +SHOW = True # Show test in GUI-based test launcher + import os import sys import numpy as np diff --git a/examples/CartesianDemo.py b/qwt/tests/CartesianDemo.py similarity index 98% rename from examples/CartesianDemo.py rename to qwt/tests/CartesianDemo.py index f205923..8e8e17a 100644 --- a/examples/CartesianDemo.py +++ b/qwt/tests/CartesianDemo.py @@ -6,6 +6,8 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) +SHOW = True # Show test in GUI-based test launcher + import sys import numpy as np diff --git a/qwt/tests/curve_benchmark.py b/qwt/tests/CurveBenchmark.py similarity index 100% rename from qwt/tests/curve_benchmark.py rename to qwt/tests/CurveBenchmark.py diff --git a/examples/CurveDemo1.py b/qwt/tests/CurveDemo1.py similarity index 98% rename from examples/CurveDemo1.py rename to qwt/tests/CurveDemo1.py index 545c056..47dcb45 100644 --- a/examples/CurveDemo1.py +++ b/qwt/tests/CurveDemo1.py @@ -6,6 +6,8 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) +SHOW = True # Show test in GUI-based test launcher + import sys import numpy as np diff --git a/examples/CurveDemo2.py b/qwt/tests/CurveDemo2.py similarity index 98% rename from examples/CurveDemo2.py rename to qwt/tests/CurveDemo2.py index 8db5222..de75b56 100644 --- a/examples/CurveDemo2.py +++ b/qwt/tests/CurveDemo2.py @@ -8,6 +8,8 @@ #FIXME: scale issue! +SHOW = True # Show test in GUI-based test launcher + import sys import numpy as np diff --git a/qwt/tests/curve_styles.py b/qwt/tests/CurveStyles.py similarity index 100% rename from qwt/tests/curve_styles.py rename to qwt/tests/CurveStyles.py diff --git a/examples/DataDemo.py b/qwt/tests/DataDemo.py similarity index 98% rename from examples/DataDemo.py rename to qwt/tests/DataDemo.py index 5eba2b9..263c9bc 100644 --- a/examples/DataDemo.py +++ b/qwt/tests/DataDemo.py @@ -6,6 +6,8 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) +SHOW = True # Show test in GUI-based test launcher + import random import sys import numpy as np diff --git a/examples/ErrorBarDemo.py b/qwt/tests/ErrorBarDemo.py similarity index 99% rename from examples/ErrorBarDemo.py rename to qwt/tests/ErrorBarDemo.py index 9e7d11e..30ab679 100644 --- a/examples/ErrorBarDemo.py +++ b/qwt/tests/ErrorBarDemo.py @@ -6,6 +6,8 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) +SHOW = True # Show test in GUI-based test launcher + import sys import numpy as np diff --git a/examples/EventFilterDemo.py b/qwt/tests/EventFilterDemo.py similarity index 99% rename from examples/EventFilterDemo.py rename to qwt/tests/EventFilterDemo.py index 6982702..a0354c5 100644 --- a/examples/EventFilterDemo.py +++ b/qwt/tests/EventFilterDemo.py @@ -6,6 +6,8 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) +SHOW = True # Show test in GUI-based test launcher + import sys import numpy as np diff --git a/examples/HistogramDemo.py b/qwt/tests/HistogramDemo.py similarity index 99% rename from examples/HistogramDemo.py rename to qwt/tests/HistogramDemo.py index ab57dff..e7eb98b 100644 --- a/examples/HistogramDemo.py +++ b/qwt/tests/HistogramDemo.py @@ -6,6 +6,8 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) +SHOW = True # Show test in GUI-based test launcher + import random import sys diff --git a/examples/ImagePlotDemo.py b/qwt/tests/ImagePlotDemo.py similarity index 98% rename from examples/ImagePlotDemo.py rename to qwt/tests/ImagePlotDemo.py index 1830d08..5e707b4 100644 --- a/examples/ImagePlotDemo.py +++ b/qwt/tests/ImagePlotDemo.py @@ -6,6 +6,10 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) +#FIXME: This example is still not working: image scaling issue (see PlotImage.draw) + +SHOW = True # Show test in GUI-based test launcher + import sys import numpy as np @@ -15,8 +19,6 @@ QwtPlotItem, QwtText, QwtLegendData, QwtLinearColorMap, QwtInterval, QwtScaleMap, toQImage) -#FIXME: This example is still not working: I suspect an issue related to image scaling (see PlotImage.draw) - def bytescale(data, cmin=None, cmax=None, high=255, low=0): if ((hasattr(data, 'dtype') and data.dtype.char == np.uint8) or (hasattr(data, 'typecode') and data.typecode == np.uint8) diff --git a/examples/MapDemo.py b/qwt/tests/MapDemo.py similarity index 98% rename from examples/MapDemo.py rename to qwt/tests/MapDemo.py index 41b82e6..50d8fe7 100644 --- a/examples/MapDemo.py +++ b/qwt/tests/MapDemo.py @@ -6,6 +6,8 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) +SHOW = True # Show test in GUI-based test launcher + import random import sys import time diff --git a/examples/MultiDemo.py b/qwt/tests/MultiDemo.py similarity index 97% rename from examples/MultiDemo.py rename to qwt/tests/MultiDemo.py index c2fe778..a5f847c 100644 --- a/examples/MultiDemo.py +++ b/qwt/tests/MultiDemo.py @@ -6,6 +6,8 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) +SHOW = True # Show test in GUI-based test launcher + import sys import numpy as np diff --git a/examples/ReallySimpleDemo.py b/qwt/tests/ReallySimpleDemo.py similarity index 97% rename from examples/ReallySimpleDemo.py rename to qwt/tests/ReallySimpleDemo.py index fead908..fbba895 100644 --- a/examples/ReallySimpleDemo.py +++ b/qwt/tests/ReallySimpleDemo.py @@ -6,6 +6,8 @@ # developments (e.g. ported to python-qwt API) # (see LICENSE file for more details) +SHOW = True # Show test in GUI-based test launcher + import sys import numpy as np From 079da321de1d52bcb50e510bfd1505e25f80dcd2 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 12 Sep 2015 13:56:27 +0200 Subject: [PATCH 008/421] Fixed CurveStyles test following recent module renaming --- qwt/tests/CurveStyles.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/tests/CurveStyles.py b/qwt/tests/CurveStyles.py index 3bf01e6..63796b5 100644 --- a/qwt/tests/CurveStyles.py +++ b/qwt/tests/CurveStyles.py @@ -15,7 +15,7 @@ from qwt.qt.QtCore import QSize from qwt.qt.QtCore import Qt -from qwt.tests import curve_benchmark as cb +from qwt.tests import CurveBenchmark as cb from qwt import QwtSymbol From df88141f6b349ac7b716decfa9f7cb51b764799d Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 12 Sep 2015 14:09:06 +0200 Subject: [PATCH 009/421] Update README: new Examples/tests section --- README.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0af54e1..a4593e3 100644 --- a/README.md +++ b/README.md @@ -69,4 +69,17 @@ amount of data, there is no performance gain when zooming in). From the source package: - python setup.py install +```python +python setup.py install +``` + +## Examples/tests + +The GUI-based test launcher may be executed from Python: + +```python +from qwt import tests +tests.run() +``` + +or from the command line: `python-qwt-tests`. From 83dc8cbbed1f26755e98a6018eed127b16bf60ca Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 13 Sep 2015 17:42:28 +0200 Subject: [PATCH 010/421] Fixed Issue #21: typo in setup.py (for non-Windows platforms) --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 9f342a0..a963552 100644 --- a/setup.py +++ b/setup.py @@ -62,7 +62,7 @@ if os.name == 'nt': SCRIPTS = ['python-qwt-tests', 'python-qwt-tests.bat'] else: - SCRIPTS = ['python-tests'] + SCRIPTS = ['python-qwt-tests'] SCRIPTS = [osp.join('scripts', fname) for fname in SCRIPTS] From 28324a02ac9d45d14f071d391b4cc8119520ceff Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 13 Sep 2015 18:12:29 +0200 Subject: [PATCH 011/421] Updated changelog for v0.1.1 --- .gitignore | 1 + CHANGELOG | 15 +++++++-------- README.md | 9 +++++++-- qwt/__init__.py | 2 +- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 82285b8..92b5034 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .spyderproject qwt-6.1.2 +qwt/tests/demo.png # Created by https://www.gitignore.io/api/python diff --git a/CHANGELOG b/CHANGELOG index 71a1234..52d2149 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,11 +1,10 @@ -= History of changes = +# History of changes -== Version 0.1.0 == +## Version 0.1.1 -First public release. +Fixed Issue #21 (blocking issue *only* on non-Windows platforms when building +the package): typo in "python-qwt-tests" script name (setup.py) -API compatibility issues with Qwt 6.1.2: - * `QwtPlot.MinimizeMemory` option was removed as this option has no sense - in python-qwt (the polyline plotting is not taking more memory than the - array data that is already there). - * +## Version 0.1.0 + +First alpha public release. diff --git a/README.md b/README.md index a4593e3..b1f6eb7 100644 --- a/README.md +++ b/README.md @@ -39,8 +39,8 @@ See included LICENSE file for more details about licensing terms. ## Overview -The `qwt` package is a pure Python implementation of Qwt C++ library with -the following limitations. +The `qwt` package is a pure Python implementation of `Qwt` C++ library +with the following limitations. The following `Qwt` classes won't be reimplemented in `qwt` because more powerful features already exist in `guiqwt`: `QwtPlotZoomer`, @@ -57,6 +57,11 @@ performance issues). As a consequence, when zooming in a plot curve, the entire curve is still painted (in other words, when working with large amount of data, there is no performance gain when zooming in). +Other API compatibility issues with `Qwt`: +- `QwtPlot.MinimizeMemory` option was removed as this option has no sense + in python-qwt (the polyline plotting is not taking more memory than the + array data that is already there). + ## Dependencies ### Requirements ### diff --git a/qwt/__init__.py b/qwt/__init__.py index 132a6bd..83db173 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -5,7 +5,7 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) -__version__ = '0.1.0' +__version__ = '0.1.1' QWT_VERSION_STR = '6.1.2' import warnings From 01ec68782ae72fb37fcc9349c0fb279690192112 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 13 Sep 2015 18:14:43 +0200 Subject: [PATCH 012/421] CHANGELOG --> renamed to .md --- CHANGELOG => CHANGELOG.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) rename CHANGELOG => CHANGELOG.md (95%) diff --git a/CHANGELOG b/CHANGELOG.md similarity index 95% rename from CHANGELOG rename to CHANGELOG.md index 52d2149..723f2d9 100644 --- a/CHANGELOG +++ b/CHANGELOG.md @@ -1,10 +1,10 @@ -# History of changes - -## Version 0.1.1 - -Fixed Issue #21 (blocking issue *only* on non-Windows platforms when building -the package): typo in "python-qwt-tests" script name (setup.py) - -## Version 0.1.0 - -First alpha public release. +# History of changes + +## Version 0.1.1 + +Fixed Issue #21 (blocking issue *only* on non-Windows platforms when building +the package): typo in "python-qwt-tests" script name (setup.py) + +## Version 0.1.0 + +First alpha public release. From c66e06188cf30ce27b56e218740d232c638f2204 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 13 Sep 2015 19:07:17 +0200 Subject: [PATCH 013/421] Fixed typo in qwt/interval.py: invalid intervals were having `numpy.nan` width --- qwt/interval.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/interval.py b/qwt/interval.py index 7b97fb3..40b7e39 100644 --- a/qwt/interval.py +++ b/qwt/interval.py @@ -54,7 +54,7 @@ def isValid(self): return self.__minValue < self.__maxValue def width(self): - if self.isValid: + if self.isValid(): return self.__maxValue - self.__minValue else: return 0. From 30a8f3d8c183e8200b5258ff33ddf61005fb5a04 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 13 Sep 2015 22:56:55 +0200 Subject: [PATCH 014/421] Updated `qt` compatibility package to the latest version --- qwt/qt/__init__.py | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/qwt/qt/__init__.py b/qwt/qt/__init__.py index 13b421a..70b7239 100644 --- a/qwt/qt/__init__.py +++ b/qwt/qt/__init__.py @@ -5,7 +5,7 @@ # Licensed under the terms of the MIT License # (see LICENSE file for details) -"""Transitional package (PyQt4 --> PySide)""" +"""Compatibility package (PyQt4/PyQt5/PySide)""" import os @@ -15,17 +15,7 @@ API = os.environ['QT_API'] API_NAME = {'pyqt5': 'PyQt5', 'pyqt': 'PyQt4', 'pyside': 'PySide'}[API] -PYQT5 = False - -if API == 'pyqt5': - try: - from PyQt5.QtCore import PYQT_VERSION_STR as __version__ - is_old_pyqt = False - is_pyqt46 = False - PYQT5 = True - except ImportError: - pass -elif API == 'pyqt': +if API == 'pyqt': # Spyder 2.3 is compatible with both #1 and #2 PyQt API, # but to avoid issues with IPython and other Qt plugins # we choose to support only API #2 for 2.4+ @@ -46,9 +36,16 @@ try: from PyQt4.QtCore import PYQT_VERSION_STR as __version__ # analysis:ignore except ImportError: - # Switching to PySide - API = os.environ['QT_API'] = 'pyside' - API_NAME = 'PySide' + # Trying PyQt5 before switching to PySide (at this point, PyQt4 may + # not be installed but PyQt5 or Pyside could still be if the QT_API + # environment variable hasn't been set-up) + try: + import PyQt5 # analysis:ignore + API = os.environ['QT_API'] = 'pyqt5' + API_NAME = 'PyQt5' + except ImportError: + API = os.environ['QT_API'] = 'pyside' + API_NAME = 'PySide' else: is_old_pyqt = __version__.startswith(('4.4', '4.5', '4.6', '4.7')) is_pyqt46 = __version__.startswith('4.6') @@ -57,8 +54,18 @@ API_NAME += (" (API v%d)" % sip.getapi('QString')) except AttributeError: pass + from PyQt4 import uic # analysis:ignore - +PYQT5 = False +if API == 'pyqt5': + try: + from PyQt5.QtCore import PYQT_VERSION_STR as __version__ + from PyQt5 import uic # analysis:ignore + PYQT5 = True + is_old_pyqt = is_pyqt46 = False + except ImportError: + pass + if API == 'pyside': try: from PySide import __version__ # analysis:ignore From ce33ebe7787d415238f042a88fd53328c5744431 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 21 Sep 2015 23:47:06 +0200 Subject: [PATCH 015/421] Added first basic documentation rst pages --- .gitignore | 1 + build_chm.bat | 6 ++ build_doc_zip.bat | 5 ++ doc/conf.py | 201 +++++++++++++++++++++++++++++++++++++++++++ doc/index.rst | 17 ++++ doc/installation.rst | 26 ++++++ doc/overview.rst | 37 ++++++++ doc/reference.rst | 6 ++ qwt/clipper.py | 2 + qwt/color_map.py | 88 +++++++++++++++++++ 10 files changed, 389 insertions(+) create mode 100644 build_chm.bat create mode 100644 build_doc_zip.bat create mode 100644 doc/conf.py create mode 100644 doc/index.rst create mode 100644 doc/installation.rst create mode 100644 doc/overview.rst create mode 100644 doc/reference.rst diff --git a/.gitignore b/.gitignore index 92b5034..728df3c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .spyderproject qwt-6.1.2 qwt/tests/demo.png +qwtdoc.chm # Created by https://www.gitignore.io/api/python diff --git a/build_chm.bat b/build_chm.bat new file mode 100644 index 0000000..5f92547 --- /dev/null +++ b/build_chm.bat @@ -0,0 +1,6 @@ +sphinx-build -b htmlhelp doc doctmp +"C:\Program Files\HTML Help Workshop\hhc.exe" doctmp\qwtdoc.hhp +"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" doctmp\qwtdoc.hhp +copy doctmp\qwtdoc.chm . +rmdir /S /Q doctmp +pause \ No newline at end of file diff --git a/build_doc_zip.bat b/build_doc_zip.bat new file mode 100644 index 0000000..7527350 --- /dev/null +++ b/build_doc_zip.bat @@ -0,0 +1,5 @@ +sphinx-build -b html doc doctmp +cd doctmp +7z a -r ..\doc.zip *.* +cd .. +rmdir /S /Q doctmp \ No newline at end of file diff --git a/doc/conf.py b/doc/conf.py new file mode 100644 index 0000000..e8cfc8b --- /dev/null +++ b/doc/conf.py @@ -0,0 +1,201 @@ +# -*- coding: utf-8 -*- +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +from __future__ import print_function, unicode_literals + +import sys + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.append(os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.autodoc'] +try: + import sphinx.ext.viewcode + extensions.append('sphinx.ext.viewcode') +except ImportError: + print("WARNING: the Sphinx viewcode extension was not found", file=sys.stderr) + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = 'python-qwt' +import time +this_year = time.strftime("%Y", time.localtime()) +copyright = "2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)" + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +import qwt +version = ".".join(qwt.__version__.split('.')[:2]) +# The full version, including alpha/beta/rc tags. +release = qwt.__version__ + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +#unused_docs = [] + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +modindex_common_prefix = ['qwt.'] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. Major themes that come with +# Sphinx are currently 'default' and 'sphinxdoc'. +html_theme = 'sphinxdoc' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +## html_theme_options = {'sidebarbgcolor': '#227A2B', +## 'sidebarlinkcolor': '#98ff99'} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = 'images/qwt.png' + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = 'favicon.ico' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +html_use_modindex = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'qwtdoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'qwt.tex', 'python-qwt Documentation', 'Pierre Raybaut', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True diff --git a/doc/index.rst b/doc/index.rst new file mode 100644 index 0000000..73d056c --- /dev/null +++ b/doc/index.rst @@ -0,0 +1,17 @@ +.. automodule:: qwt + + +Contents: + +.. toctree:: + :maxdepth: 2 + + overview + installation + reference + + +Indices and tables: + +* :ref:`genindex` +* :ref:`search` diff --git a/doc/installation.rst b/doc/installation.rst new file mode 100644 index 0000000..b0849a3 --- /dev/null +++ b/doc/installation.rst @@ -0,0 +1,26 @@ +Installation +============ + +Dependencies +------------ + +Requirements: + * Python 2.x (x>=6) + * PyQt4 4.x (x>=4) or PyQt5 5.x (x>=5) + * NumPy 1.x (x>=5) + +Installation +------------ + +From the source package: + + `python setup.py install` + +Help and support +---------------- + +External resources: + + * Bug reports and feature requests: `GitHub`_ + +.. _GitHub: https://github.com/PierreRaybaut/python-qwt diff --git a/doc/overview.rst b/doc/overview.rst new file mode 100644 index 0000000..8568120 --- /dev/null +++ b/doc/overview.rst @@ -0,0 +1,37 @@ +Purpose and Motivation +====================== + +The ``python-qwt`` project was initiated to solve -at least temporarily- +the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) +which is no longer maintained. The idea was to translate the original +Qwt C++ code to Python and then to optimize some parts of the code by +writing new modules based on NumPy and other libraries. + +The ``python-qwt`` package consists of a single Python package named +`qwt` and of a few other files (examples, doc, ...). + +Overview +======== + +The `qwt` package is a pure Python implementation of `Qwt` C++ library +with the following limitations. + +The following `Qwt` classes won't be reimplemented in `qwt` because more +powerful features already exist in `guiqwt`: `QwtPlotZoomer`, +`QwtCounter`, `QwtEventPattern`, `QwtPicker`, `QwtPlotPicker`. + +Only the following plot items are currently implemented in `qwt` (the +only plot items needed by `guiqwt`): `QwtPlotItem` (base class), +`QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem`, `QwtPlotHistogram`, +`QwtPlotCurve`. + +The `QwtClipper` class is not implemented yet (and it will probably be +very difficult or even impossible to implement it in pure Python without +performance issues). As a consequence, when zooming in a plot curve, the +entire curve is still painted (in other words, when working with large +amount of data, there is no performance gain when zooming in). + +Other API compatibility issues with `Qwt`: +- `QwtPlot.MinimizeMemory` option was removed as this option has no sense + in python-qwt (the polyline plotting is not taking more memory than the + array data that is already there). diff --git a/doc/reference.rst b/doc/reference.rst new file mode 100644 index 0000000..9cb1812 --- /dev/null +++ b/doc/reference.rst @@ -0,0 +1,6 @@ +python-qwt reference +==================== + +.. automodule:: qwt.color_map + :members: + :inherited-members: diff --git a/qwt/clipper.py b/qwt/clipper.py index 27b4211..a32a69f 100644 --- a/qwt/clipper.py +++ b/qwt/clipper.py @@ -5,6 +5,8 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +#XXX: Unfinished (and not imported elsewhere) translation of QwtClipper class + from qwt.qt.QtGui import QPolygon, QPolygonF from qwt.qt.QtCore import QRect, QRectF diff --git a/qwt/color_map.py b/qwt/color_map.py index 901d17c..9a87523 100644 --- a/qwt/color_map.py +++ b/qwt/color_map.py @@ -112,6 +112,26 @@ def rgb(self, mode, pos): class QwtColorMap(object): + """ + QwtColorMap is used to map values into colors. + + For displaying 3D data on a 2D plane the 3rd dimension is often + displayed using colors, like f.e in a spectrogram. + + Each color map is optimized to return colors for only one of the + following image formats: + + * `QImage.Format_Indexed8` + * `QImage.Format_ARGB32` + + .. py:class:: QwtColorMap(format_) + + :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`) + + .. seealso :: + + :py:data:`qwt.QwtScaleWidget` + """ # enum Format RGB, Indexed = list(range(2)) @@ -122,6 +142,21 @@ def __init__(self, format_=None): self.__format = format_ def color(self, interval, value): + """ + .. py:method:: color(interval, value) + + Map a value into a color + + :param QwtInterval interval: valid interval for value + :param float value: value + :return: the color corresponding to value + + .. warning :: + + This method is slow for Indexed color maps. If it is necessary to + map many values, its better to get the color table once and find + the color using `colorIndex()`. + """ if self.__format == self.RGB: return QColor.fromRgba(self.rgb(interval, value)) else: @@ -132,6 +167,17 @@ def format(self): return self.__format def colorTable(self, interval): + """ + .. py:method:: colorTable(interval) + + Build and return a color map of 256 colors + + :param QwtInterval interval: range for the values + :return: a color table, that can be used for a `QImage` + + The color table is needed for rendering indexed images in combination + with using `colorIndex()`. + """ table = [0] * 256 if interval.isValid(): step = interval.width()/(len(table)-1) @@ -139,6 +185,9 @@ def colorTable(self, interval): table[i] = self.rgb(interval, interval.minValue()+step*i) return table + def colorIndex(self, interval, value): + raise NotImplementedError + class QwtLinearColorMap_PrivateData(object): def __init__(self): @@ -147,6 +196,24 @@ def __init__(self): class QwtLinearColorMap(QwtColorMap): + """ + Build a linear color map with two stops. + + .. py:class:: QwtLinearColorMap(format_) + + Build a color map with two stops at 0.0 and 1.0. + The color at 0.0 is `Qt.blue`, at 1.0 it is `Qt.yellow`. + + :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`) + + .. py:class:: QwtLinearColorMap(color1, color2, [format_=QwtColorMap.RGB]): + + Build a color map with two stops at 0.0 and 1.0. + + :param QColor color1: color at 0. + :param QColor color2: color at 1. + :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`) + """ # enum Mode FixedColors, ScaledColors = list(range(2)) @@ -169,9 +236,27 @@ def __init__(self, *args): self.setColorInterval(color1, color2) def setMode(self, mode): + """ + .. py:method:: setMode(mode) + + Set the mode of the color map + + :param int mode: :py:data:`QwtLinearColorMap.FixedColors` or :py:data:`QwtLinearColorMap.ScaledColors` + + `FixedColors` means the color is calculated from the next lower color + stop. `ScaledColors` means the color is calculated by interpolating + the colors of the adjacent stops. + """ self.__data.mode = mode def mode(self): + """ + Return the mode of the color map + + .. seealso :: + + :py:meth:`QwtLinearColorMap.setMode` + """ return self.__data.mode def setColorInterval(self, color1, color2): @@ -246,3 +331,6 @@ def rgb(self, interval, value): return self.__data.rgbMax ratio = (value-interval.minValue())/width return self.__data.rgb | (int(round(255*ratio)) << 24) + + def colorIndex(self, interval, value): + return 0 From 7fedcfd2d8cb8dbd1e7c452d80e63c8ad986563d Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 22 Sep 2015 22:46:34 +0200 Subject: [PATCH 016/421] Doc: added panorama image + intro text --- doc/images/panorama.png | Bin 0 -> 154457 bytes doc/overview.rst | 7 ++++--- qwt/__init__.py | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 doc/images/panorama.png diff --git a/doc/images/panorama.png b/doc/images/panorama.png new file mode 100644 index 0000000000000000000000000000000000000000..4dda3fc69f5f7e4897fed18bdeec3786267d6b6e GIT binary patch literal 154457 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� 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

0c6EF~WIAXSi9!&a%UJiktGLZRk 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 M07*qoM6N<$f=#+d#Q*>R literal 0 HcmV?d00001 diff --git a/doc/overview.rst b/doc/overview.rst index 8568120..02338b0 100644 --- a/doc/overview.rst +++ b/doc/overview.rst @@ -32,6 +32,7 @@ entire curve is still painted (in other words, when working with large amount of data, there is no performance gain when zooming in). Other API compatibility issues with `Qwt`: -- `QwtPlot.MinimizeMemory` option was removed as this option has no sense - in python-qwt (the polyline plotting is not taking more memory than the - array data that is already there). + + - `QwtPlot.MinimizeMemory` option was removed as this option has no sense + in python-qwt (the polyline plotting is not taking more memory than the + array data that is already there). diff --git a/qwt/__init__.py b/qwt/__init__.py index 83db173..e75d6d8 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -4,7 +4,23 @@ # Copyright (c) 2002 Uwe Rathmann, for the original C++ code # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +python-qwt +========== +The ``python-qwt`` package is a 2D-data plotting library using Qt graphical +user interfaces for the Python programming language. + +It consists of a single Python package named `qwt` which is a pure Python +implementation of Qwt C++ library with some limitations. + +.. image:: images/panorama.png + +External resources: + * Bug reports and feature requests: `GitHub`_ + +.. _GitHub: https://github.com/PierreRaybaut/python-qwt +""" __version__ = '0.1.1' QWT_VERSION_STR = '6.1.2' From 30853bb15457bd76933596addfe826e881e0e164 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 22 Sep 2015 23:17:56 +0200 Subject: [PATCH 017/421] Doc: reorganized API reference (splitted in multiple pages) --- doc/conf.py | 2 ++ doc/index.rst | 2 +- doc/reference.rst | 6 ------ doc/reference/color_map.rst | 2 ++ doc/reference/index.rst | 9 ++++++++ qwt/color_map.py | 41 +++++++++++++++++++++++++++++++++++++ 6 files changed, 55 insertions(+), 7 deletions(-) delete mode 100644 doc/reference.rst create mode 100644 doc/reference/color_map.rst create mode 100644 doc/reference/index.rst diff --git a/doc/conf.py b/doc/conf.py index e8cfc8b..c7e9532 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -93,6 +93,8 @@ # A list of ignored prefixes for module index sorting. modindex_common_prefix = ['qwt.'] +autodoc_member_order = 'bysource' + # -- Options for HTML output --------------------------------------------------- diff --git a/doc/index.rst b/doc/index.rst index 73d056c..bb78312 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -8,7 +8,7 @@ Contents: overview installation - reference + reference/index Indices and tables: diff --git a/doc/reference.rst b/doc/reference.rst deleted file mode 100644 index 9cb1812..0000000 --- a/doc/reference.rst +++ /dev/null @@ -1,6 +0,0 @@ -python-qwt reference -==================== - -.. automodule:: qwt.color_map - :members: - :inherited-members: diff --git a/doc/reference/color_map.rst b/doc/reference/color_map.rst new file mode 100644 index 0000000..a42e20a --- /dev/null +++ b/doc/reference/color_map.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.color_map + :members: diff --git a/doc/reference/index.rst b/doc/reference/index.rst new file mode 100644 index 0000000..7553da1 --- /dev/null +++ b/doc/reference/index.rst @@ -0,0 +1,9 @@ +Reference +========= + +python-qwt API: + +.. toctree:: + :maxdepth: 2 + + color_map diff --git a/qwt/color_map.py b/qwt/color_map.py index 9a87523..da99ec2 100644 --- a/qwt/color_map.py +++ b/qwt/color_map.py @@ -5,6 +5,23 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +qwt.color_map +------------- + +The `color_map` module provides the `QwtColorMap` base class and derived +classes. + +.. autoclass:: QwtColorMap + :members: + +.. autoclass:: QwtLinearColorMap + :members: + +.. autoclass:: QwtAlphaColorMap + :members: +""" + from qwt.qt.QtGui import QColor, qRed, qGreen, qBlue, qRgb, qRgba, qAlpha from qwt.qt.QtCore import Qt, qIsNaN @@ -306,17 +323,41 @@ def __init__(self): self.rgbMax = None class QwtAlphaColorMap(QwtColorMap): + """ + QwtAlphaColorMap varies the alpha value of a color + + .. py:class:: QwtAlphaColorMap(color) + + Build a color map varying the alpha value of a color. + + :param QColor color: color of the map + """ + def __init__(self, color): super(QwtAlphaColorMap, self).__init__(QwtColorMap.RGB) self.__data = QwtAlphaColorMap_PrivateData() self.setColor(color) def setColor(self, color): + """ + .. py:method:: setColor(color) + + Set the color of the map + + :param QColor color: color of the map + """ self.__data.color = color self.__data.rgb = color.rgb() & qRgba(255, 255, 255, 0) self.__data.rgbMax = self.__data.rgb | ( 255 << 24 ) def color(self): + """ + Return the color of the map + + .. seealso :: + + :py:meth:`QwtAlphaColorMap.setColor` + """ return self.__data.color() def rgb(self, interval, value): From 6bdda03daab3088f1deced29db6d720a5a677d3e Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Wed, 23 Sep 2015 22:24:57 +0200 Subject: [PATCH 018/421] `QwtPlotCurve.Fitted` option was removed (won't implement curve fitting) --- README.md | 13 ++- doc/overview.rst | 6 ++ qwt/curve_fitter.py | 208 -------------------------------------------- qwt/plot_curve.py | 19 +--- 4 files changed, 17 insertions(+), 229 deletions(-) delete mode 100644 qwt/curve_fitter.py diff --git a/README.md b/README.md index b1f6eb7..53b1185 100644 --- a/README.md +++ b/README.md @@ -57,10 +57,17 @@ performance issues). As a consequence, when zooming in a plot curve, the entire curve is still painted (in other words, when working with large amount of data, there is no performance gain when zooming in). +The curve fitter feature is not implemented because powerful curve fitting +features are already implemented in `guiqwt`. + Other API compatibility issues with `Qwt`: -- `QwtPlot.MinimizeMemory` option was removed as this option has no sense - in python-qwt (the polyline plotting is not taking more memory than the - array data that is already there). + + - `QwtPlot.MinimizeMemory` option was removed as this option has no sense + in python-qwt (the polyline plotting is not taking more memory than the + array data that is already there). + + - `QwtPlotCurve.Fitted` option was removed as this option is not supported + at the moment. ## Dependencies diff --git a/doc/overview.rst b/doc/overview.rst index 02338b0..e9a1ea8 100644 --- a/doc/overview.rst +++ b/doc/overview.rst @@ -31,8 +31,14 @@ performance issues). As a consequence, when zooming in a plot curve, the entire curve is still painted (in other words, when working with large amount of data, there is no performance gain when zooming in). +The curve fitter feature is not implemented because powerful curve fitting +features are already implemented in `guiqwt`. + Other API compatibility issues with `Qwt`: - `QwtPlot.MinimizeMemory` option was removed as this option has no sense in python-qwt (the polyline plotting is not taking more memory than the array data that is already there). + + - `QwtPlotCurve.Fitted` option was removed as this option is not supported + at the moment. diff --git a/qwt/curve_fitter.py b/qwt/curve_fitter.py deleted file mode 100644 index 9b72d6e..0000000 --- a/qwt/curve_fitter.py +++ /dev/null @@ -1,208 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -from qwt.spline import QwtSpline - -from qwt.qt.QtGui import QPolygonF -from qwt.qt.QtCore import QPointF - -import numpy as np - - -class QwtCurveFitter(object): - def __init__(self): - pass - - -class QwtSplineCurveFitter_PrivateData(object): - def __init__(self): - self.fitMode = QwtSplineCurveFitter.Auto - self.splineSize = 250 - self.spline = QwtSpline() - - -class QwtSplineCurveFitter(QwtCurveFitter): - # enum FitMode - Auto, Spline, ParametricSpline = list(range(3)) - - def __init__(self): - super(QwtSplineCurveFitter, self).__init__() - self.__data = QwtSplineCurveFitter_PrivateData() - - def setFitMode(self, mode): - self.__data.fitMode = mode - - def fitMode(self): - return self.__data.fitMode - - def setSpline(self, spline): - self.__data.spline = spline - self.__data.spline.reset() - - def spline(self): - return self.__data.spline - - def setSplineSize(self, splineSize): - self.__data.splineSize = max([splineSize, 10]) - - def splineSize(self): - return self.__data.splineSize - - def fitCurve(self, points): - size = points.size() - if size <= 2: - return points - fitMode = self.__data.fitMode - if fitMode == self.Auto: - fitMode = self.Spline - p = points#.data() - for i in range(1, size): - if p[i].x() <= p[i-1].x(): - fitMode = self.ParametricSpline - break - if fitMode == self.ParametricSpline: - return self.fitParametric(points) - else: - return self.fitSpline(points) - - def fitSpline(self, points): - self.__data.spline.setPoints(points) - if not self.__data.spline.isValid(): - return points - fittedPoints = QPolygonF(self.__data.splineSize) - x1 = points[0].x() - x2 = points[int(points.size()-1)].x() - dx = x2 - x1 - delta = dx/(self.__data.splineSize()-1) - for i in range(self.__data.splineSize): - v = x1 + i*delta - sv = self.__data.spline.value(v) - fittedPoints[i] = QPointF(v, sv) - self.__data.spline.reset() - return fittedPoints - - def fitParametric(self, points): - size = points.size() - fittedPoints = QPolygonF(self.__data.splineSize) - splinePointsX = QPolygonF(size) - splinePointsY = QPolygonF(size) -# p = points.data() - spX = splinePointsX#.data() - spY = splinePointsY#.data() - param = 0. - for i in range(size): - x = points[i].x() - y = points[i].y() - if i > 0: - delta = np.sqrt((x-spX[i-1].y())**2+(y-spY[i-1].y())**2) - param += max([delta, 1.]) - spX[i] = QPointF(param, x) - spY[i] = QPointF(param, y) - self.__data.spline.setPoints(splinePointsX) - if not self.__data.spline.isValid(): - return points - deltaX = splinePointsX[size-1].x()/(self.__data.splineSize-1) - for i in range(self.__data.splineSize): - dtmp = i*deltaX - fittedPoints[i] = QPointF(self.__data.spline.value(dtmp), - fittedPoints[i].y()) - self.__data.spline.setPoints(splinePointsY) - if not self.__data.spline.isValid(): - return points - deltaY = splinePointsY[size-1].x()/(self.__data.splineSize-1) - for i in range(self.__data.splineSize): - dtmp = i*deltaY - fittedPoints[i] = QPointF(fittedPoints[i].x(), - self.__data.spline.value(dtmp)) - return fittedPoints - - -class QwtWeedingCurveFitter_PrivateData(object): - def __init__(self): - self.tolerance = 1. - self.chunkSize = 0 - -class QwtWeedingCurveFitter_Line(object): - def __init__(self, i1=0, i2=0): - self.from_ = i1 - self.to = i2 - -class QwtWeedingCurveFitter(QwtCurveFitter): - def __init__(self, tolerance=1.): - super(QwtWeedingCurveFitter, self).__init__() - self.__data = QwtWeedingCurveFitter_PrivateData() - self.setTolerance(tolerance) - - def setTolerance(self, tolerance): - self.__data.tolerance = max([tolerance, 0.]) - - def tolerance(self): - return self.__data.tolerance - - def setChunkSize(self, numPoints): - if numPoints > 0: - numPoints = max([numPoints, 3]) - self.__data.chunkSize = numPoints - - def chunkSize(self): - return self.__data.chunkSize - - def fitCurve(self, points): - fittedPoints = QPolygonF() - if self.__data.chunkSize == 0: - fittedPoints = self.simplify(points) - else: - for i in range(0, points.size(), self.__data.chunkSize): - p = points.mid(i, self.__data.chunkSize) - fittedPoints += self.simplify(p) - return fittedPoints - - def simplify(self, points): - Line = QwtWeedingCurveFitter_Line - toleranceSqr = self.__data.tolerance*self.__data.tolerance - stack = [] - p = points.data() - nPoints = points.size() - usePoint = [False]*nPoints - stack.insert(0, Line(0, nPoints-1)) - while stack: - r = stack.pop(0) - vecX = p[r.to].x()-p[r.from_].x() - vecY = p[r.to].y()-p[r.from_].y() - vecLength = np.sqrt(vecX**2+vecY**2) - unitVecX = vecX/vecLength if vecLength != 0. else 0. - unitVecY = vecY/vecLength if vecLength != 0. else 0. - maxDistSqr = 0. - nVertexIndexMaxDistance = r.from_ + 1 - for i in range(r.from_+1, r.to): - fromVecX = p[i].x()-p[r.from_].x() - fromVecY = p[i].y()-p[r.from_].y() - if fromVecX * unitVecX + fromVecY * unitVecY < 0.0: - distToSegmentSqr = fromVecX * fromVecX + fromVecY * fromVecY - else: - toVecX = p[i].x() - p[r.to].x() - toVecY = p[i].y() - p[r.to].y() - toVecLength = toVecX * toVecX + toVecY * toVecY - s = toVecX * ( -unitVecX ) + toVecY * ( -unitVecY ) - if s < 0.: - distToSegmentSqr = toVecLength - else: - distToSegmentSqr = abs( toVecLength - s * s ) - if maxDistSqr < distToSegmentSqr: - maxDistSqr = distToSegmentSqr - nVertexIndexMaxDistance = i - if maxDistSqr <= toleranceSqr: - usePoint[r.from_] = True - usePoint[r.to] = True - else: - stack.insert(0, Line( r.from_, nVertexIndexMaxDistance )) - stack.insert(0, Line( nVertexIndexMaxDistance, r.to )) - stripped = QPolygonF() - for i in range(0, nPoints): - if usePoint[i]: - stripped += p[i] - return stripped diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 433b7b3..e2ee2aa 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -5,7 +5,6 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) -from qwt.curve_fitter import QwtSplineCurveFitter from qwt.text import QwtText from qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData from qwt.painter import QwtPainter @@ -62,7 +61,6 @@ def __init__(self): self.legendAttributes = QwtPlotCurve.LegendShowLine self.pen = QPen(Qt.black) self.brush = QBrush() - self.curveFitter = QwtSplineCurveFitter() class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): @@ -74,7 +72,6 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): # enum CurveAttribute Inverted = 0x01 - Fitted = 0x02 # enum LegendAttribute LegendNoAttribute = 0x00 @@ -213,9 +210,6 @@ def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): def drawCurve(self, painter, style, xMap, yMap, canvasRect, from_, to): if style == self.Lines: - if self.testCurveAttribute(self.Fitted): - from_ = 0 - to = self.dataSize()-1 self.drawLines(painter, xMap, yMap, canvasRect, from_, to) elif style == self.Sticks: self.drawSticks(painter, xMap, yMap, canvasRect, from_, to) @@ -228,8 +222,6 @@ def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): if from_ > to: return doAlign = QwtPainter.roundingAlignment(painter) - doFit = (self.__data.attributes & self.Fitted)\ - and self.__data.curveFitter doFill = self.__data.brush.style() != Qt.NoBrush\ and self.__data.brush.color().alpha() > 0 clipRect = QRectF() @@ -239,7 +231,7 @@ def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): doIntegers = False if QT_VERSION < 0x040800: if painter.paintEngine().type() == QPaintEngine.Raster: - if not doFit and not doFill: + if not doFill: doIntegers = True noDuplicates = self.__data.paintAttributes & self.FilterPoints mapper = QwtPointMapper() @@ -254,8 +246,6 @@ def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): QwtPainter.drawPolyline(painter, polyline) else: polyline = mapper.toPolygonF(xMap, yMap, self.data(), from_, to) - if doFit: - polyline = self.__data.curveFitter.fitCurve(polyline) if doFill: if painter.pen().style() != Qt.NoPen: filled = QPolygonF(polyline) @@ -373,13 +363,6 @@ def setCurveAttribute(self, attribute, on=True): def testCurveAttribute(self, attribute): return self.__data.attributes & attribute - def setCurveFitter(self, curveFitter): - self.__data.curveFitter = curveFitter - self.itemChanged() - - def curveFitter(self): - return self.__data.curveFitter - def fillCurve(self, painter, xMap, yMap, canvasRect, polygon): if self.__data.brush.style() == Qt.NoBrush: return From 7e9d08e51347f75baa03c290a91986f6118ec8f7 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Wed, 23 Sep 2015 23:08:21 +0200 Subject: [PATCH 019/421] dyngrid_layout: added docstrings --- qwt/dyngrid_layout.py | 91 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/qwt/dyngrid_layout.py b/qwt/dyngrid_layout.py index 5b0683b..eb96c5c 100644 --- a/qwt/dyngrid_layout.py +++ b/qwt/dyngrid_layout.py @@ -5,6 +5,16 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +qwt.dyngrid_layout +------------------ + +The `dyngrid_layout` module provides the `QwtDynGridLayout` class. + +.. autoclass:: QwtDynGridLayout + :members: +""" + from qwt.qt.QtGui import QLayout from qwt.qt.QtCore import Qt, QRect, QSize @@ -24,6 +34,32 @@ def updateLayoutCache(self): self.isDirty = False class QwtDynGridLayout(QLayout): + """ + The `QwtDynGridLayout` class lays out widgets in a grid, + adjusting the number of columns and rows to the current size. + + `QwtDynGridLayout` takes the space it gets, divides it up into rows and + columns, and puts each of the widgets it manages into the correct cell(s). + It lays out as many number of columns as possible (limited by + :py:meth:`maxColumns()`). + + .. py:class:: QwtDynGridLayout(parent, margin, [spacing=-1]) + + :param QWidget parent: parent widget + :param int margin: margin + :param int spacing: spacing + + .. py:class:: QwtDynGridLayout(spacing) + + :param int spacing: spacing + + .. py:class:: QwtDynGridLayout() + + Initialize the layout with default values. + + :param int spacing: spacing + """ + def __init__(self, *args): self.__data = None parent = None @@ -47,46 +83,71 @@ def __init__(self, *args): self.setContentsMargins(margin, margin, margin, margin) def invalidate(self): + """Invalidate all internal caches""" self.__data.isDirty = True QLayout.invalidate(self) def setMaxColumns(self, maxColumns): + """Limit the number of columns""" self.__data.maxColumns = maxColumns def maxColumns(self): + """Return the upper limit for the number of columns""" return self.__data.maxColumns def addItem(self, item): + """Add an item to the next free position""" self.__data.itemList.append(item) self.invalidate() def isEmpty(self): + """Return true if this layout is empty""" return self.count() == 0 def itemCount(self): + """Return number of layout items""" return self.count() def itemAt(self, index): + """Find the item at a specific index""" if index < 0 or index >= len(self.__data.itemList): return return self.__data.itemList[index] def takeAt(self, index): + """Find the item at a specific index and remove it from the layout""" if index < 0 or index >= len(self.__data.itemList): return self.__data.isDirty = True return self.__data.itemList.pop(index) def count(self): + """Return Number of items in the layout""" return len(self.__data.itemList) def setExpandingDirections(self, expanding): + """ + Set whether this layout can make use of more space than sizeHint(). + A value of Qt.Vertical or Qt.Horizontal means that it wants to grow in + only one dimension, while Qt.Vertical | Qt.Horizontal means that it + wants to grow in both dimensions. The default value is 0. + """ self.__data.expanding = expanding def expandingDirections(self): + """ + Returns whether this layout can make use of more space than sizeHint(). + A value of Qt.Vertical or Qt.Horizontal means that it wants to grow in + only one dimension, while Qt.Vertical | Qt.Horizontal means that it + wants to grow in both dimensions. + """ return self.__data.expanding def setGeometry(self, rect): + """ + Reorganizes columns and rows and resizes managed items within a + rectangle. + """ QLayout.setGeometry(self, rect) if self.isEmpty(): return @@ -99,6 +160,12 @@ def setGeometry(self, rect): it.setGeometry(geo) def columnsForWidth(self, width): + """ + Calculate the number of columns for a given width. + + The calculation tries to use as many columns as possible + ( limited by maxColumns() ) + """ if self.isEmpty(): return 0 maxColumns = self.itemCount() @@ -113,6 +180,7 @@ def columnsForWidth(self, width): return 1 def maxRowWidth(self, numColumns): + """Calculate the width of a layout for a given number of columns.""" colWidth = [0] * numColumns if self.__data.isDirty: self.__data.updateLayoutCache() @@ -124,6 +192,7 @@ def maxRowWidth(self, numColumns): return margin_w+(numColumns-1)*self.spacing()+sum(colWidth) def maxItemWidth(self): + """Return the maximum width of all layout items""" if self.isEmpty(): return 0 if self.__data.isDirty: @@ -131,6 +200,10 @@ def maxItemWidth(self): return max([hint.width() for hint in self.__data.itemSizeHints]) def layoutItems(self, rect, numColumns): + """ + Calculate the geometries of the layout items for a layout + with numColumns columns and a given rectangle. + """ itemGeometries = [] if numColumns == 0 or self.isEmpty(): return itemGeometries @@ -172,6 +245,10 @@ def layoutItems(self, rect, numColumns): return itemGeometries def layoutGrid(self, numColumns, rowHeight, colWidth): + """ + Calculate the dimensions for the columns and rows for a grid + of numColumns columns. + """ if numColumns <= 0: return if self.__data.isDirty: @@ -190,9 +267,11 @@ def layoutGrid(self, numColumns, rowHeight, colWidth): colWidth[col] = max([colWidth[col], size.width()]) def hasHeightForWidth(self): + """Return true: QwtDynGridLayout implements heightForWidth().""" return True def heightForWidth(self, width): + """Return The preferred height for this layout, given a width.""" if self.isEmpty(): return 0 numColumns = self.columnsForWidth(width) @@ -207,6 +286,11 @@ def heightForWidth(self, width): return margin_h+(numRows-1)*self.spacing()+sum(rowHeight) def stretchGrid(self, rect, numColumns, rowHeight, colWidth): + """ + Stretch columns in case of expanding() & QSizePolicy::Horizontal and + rows in case of expanding() & QSizePolicy::Vertical to fill the entire + rect. Rows and columns are stretched with the same factor. + """ if numColumns == 0 or self.isEmpty(): return expandH = self.expandingDirections() & Qt.Horizontal @@ -234,6 +318,11 @@ def stretchGrid(self, rect, numColumns, rowHeight, colWidth): yDelta -= space def sizeHint(self): + """ + Return the size hint. If maxColumns() > 0 it is the size for + a grid with maxColumns() columns, otherwise it is the size for + a grid with only one row. + """ if self.isEmpty(): return QSize() numColumns = self.itemCount() @@ -253,7 +342,9 @@ def sizeHint(self): return QSize(w, h) def numRows(self): + """Return Number of rows of the current layout.""" return self.__data.numRows def numColumns(self): + """Return Number of columns of the current layout.""" return self.__data.numColumns From 7dd5615fb9d62d6e42d25ee671c12a7b73f47fa6 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 24 Sep 2015 21:25:32 +0200 Subject: [PATCH 020/421] Added docstrings for graphic, interval and legend modules --- doc/reference/graphic.rst | 2 + doc/reference/index.rst | 5 +- doc/reference/interval.rst | 2 + doc/reference/legend.rst | 2 + qwt/color_map.py | 17 ++- qwt/graphic.py | 291 +++++++++++++++++++++++++++++++++++++ qwt/interval.py | 192 ++++++++++++++++++++++++ qwt/legend.py | 208 ++++++++++++++++++++++++++ 8 files changed, 711 insertions(+), 8 deletions(-) create mode 100644 doc/reference/graphic.rst create mode 100644 doc/reference/interval.rst create mode 100644 doc/reference/legend.rst diff --git a/doc/reference/graphic.rst b/doc/reference/graphic.rst new file mode 100644 index 0000000..16b438b --- /dev/null +++ b/doc/reference/graphic.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.graphic + :members: diff --git a/doc/reference/index.rst b/doc/reference/index.rst index 7553da1..4926902 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -1,9 +1,12 @@ Reference ========= -python-qwt API: +Main `python-qwt` classes: .. toctree:: :maxdepth: 2 color_map + graphic + interval + legend diff --git a/doc/reference/interval.rst b/doc/reference/interval.rst new file mode 100644 index 0000000..0405d6d --- /dev/null +++ b/doc/reference/interval.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.interval + :members: diff --git a/doc/reference/legend.rst b/doc/reference/legend.rst new file mode 100644 index 0000000..a51d1d4 --- /dev/null +++ b/doc/reference/legend.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.legend + :members: diff --git a/qwt/color_map.py b/qwt/color_map.py index da99ec2..0400201 100644 --- a/qwt/color_map.py +++ b/qwt/color_map.py @@ -6,18 +6,21 @@ # (see LICENSE file for more details) """ -qwt.color_map -------------- - -The `color_map` module provides the `QwtColorMap` base class and derived -classes. +QwtColorMap +----------- .. autoclass:: QwtColorMap :members: +QwtLinearColorMap +----------------- + .. autoclass:: QwtLinearColorMap :members: +QwtAlphaColorMap +---------------- + .. autoclass:: QwtAlphaColorMap :members: """ @@ -164,7 +167,7 @@ def color(self, interval, value): Map a value into a color - :param QwtInterval interval: valid interval for value + :param qwt.interval.QwtInterval interval: valid interval for value :param float value: value :return: the color corresponding to value @@ -189,7 +192,7 @@ def colorTable(self, interval): Build and return a color map of 256 colors - :param QwtInterval interval: range for the values + :param qwt.interval.QwtInterval interval: range for the values :return: a color table, that can be used for a `QImage` The color table is needed for rendering indexed images in combination diff --git a/qwt/graphic.py b/qwt/graphic.py index 09aab8c..43e9eeb 100644 --- a/qwt/graphic.py +++ b/qwt/graphic.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtGraphic +---------- + +.. autoclass:: QwtGraphic + :members: +""" + from qwt.null_paintdevice import QwtNullPaintDevice from qwt.painter_command import QwtPainterCommand @@ -179,6 +187,71 @@ def __init__(self): class QwtGraphic(QwtNullPaintDevice): + """ + A paint device for scalable graphics + + `QwtGraphic` is the representation of a graphic that is tailored for + scalability. Like `QPicture` it will be initialized by `QPainter` + operations and can be replayed later to any target paint device. + + While the usual image representations `QImage` and `QPixmap` are not + scalable `Qt` offers two paint devices, that might be candidates + for representing a vector graphic: + + - `QPicture`: + + Unfortunately `QPicture` had been forgotten, when Qt4 + introduced floating point based render engines. Its API + is still on integers, what make it unusable for proper scaling. + + - `QSvgRenderer`, `QSvgGenerator`: + + Unfortunately `QSvgRenderer` hides to much information about + its nodes in internal APIs, that are necessary for proper + layout calculations. Also it is derived from `QObject` and + can't be copied like `QImage`/`QPixmap`. + + `QwtGraphic` maps all scalable drawing primitives to a `QPainterPath` + and stores them together with the painter state changes + ( pen, brush, transformation ... ) in a list of `QwtPaintCommands`. + For being a complete `QPaintDevice` it also stores pixmaps or images, + what is somehow against the idea of the class, because these objects + can't be scaled without a loss in quality. + + The main issue about scaling a `QwtGraphic` object are the pens used for + drawing the outlines of the painter paths. While non cosmetic pens + ( `QPen.isCosmetic()` ) are scaled with the same ratio as the path, + cosmetic pens have a fixed width. A graphic might have paths with + different pens - cosmetic and non-cosmetic. + + `QwtGraphic` caches 2 different rectangles: + + - control point rectangle: + + The control point rectangle is the bounding rectangle of all + control point rectangles of the painter paths, or the target + rectangle of the pixmaps/images. + + - bounding rectangle: + + The bounding rectangle extends the control point rectangle by + what is needed for rendering the outline with an unscaled pen. + + Because the offset for drawing the outline depends on the shape + of the painter path ( the peak of a triangle is different than the flat side ) + scaling with a fixed aspect ratio always needs to be calculated from the + control point rectangle. + + .. py:class:: QwtGraphic() + + Initializes a null graphic + + .. py:class:: QwtGraphic(other) + + Copy constructor + + :param: QwtGraphic other: Source + """ # enum RenderHint RenderPensUnscaled = 0x1 @@ -197,6 +270,7 @@ def __init__(self, *args): % (self.__class__.__name__, len(args))) def reset(self): + """Clear all stored commands""" self.__data.commands = [] self.__data.pathInfos = [] self.__data.boundingRect = QRectF(0.0, 0.0, -1.0, -1.0) @@ -204,31 +278,80 @@ def reset(self): self.__data.defaultSize = QSizeF() def isNull(self): + """Return True, when no painter commands have been stored""" return len(self.__data.commands) == 0 def isEmpty(self): + """Return True, when the bounding rectangle is empty""" return self.__data.boundingRect.isEmpty() def setRenderHint(self, hint, on=True): + """Toggle an render hint""" if on: self.__data.renderHints |= hint else: self.__data.renderHints &= ~hint def testRenderHint(self, hint): + """Test a render hint""" return bool(self.__data.renderHints & hint) def boundingRect(self): + """ + .. py:method:: boundingRect() + + The bounding rectangle is the :py:meth:`controlPointRect` + extended by the areas needed for rendering the outlines + with unscaled pens. + + :return: Bounding rectangle of the graphic + + .. seealso:: + + :py:meth:`controlPointRect`, :py:meth:`scaledBoundingRect` + """ if self.__data.boundingRect.width() < 0: return QRectF() return self.__data.boundingRect def controlPointRect(self): + """ + .. py:method:: controlPointRect() + + The control point rectangle is the bounding rectangle + of all control points of the paths and the target + rectangles of the images/pixmaps. + + :return: Control point rectangle + + .. seealso:: + + :py:meth:`boundingRect()`, :py:meth:`scaledBoundingRect()` + """ if self.__data.pointRect.width() < 0: return QRectF() return self.__data.pointRect def scaledBoundingRect(self, sx, sy): + """ + .. py:method:: scaledBoundingRect(sx, sy) + + Calculate the target rectangle for scaling the graphic + + :param: float sx: Horizontal scaling factor + :param: float sy: Vertical scaling factor + :return: Scaled bounding rectangle + + .. note:: + + In case of paths that are painted with a cosmetic pen + (see :py:meth:`QPen.isCosmetic()`) the target rectangle is + different to multiplying the bounding rectangle. + + .. seealso:: + + :py:meth:`boundingRect()`, :py:meth:`controlPointRect()` + """ if sx == 1. and sy == 1.: return self.__data.boundingRect transform = QTransform() @@ -240,20 +363,90 @@ def scaledBoundingRect(self, sx, sy): return rect def sizeMetrics(self): + """Return Ceiled :py:meth:`defaultSize()`""" sz = self.defaultSize() return QSize(np.ceil(sz.width()), np.ceil(sz.height())) def setDefaultSize(self, size): + """ + .. py:method:: setDefaultSize(size) + + The default size is used in all methods rendering the graphic, + where no size is explicitly specified. Assigning an empty size + means, that the default size will be calculated from the bounding + rectangle. + + :param: QSizeF size: Default size + + .. seealso:: + + :py:meth:`defaultSize()`, :py:meth:`boundingRect()` + """ w = max([0., size.width()]) h = max([0., size.height()]) self.__data.defaultSize = QSizeF(w, h) def defaultSize(self): + """ + .. py:method:: defaultSize() + + When a non empty size has been assigned by setDefaultSize() this + size will be returned. Otherwise the default size is the size + of the bounding rectangle. + + The default size is used in all methods rendering the graphic, + where no size is explicitly specified. + + :return: Default size + + .. seealso:: + + :py:meth:`setDefaultSize()`, :py:meth:`boundingRect()` + """ if not self.__data.defaultSize.isEmpty(): return self.__data.defaultSize return self.boundingRect().size() def render(self, *args): + """ + .. py:method:: render(painter) + + Replay all recorded painter commands + + :param: QPainter painter: Qt painter + + .. py:method:: render(painter, size, aspectRatioMode) + + Replay all recorded painter commands + + The graphic is scaled to fit into the rectangle + of the given size starting at ( 0, 0 ). + + :param: QPainter painter: Qt painter + :param: QSizeF size: Size for the scaled graphic + :param: Qt.AspectRatioMode aspectRatioMode: Mode how to scale + + .. py:method:: render(painter, rect, aspectRatioMode) + + Replay all recorded painter commands + + The graphic is scaled to fit into the given rectangle + + :param: QPainter painter: Qt painter + :param: QRectF rect: Rectangle for the scaled graphic + :param: Qt.AspectRatioMode aspectRatioMode: Mode how to scale + + .. py:method:: render(painter, pos, aspectRatioMode) + + Replay all recorded painter commands + + The graphic is scaled to the :py:meth:`defaultSize()` and aligned + to a position. + + :param: QPainter painter: Qt painter + :param: QPointF pos: Reference point, where to render + :param: Qt.AspectRatioMode aspectRatioMode: Mode how to scale + """ if len(args) == 1: painter, = args if self.isNull(): @@ -342,6 +535,23 @@ def render(self, *args): "given)" % (self.__class__.__name__, len(args))) def toPixmap(self, *args): + """ + .. py:method:: toPixmap() + + Convert the graphic to a `QPixmap` + + All pixels of the pixmap get initialized by `Qt.transparent` + before the graphic is scaled and rendered on it. + + The size of the pixmap is the default size ( ceiled to integers ) + of the graphic. + + :return: The graphic as pixmap in default size + + .. seealso:: + + :py:meth:`defaultSize()`, :py:meth:`toImage()`, :py:meth:`render()` + """ if len(args) == 0: if self.isNull(): return QPixmap() @@ -369,6 +579,38 @@ def toPixmap(self, *args): return pixmap def toImage(self, *args): + """ + .. py:method:: toImage() + + Convert the graphic to a `QImage` + + All pixels of the image get initialized by 0 ( transparent ) + before the graphic is scaled and rendered on it. + + The format of the image is `QImage.Format_ARGB32_Premultiplied`. + + The size of the image is the default size ( ceiled to integers ) + of the graphic. + + :return: The graphic as image in default size + + .. py:method:: toImage(size, [aspectRatioMode=Qt.IgnoreAspectRatio]) + + Convert the graphic to a `QImage` + + All pixels of the image get initialized by 0 ( transparent ) + before the graphic is scaled and rendered on it. + + The format of the image is `QImage.Format_ARGB32_Premultiplied`. + + :param: QSize size: Size of the image + :param: `Qt.AspectRatioMode` aspectRatioMode: Aspect ratio how to scale the graphic + :return: The graphic as image + + .. seealso:: + + :py:meth:`toPixmap()`, :py:meth:`render()` + """ if len(args) == 0: if self.isNull(): return QImage() @@ -395,6 +637,17 @@ def toImage(self, *args): return image def drawPath(self, path): + """ + .. py:method:: drawPath(path) + + Store a path command in the command list + + :param: QPainterPath path: Painter path + + .. seealso:: + + :py:meth:`QPaintEngine.drawPath()` + """ painter = self.paintEngine().painter() if painter is None: return @@ -412,6 +665,19 @@ def drawPath(self, path): qwtHasScalablePen(painter))] def drawPixmap(self, rect, pixmap, subRect): + """ + .. py:method:: drawPixmap(rect, pixmap, subRect) + + Store a pixmap command in the command list + + :param: QRectF rect: target rectangle + :param: QPixmap pixmap: Pixmap to be painted + :param: QRectF subRect: Reactangle of the pixmap to be painted + + .. seealso:: + + :py:meth:`QPaintEngine.drawPixmap()` + """ painter = self.paintEngine().painter() if painter is None: return @@ -421,6 +687,20 @@ def drawPixmap(self, rect, pixmap, subRect): self.updateBoundingRect(r) def drawImage(self, rect, image, subRect, flags): + """ + .. py:method:: drawImage(rect, image, subRect, flags) + + Store a image command in the command list + + :param: QRectF rect: target rectangle + :param: QImage image: Pixmap to be painted + :param: QRectF subRect: Reactangle of the pixmap to be painted + :param: Qt.ImageConversionFlags flags: Pixmap to be painted + + .. seealso:: + + :py:meth:`QPaintEngine.drawImage()` + """ painter = self.paintEngine().painter() if painter is None: return @@ -430,6 +710,17 @@ def drawImage(self, rect, image, subRect, flags): self.updateBoundingRect(r) def updateState(self, state): + """ + .. py:method:: updateState(state) + + Store a state command in the command list + + :param: QPaintEngineState state: State to be stored + + .. seealso:: + + :py:meth:`QPaintEngine.updateState()` + """ #XXX: shall we call the parent's implementation of updateState? self.__data.commands += [QwtPainterCommand(state)] diff --git a/qwt/interval.py b/qwt/interval.py index 40b7e39..2dbe36a 100644 --- a/qwt/interval.py +++ b/qwt/interval.py @@ -5,8 +5,29 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtInterval +----------- + +.. autoclass:: QwtInterval + :members: +""" + class QwtInterval(object): + """ + A class representing an interval + + The interval is represented by 2 doubles, the lower and the upper limit. + + .. py:class:: QwtInterval(minValue=0., maxValue=-1., borderFlags=None) + + Build an interval with from min/max values + + :param float minValue: Minimum value + :param float maxValue: Maximum value + :param int borderFlags: Include/Exclude borders + """ # enum BorderFlag IncludeBorders = 0x00 @@ -25,35 +46,105 @@ def __init__(self, minValue=0., maxValue=-1., borderFlags=None): self.__borderFlags = borderFlags def setInterval(self, minValue, maxValue, borderFlags): + """ + .. py:method:: setInterval(minValue, maxValue, borderFlags) + + Assign the limits of the interval + + :param: float minValue: Minimum value + :param: float maxValue: Maximum value + :param: int borderFlags: Include/Exclude borders + """ self.__minValue = minValue self.__maxValue = maxValue self.__borderFlags = borderFlags def setBorderFlags(self, borderFlags): + """ + .. py:method:: setBorderFlags(borderFlags) + + Change the border flags + + :param: int borderFlags: Include/Exclude borders + + .. seealso:: + + :py:meth:`borderFlags()` + """ self.__borderFlags = borderFlags def borderFlags(self): + """ + .. py:method:: borderFlags() + + :return: Border flags + + .. seealso:: + + :py:meth:`setBorderFlags()` + """ return self.__borderFlags def setMinValue(self, minValue): + """ + .. py:method:: setMinValue(minValue) + + Assign the lower limit of the interval + + :param: float minValue: Minimum value + """ self.__minValue = minValue def setMaxValue(self, maxValue): + """ + .. py:method:: setMaxValue(minValue) + + Assign the upper limit of the interval + + :param: float maxValue: Maximum value + """ self.__maxValue = maxValue def minValue(self): + """ + .. py:method:: minValue() + + :return: Lower limit of the interval + """ return self.__minValue def maxValue(self): + """ + .. py:method:: maxValue() + + :return: Upper limit of the interval + """ return self.__maxValue def isValid(self): + """ + .. py:method:: isValid() + + A interval is valid when minValue() <= maxValue(). + In case of `QwtInterval.ExcludeBorders` it is true + when minValue() < maxValue() + + :return: True, when the interval is valid + """ if (self.__borderFlags & self.ExcludeBorders) == 0: return self.__minValue <= self.__maxValue else: return self.__minValue < self.__maxValue def width(self): + """ + .. py:method:: width() + + The width of invalid intervals is 0.0, otherwise the result is + maxValue() - minValue(). + + :return: the width of an interval + """ if self.isValid(): return self.__maxValue - self.__minValue else: @@ -85,13 +176,40 @@ def __ne__(self, other): return not self.__eq__(other) def isNull(self): + """ + .. py:method:: isNull() + + :return: true, if isValid() && (minValue() >= maxValue()) + """ return self.isValid() and self.__minValue >= self.__maxValue def invalidate(self): + """ + .. py:method:: invalidate() + + The limits are set to interval [0.0, -1.0] + + .. seealso:: + + :py:meth:`isValid()` + """ self.__minValue = 0. self.__maxValue = -1. def normalized(self): + """ + .. py:method:: normalized() + + Normalize the limits of the interval + + If maxValue() < minValue() the limits will be inverted. + + :return: Normalized interval + + .. seealso:: + + :py:meth:`isValid()`, :py:meth:`inverted()` + """ if self.__minValue > self.__maxValue: return self.inverted() elif self.__minValue == self.__maxValue and\ @@ -101,6 +219,17 @@ def normalized(self): return self def inverted(self): + """ + .. py:method:: inverted() + + Invert the limits of the interval + + :return: Inverted interval + + .. seealso:: + + :py:meth:`normalized()` + """ borderFlags = self.IncludeBorders if self.__borderFlags & self.ExcludeMinimum: borderFlags |= self.ExcludeMaximum @@ -109,6 +238,14 @@ def inverted(self): return QwtInterval(self.__maxValue, self.__minValue, borderFlags) def contains(self, value): + """ + .. py:method:: contains(value) + + Test if a value is inside an interval + + :param: float value: Value + :return: true, if value >= minValue() && value <= maxValue() + """ if not self.isValid(): return False elif value < self.__minValue or value > self.__maxValue: @@ -123,6 +260,14 @@ def contains(self, value): return True def unite(self, other): + """ + .. py:method:: unite(other) + + Unite two intervals + + :param: QwtInterval other: other interval to united with + :return: united interval + """ if not self.isValid(): if not other.isValid(): return QwtInterval() @@ -162,6 +307,14 @@ def unite(self, other): return united def intersect(self, other): + """ + .. py:method:: intersect(other) + + Intersect two intervals + + :param: QwtInterval other: other interval to intersect with + :return: intersected interval + """ if not other.isValid() or not self.isValid(): return QwtInterval() @@ -202,6 +355,14 @@ def intersect(self, other): return intersected def intersects(self, other): + """ + .. py:method:: intersects(other) + + Test if two intervals overlap + + :param: QwtInterval other: other interval + :return: True, when the intervals are intersecting + """ if not other.isValid() or not self.isValid(): return False @@ -222,6 +383,15 @@ def intersects(self, other): return False def symmetrize(self, value): + """ + .. py:method:: symmetrize(value) + + Adjust the limit that is closer to value, so that value becomes + the center of the interval. + + :param: float value: Center + :return: Interval with value as center + """ if not self.isValid(): return self delta = max([abs(value-self.__maxValue), @@ -229,6 +399,15 @@ def symmetrize(self, value): return QwtInterval(value-delta, value+delta) def limited(self, lowerBound, upperBound): + """ + .. py:method:: limited(lowerBound, upperBound) + + Limit the interval, keeping the border modes + + :param: float lowerBound: Lower limit + :param: float upperBound: Upper limit + :return: Limited interval + """ if not self.isValid() or lowerBound > upperBound: return QwtInterval() minValue = max([self.__minValue, lowerBound]) @@ -238,6 +417,19 @@ def limited(self, lowerBound, upperBound): return QwtInterval(minValue, maxValue, self.__borderFlags) def extend(self, value): + """ + .. py:method:: extend(value) + + Extend the interval + + If value is below minValue(), value becomes the lower limit. + If value is above maxValue(), value becomes the upper limit. + + extend() has no effect for invalid intervals + + :param: float value: Value + :return: extended interval + """ if not self.isValid(): return self return QwtInterval(min([value, self.__minValue]), diff --git a/qwt/legend.py b/qwt/legend.py index 79de0f0..af2f956 100644 --- a/qwt/legend.py +++ b/qwt/legend.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtLegend +--------- + +.. autoclass:: QwtLegend + :members: +""" + from qwt.legend_data import QwtLegendData from qwt.dyngrid_layout import QwtDynGridLayout from qwt.painter import QwtPainter @@ -151,6 +159,26 @@ def __init__(self): self.itemMap = QwtLegendMap() class QwtLegend(QwtAbstractLegend): + """ + The legend widget + + The QwtLegend widget is a tabular arrangement of legend items. Legend + items might be any type of widget, but in general they will be + a QwtLegendLabel. + + .. seealso :: + + :py:class`qwt.legend_label.QwtLegendLabel`, + :py:class`qwt.plot.QwtPlotItem`, + :py:class`qwt.plot.QwtPlot` + + .. py:class:: QwtLegend([parent=None]) + + Constructor + + :param: QWidget parent: Parent widget + """ + SIG_CLICKED = Signal("PyQt_PyObject", int) SIG_CHECKED = Signal("PyQt_PyObject", bool, int) @@ -170,32 +198,123 @@ def __init__(self, parent=None): layout.addWidget(self.__data.view) def setMaxColumns(self, numColumns): + """ + .. py:method:: setMaxColumns(numColumns) + + Set the maximum number of entries in a row + + F.e when the maximum is set to 1 all items are aligned + vertically. 0 means unlimited + + :param: int numColumns: Maximum number of entries in a row + + .. seealso:: + + :py:meth:`maxColumns()`, + :py:meth:`QwtDynGridLayout.setMaxColumns()` + """ tl = self.__data.view.gridLayout if tl is not None: tl.setMaxColumns(numColumns) def maxColumns(self): + """ + .. py:method:: maxColumns() + + :return: Maximum number of entries in a row + + .. seealso:: + + :py:meth:`setMaxColumns()`, + :py:meth:`QwtDynGridLayout.maxColumns()` + """ tl = self.__data.view.gridLayout if tl is not None: return tl.maxColumns() return 0 def setDefaultItemMode(self, mode): + """ + .. py:method:: setDefaultItemMode(mode) + + Set the default mode for legend labels + + Legend labels will be constructed according to the + attributes in a `QwtLegendData` object. When it doesn't + contain a value for the `QwtLegendData.ModeRole` the + label will be initialized with the default mode of the legend. + + :param: int mode: Default item mode + + .. seealso:: + + :py:meth:`itemMode()`, + :py:meth:`QwtLegendData.value()`, + :py:meth:`QwtPlotItem::legendData()` + + ... note:: + + Changing the mode doesn't have any effect on existing labels. + """ self.__data.itemMode = mode def defaultItemMode(self): + """ + .. py:method:: defaultItemMode() + + :return: Default item mode + + .. seealso:: + + :py:meth:`setDefaultItemMode()` + """ return self.__data.itemMode def contentsWidget(self): + """ + .. py:method:: contentsWidget() + + The contents widget is the only child of the viewport of + the internal `QScrollArea` and the parent widget of all legend + items. + + :return: Container widget of the legend items + """ return self.__data.view.contentsWidget def horizontalScrollBar(self): + """ + .. py:method:: horizontalScrollBar() + + :return: Horizontal scrollbar + + .. seealso:: + + :py:meth:`verticalScrollBar()` + """ return self.__data.view.horizontalScrollBar() def verticalScrollBar(self): + """ + .. py:method:: verticalScrollBar() + + :return: Vertical scrollbar + + .. seealso:: + + :py:meth:`horizontalScrollBar()` + """ return self.__data.view.verticalScrollBar() def updateLegend(self, itemInfo, data): + """ + .. py:method:: updateLegend(itemInfo, data) + + Update the entries for an item + + :param: QVariant itemInfo: Info for an item + :param: list data: Default item mode + """ widgetList = self.legendWidgets(itemInfo) if len(widgetList) != len(data): contentsLayout = self.__data.view.gridLayout @@ -220,6 +339,21 @@ def updateLegend(self, itemInfo, data): self.updateWidget(widgetList[i], data[i]) def createWidget(self, data): + """ + .. py:method:: createWidget(data) + + Create a widget to be inserted into the legend + + The default implementation returns a `QwtLegendLabel`. + + :param: QwtLegendData data: Attributes of the legend entry + :return: Widget representing data on the legend + + ... note:: + + updateWidget() will called soon after createWidget() + with the same attributes. + """ label = QwtLegendLabel() label.setItemMode(self.defaultItemMode()) label.SIG_CLICKED.connect(lambda: self.itemClicked(label)) @@ -227,6 +361,22 @@ def createWidget(self, data): return label def updateWidget(self, widget, data): + """ + .. py:method:: updateWidget(widget, data) + + Update the widget + + :param: QWidget widget: Usually a QwtLegendLabel + :param: QwtLegendData data: Attributes to be displayed + + .. seealso:: + + :py:meth:`createWidget()` + + ... note:: + + When widget is no QwtLegendLabel updateWidget() does nothing. + """ label = widget #TODO: cast to QwtLegendLabel! if label is not None: label.setData(data) @@ -244,11 +394,18 @@ def updateTabOrder(self): w = item.widget() def sizeHint(self): + """Return a size hint""" hint = self.__data.view.contentsWidget.sizeHint() hint += QSize(2*self.frameWidth(), 2*self.frameWidth()) return hint def heightForWidth(self, width): + """ + .. py:method:: heightForWidth(width) + + :param: int width: Width + :return: The preferred height, for a width. + """ width -= 2*self.frameWidth() h = self.__data.view.contentsWidget.heightForWidth(width) if h >= 0: @@ -256,6 +413,16 @@ def heightForWidth(self, width): return h def eventFilter(self, object_, event): + """ + .. py:method:: eventFilter(object_, event) + + Handle QEvent.ChildRemoved andQEvent.LayoutRequest events + for the contentsWidget(). + + :param: QObject object: Object to be filtered + :param: QEvent event: Event + :return: Forwarded to QwtAbstractLegend.eventFilter() + """ if object_ is self.__data.view.contentsWidget: if event.type() == QEvent.ChildRemoved: ce = event #TODO: cast to QChildEvent @@ -292,6 +459,15 @@ def itemChecked(self, on, widget): self.SIG_CHECKED.emit(itemInfo, on, index) def renderLegend(self, painter, rect, fillBackground): + """ + .. py:method:: renderLegend(painter, rect, fillBackground) + + Render the legend into a given rectangle. + + :param: QPainter painter: Painter + :param: QRectF rect: Bounding rectangle + :param: bool fillBackground: When true, fill rect with the widget background + """ if self.__data.itemMap.isEmpty(): return if fillBackground: @@ -324,6 +500,16 @@ def renderLegend(self, painter, rect, fillBackground): painter.restore() def renderItem(self, painter, widget, rect, fillBackground): + """ + .. py:method:: renderItem(painter, widget, rect, fillBackground) + + Render a legend entry into a given rectangle. + + :param: QPainter painter: Painter + :param: QWidget widget: Widget representing a legend entry + :param: QRectF rect: Bounding rectangle + :param: bool fillBackground: When true, fill rect with the widget background + """ if fillBackground: if widget.autoFillBackground() or\ widget.testAttribute(Qt.WA_StyledBackground): @@ -343,14 +529,36 @@ def renderItem(self, painter, widget, rect, fillBackground): label.drawText(painter, titleRect) #TODO: cast label to QwtLegendLabel def legendWidgets(self, itemInfo): + """ + .. py:method:: legendWidgets(itemInfo) + + List of widgets associated to a item + + :param: QVariant itemInfo: Info about an item + """ return self.__data.itemMap.legendWidgets(itemInfo) def legendWidget(self, itemInfo): + """ + .. py:method:: legendWidget(itemInfo) + + First widget in the list of widgets associated to an item + + :param: QVariant itemInfo: Info about an item + """ list_ = self.__data.itemMap.legendWidgets(itemInfo) if list_: return list_[0] def itemInfo(self, widget): + """ + .. py:method:: itemInfo(widget) + + Find the item that is associated to a widget + + :param: QWidget widget: Widget on the legend + :return: Associated item info + """ return self.__data.itemMap.itemInfo(widget) def isEmpty(self): From a58155c51bb051887b389c52fc5a9c3cc7faafc5 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 25 Sep 2015 23:20:55 +0200 Subject: [PATCH 021/421] Added docstrings for legend_data, painter, ..., plot (except QwtPlotItem) --- doc/reference/index.rst | 3 + doc/reference/legend_data.rst | 2 + doc/reference/legend_label.rst | 2 + doc/reference/plot.rst | 2 + qwt/color_map.py | 38 +- qwt/graphic.py | 134 +++--- qwt/interval.py | 170 +++----- qwt/legend.py | 156 +++---- qwt/legend_data.py | 78 ++++ qwt/legend_label.py | 119 ++++++ qwt/null_paintdevice.py | 65 +++ qwt/painter.py | 135 ++++++ qwt/painter_command.py | 53 +++ qwt/pixel_matrix.py | 54 +++ qwt/plot.py | 733 ++++++++++++++++++++++++++++++++- 15 files changed, 1440 insertions(+), 304 deletions(-) create mode 100644 doc/reference/legend_data.rst create mode 100644 doc/reference/legend_label.rst create mode 100644 doc/reference/plot.rst diff --git a/doc/reference/index.rst b/doc/reference/index.rst index 4926902..1dcc485 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -10,3 +10,6 @@ Main `python-qwt` classes: graphic interval legend + legend_data + legend_label + plot diff --git a/doc/reference/legend_data.rst b/doc/reference/legend_data.rst new file mode 100644 index 0000000..2f77f5b --- /dev/null +++ b/doc/reference/legend_data.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.legend_data + :members: diff --git a/doc/reference/legend_label.rst b/doc/reference/legend_label.rst new file mode 100644 index 0000000..d7830c6 --- /dev/null +++ b/doc/reference/legend_label.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.legend_label + :members: diff --git a/doc/reference/plot.rst b/doc/reference/plot.rst new file mode 100644 index 0000000..59a22eb --- /dev/null +++ b/doc/reference/plot.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.plot + :members: diff --git a/qwt/color_map.py b/qwt/color_map.py index 0400201..666d723 100644 --- a/qwt/color_map.py +++ b/qwt/color_map.py @@ -163,13 +163,11 @@ def __init__(self, format_=None): def color(self, interval, value): """ - .. py:method:: color(interval, value) + Map a value into a color - Map a value into a color - - :param qwt.interval.QwtInterval interval: valid interval for value - :param float value: value - :return: the color corresponding to value + :param qwt.interval.QwtInterval interval: valid interval for value + :param float value: value + :return: the color corresponding to value .. warning :: @@ -188,12 +186,10 @@ def format(self): def colorTable(self, interval): """ - .. py:method:: colorTable(interval) + Build and return a color map of 256 colors - Build and return a color map of 256 colors - - :param qwt.interval.QwtInterval interval: range for the values - :return: a color table, that can be used for a `QImage` + :param qwt.interval.QwtInterval interval: range for the values + :return: a color table, that can be used for a `QImage` The color table is needed for rendering indexed images in combination with using `colorIndex()`. @@ -257,11 +253,9 @@ def __init__(self, *args): def setMode(self, mode): """ - .. py:method:: setMode(mode) - - Set the mode of the color map - - :param int mode: :py:data:`QwtLinearColorMap.FixedColors` or :py:data:`QwtLinearColorMap.ScaledColors` + Set the mode of the color map + + :param int mode: :py:data:`QwtLinearColorMap.FixedColors` or :py:data:`QwtLinearColorMap.ScaledColors` `FixedColors` means the color is calculated from the next lower color stop. `ScaledColors` means the color is calculated by interpolating @@ -271,7 +265,7 @@ def setMode(self, mode): def mode(self): """ - Return the mode of the color map + :return: the mode of the color map .. seealso :: @@ -343,11 +337,9 @@ def __init__(self, color): def setColor(self, color): """ - .. py:method:: setColor(color) - - Set the color of the map - - :param QColor color: color of the map + Set the color of the map + + :param QColor color: color of the map """ self.__data.color = color self.__data.rgb = color.rgb() & qRgba(255, 255, 255, 0) @@ -355,7 +347,7 @@ def setColor(self, color): def color(self): """ - Return the color of the map + :return: the color of the map .. seealso :: diff --git a/qwt/graphic.py b/qwt/graphic.py index 43e9eeb..c2cca8b 100644 --- a/qwt/graphic.py +++ b/qwt/graphic.py @@ -250,7 +250,7 @@ class QwtGraphic(QwtNullPaintDevice): Copy constructor - :param: QwtGraphic other: Source + :param qwt.graphic.QwtGraphic other: Source """ # enum RenderHint @@ -298,13 +298,11 @@ def testRenderHint(self, hint): def boundingRect(self): """ - .. py:method:: boundingRect() + The bounding rectangle is the :py:meth:`controlPointRect` + extended by the areas needed for rendering the outlines + with unscaled pens. - The bounding rectangle is the :py:meth:`controlPointRect` - extended by the areas needed for rendering the outlines - with unscaled pens. - - :return: Bounding rectangle of the graphic + :return: Bounding rectangle of the graphic .. seealso:: @@ -316,13 +314,11 @@ def boundingRect(self): def controlPointRect(self): """ - .. py:method:: controlPointRect() - - The control point rectangle is the bounding rectangle - of all control points of the paths and the target - rectangles of the images/pixmaps. + The control point rectangle is the bounding rectangle + of all control points of the paths and the target + rectangles of the images/pixmaps. - :return: Control point rectangle + :return: Control point rectangle .. seealso:: @@ -334,13 +330,11 @@ def controlPointRect(self): def scaledBoundingRect(self, sx, sy): """ - .. py:method:: scaledBoundingRect(sx, sy) + Calculate the target rectangle for scaling the graphic - Calculate the target rectangle for scaling the graphic - - :param: float sx: Horizontal scaling factor - :param: float sy: Vertical scaling factor - :return: Scaled bounding rectangle + :param float sx: Horizontal scaling factor + :param float sy: Vertical scaling factor + :return: Scaled bounding rectangle .. note:: @@ -369,14 +363,12 @@ def sizeMetrics(self): def setDefaultSize(self, size): """ - .. py:method:: setDefaultSize(size) + The default size is used in all methods rendering the graphic, + where no size is explicitly specified. Assigning an empty size + means, that the default size will be calculated from the bounding + rectangle. - The default size is used in all methods rendering the graphic, - where no size is explicitly specified. Assigning an empty size - means, that the default size will be calculated from the bounding - rectangle. - - :param: QSizeF size: Default size + :param QSizeF size: Default size .. seealso:: @@ -388,16 +380,14 @@ def setDefaultSize(self, size): def defaultSize(self): """ - .. py:method:: defaultSize() - - When a non empty size has been assigned by setDefaultSize() this - size will be returned. Otherwise the default size is the size - of the bounding rectangle. + When a non empty size has been assigned by setDefaultSize() this + size will be returned. Otherwise the default size is the size + of the bounding rectangle. - The default size is used in all methods rendering the graphic, - where no size is explicitly specified. - - :return: Default size + The default size is used in all methods rendering the graphic, + where no size is explicitly specified. + + :return: Default size .. seealso:: @@ -413,7 +403,7 @@ def render(self, *args): Replay all recorded painter commands - :param: QPainter painter: Qt painter + :param QPainter painter: Qt painter .. py:method:: render(painter, size, aspectRatioMode) @@ -422,9 +412,9 @@ def render(self, *args): The graphic is scaled to fit into the rectangle of the given size starting at ( 0, 0 ). - :param: QPainter painter: Qt painter - :param: QSizeF size: Size for the scaled graphic - :param: Qt.AspectRatioMode aspectRatioMode: Mode how to scale + :param QPainter painter: Qt painter + :param QSizeF size: Size for the scaled graphic + :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale .. py:method:: render(painter, rect, aspectRatioMode) @@ -432,9 +422,9 @@ def render(self, *args): The graphic is scaled to fit into the given rectangle - :param: QPainter painter: Qt painter - :param: QRectF rect: Rectangle for the scaled graphic - :param: Qt.AspectRatioMode aspectRatioMode: Mode how to scale + :param QPainter painter: Qt painter + :param QRectF rect: Rectangle for the scaled graphic + :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale .. py:method:: render(painter, pos, aspectRatioMode) @@ -443,9 +433,9 @@ def render(self, *args): The graphic is scaled to the :py:meth:`defaultSize()` and aligned to a position. - :param: QPainter painter: Qt painter - :param: QPointF pos: Reference point, where to render - :param: Qt.AspectRatioMode aspectRatioMode: Mode how to scale + :param QPainter painter: Qt painter + :param QPointF pos: Reference point, where to render + :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale """ if len(args) == 1: painter, = args @@ -536,17 +526,15 @@ def render(self, *args): def toPixmap(self, *args): """ - .. py:method:: toPixmap() - - Convert the graphic to a `QPixmap` + Convert the graphic to a `QPixmap` - All pixels of the pixmap get initialized by `Qt.transparent` - before the graphic is scaled and rendered on it. + All pixels of the pixmap get initialized by `Qt.transparent` + before the graphic is scaled and rendered on it. - The size of the pixmap is the default size ( ceiled to integers ) - of the graphic. - - :return: The graphic as pixmap in default size + The size of the pixmap is the default size ( ceiled to integers ) + of the graphic. + + :return: The graphic as pixmap in default size .. seealso:: @@ -603,8 +591,8 @@ def toImage(self, *args): The format of the image is `QImage.Format_ARGB32_Premultiplied`. - :param: QSize size: Size of the image - :param: `Qt.AspectRatioMode` aspectRatioMode: Aspect ratio how to scale the graphic + :param QSize size: Size of the image + :param `Qt.AspectRatioMode` aspectRatioMode: Aspect ratio how to scale the graphic :return: The graphic as image .. seealso:: @@ -638,11 +626,9 @@ def toImage(self, *args): def drawPath(self, path): """ - .. py:method:: drawPath(path) + Store a path command in the command list - Store a path command in the command list - - :param: QPainterPath path: Painter path + :param QPainterPath path: Painter path .. seealso:: @@ -666,13 +652,11 @@ def drawPath(self, path): def drawPixmap(self, rect, pixmap, subRect): """ - .. py:method:: drawPixmap(rect, pixmap, subRect) + Store a pixmap command in the command list - Store a pixmap command in the command list - - :param: QRectF rect: target rectangle - :param: QPixmap pixmap: Pixmap to be painted - :param: QRectF subRect: Reactangle of the pixmap to be painted + :param QRectF rect: target rectangle + :param QPixmap pixmap: Pixmap to be painted + :param QRectF subRect: Reactangle of the pixmap to be painted .. seealso:: @@ -688,14 +672,12 @@ def drawPixmap(self, rect, pixmap, subRect): def drawImage(self, rect, image, subRect, flags): """ - .. py:method:: drawImage(rect, image, subRect, flags) + Store a image command in the command list - Store a image command in the command list - - :param: QRectF rect: target rectangle - :param: QImage image: Pixmap to be painted - :param: QRectF subRect: Reactangle of the pixmap to be painted - :param: Qt.ImageConversionFlags flags: Pixmap to be painted + :param QRectF rect: target rectangle + :param QImage image: Pixmap to be painted + :param QRectF subRect: Reactangle of the pixmap to be painted + :param Qt.ImageConversionFlags flags: Pixmap to be painted .. seealso:: @@ -711,11 +693,9 @@ def drawImage(self, rect, image, subRect, flags): def updateState(self, state): """ - .. py:method:: updateState(state) + Store a state command in the command list - Store a state command in the command list - - :param: QPaintEngineState state: State to be stored + :param QPaintEngineState state: State to be stored .. seealso:: diff --git a/qwt/interval.py b/qwt/interval.py index 2dbe36a..fa9885d 100644 --- a/qwt/interval.py +++ b/qwt/interval.py @@ -47,13 +47,11 @@ def __init__(self, minValue=0., maxValue=-1., borderFlags=None): def setInterval(self, minValue, maxValue, borderFlags): """ - .. py:method:: setInterval(minValue, maxValue, borderFlags) + Assign the limits of the interval - Assign the limits of the interval - - :param: float minValue: Minimum value - :param: float maxValue: Maximum value - :param: int borderFlags: Include/Exclude borders + :param float minValue: Minimum value + :param float maxValue: Maximum value + :param int borderFlags: Include/Exclude borders """ self.__minValue = minValue self.__maxValue = maxValue @@ -61,11 +59,9 @@ def setInterval(self, minValue, maxValue, borderFlags): def setBorderFlags(self, borderFlags): """ - .. py:method:: setBorderFlags(borderFlags) + Change the border flags - Change the border flags - - :param: int borderFlags: Include/Exclude borders + :param int borderFlags: Include/Exclude borders .. seealso:: @@ -75,9 +71,7 @@ def setBorderFlags(self, borderFlags): def borderFlags(self): """ - .. py:method:: borderFlags() - - :return: Border flags + :return: Border flags .. seealso:: @@ -87,49 +81,39 @@ def borderFlags(self): def setMinValue(self, minValue): """ - .. py:method:: setMinValue(minValue) - - Assign the lower limit of the interval - - :param: float minValue: Minimum value + Assign the lower limit of the interval + + :param float minValue: Minimum value """ self.__minValue = minValue def setMaxValue(self, maxValue): """ - .. py:method:: setMaxValue(minValue) - - Assign the upper limit of the interval - - :param: float maxValue: Maximum value + Assign the upper limit of the interval + + :param float maxValue: Maximum value """ self.__maxValue = maxValue def minValue(self): """ - .. py:method:: minValue() - - :return: Lower limit of the interval + :return: Lower limit of the interval """ return self.__minValue def maxValue(self): """ - .. py:method:: maxValue() - - :return: Upper limit of the interval + :return: Upper limit of the interval """ return self.__maxValue def isValid(self): """ - .. py:method:: isValid() - - A interval is valid when minValue() <= maxValue(). - In case of `QwtInterval.ExcludeBorders` it is true - when minValue() < maxValue() + A interval is valid when minValue() <= maxValue(). + In case of `QwtInterval.ExcludeBorders` it is true + when minValue() < maxValue() - :return: True, when the interval is valid + :return: True, when the interval is valid """ if (self.__borderFlags & self.ExcludeBorders) == 0: return self.__minValue <= self.__maxValue @@ -138,12 +122,10 @@ def isValid(self): def width(self): """ - .. py:method:: width() - - The width of invalid intervals is 0.0, otherwise the result is - maxValue() - minValue(). + The width of invalid intervals is 0.0, otherwise the result is + maxValue() - minValue(). - :return: the width of an interval + :return: the width of an interval """ if self.isValid(): return self.__maxValue - self.__minValue @@ -177,17 +159,13 @@ def __ne__(self, other): def isNull(self): """ - .. py:method:: isNull() - - :return: true, if isValid() && (minValue() >= maxValue()) + :return: true, if isValid() && (minValue() >= maxValue()) """ return self.isValid() and self.__minValue >= self.__maxValue def invalidate(self): """ - .. py:method:: invalidate() - - The limits are set to interval [0.0, -1.0] + The limits are set to interval [0.0, -1.0] .. seealso:: @@ -198,13 +176,11 @@ def invalidate(self): def normalized(self): """ - .. py:method:: normalized() - - Normalize the limits of the interval - - If maxValue() < minValue() the limits will be inverted. - - :return: Normalized interval + Normalize the limits of the interval + + If maxValue() < minValue() the limits will be inverted. + + :return: Normalized interval .. seealso:: @@ -220,11 +196,9 @@ def normalized(self): def inverted(self): """ - .. py:method:: inverted() - - Invert the limits of the interval - - :return: Inverted interval + Invert the limits of the interval + + :return: Inverted interval .. seealso:: @@ -239,12 +213,10 @@ def inverted(self): def contains(self, value): """ - .. py:method:: contains(value) - - Test if a value is inside an interval - - :param: float value: Value - :return: true, if value >= minValue() && value <= maxValue() + Test if a value is inside an interval + + :param float value: Value + :return: true, if value >= minValue() && value <= maxValue() """ if not self.isValid(): return False @@ -261,12 +233,10 @@ def contains(self, value): def unite(self, other): """ - .. py:method:: unite(other) - - Unite two intervals - - :param: QwtInterval other: other interval to united with - :return: united interval + Unite two intervals + + :param qwt.interval.QwtInterval other: other interval to united with + :return: united interval """ if not self.isValid(): if not other.isValid(): @@ -308,12 +278,10 @@ def unite(self, other): def intersect(self, other): """ - .. py:method:: intersect(other) - - Intersect two intervals - - :param: QwtInterval other: other interval to intersect with - :return: intersected interval + Intersect two intervals + + :param qwt.interval.QwtInterval other: other interval to intersect with + :return: intersected interval """ if not other.isValid() or not self.isValid(): return QwtInterval() @@ -356,12 +324,10 @@ def intersect(self, other): def intersects(self, other): """ - .. py:method:: intersects(other) - - Test if two intervals overlap - - :param: QwtInterval other: other interval - :return: True, when the intervals are intersecting + Test if two intervals overlap + + :param qwt.interval.QwtInterval other: other interval + :return: True, when the intervals are intersecting """ if not other.isValid() or not self.isValid(): return False @@ -384,13 +350,11 @@ def intersects(self, other): def symmetrize(self, value): """ - .. py:method:: symmetrize(value) - - Adjust the limit that is closer to value, so that value becomes - the center of the interval. - - :param: float value: Center - :return: Interval with value as center + Adjust the limit that is closer to value, so that value becomes + the center of the interval. + + :param float value: Center + :return: Interval with value as center """ if not self.isValid(): return self @@ -400,13 +364,11 @@ def symmetrize(self, value): def limited(self, lowerBound, upperBound): """ - .. py:method:: limited(lowerBound, upperBound) - - Limit the interval, keeping the border modes - - :param: float lowerBound: Lower limit - :param: float upperBound: Upper limit - :return: Limited interval + Limit the interval, keeping the border modes + + :param float lowerBound: Lower limit + :param float upperBound: Upper limit + :return: Limited interval """ if not self.isValid() or lowerBound > upperBound: return QwtInterval() @@ -418,17 +380,15 @@ def limited(self, lowerBound, upperBound): def extend(self, value): """ - .. py:method:: extend(value) + Extend the interval - Extend the interval + If value is below minValue(), value becomes the lower limit. + If value is above maxValue(), value becomes the upper limit. - If value is below minValue(), value becomes the lower limit. - If value is above maxValue(), value becomes the upper limit. - - extend() has no effect for invalid intervals - - :param: float value: Value - :return: extended interval + extend() has no effect for invalid intervals + + :param float value: Value + :return: extended interval """ if not self.isValid(): return self diff --git a/qwt/legend.py b/qwt/legend.py index af2f956..452b142 100644 --- a/qwt/legend.py +++ b/qwt/legend.py @@ -176,7 +176,7 @@ class QwtLegend(QwtAbstractLegend): Constructor - :param: QWidget parent: Parent widget + :param QWidget parent: Parent widget """ SIG_CLICKED = Signal("PyQt_PyObject", int) @@ -199,14 +199,12 @@ def __init__(self, parent=None): def setMaxColumns(self, numColumns): """ - .. py:method:: setMaxColumns(numColumns) - - Set the maximum number of entries in a row + Set the maximum number of entries in a row - F.e when the maximum is set to 1 all items are aligned - vertically. 0 means unlimited - - :param: int numColumns: Maximum number of entries in a row + F.e when the maximum is set to 1 all items are aligned + vertically. 0 means unlimited + + :param int numColumns: Maximum number of entries in a row .. seealso:: @@ -219,9 +217,7 @@ def setMaxColumns(self, numColumns): def maxColumns(self): """ - .. py:method:: maxColumns() - - :return: Maximum number of entries in a row + :return: Maximum number of entries in a row .. seealso:: @@ -235,16 +231,14 @@ def maxColumns(self): def setDefaultItemMode(self, mode): """ - .. py:method:: setDefaultItemMode(mode) - - Set the default mode for legend labels + Set the default mode for legend labels - Legend labels will be constructed according to the - attributes in a `QwtLegendData` object. When it doesn't - contain a value for the `QwtLegendData.ModeRole` the - label will be initialized with the default mode of the legend. - - :param: int mode: Default item mode + Legend labels will be constructed according to the + attributes in a `QwtLegendData` object. When it doesn't + contain a value for the `QwtLegendData.ModeRole` the + label will be initialized with the default mode of the legend. + + :param int mode: Default item mode .. seealso:: @@ -260,9 +254,7 @@ def setDefaultItemMode(self, mode): def defaultItemMode(self): """ - .. py:method:: defaultItemMode() - - :return: Default item mode + :return: Default item mode .. seealso:: @@ -272,21 +264,17 @@ def defaultItemMode(self): def contentsWidget(self): """ - .. py:method:: contentsWidget() - - The contents widget is the only child of the viewport of - the internal `QScrollArea` and the parent widget of all legend - items. + The contents widget is the only child of the viewport of + the internal `QScrollArea` and the parent widget of all legend + items. - :return: Container widget of the legend items + :return: Container widget of the legend items """ return self.__data.view.contentsWidget def horizontalScrollBar(self): """ - .. py:method:: horizontalScrollBar() - - :return: Horizontal scrollbar + :return: Horizontal scrollbar .. seealso:: @@ -296,9 +284,7 @@ def horizontalScrollBar(self): def verticalScrollBar(self): """ - .. py:method:: verticalScrollBar() - - :return: Vertical scrollbar + :return: Vertical scrollbar .. seealso:: @@ -308,12 +294,10 @@ def verticalScrollBar(self): def updateLegend(self, itemInfo, data): """ - .. py:method:: updateLegend(itemInfo, data) + Update the entries for an item - Update the entries for an item - - :param: QVariant itemInfo: Info for an item - :param: list data: Default item mode + :param QVariant itemInfo: Info for an item + :param list data: Default item mode """ widgetList = self.legendWidgets(itemInfo) if len(widgetList) != len(data): @@ -340,14 +324,12 @@ def updateLegend(self, itemInfo, data): def createWidget(self, data): """ - .. py:method:: createWidget(data) - - Create a widget to be inserted into the legend + Create a widget to be inserted into the legend - The default implementation returns a `QwtLegendLabel`. - - :param: QwtLegendData data: Attributes of the legend entry - :return: Widget representing data on the legend + The default implementation returns a `QwtLegendLabel`. + + :param QwtLegendData data: Attributes of the legend entry + :return: Widget representing data on the legend ... note:: @@ -362,12 +344,10 @@ def createWidget(self, data): def updateWidget(self, widget, data): """ - .. py:method:: updateWidget(widget, data) + Update the widget - Update the widget - - :param: QWidget widget: Usually a QwtLegendLabel - :param: QwtLegendData data: Attributes to be displayed + :param QWidget widget: Usually a QwtLegendLabel + :param QwtLegendData data: Attributes to be displayed .. seealso:: @@ -401,10 +381,8 @@ def sizeHint(self): def heightForWidth(self, width): """ - .. py:method:: heightForWidth(width) - - :param: int width: Width - :return: The preferred height, for a width. + :param int width: Width + :return: The preferred height, for a width. """ width -= 2*self.frameWidth() h = self.__data.view.contentsWidget.heightForWidth(width) @@ -414,14 +392,12 @@ def heightForWidth(self, width): def eventFilter(self, object_, event): """ - .. py:method:: eventFilter(object_, event) - - Handle QEvent.ChildRemoved andQEvent.LayoutRequest events - for the contentsWidget(). - - :param: QObject object: Object to be filtered - :param: QEvent event: Event - :return: Forwarded to QwtAbstractLegend.eventFilter() + Handle QEvent.ChildRemoved andQEvent.LayoutRequest events + for the contentsWidget(). + + :param QObject object: Object to be filtered + :param QEvent event: Event + :return: Forwarded to QwtAbstractLegend.eventFilter() """ if object_ is self.__data.view.contentsWidget: if event.type() == QEvent.ChildRemoved: @@ -460,13 +436,11 @@ def itemChecked(self, on, widget): def renderLegend(self, painter, rect, fillBackground): """ - .. py:method:: renderLegend(painter, rect, fillBackground) - - Render the legend into a given rectangle. - - :param: QPainter painter: Painter - :param: QRectF rect: Bounding rectangle - :param: bool fillBackground: When true, fill rect with the widget background + Render the legend into a given rectangle. + + :param QPainter painter: Painter + :param QRectF rect: Bounding rectangle + :param bool fillBackground: When true, fill rect with the widget background """ if self.__data.itemMap.isEmpty(): return @@ -501,14 +475,12 @@ def renderLegend(self, painter, rect, fillBackground): def renderItem(self, painter, widget, rect, fillBackground): """ - .. py:method:: renderItem(painter, widget, rect, fillBackground) - - Render a legend entry into a given rectangle. - - :param: QPainter painter: Painter - :param: QWidget widget: Widget representing a legend entry - :param: QRectF rect: Bounding rectangle - :param: bool fillBackground: When true, fill rect with the widget background + Render a legend entry into a given rectangle. + + :param QPainter painter: Painter + :param QWidget widget: Widget representing a legend entry + :param QRectF rect: Bounding rectangle + :param bool fillBackground: When true, fill rect with the widget background """ if fillBackground: if widget.autoFillBackground() or\ @@ -530,21 +502,17 @@ def renderItem(self, painter, widget, rect, fillBackground): def legendWidgets(self, itemInfo): """ - .. py:method:: legendWidgets(itemInfo) - - List of widgets associated to a item - - :param: QVariant itemInfo: Info about an item + List of widgets associated to a item + + :param QVariant itemInfo: Info about an item """ return self.__data.itemMap.legendWidgets(itemInfo) def legendWidget(self, itemInfo): """ - .. py:method:: legendWidget(itemInfo) - - First widget in the list of widgets associated to an item - - :param: QVariant itemInfo: Info about an item + First widget in the list of widgets associated to an item + + :param QVariant itemInfo: Info about an item """ list_ = self.__data.itemMap.legendWidgets(itemInfo) if list_: @@ -552,12 +520,10 @@ def legendWidget(self, itemInfo): def itemInfo(self, widget): """ - .. py:method:: itemInfo(widget) - - Find the item that is associated to a widget - - :param: QWidget widget: Widget on the legend - :return: Associated item info + Find the item that is associated to a widget + + :param QWidget widget: Widget on the legend + :return: Associated item info """ return self.__data.itemMap.itemInfo(widget) diff --git a/qwt/legend_data.py b/qwt/legend_data.py index eecc603..983ab83 100644 --- a/qwt/legend_data.py +++ b/qwt/legend_data.py @@ -5,10 +5,38 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtLegendData +------------- + +.. autoclass:: QwtLegendData + :members: +""" + from qwt.text import QwtText class QwtLegendData(object): + """ + Attributes of an entry on a legend + + `QwtLegendData` is an abstract container ( like `QAbstractModel` ) + to exchange attributes, that are only known between to + the plot item and the legend. + + By overloading `QwtPlotItem.legendData()` any other set of attributes + could be used, that can be handled by a modified ( or completely + different ) implementation of a legend. + + .. seealso:: + + :py:class:`qwt.legend.QwtLegend` + + .. note:: + + The stockchart example implements a legend as a tree + with checkable items + """ # enum Mode ReadOnly, Clickable, Checkable = list(range(3)) @@ -21,24 +49,68 @@ def __init__(self): self.__map = {} def setValues(self, map_): + """ + Set the legend attributes + + :param dict map\_: Values + + .. seealso:: + + :py:meth:`values()` + """ self.__map = map_ def values(self): + """ + :return: Legend attributes + + .. seealso:: + + :py:meth:`setValues()` + """ return self.__map def hasRole(self, role): + """ + :param int role: Attribute role + :return: True, when the internal map has an entry for role + """ return role in self.__map def setValue(self, role, data): + """ + Set an attribute value + + :param int role: Attribute role + :param QVariant data: Attribute value + + .. seealso:: + + :py:meth:`value()` + """ self.__map[role] = data def value(self, role): + """ + :param int role: Attribute role + :return: Attribute value for a specific role + + .. seealso:: + + :py:meth:`setValue()` + """ return self.__map.get(role) def isValid(self): + """ + :return: True, when the internal map is empty + """ return len(self.__map) != 0 def title(self): + """ + :return: Value of the TitleRole attribute + """ titleValue = self.value(QwtLegendData.TitleRole) if isinstance(titleValue, QwtText): text = titleValue @@ -47,9 +119,15 @@ def title(self): return text def icon(self): + """ + :return: Value of the IconRole attribute + """ return self.value(QwtLegendData.IconRole) def mode(self): + """ + :return: Value of the ModeRole attribute + """ modeValue = self.value(QwtLegendData.ModeRole) if isinstance(modeValue, int): return modeValue diff --git a/qwt/legend_label.py b/qwt/legend_label.py index 98c67ca..87b87c4 100644 --- a/qwt/legend_label.py +++ b/qwt/legend_label.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtLegendLabel +-------------- + +.. autoclass:: QwtLegendLabel + :members: +""" + from qwt.text import QwtTextLabel from qwt.legend_data import QwtLegendData @@ -35,6 +43,8 @@ def __init__(self): class QwtLegendLabel(QwtTextLabel): + """A widget representing something on a QwtLegend.""" + SIG_CLICKED = Signal() SIG_PRESSED = Signal() SIG_RELEASED = Signal() @@ -47,6 +57,15 @@ def __init__(self, parent=None): self.setIndent(MARGIN) def setData(self, legendData): + """ + Set the attributes of the legend label + + :param QwtLegendData legendData: Attributes of the label + + .. seealso:: + + :py:meth:`data()` + """ self.__data.legendData = legendData doUpdate = self.updatesEnabled() self.setUpdatesEnabled(False) @@ -61,15 +80,41 @@ def setData(self, legendData): self.update() def data(self): + """ + :return: Attributes of the label + + .. seealso:: + + :py:meth:`setData()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()` + """ return self.__data.legendData def setText(self, text): + """ + Set the text to the legend item + + :param qwt.text.QwtText text: Text label + + .. seealso:: + + :py:meth:`text()` + """ flags = Qt.AlignLeft|Qt.AlignVCenter|Qt.TextExpandTabs|Qt.TextWordWrap txt = text #TODO: WTF? txt.setRenderFlags(flags) QwtTextLabel.setText(self, text) def setItemMode(self, mode): + """ + Set the item mode. + The default is `QwtLegendData.ReadOnly`. + + :param int mode: Item mode + + .. seealso:: + + :py:meth:`itemMode()` + """ if mode != self.__data.itemMode: self.__data.itemMode = mode self.__data.isDown = False @@ -79,9 +124,25 @@ def setItemMode(self, mode): self.updateGeometry() def itemMode(self): + """ + :return: Item mode + + .. seealso:: + + :py:meth:`setItemMode()` + """ return self.__data.itemMode def setIcon(self, icon): + """ + Assign the icon + + :param QPixmap icon: Pixmap representing a plot item + + .. seealso:: + + :py:meth:`icon()`, :py:meth:`qwt.plot.QwtPlotItem.legendIcon()` + """ self.__data.icon = icon indent = self.margin()+self.__data.spacing if icon.width() > 0: @@ -89,9 +150,25 @@ def setIcon(self, icon): self.setIndent(indent) def icon(self): + """ + :return: Pixmap representing a plot item + + .. seealso:: + + :py:meth:`setIcon()` + """ return self.__data.icon def setSpacing(self, spacing): + """ + Change the spacing between icon and text + + :param int spacing: Spacing + + .. seealso:: + + :py:meth:`spacing()`, :py:meth:`qwt.text.QwtTextLabel.margin()` + """ spacing = max([spacing, 0]) if spacing != self.__data.spacing: self.__data.spacing = spacing @@ -101,9 +178,25 @@ def setSpacing(self, spacing): self.setIndent(indent) def spacing(self): + """ + :return: Spacing between icon and text + + .. seealso:: + + :py:meth:`setSpacing()` + """ return self.__data.spacing def setChecked(self, on): + """ + Check/Uncheck a the item + + :param bool on: check/uncheck + + .. seealso:: + + :py:meth:`isChecked()`, :py:meth:`setItemMode()` + """ if self.__data.itemMode == QwtLegendData.Checkable: isBlocked = self.signalsBlocked() self.blockSignals(True) @@ -111,9 +204,25 @@ def setChecked(self, on): self.blockSignals(isBlocked) def isChecked(self): + """ + :return: true, if the item is checked + + .. seealso:: + + :py:meth:`setChecked()` + """ return self.__data.itemMode == QwtLegendData.Checkable and self.isDown() def setDown(self, down): + """ + Set the item being down + + :param bool on: true, if the item is down + + .. seealso:: + + :py:meth:`isDown()` + """ if down == self.__data.isDown: return self.__data.isDown = down @@ -128,9 +237,19 @@ def setDown(self, down): self.SIG_CHECKED.emit(self.__data.isDown) def isDown(self): + """ + :return: true, if the item is down + + .. seealso:: + + :py:meth:`setDown()` + """ return self.__data.isDown def sizeHint(self): + """ + :return: a size hint + """ sz = QwtTextLabel.sizeHint(self) sz.setHeight(max([sz.height(), self.__data.icon.height()+4])) if self.__data.itemMode != QwtLegendData.ReadOnly: diff --git a/qwt/null_paintdevice.py b/qwt/null_paintdevice.py index 9535241..ad5e1d9 100644 --- a/qwt/null_paintdevice.py +++ b/qwt/null_paintdevice.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtNullPaintDevice +------------------ + +.. autoclass:: QwtNullPaintDevice + :members: +""" + from qwt.qt.QtGui import QPaintEngine, QPainterPath, QPaintDevice @@ -156,6 +164,47 @@ def nullDevice(self): class QwtNullPaintDevice(QPaintDevice): + """ + A null paint device doing nothing + + Sometimes important layout/rendering geometries are not + available or changeable from the public Qt class interface. + ( f.e hidden in the style implementation ). + + `QwtNullPaintDevice` can be used to manipulate or filter out + this information by analyzing the stream of paint primitives. + + F.e. `QwtNullPaintDevice` is used by `QwtPlotCanvas` to identify + styled backgrounds with rounded corners. + + Modes: + + * `NormalMode`: + + All vector graphic primitives are painted by + the corresponding draw methods + + * `PolygonPathMode`: + + Vector graphic primitives ( beside polygons ) are mapped to a + `QPainterPath` and are painted by `drawPath`. In `PolygonPathMode` + mode only a few draw methods are called: + + - `drawPath()` + - `drawPixmap()` + - `drawImage()` + - `drawPolygon()` + + * `PathMode`: + + Vector graphic primitives are mapped to a `QPainterPath` + and are painted by `drawPath`. In `PathMode` mode + only a few draw methods are called: + + - `drawPath()` + - `drawPixmap()` + - `drawImage()` + """ # enum Mode NormalMode, PolygonPathMode, PathMode = list(range(3)) @@ -166,9 +215,25 @@ def __init__(self): self.__data = QwtNullPaintDevice_PrivateData() def setMode(self, mode): + """ + Set the render mode + + :param int mode: New mode + + .. seealso:: + + :py:meth:`mode()` + """ self.__data.mode = mode def mode(self): + """ + :return: Render mode + + .. seealso:: + + :py:meth:`setMode()` + """ return self.__data.mode def paintEngine(self): diff --git a/qwt/painter.py b/qwt/painter.py index 40bc888..82ce865 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPainterClass +--------------- + +.. autoclass:: QwtPainterClass + :members: +""" + from qwt.clipper import QwtClipper from qwt.color_map import QwtColorMap @@ -80,11 +88,29 @@ def isX11GraphicsSystem(): class QwtPainterClass(object): + """A collection of `QPainter` workarounds""" + def __init__(self): self.__polylineSplitting = True self.__roundingAlignment = True def isAligning(self, painter): + """ + Check if the painter is using a paint engine, that aligns + coordinates to integers. Today these are all paint engines + beside `QPaintEngine.Pdf` and `QPaintEngine.SVG`. + + If we have an integer based paint engine it is also + checked if the painter has a transformation matrix, + that rotates or scales. + + :param QPainter painter: Painter + :return: true, when the painter is aligning + + .. seealso:: + + :py:meth:`setRoundingAlignment()` + """ if painter and painter.isActive(): if painter.paintEngine().type() in (QPaintEngine.Pdf, QPaintEngine.SVG): @@ -95,6 +121,21 @@ def isAligning(self, painter): return True def setRoundingAlignment(self, enable): + """ + Enable whether coordinates should be rounded, before they are + painted to a paint engine that floors to integer values. For other + paint engines this ( PDF, SVG ), this flag has no effect. + `QwtPainter` stores this flag only, the rounding itself is done in + the painting code ( f.e the plot items ). + + The default setting is true. + + :param bool enable: enable/disable + + .. seealso:: + + :py:meth:`roundingAlignment()`, :py:meth:`isAligning()` + """ self.__roundingAlignment = enable def roundingAlignment(self, painter=None): @@ -104,6 +145,20 @@ def roundingAlignment(self, painter=None): return self.__roundingAlignment and self.isAligning(painter) def setPolylineSplitting(self, enable): + """ + En/Disable line splitting for the raster paint engine + + In some Qt versions the raster paint engine paints polylines of + many points much faster when they are split in smaller chunks: + f.e all supported Qt versions >= Qt 5.0 when drawing an + antialiased polyline with a pen width >=2. + + :param bool enable: enable/disable + + .. seealso:: + + :py:meth:`polylineSplitting()` + """ self.__polylineSplitting = enable def polylineSplitting(self): @@ -191,6 +246,14 @@ def drawText(self, *args): "(s) (%s given)" % len(args)) def drawSimpleRichText(self, painter, rect, flags, text): + """ + Draw a text document into a rectangle + + :param QPainter painter: Painter + :param QRectF rect: Target rectangle + :param int flags: Alignments/Text flags, see `QPainter.drawText()` + :param QTextDocument text: Text document + """ txt = text.clone() painter.save() unscaledRect = QRectF(rect) @@ -371,6 +434,15 @@ def drawFocusRect(self, *args): "(s) (%s given)" % len(args)) def drawRoundFrame(self, painter, rect, palette, lineWidth, frameStyle): + """ + Draw a round frame + + :param QPainter painter: Painter + :param QRectF rect: Target rectangle + :param QPalette palette: `QPalette.WindowText` is used for plain borders, `QPalette.Dark` and `QPalette.Light` for raised or sunken borders + :param int lineWidth: Line width + :param int frameStyle: bitwise OR´ed value of `QFrame.Shape` and `QFrame.Shadow` + """ Plain, Sunken, Raised = list(range(3)) style = Plain if (frameStyle & QFrame.Sunken) == QFrame.Sunken: @@ -397,6 +469,17 @@ def drawRoundFrame(self, painter, rect, palette, lineWidth, frameStyle): def drawFrame(self, painter, rect, palette, foregroundRole, frameWidth, midLineWidth, frameStyle): + """ + Draw a rectangular frame + + :param QPainter painter: Painter + :param QRectF rect: Frame rectangle + :param QPalette palette: Palette + :param QPalette.ColorRole foregroundRole: Palette + :param int frameWidth: Frame width + :param int midLineWidth: Used for `QFrame.Box` + :param int frameStyle: bitwise OR´ed value of `QFrame.Shape` and `QFrame.Shadow` + """ if frameWidth <= 0 or rect.isEmpty(): return shadow = frameStyle & QFrame.Shadow_Mask @@ -496,6 +579,17 @@ def drawFrame(self, painter, rect, palette, foregroundRole, def drawRoundedFrame(self, painter, rect, xRadius, yRadius, palette, lineWidth, frameStyle): + """ + Draw a rectangular frame with rounded borders + + :param QPainter painter: Painter + :param QRectF rect: Frame rectangle + :param float xRadius: x-radius of the ellipses defining the corners + :param float yRadius: y-radius of the ellipses defining the corners + :param QPalette palette: `QPalette.WindowText` is used for plain borders, `QPalette.Dark` and `QPalette.Light` for raised or sunken borders + :param int lineWidth: Line width + :param int frameStyle: bitwise OR´ed value of `QFrame.Shape` and `QFrame.Shadow` + """ painter.save() painter.setRenderHint(QPainter.Antialiasing, True) painter.setBrush(Qt.NoBrush) @@ -569,6 +663,16 @@ def drawRoundedFrame(self, painter, rect, xRadius, yRadius, def drawColorBar(self, painter, colorMap, interval, scaleMap, orientation, rect): + """ + Draw a color bar into a rectangle + + :param QPainter painter: Painter + :param qwt.color_map.QwtColorMap colorMap: Color map + :param qwt.interval.QwtInterval interval: Value range + :param qwt.scalemap.QwtScaleMap scaleMap: Scale map + :param Qt.Orientation orientation: Orientation + :param QRectF rect: Target rectangle + """ colorTable = [] if colorMap.format() == QwtColorMap.Indexed: colorTable = colorMap.colorTable(interval) @@ -604,6 +708,21 @@ def drawColorBar(self, painter, colorMap, interval, scaleMap, self.drawPixmap(painter, rect, pixmap) def fillPixmap(self, widget, pixmap, offset=None): + """ + Fill a pixmap with the content of a widget + + In Qt >= 5.0 `QPixmap.fill()` is a nop, in Qt 4.x it is buggy + for backgrounds with gradients. Thus `fillPixmap()` offers + an alternative implementation. + + :param QWidget widget: Widget + :param QPixmap pixmap: Pixmap to be filled + :param QPoint offset: Offset + + .. seealso:: + + :py:meth:`QPixmap.fill()` + """ if offset is None: offset = QPoint() rect = QRect(offset, pixmap.size()) @@ -623,6 +742,17 @@ def fillPixmap(self, widget, pixmap, offset=None): painter, widget) def drawBackground(self, painter, rect, widget): + """ + Fill rect with the background of a widget + + :param QPainter painter: Painter + :param QRectF rect: Rectangle to be filled + :param QWidget widget: Widget + + .. seealso:: + + :py:data:`QStyle.PE_Widget`, :py:meth:`QWidget.backgroundRole()` + """ if widget.testAttribute(Qt.WA_StyledBackground): opt = QStyleOption() opt.initFrom(widget) @@ -634,6 +764,11 @@ def drawBackground(self, painter, rect, widget): painter.fillRect(rect, brush) def backingStore(self, widget, size): + """ + :param QWidget widget: Widget, for which the backinstore is intended + :param QSize size: Size of the pixmap + :return: A pixmap that can be used as backing store + """ if QT_VERSION >= 0x050000: pixelRatio = 1. if widget and widget.windowHandle(): diff --git a/qwt/painter_command.py b/qwt/painter_command.py index 987da97..a7d3996 100644 --- a/qwt/painter_command.py +++ b/qwt/painter_command.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPainterCommand +----------------- + +.. autoclass:: QwtPainterCommand + :members: +""" + from qwt.qt.QtGui import QPainterPath, QPaintEngine @@ -41,6 +49,51 @@ def __init__(self): self.opacity = None class QwtPainterCommand(object): + """ + `QwtPainterCommand` represents the attributes of a paint operation + how it is used between `QPainter` and `QPaintDevice` + + It is used by :py:class:`qwt.graphic.QwtGraphic` to record and replay + paint operations + + .. seealso:: + + :py:meth:`qwt.graphic.QwtGraphic.commands()` + + + .. py:class:: QwtPainterCommand() + + Construct an invalid command + + .. py:class:: QwtPainterCommand(path) + + Copy constructor + + :param QPainterPath path: Source + + .. py:class:: QwtPainterCommand(rect, pixmap, subRect) + + Constructor for Pixmap paint operation + + :param QRectF rect: Target rectangle + :param QPixmap pixmap: Pixmap + :param QRectF subRect: Rectangle inside the pixmap + + .. py:class:: QwtPainterCommand(rect, image, subRect, flags) + + Constructor for Image paint operation + + :param QRectF rect: Target rectangle + :param QImage image: Image + :param QRectF subRect: Rectangle inside the image + :param Qt.ImageConversionFlags flags: Conversion flags + + .. py:class:: QwtPainterCommand(state) + + Constructor for State paint operation + + :param QPaintEngineState state: Paint engine state + """ # enum Type Invalid = -1 diff --git a/qwt/pixel_matrix.py b/qwt/pixel_matrix.py index 9eae099..b7dad1c 100644 --- a/qwt/pixel_matrix.py +++ b/qwt/pixel_matrix.py @@ -5,15 +5,44 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPixelMatrix +-------------- + +.. autoclass:: QwtPixelMatrix + :members: +""" + from qwt.qt.QtCore import QBitArray class QwtPixelMatrix(QBitArray): + """ + A bit field corresponding to the pixels of a rectangle + + `QwtPixelMatrix` is intended to filter out duplicates in an + unsorted array of points. + + .. py:class:: QwtGraphic(rect) + + Constructor + + :param QRect rect: Bounding rectangle for the matrix + """ def __init__(self, rect): QBitArray.__init__(self, max([rect.width()*rect.height(), 0])) self.__rect = rect def setRect(self, rect): + """ + Set the bounding rectangle of the matrix + + :param QRect rect: Bounding rectangle + + .. note:: + + All bits are cleared + """ if rect != self.__rect: self.__rect = rect sz = max([rect.width()*rect.height(), 0]) @@ -21,9 +50,19 @@ def setRect(self, rect): self.fill(False) def rect(self): + """ + :return: Bounding rectangle + """ return self.__rect def testPixel(self, x, y): + """ + Test if a pixel has been set + + :param int x: X-coordinate + :param int y: Y-coordinate + :return: true, when pos is outside of rect(), or when the pixel has already been set. + """ idx = self.index(x, y) if idx >= 0: return self.testBit(idx) @@ -31,6 +70,14 @@ def testPixel(self, x, y): return True def testAndSetPixel(self, x, y, on): + """ + Set a pixel and test if a pixel has been set before + + :param int x: X-coordinate + :param int y: Y-coordinate + :param bool on: Set/Clear the pixel + :return: true, when pos is outside of rect(), or when the pixel was set before. + """ idx = self.index(x, y) if idx < 0: return True @@ -39,6 +86,13 @@ def testAndSetPixel(self, x, y, on): return onBefore def index(self, x, y): + """ + Calculate the index in the bit field corresponding to a position + + :param int x: X-coordinate + :param int y: Y-coordinate + :return: Index, when rect() contains pos - otherwise -1. + """ dx = x - self.__rect.x() if dx < 0 or dx >= self.__rect.width(): return -1 diff --git a/qwt/plot.py b/qwt/plot.py index 1d1c0e6..efa9788 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -5,6 +5,26 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPlotDict +----------- + +.. autoclass:: QwtPlotDict + :members: + +QwtPlot +------- + +.. autoclass:: QwtPlot + :members: + +QwtPlotItem +----------- + +.. autoclass:: QwtPlotItem + :members: +""" + from qwt.qt.QtGui import (QWidget, QFont, QSizePolicy, QFrame, QApplication, QRegion, QPainter, QPalette) from qwt.qt.QtCore import Qt, Signal, QEvent, QSize, QRectF @@ -73,22 +93,79 @@ def __init__(self): class QwtPlotDict(object): + """ + A dictionary for plot items + + `QwtPlotDict` organizes plot items in increasing z-order. + If `autoDelete()` is enabled, all attached items will be deleted + in the destructor of the dictionary. + `QwtPlotDict` can be used to get access to all `QwtPlotItem` items - or + all items of a specific type - that are currently on the plot. + + .. seealso:: + + :py:meth:`QwtPlotItem.attach()`, :py:meth:`QwtPlotItem.detach()`, + :py:meth:`QwtPlotItem.z()` + """ def __init__(self): self.__data = QwtPlotDict_PrivateData() def setAutoDelete(self, autoDelete): + """ + En/Disable Auto deletion + + If Auto deletion is on all attached plot items will be deleted + in the destructor of `QwtPlotDict`. The default value is on. + + :param bool autoDelete: enable/disable + + .. seealso:: + + :py:meth:`autoDelete()`, :py:meth:`insertItem()` + """ self.__data.autoDelete = autoDelete def autoDelete(self): + """ + :return: true if auto deletion is enabled + + .. seealso:: + + :py:meth:`setAutoDelete()`, :py:meth:`insertItem()` + """ return self.__data.autoDelete def insertItem(self, item): + """ + Insert a plot item + + :param QwtPlotItem item: PlotItem + + .. seealso:: + + :py:meth:`removeItem()` + """ self.__data.itemList.insertItem(item) def removeItem(self, item): + """ + Remove a plot item + + :param QwtPlotItem item: PlotItem + + .. seealso:: + + :py:meth:`insertItem()` + """ self.__data.itemList.removeItem(item) def detachItems(self, rtti, autoDelete): + """ + Detach items from the dictionary + + :param int rtti: In case of `QwtPlotItem.Rtti_PlotItem` detach all items otherwise only those items of the type rtti. + :param bool autoDelete: If true, delete all detached items + """ for item in self.__data.itemList[:]: if rtti == QwtPlotItem.Rtti_PlotItem and item.rtti() == rtti: item.attach(None) @@ -96,6 +173,17 @@ def detachItems(self, rtti, autoDelete): self.__data.itemList.remove(item) def itemList(self, rtti=None): + """ + A list of attached plot items. + + Use caution when iterating these lists, as removing/detaching an + item will invalidate the iterator. Instead you can place pointers + to objects to be removed in a removal list, and traverse that list + later. + + :param int rtti: In case of `QwtPlotItem.Rtti_PlotItem` detach all items otherwise only those items of the type rtti. + :return: List of all attached plot items of a specific type. If rtti is None, return a list of all attached plot items. + """ if rtti is None or rtti == QwtPlotItem.Rtti_PlotItem: return self.__data.itemList return [item for item in self.__data.itemList if item.rtti() == rtti] @@ -128,6 +216,51 @@ def __init__(self): class QwtPlot(QFrame, QwtPlotDict): + """ + A 2-D plotting widget + + QwtPlot is a widget for plotting two-dimensional graphs. + An unlimited number of plot items can be displayed on its canvas. + Plot items might be curves (:py:class:`qwt.plot_curve.QwtPlotCurve`), + markers (:py:class:`qwt.plot_marker.QwtPlotMarker`), + the grid (:py:class:`qwt.plot_grid.QwtPlotGrid`), or anything else + derived from :py:class:`QwtPlotItem`. + + A plot can have up to four axes, with each plot item attached to an x- and + a y axis. The scales at the axes can be explicitly set (`QwtScaleDiv`), or + are calculated from the plot items, using algorithms (`QwtScaleEngine`) + which can be configured separately for each axis. + + The simpleplot example is a good starting point to see how to set up a + plot widget:: + + from qwt.qt.QtGui import QApplication + from qwt import QwtPlot, QwtPlotCurve + import numpy as np + + app = QApplication([]) + + x = np.linspace(-10, 10, 500) + y1, y2 = np.cos(x), np.sin(x) + + my_plot = QwtPlot("Two curves") + curve1, curve2 = QwtPlotCurve("Curve 1"), QwtPlotCurve("Curve 2") + curve1.setData(x, y1) + curve2.setData(x, y2) + curve1.attach(my_plot) + curve2.attach(my_plot) + my_plot.resize(600, 300) + my_plot.replot() + my_plot.show() + + app.exec_() + + .. py:class:: QwtPlot([title=""], [parent=None]) + + :param str title: Title text + :param QWidget parent: Parent widget + """ + SIG_ITEM_ATTACHED = Signal("PyQt_PyObject", bool) SIG_LEGEND_DATA_CHANGED = Signal("PyQt_PyObject", "PyQt_PyObject") @@ -217,6 +350,7 @@ def __del__(self): self.__data = None def initAxesData(self): + """Initialize axes""" self.__axisData = [AxisData() for axisId in range(self.axisCnt)] self.__axisData[self.yLeft].scaleWidget = \ @@ -273,10 +407,24 @@ def deleteAxesData(self): self.__axisData[axisId] = None def axisWidget(self, axisId): + """ + :param int axisId: Axis index + :return: Scale widget of the specified axis, or None if axisId is invalid. + """ if self.axisValid(axisId): return self.__axisData[axisId].scaleWidget def setAxisScaleEngine(self, axisId, scaleEngine): + """ + Change the scale engine for an axis + + :param int axisId: Axis index + :param qwt.scale_engine.QwtScaleEngine scaleEngine: Scale engine + + .. seealso:: + + :py:meth:`axisScaleEngine()` + """ if self.axisValid(axisId) and scaleEngine is not None: d = self.__axisData[axisId] d.scaleEngine = scaleEngine @@ -286,87 +434,248 @@ def setAxisScaleEngine(self, axisId, scaleEngine): self.autoRefresh() def axisScaleEngine(self, axisId): + """ + :param int axisId: Axis index + :return: Scale engine for a specific axis + + .. seealso:: + + :py:meth:`setAxisScaleEngine()` + """ if self.axisValid(axisId): return self.__axisData[axisId].scaleEngine def axisAutoScale(self, axisId): + """ + :param int axisId: Axis index + :return: True, if autoscaling is enabled + """ if self.axisValid(axisId): return self.__axisData[axisId].doAutoScale def axisEnabled(self, axisId): + """ + :param int axisId: Axis index + :return: True, if a specified axis is enabled + """ if self.axisValid(axisId): return self.__axisData[axisId].isEnabled def axisFont(self, axisId): + """ + :param int axisId: Axis index + :return: The font of the scale labels for a specified axis + """ if self.axisValid(axisId): return self.axisWidget(axisId).font() else: return QFont() def axisMaxMajor(self, axisId): + """ + :param int axisId: Axis index + :return: The maximum number of major ticks for a specified axis + + .. seealso:: + + :py:meth:`setAxisMaxMajor()`, + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` + """ if self.axisValid(axisId): return self.axisWidget(axisId).maxMajor else: return 0 def axisMaxMinor(self, axisId): + """ + :param int axisId: Axis index + :return: The maximum number of minor ticks for a specified axis + + .. seealso:: + + :py:meth:`setAxisMaxMinor()`, + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` + """ if self.axisValid(axisId): return self.axisWidget(axisId).maxMinor else: return 0 def axisScaleDiv(self, axisId): + """ + :param int axisId: Axis index + :return: The scale division of a specified axis + + axisScaleDiv(axisId).lowerBound(), axisScaleDiv(axisId).upperBound() + are the current limits of the axis scale. + + .. seealso:: + + :py:class:`qwt.scale_div.QwtScaleDiv`, + :py:meth:`setAxisScaleDiv()`, + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` + """ return self.__axisData[axisId].scaleDiv def axisScaleDraw(self, axisId): + """ + :param int axisId: Axis index + :return: Specified scaleDraw for axis, or NULL if axis is invalid. + """ if self.axisValid(axisId): return self.axisWidget(axisId).scaleDraw() def axisStepSize(self, axisId): + """ + :param int axisId: Axis index + :return: step size parameter value + + This doesn't need to be the step size of the current scale. + + .. seealso:: + + :py:meth:`setAxisScale()`, + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` + """ if self.axisValid(axisId): return self.axisWidget(axisId).stepSize else: return 0 def axisInterval(self, axisId): + """ + :param int axisId: Axis index + :return: The current interval of the specified axis + + This is only a convenience function for axisScaleDiv(axisId).interval() + + .. seealso:: + + :py:class:`qwt.scale_div.QwtScaleDiv`, + :py:meth:`axisScaleDiv()` + """ if self.axisValid(axisId): return self.axisWidget(axisId).scaleDiv.interval() else: return QwtInterval() def axisTitle(self, axisId): + """ + :param int axisId: Axis index + :return: Title of a specified axis + """ if self.axisValid(axisId): return self.axisWidget(axisId).title() else: return QwtText() def enableAxis(self, axisId, tf=True): + """ + Enable or disable a specified axis + + When an axis is disabled, this only means that it is not + visible on the screen. Curves, markers and can be attached + to disabled axes, and transformation of screen coordinates + into values works as normal. + + Only xBottom and yLeft are enabled by default. + + :param int axisId: Axis index + :param bool tf: True (enabled) or False (disabled) + """ if self.axisValid(axisId) and tf != self.__axisData[axisId].isEnabled: self.__axisData[axisId].isEnabled = tf self.updateLayout() def invTransform(self, axisId, pos): + """ + Transform the x or y coordinate of a position in the + drawing region into a value. + + :param int axisId: Axis index + :param int pos: position + + .. warning:: + + The position can be an x or a y coordinate, + depending on the specified axis. + """ if self.axisValid(axisId): return self.canvasMap(axisId).invTransform(pos) else: return 0. def transform(self, axisId, value): + """ + Transform a value into a coordinate in the plotting region + + :param int axisId: Axis index + :param fload value: Value + :return: X or Y coordinate in the plotting region corresponding to the value. + """ if self.axisValid(axisId): return self.canvasMap(axisId).transform(value) else: return 0. def setAxisFont(self, axisId, font): + """ + Change the font of an axis + + :param int axisId: Axis index + :param QFont font: Font + + .. warning:: + + This function changes the font of the tick labels, + not of the axis title. + """ if self.axisValid(axisId): return self.axisWidget(axisId).setFont(font) def setAxisAutoScale(self, axisId, on): + """ + Enable autoscaling for a specified axis + + This member function is used to switch back to autoscaling mode + after a fixed scale has been set. Autoscaling is enabled by default. + + :param int axisId: Axis index + :param bool on: On/Off + + .. seealso:: + + :py:meth:`setAxisScale()`, :py:meth:`setAxisScaleDiv()`, + :py:meth:`updateAxes()` + + .. note:: + + The autoscaling flag has no effect until updateAxes() is executed + ( called by replot() ). + """ if self.axisValid(axisId) and self.__axisData[axisId].doAutoScale != on: self.__axisData[axisId].doAutoScale = on self.autoRefresh() def setAxisScale(self, axisId, min_, max_, stepSize=0): + """ + Disable autoscaling and specify a fixed scale for a selected axis. + + In updateAxes() the scale engine calculates a scale division from the + specified parameters, that will be assigned to the scale widget. So + updates of the scale widget usually happen delayed with the next replot. + + :param int axisId: Axis index + :param float min_: Minimum of the scale + :param float max_: Maximum of the scale + :param float stepSize: Major step size. If step == 0, the step size is calculated automatically using the maxMajor setting. + + .. seealso:: + + :py:meth:`setAxisMaxMajor()`, :py:meth:`setAxisAutoScale()`, + :py:meth:`axisStepSize()`, + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` + """ if self.axisValid(axisId): d = self.__axisData[axisId] d.doAutoScale = False @@ -377,6 +686,20 @@ def setAxisScale(self, axisId, min_, max_, stepSize=0): self.autoRefresh() def setAxisScaleDiv(self, axisId, scaleDiv): + """ + Disable autoscaling and specify a fixed scale for a selected axis. + + The scale division will be stored locally only until the next call + of updateAxes(). So updates of the scale widget usually happen delayed with + the next replot. + + :param int axisId: Axis index + :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division + + .. seealso:: + + :py:meth:`setAxisScale()`, :py:meth:`setAxisAutoScale()` + """ if self.axisValid(axisId): d = self.__axisData[axisId] d.doAutoScale = False @@ -385,19 +708,70 @@ def setAxisScaleDiv(self, axisId, scaleDiv): self.autoRefresh() def setAxisScaleDraw(self, axisId, scaleDraw): + """ + Set a scale draw + + :param int axisId: Axis index + :param qwt.scale_draw.QwtScaleDraw scaleDraw: Object responsible for drawing scales. + + By passing scaleDraw it is possible to extend QwtScaleDraw + functionality and let it take place in QwtPlot. Please note + that scaleDraw has to be created with new and will be deleted + by the corresponding QwtScale member ( like a child object ). + + .. seealso:: + + :py:class:`qwt.scale_draw.QwtScaleDraw`, + :py:class:`qwt.scale_widget.QwtScaleWigdet` + + .. warning:: + + The attributes of scaleDraw will be overwritten by those of the + previous QwtScaleDraw. + """ if self.axisValid(axisId): self.axisWidget(axisId).setScaleDraw(scaleDraw) self.autoRefresh() def setAxisLabelAlignment(self, axisId, alignment): + """ + Change the alignment of the tick labels + + :param int axisId: Axis index + :param Qt.Alignment alignment: Or'd Qt.AlignmentFlags + + .. seealso:: + + :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()` + """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelAlignment(alignment) def setAxisLabelRotation(self, axisId, rotation): + """ + Rotate all tick labels + + :param int axisId: Axis index + :param float rotation: Angle in degrees. When changing the label rotation, the label alignment might be adjusted too. + + .. seealso:: + + :py:meth:`setLabelRotation()`, :py:meth:`setAxisLabelAlignment()` + """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelRotation(rotation) def setAxisMaxMinor(self, axisId, maxMinor): + """ + Set the maximum number of minor scale intervals for a specified axis + + :param int axisId: Axis index + :param int maxMinor: Maximum number of minor steps + + .. seealso:: + + :py:meth:`axisMaxMinor()` + """ if self.axisValid(axisId): maxMinor = max([0, min([maxMinor, 100])]) d = self.__axisData[axisId] @@ -407,6 +781,16 @@ def setAxisMaxMinor(self, axisId, maxMinor): self.autoRefresh() def setAxisMaxMajor(self, axisId, maxMajor): + """ + Set the maximum number of major scale intervals for a specified axis + + :param int axisId: Axis index + :param int maxMajor: Maximum number of major steps + + .. seealso:: + + :py:meth:`axisMaxMajor()` + """ if self.axisValid(axisId): maxMajor = max([1, min([maxMajor, 10000])]) d = self.__axisData[axisId] @@ -416,11 +800,45 @@ def setAxisMaxMajor(self, axisId, maxMajor): self.autoRefresh() def setAxisTitle(self, axisId, title): + """ + Change the title of a specified axis + + :param int axisId: Axis index + :param title: axis title + :type title: qwt.text.QwtText or str + """ if self.axisValid(axisId): self.axisWidget(axisId).setTitle(title) self.updateLayout() def updateAxes(self): + """ + Rebuild the axes scales + + In case of autoscaling the boundaries of a scale are calculated + from the bounding rectangles of all plot items, having the + `QwtPlotItem.AutoScale` flag enabled (`QwtScaleEngine.autoScale()`). + Then a scale division is calculated (`QwtScaleEngine.didvideScale()`) + and assigned to scale widget. + + When the scale boundaries have been assigned with `setAxisScale()` a + scale division is calculated (`QwtScaleEngine.didvideScale()`) + for this interval and assigned to the scale widget. + + When the scale has been set explicitly by `setAxisScaleDiv()` the + locally stored scale division gets assigned to the scale widget. + + The scale widget indicates modifications by emitting a + `QwtScaleWidget.scaleDivChanged()` signal. + + `updateAxes()` is usually called by `replot()`. + + .. seealso:: + + :py:meth:`setAxisAutoScale()`, :py:meth:`setAxisScale()`, + :py:meth:`setAxisScaleDiv()`, :py:meth:`replot()`, + :py:meth:`QwtPlotItem.boundingRect()` + """ intv = [QwtInterval() for _i in range(self.axisCnt)] itmList = self.itemList() for item in itmList: @@ -461,6 +879,17 @@ def updateAxes(self): self.axisScaleDiv(item.yAxis())) def setCanvas(self, canvas): + """ + Set the drawing canvas of the plot widget. + + The default canvas is a `QwtPlotCanvas`. + + :param QWidget canvas: Canvas Widget + + .. seealso:: + + :py:meth:`canvas()` + """ if canvas == self.__data.canvas: return self.__data.canvas = canvas @@ -487,16 +916,53 @@ def eventFilter(self, obj, event): return QFrame.eventFilter(self, obj, event) def autoRefresh(self): + """Replots the plot if :py:meth:`autoReplot()` is True.""" if self.__data.autoReplot: self.replot() def setAutoReplot(self, tf): + """ + Set or reset the autoReplot option + + If the autoReplot option is set, the plot will be + updated implicitly by manipulating member functions. + Since this may be time-consuming, it is recommended + to leave this option switched off and call :py:meth:`replot()` + explicitly if necessary. + + The autoReplot option is set to false by default, which + means that the user has to call :py:meth:`replot()` in order + to make changes visible. + + :param bool tf: True or False. Defaults to True. + + .. seealso:: + + :py:meth:`canvas()` + """ self.__data.autoReplot = tf def autoReplot(self): + """ + :return: True if the autoReplot option is set. + + .. seealso:: + + :py:meth:`setAutoReplot()` + """ return self.__data.autoReplot def setTitle(self, title): + """ + Change the plot's title + + :param title: New title + :type title: str or qwt.text.QwtText + + .. seealso:: + + :py:meth:`title()` + """ current_title = self.__data.titleLabel.text() if isinstance(title, QwtText) and current_title == title: return @@ -506,12 +972,32 @@ def setTitle(self, title): self.updateLayout() def title(self): + """ + :return: Title of the plot + + .. seealso:: + + :py:meth:`setTitle()` + """ return self.__data.titleLabel.text() def titleLabel(self): + """ + :return: Title label widget. + """ return self.__data.titleLabel def setFooter(self, text): + """ + Change the text the footer + + :param text: New text of the footer + :type text: str or qwt.text.QwtText + + .. seealso:: + + :py:meth:`footer()` + """ current_footer = self.__data.footerLabel.text() if isinstance(text, QwtText) and current_footer == text: return @@ -521,26 +1007,70 @@ def setFooter(self, text): self.updateLayout() def footer(self): + """ + :return: Text of the footer + + .. seealso:: + + :py:meth:`setFooter()` + """ return self.__data.footerLabel.text() def footerLabel(self): + """ + :return: Footer label widget. + """ return self.__data.footerLabel def setPlotLayout(self, layout): + """ + Assign a new plot layout + + :param layout: Layout + :type layout: qwt.plot_layout.QwtPlotLayout + + .. seealso:: + + :py:meth:`plotLayout()` + """ if layout != self.__data.layout: self.__data.layout = layout self.updateLayout() def plotLayout(self): + """ + :return: the plot's layout + + .. seealso:: + + :py:meth:`setPlotLayout()` + """ return self.__data.layout def legend(self): + """ + :return: the plot's legend + + .. seealso:: + + :py:meth:`insertLegend()` + """ return self.__data.legend def canvas(self): + """ + :return: the plot's canvas + """ return self.__data.canvas def sizeHint(self): + """ + :return: Size hint for the plot widget + + .. seealso:: + + :py:meth:`minimumSizeHint()` + """ dw = dh = 0 for axisId in range(self.axisCnt): if self.axisEnabled(axisId): @@ -559,6 +1089,9 @@ def sizeHint(self): return self.minimumSizeHint() + QSize(dw, dh) def minimumSizeHint(self): + """ + :return: Return a minimum size hint + """ hint = self.__data.layout.minimumSizeHint(self) hint += QSize(2*self.frameWidth(), 2*self.frameWidth()) return hint @@ -568,10 +1101,24 @@ def resizeEvent(self, e): self.updateLayout() def replot(self): + """ + Redraw the plot + + If the `autoReplot` option is not set (which is the default) + or if any curves are attached to raw data, the plot has to + be refreshed explicitly in order to make changes visible. + + .. seealso:: + + :py:meth:`updateAxes()`, :py:meth:`setAutoReplot()` + """ doAutoReplot = self.autoReplot() self.setAutoReplot(False) self.updateAxes() + # Maybe the layout needs to be updated, because of changed + # axes labels. We need to process them here before painting + # to avoid that scales and canvas get out of sync. QApplication.sendPostedEvents(self, QEvent.LayoutRequest) if self.__data.canvas: @@ -590,6 +1137,13 @@ def get_layout_state(self): self.__data.legend) def updateLayout(self): + """ + Adjust plot content to its current size. + + .. seealso:: + + :py:meth:`resizeEvent()` + """ # state = self.get_layout_state() # if self.__layout_state is not None and\ # state == self.__layout_state: @@ -650,13 +1204,25 @@ def updateLayout(self): self.__data.canvas.setGeometry(canvasRect) def getCanvasMarginsHint(self, maps, canvasRect): - """Calculate the canvas margins - (``margins`` is a list which is modified inplace)""" + """ + Calculate the canvas margins + + :param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates + :param QRectF canvasRect: Bounding rectangle where to paint + + Plot items might indicate, that they need some extra space + at the borders of the canvas by the `QwtPlotItem.Margins` flag. + + .. seealso:: + + :py:meth:`updateCanvasMargins()`, :py:meth:`getCanvasMarginHint()` + """ left = top = right = bottom = -1. for item in self.itemList(): if item.testItemAttribute(QwtPlotItem.Margins): - m = item.getCanvasMarginHint(maps, canvasRect) + m = item.getCanvasMarginHint(maps[item.xAxis()], + maps[item.yAxis()], canvasRect) left = max([left, m[self.yLeft]]) top = max([top, m[self.xTop]]) right = max([right, m[self.yRight]]) @@ -665,6 +1231,17 @@ def getCanvasMarginsHint(self, maps, canvasRect): return left, top, right, bottom def updateCanvasMargins(self): + """ + Update the canvas margins + + Plot items might indicate, that they need some extra space + at the borders of the canvas by the `QwtPlotItem.Margins` flag. + + .. seealso:: + + :py:meth:`getCanvasMarginsHint()`, + :py:meth:`QwtPlotItem.getCanvasMarginHint()` + """ maps = [self.canvasMap(axisId) for axisId in range(self.axisCnt)] margins = self.getCanvasMarginsHint(maps, self.canvas().contentsRect()) @@ -680,10 +1257,40 @@ def updateCanvasMargins(self): self.updateLayout() def drawCanvas(self, painter): + """ + Redraw the canvas. + + :param QPainter painter: Painter used for drawing + + .. warning:: + + drawCanvas calls drawItems what is also used + for printing. Applications that like to add individual + plot items better overload drawItems() + + .. seealso:: + + :py:meth:`getCanvasMarginsHint()`, + :py:meth:`QwtPlotItem.getCanvasMarginHint()` + """ maps = [self.canvasMap(axisId) for axisId in range(self.axisCnt)] self.drawItems(painter, self.__data.canvas.contentsRect(), maps) def drawItems(self, painter, canvasRect, maps): + """ + Redraw the canvas. + + :param QPainter painter: Painter used for drawing + :param QRectF canvasRect: Bounding rectangle where to paint + :param list maps: `QwtPlot.axisCnt` maps, mapping between plot and paint device coordinates + + .. note:: + + Usually canvasRect is `contentsRect()` of the plot canvas. + Due to a bug in Qt this rectangle might be wrong for certain + frame styles ( f.e `QFrame.Box` ) and it might be necessary to + fix the margins manually using `QWidget.setContentsMargins()` + """ for item in self.itemList(): if item and item.isVisible(): painter.save() @@ -696,6 +1303,15 @@ def drawItems(self, painter, canvasRect, maps): painter.restore() def canvasMap(self, axisId): + """ + :param int axisId: Axis + :return: Map for the axis on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa. + + .. seealso:: + + :py:class:`qwt.scale_map.QwtScaleMap`, + :py:meth:`transform()`, :py:meth:`invTransform()` + """ map_ = QwtScaleMap() if not self.__data.canvas: return map_ @@ -737,17 +1353,81 @@ def canvasMap(self, axisId): return map_ def setCanvasBackground(self, brush): + """ + Change the background of the plotting area + + Sets brush to `QPalette.Window` of all color groups of + the palette of the canvas. Using `canvas().setPalette()` + is a more powerful way to set these colors. + + :param QBrush brush: New background brush + + .. seealso:: + + :py:meth:`canvasBackground()` + """ pal = self.__data.canvas.palette() pal.setBrush(QPalette.Window, brush) self.canvas().setPalette(pal) def canvasBackground(self): + """ + :return: Background brush of the plotting area. + + .. seealso:: + + :py:meth:`setCanvasBackground()` + """ return self.canvas().palette().brush(QPalette.Normal, QPalette.Window) def axisValid(self, axisId): + """ + :param int axisId: Axis + :return: True if the specified axis exists, otherwise False + """ return axisId in range(QwtPlot.axisCnt) def insertLegend(self, legend, pos=None, ratio=-1): + """ + Insert a legend + + If the position legend is `QwtPlot.LeftLegend` or `QwtPlot.RightLegend` + the legend will be organized in one column from top to down. + Otherwise the legend items will be placed in a table + with a best fit number of columns from left to right. + + insertLegend() will set the plot widget as parent for the legend. + The legend will be deleted in the destructor of the plot or when + another legend is inserted. + + Legends, that are not inserted into the layout of the plot widget + need to connect to the legendDataChanged() signal. Calling updateLegend() + initiates this signal for an initial update. When the application code + wants to implement its own layout this also needs to be done for + rendering plots to a document ( see QwtPlotRenderer ). + + :param qwt.legend.QwtAbstractLegend legend: Legend + :param QwtPlot.LegendPosition pos: The legend's position. + :param float ratio: Ratio between legend and the bounding rectangle of title, canvas and axes + + .. note:: + + For top/left position the number of columns will be limited to 1, + otherwise it will be set to unlimited. + + .. note:: + + The legend will be shrunk if it would need more space than the + given ratio. The ratio is limited to ]0.0 .. 1.0]. + In case of <= 0.0 it will be reset to the default ratio. + The default vertical/horizontal ratio is 0.33/0.5. + + .. seealso:: + + :py:meth:`legend()`, + :py:meth:`qwt.plot_layout.QwtPlotLayout.legendPosition()`, + :py:meth:`qwt.plot_layout.QwtPlotLayout.setLegendPosition()` + """ if pos is None: pos = self.RightLegend self.__data.layout.setLegendPosition(pos, ratio) @@ -790,8 +1470,18 @@ def insertLegend(self, legend, pos=None, ratio=-1): self.updateLayout() def updateLegend(self, plotItem=None): + """ + If plotItem is None, emit QwtPlot.SIG_LEGEND_DATA_CHANGED for all + plot item. Otherwise, emit the signal for passed plot item. + + :param QwtPlotItem plotItem: Plot item + + .. seealso:: + + :py:meth:`QwtPlotItem.legendData()`, :py:data:`QwtPlot.SIG_LEGEND_DATA_CHANGED` + """ if plotItem is None: - items = [plotItem for plotItem in self.itemList()] + items = list(self.itemList()) else: items = [plotItem] for plotItem in items: @@ -803,12 +1493,32 @@ def updateLegend(self, plotItem=None): self.SIG_LEGEND_DATA_CHANGED.emit(plotItem, legendData) def updateLegendItems(self, plotItem, legendData): + """ + Update all plot items interested in legend attributes + + Call `QwtPlotItem.updateLegend()`, when the + `QwtPlotItem.LegendInterest` flag is set. + + :param QwtPlotItem plotItem: Plot item + :param list legendData: Entries to be displayed for the plot item ( usually 1 ) + + .. seealso:: + + :py:meth:`QwtPlotItem.LegendInterest()`, + :py:meth:`QwtPlotItem.updateLegend` + """ if plotItem is not None: for item in self.itemList(): if item.testItemInterest(QwtPlotItem.LegendInterest): item.updateLegend(plotItem, legendData) def attachItem(self, plotItem, on): + """ + Attach/Detach a plot item + + :param QwtPlotItem plotItem: Plot item + :param bool on: When true attach the item, otherwise detach it + """ if plotItem.testItemInterest(QwtPlotItem.LegendInterest): for item in self.itemList(): legendData = [] @@ -832,12 +1542,27 @@ def attachItem(self, plotItem, on): self.autoRefresh() def print_(self, printer): + """ + Print plot to printer + + :param printer: Printer + :type printer: QPaintDevice or QPrinter or QSvgGenerator + """ from qwt.plot_renderer import QwtPlotRenderer renderer = QwtPlotRenderer(self) renderer.renderTo(self, printer) def exportTo(self, filename, size=(800, 600), size_mm=None, resolution=72., format_=None): + """ + Export plot to PDF or image file (SVG, PNG, ...) + + :param str filename: Filename + :param tuple size: (width, height) size in pixels + :param tuple size_mm: (width, height) size in millimeters + :param float resolution: Image resolution + :param str format_: File format (PDF, SVG, PNG, ...) + """ if size_mm is None: size_mm = tuple(25.4*np.array(size)/resolution) from qwt.plot_renderer import QwtPlotRenderer From 8808ef2ffa634a778d29a69aeb25dbffc29863cd Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 26 Sep 2015 11:49:45 +0200 Subject: [PATCH 022/421] Doc: added examples + added missing docstings in qwt/plot.py --- doc/examples/bode_demo.rst | 7 + doc/examples/cartesian_demo.rst | 7 + doc/examples/cpu_plot.rst | 7 + doc/examples/curve_benchmark.rst | 7 + doc/examples/curve_demo1.rst | 7 + doc/examples/curve_styles.rst | 7 + doc/examples/data_demo.rst | 7 + doc/examples/error_bar.rst | 7 + doc/examples/event_filter_demo.rst | 7 + doc/examples/histogram_demo.rst | 7 + doc/examples/image_plot_demo.rst | 7 + doc/examples/index.rst | 39 +++ doc/examples/map_demo.rst | 7 + doc/examples/really_simple_demo.rst | 7 + doc/images/QwtPlot_example.png | Bin 0 -> 11529 bytes doc/images/tests/BodeDemo.png | Bin 0 -> 33343 bytes doc/images/tests/CPUplot.png | Bin 0 -> 32898 bytes doc/images/tests/CartesianDemo.png | Bin 0 -> 14765 bytes doc/images/tests/CurveBenchmark.png | Bin 0 -> 15595 bytes doc/images/tests/CurveDemo1.png | Bin 0 -> 13958 bytes doc/images/tests/CurveStyles.png | Bin 0 -> 32687 bytes doc/images/tests/DataDemo.png | Bin 0 -> 16540 bytes doc/images/tests/ErrorBarDemo.png | Bin 0 -> 11288 bytes doc/images/tests/EventFilterDemo.png | Bin 0 -> 15653 bytes doc/images/tests/HistogramDemo.png | Bin 0 -> 15798 bytes doc/images/tests/ImagePlotDemo.png | Bin 0 -> 25065 bytes doc/images/tests/MapDemo.png | Bin 0 -> 49963 bytes doc/images/tests/ReallySimpleDemo.png | Bin 0 -> 12798 bytes doc/images/tests/__init__.png | Bin 0 -> 27479 bytes doc/index.rst | 1 + qwt/plot.py | 400 +++++++++++++++++++++++++- 31 files changed, 530 insertions(+), 1 deletion(-) create mode 100644 doc/examples/bode_demo.rst create mode 100644 doc/examples/cartesian_demo.rst create mode 100644 doc/examples/cpu_plot.rst create mode 100644 doc/examples/curve_benchmark.rst create mode 100644 doc/examples/curve_demo1.rst create mode 100644 doc/examples/curve_styles.rst create mode 100644 doc/examples/data_demo.rst create mode 100644 doc/examples/error_bar.rst create mode 100644 doc/examples/event_filter_demo.rst create mode 100644 doc/examples/histogram_demo.rst create mode 100644 doc/examples/image_plot_demo.rst create mode 100644 doc/examples/index.rst create mode 100644 doc/examples/map_demo.rst create mode 100644 doc/examples/really_simple_demo.rst create mode 100644 doc/images/QwtPlot_example.png create mode 100644 doc/images/tests/BodeDemo.png create mode 100644 doc/images/tests/CPUplot.png create mode 100644 doc/images/tests/CartesianDemo.png create mode 100644 doc/images/tests/CurveBenchmark.png create mode 100644 doc/images/tests/CurveDemo1.png create mode 100644 doc/images/tests/CurveStyles.png create mode 100644 doc/images/tests/DataDemo.png create mode 100644 doc/images/tests/ErrorBarDemo.png create mode 100644 doc/images/tests/EventFilterDemo.png create mode 100644 doc/images/tests/HistogramDemo.png create mode 100644 doc/images/tests/ImagePlotDemo.png create mode 100644 doc/images/tests/MapDemo.png create mode 100644 doc/images/tests/ReallySimpleDemo.png create mode 100644 doc/images/tests/__init__.png diff --git a/doc/examples/bode_demo.rst b/doc/examples/bode_demo.rst new file mode 100644 index 0000000..ae3df46 --- /dev/null +++ b/doc/examples/bode_demo.rst @@ -0,0 +1,7 @@ +Bode demo +~~~~~~~~~ + +.. image:: /images/tests/BodeDemo.png + +.. literalinclude:: /../qwt/tests/BodeDemo.py + :start-after: SHOW diff --git a/doc/examples/cartesian_demo.rst b/doc/examples/cartesian_demo.rst new file mode 100644 index 0000000..d9bb76b --- /dev/null +++ b/doc/examples/cartesian_demo.rst @@ -0,0 +1,7 @@ +Cartesian demo +~~~~~~~~~~~~~~ + +.. image:: /images/tests/CartesianDemo.png + +.. literalinclude:: /../qwt/tests/CartesianDemo.py + :start-after: SHOW diff --git a/doc/examples/cpu_plot.rst b/doc/examples/cpu_plot.rst new file mode 100644 index 0000000..9229a4d --- /dev/null +++ b/doc/examples/cpu_plot.rst @@ -0,0 +1,7 @@ +CPU plot demo +~~~~~~~~~~~~~ + +.. image:: /images/tests/CPUplot.png + +.. literalinclude:: /../qwt/tests/CPUplot.py + :start-after: SHOW diff --git a/doc/examples/curve_benchmark.rst b/doc/examples/curve_benchmark.rst new file mode 100644 index 0000000..08c21fa --- /dev/null +++ b/doc/examples/curve_benchmark.rst @@ -0,0 +1,7 @@ +Curve benchmark demo +~~~~~~~~~~~~~~~~~~~~ + +.. image:: /images/tests/CurveBenchmark.png + +.. literalinclude:: /../qwt/tests/CurveBenchmark.py + :start-after: SHOW diff --git a/doc/examples/curve_demo1.rst b/doc/examples/curve_demo1.rst new file mode 100644 index 0000000..3a13897 --- /dev/null +++ b/doc/examples/curve_demo1.rst @@ -0,0 +1,7 @@ +Curve demo 1 +~~~~~~~~~~~~ + +.. image:: /images/tests/CurveDemo1.png + +.. literalinclude:: /../qwt/tests/CurveDemo1.py + :start-after: SHOW diff --git a/doc/examples/curve_styles.rst b/doc/examples/curve_styles.rst new file mode 100644 index 0000000..c43e08d --- /dev/null +++ b/doc/examples/curve_styles.rst @@ -0,0 +1,7 @@ +Curve styles +~~~~~~~~~~~~ + +.. image:: /images/tests/CurveStyles.png + +.. literalinclude:: /../qwt/tests/CurveStyles.py + :start-after: SHOW diff --git a/doc/examples/data_demo.rst b/doc/examples/data_demo.rst new file mode 100644 index 0000000..7f7cb8a --- /dev/null +++ b/doc/examples/data_demo.rst @@ -0,0 +1,7 @@ +Data demo +~~~~~~~~~ + +.. image:: /images/tests/DataDemo.png + +.. literalinclude:: /../qwt/tests/DataDemo.py + :start-after: SHOW diff --git a/doc/examples/error_bar.rst b/doc/examples/error_bar.rst new file mode 100644 index 0000000..a29fd26 --- /dev/null +++ b/doc/examples/error_bar.rst @@ -0,0 +1,7 @@ +Error bar demo +~~~~~~~~~~~~~~ + +.. image:: /images/tests/ErrorBarDemo.png + +.. literalinclude:: /../qwt/tests/ErrorBarDemo.py + :start-after: SHOW diff --git a/doc/examples/event_filter_demo.rst b/doc/examples/event_filter_demo.rst new file mode 100644 index 0000000..cbcb8e7 --- /dev/null +++ b/doc/examples/event_filter_demo.rst @@ -0,0 +1,7 @@ +Event filter demo +~~~~~~~~~~~~~~~~~ + +.. image:: /images/tests/EventFilterDemo.png + +.. literalinclude:: /../qwt/tests/EventFilterDemo.py + :start-after: SHOW diff --git a/doc/examples/histogram_demo.rst b/doc/examples/histogram_demo.rst new file mode 100644 index 0000000..56653cc --- /dev/null +++ b/doc/examples/histogram_demo.rst @@ -0,0 +1,7 @@ +Histogram demo +~~~~~~~~~~~~~~ + +.. image:: /images/tests/HistogramDemo.png + +.. literalinclude:: /../qwt/tests/HistogramDemo.py + :start-after: SHOW diff --git a/doc/examples/image_plot_demo.rst b/doc/examples/image_plot_demo.rst new file mode 100644 index 0000000..339f71e --- /dev/null +++ b/doc/examples/image_plot_demo.rst @@ -0,0 +1,7 @@ +Image plot demo +~~~~~~~~~~~~~~~ + +.. image:: /images/tests/ImagePlotDemo.png + +.. literalinclude:: /../qwt/tests/ImagePlotDemo.py + :start-after: SHOW diff --git a/doc/examples/index.rst b/doc/examples/index.rst new file mode 100644 index 0000000..690a7f2 --- /dev/null +++ b/doc/examples/index.rst @@ -0,0 +1,39 @@ +.. _examples: + +Examples +======== + +The test launcher +----------------- + +A lot of examples are available in the `qwt.test` module :: + + from qwt import tests + tests.run() + +The two lines above execute the `python-qwt` test launcher: + +.. image:: /images/tests/__init__.png + + +Tests +----- + +Here are some examples from the `qwt.test` module: + +.. toctree:: + :maxdepth: 2 + + bode_demo + cartesian_demo + cpu_plot + curve_benchmark + curve_demo1 + curve_styles + data_demo + error_bar + event_filter_demo + histogram_demo + image_plot_demo + map_demo + really_simple_demo diff --git a/doc/examples/map_demo.rst b/doc/examples/map_demo.rst new file mode 100644 index 0000000..9745cf5 --- /dev/null +++ b/doc/examples/map_demo.rst @@ -0,0 +1,7 @@ +Map demo +~~~~~~~~ + +.. image:: /images/tests/MapDemo.png + +.. literalinclude:: /../qwt/tests/MapDemo.py + :start-after: SHOW diff --git a/doc/examples/really_simple_demo.rst b/doc/examples/really_simple_demo.rst new file mode 100644 index 0000000..5fb54a9 --- /dev/null +++ b/doc/examples/really_simple_demo.rst @@ -0,0 +1,7 @@ +Really simple demo +~~~~~~~~~~~~~~~~~~ + +.. image:: /images/tests/ReallySimpleDemo.png + +.. literalinclude:: /../qwt/tests/ReallySimpleDemo.py + :start-after: SHOW diff --git a/doc/images/QwtPlot_example.png b/doc/images/QwtPlot_example.png new file mode 100644 index 0000000000000000000000000000000000000000..08e967f23fa2555ca64075efcf05f139082feb20 GIT binary patch literal 11529 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�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

}X$fkiSo7!x#Yl5u3vk^PXCKS$iv}IA)O89QG9g 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 IV*}s+1rDa%$N&HU literal 0 HcmV?d00001 diff --git a/doc/images/tests/CartesianDemo.png b/doc/images/tests/CartesianDemo.png new file mode 100644 index 0000000000000000000000000000000000000000..d9536edb01fb528b055d11e2631a43e08e03a501 GIT binary patch literal 14765 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 a_|Ju0+)OLK1wOIFQdQDYtdxHp^8Wxk@;zbz literal 0 HcmV?d00001 diff --git a/doc/images/tests/CurveBenchmark.png b/doc/images/tests/CurveBenchmark.png new file mode 100644 index 0000000000000000000000000000000000000000..bc861406376b7c1cb541bda01f84547ba222fa60 GIT binary patch literal 15595 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 NUobgee%AT+{{g9MFBt#; literal 0 HcmV?d00001 diff --git a/doc/images/tests/DataDemo.png b/doc/images/tests/DataDemo.png new file mode 100644 index 0000000000000000000000000000000000000000..131905ff58da69f1688f453074e9e85aeb2da269 GIT binary patch literal 16540 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 literal 0 HcmV?d00001 diff --git a/doc/images/tests/ErrorBarDemo.png b/doc/images/tests/ErrorBarDemo.png new file mode 100644 index 0000000000000000000000000000000000000000..e192a14306212d54c7873c627d2a77626b0fd36d GIT binary patch literal 11288 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 z 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∾lcthkmB`HDu6uV1Bg!F)kn>?A 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φY`6f@2g5U-F;b5qtc-P7ccWgYRX<7jmlg68{5m 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 GEB^&B{GT%b literal 0 HcmV?d00001 diff --git a/doc/images/tests/MapDemo.png b/doc/images/tests/MapDemo.png new file mode 100644 index 0000000000000000000000000000000000000000..ce7aa7bb849ad1782ff211e177f53ab93f23fe99 GIT binary patch literal 49963 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%0D_M|Rk5e!`upGi`*(U4 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 literal 0 HcmV?d00001 diff --git a/doc/images/tests/ReallySimpleDemo.png b/doc/images/tests/ReallySimpleDemo.png new file mode 100644 index 0000000000000000000000000000000000000000..70096401020bd26cf1e5448b739ae6b7a2803fc6 GIT binary patch literal 12798 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%0Ak;nZ(&fQjP$M;$ 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 PdTO9+qEn=GBlQ0O<+5%5 literal 0 HcmV?d00001 diff --git a/doc/index.rst b/doc/index.rst index bb78312..0215329 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -8,6 +8,7 @@ Contents: overview installation + examples/index reference/index diff --git a/qwt/plot.py b/qwt/plot.py index efa9788..043a654 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -255,6 +255,8 @@ class QwtPlot(QFrame, QwtPlotDict): app.exec_() + .. image:: /images/QwtPlot_example.png + .. py:class:: QwtPlot([title=""], [parent=None]) :param str title: Title text @@ -1586,6 +1588,50 @@ def __init__(self): class QwtPlotItem(object): + """ + Base class for items on the plot canvas + + A plot item is "something", that can be painted on the plot canvas, + or only affects the scales of the plot widget. They can be categorized as: + + - Representator + + A "Representator" is an item that represents some sort of data + on the plot canvas. The different representator classes are organized + according to the characteristics of the data: + + - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a + horizontal/vertical coordinate + - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of + points + + - Decorators + + A "Decorator" is an item, that displays additional information, that + is not related to any data: + + - :py:class:`qwt.plot_grid.QwtPlotGrid` + + Depending on the `QwtPlotItem.ItemAttribute` flags, an item is included + into autoscaling or has an entry on the legend. + + Before misusing the existing item classes it might be better to + implement a new type of plot item + ( don't implement a watermark as spectrogram ). + Deriving a new type of `QwtPlotItem` primarily means to implement + the `YourPlotItem.draw()` method. + + .. seealso:: + + The cpuplot example shows the implementation of additional plot items. + + .. py:class:: QwtPlotItem([title=None]) + + Constructor + + :param title: Title of the item + :type title: qwt.text.QwtText or str + """ # enum RttiValues (Rtti_PlotItem, Rtti_PlotGrid, Rtti_PlotScale, Rtti_PlotLegend, @@ -1619,6 +1665,20 @@ def __init__(self, title=None): self.__data.title = title def attach(self, plot): + """ + Attach the item to a plot. + + This method will attach a `QwtPlotItem` to the `QwtPlot` argument. + It will first detach the `QwtPlotItem` from any plot from a previous + call to attach (if necessary). If a None argument is passed, it will + detach from any `QwtPlot` it was attached to. + + :param QwtPlot plot: Plot widget + + .. seealso:: + + :py:meth:`detach()` + """ if plot is self.__data.plot: return @@ -1631,18 +1691,59 @@ def attach(self, plot): self.__data.plot.attachItem(self, True) def detach(self): + """ + Detach the item from a plot. + + This method detaches a `QwtPlotItem` from any `QwtPlot` it has been + associated with. + + .. seealso:: + + :py:meth:`attach()` + """ self.attach(None) def rtti(self): + """ + Return rtti for the specific class represented. `QwtPlotItem` is + simply a virtual interface class, and base classes will implement + this method with specific rtti values so a user can differentiate + them. + + :return: rtti value + """ return self.Rtti_PlotItem def plot(self): + """ + :return: attached plot + """ return self.__data.plot def z(self): + """ + Plot items are painted in increasing z-order. + + :return: item z order + + .. seealso:: + + :py:meth:`setZ()`, :py:meth:`QwtPlotDict.itemList()` + """ return self.__data.z def setZ(self, z): + """ + Set the z value + + Plot items are painted in increasing z-order. + + :param float z: Z-value + + .. seealso:: + + :py:meth:`z()`, :py:meth:`QwtPlotDict.itemList()` + """ if self.__data.z != z: if self.__data.plot: self.__data.plot.attachItem(self, False) @@ -1652,6 +1753,16 @@ def setZ(self, z): self.itemChanged() def setTitle(self, title): + """ + Set a new title + + :param title: Title + :type title: qwt.text.QwtText or str + + .. seealso:: + + :py:meth:`title()` + """ if not isinstance(title, QwtText): title = QwtText(title) if self.__data.title != title: @@ -1659,9 +1770,26 @@ def setTitle(self, title): self.legendChanged() def title(self): + """ + :return: Title of the item + + .. seealso:: + + :py:meth:`setTitle()` + """ return self.__data.title def setItemAttribute(self, attribute, on=True): + """ + Toggle an item attribute + + :param int attribute: Attribute type + :param bool on: True/False + + .. seealso:: + + :py:meth:`testItemAttribute()` + """ if bool(self.__data.attributes & attribute) != on: if on: self.__data.attributes |= attribute @@ -1672,9 +1800,29 @@ def setItemAttribute(self, attribute, on=True): self.itemChanged() def testItemAttribute(self, attribute): + """ + Test an item attribute + + :param int attribute: Attribute type + :return: True/False + + .. seealso:: + + :py:meth:`setItemAttribute()` + """ return bool(self.__data.attributes & attribute) def setItemInterest(self, interest, on): + """ + Toggle an item interest + + :param int attribute: Interest type + :param bool on: True/False + + .. seealso:: + + :py:meth:`testItemInterest()` + """ if bool(self.__data.interests & interest) != on: if on: self.__data.interests |= interest @@ -1683,9 +1831,29 @@ def setItemInterest(self, interest, on): self.itemChanged() def testItemInterest(self, interest): + """ + Test an item interest + + :param int attribute: Interest type + :return: True/False + + .. seealso:: + + :py:meth:`setItemInterest()` + """ return bool(self.__data.interests & interest) def setRenderHint(self, hint, on=True): + """ + Toggle a render hint + + :param int hint: Render hint + :param bool on: True/False + + .. seealso:: + + :py:meth:`testRenderHint()` + """ if bool(self.__data.renderHints & hint) != on: if on: self.__data.renderHints |= hint @@ -1694,26 +1862,95 @@ def setRenderHint(self, hint, on=True): self.itemChanged() def testRenderHint(self, hint): + """ + Test a render hint + + :param int attribute: Render hint + :return: True/False + + .. seealso:: + + :py:meth:`setRenderHint()` + """ return bool(self.__data.renderHints & hint) def setRenderThreadCount(self, numThreads): + """ + On multi core systems rendering of certain plot item + ( f.e `QwtPlotRasterItem` ) can be done in parallel in + several threads. + + The default setting is set to 1. + + :param int numThreads: Number of threads to be used for rendering. + + If numThreads is set to 0, the system specific + ideal thread count is used. + + The default thread count is 1 ( = no additional threads ) + """ self.__data.renderThreadCount = numThreads def renderThreadCount(self): + """ + :return: Number of threads to be used for rendering. + + If numThreads() is set to 0, the system specific + ideal thread count is used. + """ return self.__data.renderThreadCount def setLegendIconSize(self, size): + """ + Set the size of the legend icon + + The default setting is 8x8 pixels + + :param QSize size: Size + + .. seealso:: + + :py:meth:`legendIconSize()`, :py:meth:`legendIcon()` + """ if self.__data.legendIconSize != size: self.__data.legendIconSize = size self.legendChanged() def legendIconSize(self): + """ + :return: Legend icon size + + .. seealso:: + + :py:meth:`setLegendIconSize()`, :py:meth:`legendIcon()` + """ return self.__data.legendIconSize def legendIcon(self, index, size): + """ + :param int index: Index of the legend entry (usually there is only one) + :param QSizeF size: Icon size + :return: Icon representing the item on the legend + + The default implementation returns an invalid icon + + .. seealso:: + + :py:meth:`setLegendIconSize()`, :py:meth:`legendData()` + """ return QwtGraphic() - def defaultIcon(brush, size): + def defaultIcon(self, brush, size): + """ + Return a default icon from a brush + + The default icon is a filled rectangle used + in several derived classes as legendIcon(). + + :param QBrush brush: Fill brush + :param QSizeF size: Icon size + :return: A filled rectangle + """ icon = QwtGraphic() if not size.isEmpty(): icon.setDefaultSize(size) @@ -1723,28 +1960,74 @@ def defaultIcon(brush, size): return icon def show(self): + """Show the item""" self.setVisible(True) def hide(self): + """Hide the item""" self.setVisible(False) def setVisible(self, on): + """ + Show/Hide the item + + :param bool on: Show if True, otherwise hide + + .. seealso:: + + :py:meth:`isVisible()`, :py:meth:`show()`, :py:meth:`hide()` + """ if on != self.__data.isVisible: self.__data.isVisible = on self.itemChanged() def isVisible(self): + """ + :return: True if visible + + .. seealso:: + + :py:meth:`setVisible()`, :py:meth:`show()`, :py:meth:`hide()` + """ return self.__data.isVisible def itemChanged(self): + """ + Update the legend and call `QwtPlot.autoRefresh()` for the + parent plot. + + .. seealso:: + + :py:meth:`QwtPlot.legendChanged()`, :py:meth:`QwtPlot.autoRefresh()` + """ if self.__data.plot: self.__data.plot.autoRefresh() def legendChanged(self): + """ + Update the legend of the parent plot. + + .. seealso:: + + :py:meth:`QwtPlot.updateLegend()`, :py:meth:`itemChanged()` + """ if self.testItemAttribute(QwtPlotItem.Legend) and self.__data.plot: self.__data.plot.updateLegend(self) def setAxes(self, xAxis, yAxis): + """ + Set X and Y axis + + The item will painted according to the coordinates of its Axes. + + :param int xAxis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`) + :param int yAxis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`) + + .. seealso:: + + :py:meth:`setXAxis()`, :py:meth:`setYAxis()`, + :py:meth:`xAxis()`, :py:meth:`yAxis()` + """ if xAxis == QwtPlot.xBottom or xAxis == QwtPlot.xTop: self.__data.xAxis = xAxis if yAxis == QwtPlot.yLeft or yAxis == QwtPlot.yRight: @@ -1752,35 +2035,118 @@ def setAxes(self, xAxis, yAxis): self.itemChanged() def setAxis(self, xAxis, yAxis): + """ + Set X and Y axis + + .. warning:: + + `setAxis` has been removed in Qwt6: please use + :py:meth:`setAxes()` instead + """ import warnings warnings.warn("`setAxis` has been removed in Qwt6: "\ "please use `setAxes` instead", RuntimeWarning) self.setAxes(xAxis, yAxis) def setXAxis(self, axis): + """ + Set the X axis + + The item will painted according to the coordinates its Axes. + + :param int axis: X Axis (`QwtPlot.xBottom` or `QwtPlot.xTop`) + + .. seealso:: + + :py:meth:`setAxes()`, :py:meth:`setYAxis()`, + :py:meth:`xAxis()`, :py:meth:`yAxis()` + """ if axis in (QwtPlot.xBottom, QwtPlot.xTop): self.__data.xAxis = axis self.itemChanged() def setYAxis(self, axis): + """ + Set the Y axis + + The item will painted according to the coordinates its Axes. + + :param int axis: Y Axis (`QwtPlot.yLeft` or `QwtPlot.yRight`) + + .. seealso:: + + :py:meth:`setAxes()`, :py:meth:`setXAxis()`, + :py:meth:`xAxis()`, :py:meth:`yAxis()` + """ if axis in (QwtPlot.yLeft, QwtPlot.yRight): self.__data.yAxis = axis self.itemChanged() def xAxis(self): + """ + :return: xAxis + """ return self.__data.xAxis def yAxis(self): + """ + :return: yAxis + """ return self.__data.yAxis def boundingRect(self): + """ + :return: An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0) + + .. note:: + + A width or height < 0.0 is ignored by the autoscaler + """ return QRectF(1.0, 1.0, -2.0, -2.0) def getCanvasMarginHint(self, xMap, yMap, canvasRect): + """ + Calculate a hint for the canvas margin + + When the QwtPlotItem::Margins flag is enabled the plot item + indicates, that it needs some margins at the borders of the canvas. + This is f.e. used by bar charts to reserve space for displaying + the bars. + + The margins are in target device coordinates ( pixels on screen ) + + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates + + .. seealso:: + + :py:meth:`QwtPlot.getCanvasMarginsHint()`, + :py:meth:`QwtPlot.updateCanvasMargins()`, + """ left = top = right = bottom = 0. return left, top, right, bottom def legendData(self): + """ + Return all information, that is needed to represent + the item on the legend + + `QwtLegendData` is basically a list of QVariants that makes it + possible to overload and reimplement legendData() to + return almost any type of information, that is understood + by the receiver that acts as the legend. + + The default implementation returns one entry with + the title() of the item and the legendIcon(). + + :return: Data, that is needed to represent the item on the legend + + .. seealso:: + + :py:meth:`title()`, :py:meth:`legendIcon()`, + :py:class:`qwt.legend.QwtLegend` + """ data = QwtLegendData() label = self.title() label.setRenderFlags(label.renderFlags() & Qt.AlignLeft) @@ -1791,10 +2157,42 @@ def legendData(self): return [data] def updateLegend(self, item, data): + """ + Update the item to changes of the legend info + + Plot items that want to display a legend ( not those, that want to + be displayed on a legend ! ) will have to implement updateLegend(). + + updateLegend() is only called when the LegendInterest interest + is enabled. The default implementation does nothing. + + :param QwtPlotItem item: Plot item to be displayed on a legend + :param list data: Attributes how to display item on the legend + + .. note:: + + Plot items, that want to be displayed on a legend + need to enable the `QwtPlotItem.Legend` flag and to implement + legendData() and legendIcon() + """ pass def scaleRect(self, xMap, yMap): + """ + Calculate the bounding scale rectangle of 2 maps + + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :return: Bounding scale rect of the scale maps, not normalized + """ return QRectF(xMap.s1(), yMap.s1(), xMap.sDist(), yMap.sDist()) def paintRect(self, xMap, yMap): + """ + Calculate the bounding paint rectangle of 2 maps + + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :return: Bounding paint rectangle of the scale maps, not normalized + """ return QRectF(xMap.p1(), yMap.p1(), xMap.pDist(), yMap.pDist()) From 83fb9304fd2ddde053bd0ae6e3e9cf112df94b8c Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 26 Sep 2015 23:44:25 +0200 Subject: [PATCH 023/421] Added docstrings for modules plot_canvas and plot_curve --- README.md | 6 +- doc/overview.rst | 6 +- doc/reference/index.rst | 2 + doc/reference/plot_canvas.rst | 2 + doc/reference/plot_curve.rst | 2 + qwt/plot.py | 16 +- qwt/plot_canvas.py | 215 ++++++++++++++ qwt/plot_curve.py | 545 +++++++++++++++++++++++++++++++++- 8 files changed, 775 insertions(+), 19 deletions(-) create mode 100644 doc/reference/plot_canvas.rst create mode 100644 doc/reference/plot_curve.rst diff --git a/README.md b/README.md index 53b1185..a8ac10c 100644 --- a/README.md +++ b/README.md @@ -62,9 +62,9 @@ features are already implemented in `guiqwt`. Other API compatibility issues with `Qwt`: - - `QwtPlot.MinimizeMemory` option was removed as this option has no sense - in python-qwt (the polyline plotting is not taking more memory than the - array data that is already there). + - `QwtPlotCurve.MinimizeMemory` option was removed as this option has no + sense in `python-qwt` (the polyline plotting is not taking more memory + than the array data that is already there). - `QwtPlotCurve.Fitted` option was removed as this option is not supported at the moment. diff --git a/doc/overview.rst b/doc/overview.rst index e9a1ea8..f4acbb6 100644 --- a/doc/overview.rst +++ b/doc/overview.rst @@ -36,9 +36,9 @@ features are already implemented in `guiqwt`. Other API compatibility issues with `Qwt`: - - `QwtPlot.MinimizeMemory` option was removed as this option has no sense - in python-qwt (the polyline plotting is not taking more memory than the - array data that is already there). + - `QwtPlotCurve.MinimizeMemory` option was removed as this option has no + sense in python-qwt (the polyline plotting is not taking more memory + than the array data that is already there). - `QwtPlotCurve.Fitted` option was removed as this option is not supported at the moment. diff --git a/doc/reference/index.rst b/doc/reference/index.rst index 1dcc485..8227afc 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -13,3 +13,5 @@ Main `python-qwt` classes: legend_data legend_label plot + plot_canvas + plot_curve diff --git a/doc/reference/plot_canvas.rst b/doc/reference/plot_canvas.rst new file mode 100644 index 0000000..1e3a383 --- /dev/null +++ b/doc/reference/plot_canvas.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.plot_canvas + :members: diff --git a/doc/reference/plot_curve.rst b/doc/reference/plot_curve.rst new file mode 100644 index 0000000..916bbb3 --- /dev/null +++ b/doc/reference/plot_curve.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.plot_curve + :members: diff --git a/qwt/plot.py b/qwt/plot.py index 043a654..a0e3305 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -139,7 +139,7 @@ def insertItem(self, item): """ Insert a plot item - :param QwtPlotItem item: PlotItem + :param qwt.plot.QwtPlotItem item: PlotItem .. seealso:: @@ -151,7 +151,7 @@ def removeItem(self, item): """ Remove a plot item - :param QwtPlotItem item: PlotItem + :param qwt.plot.QwtPlotItem item: PlotItem .. seealso:: @@ -231,7 +231,7 @@ class QwtPlot(QFrame, QwtPlotDict): are calculated from the plot items, using algorithms (`QwtScaleEngine`) which can be configured separately for each axis. - The simpleplot example is a good starting point to see how to set up a + The following example is a good starting point to see how to set up a plot widget:: from qwt.qt.QtGui import QApplication @@ -1476,7 +1476,7 @@ def updateLegend(self, plotItem=None): If plotItem is None, emit QwtPlot.SIG_LEGEND_DATA_CHANGED for all plot item. Otherwise, emit the signal for passed plot item. - :param QwtPlotItem plotItem: Plot item + :param qwt.plot.QwtPlotItem plotItem: Plot item .. seealso:: @@ -1501,7 +1501,7 @@ def updateLegendItems(self, plotItem, legendData): Call `QwtPlotItem.updateLegend()`, when the `QwtPlotItem.LegendInterest` flag is set. - :param QwtPlotItem plotItem: Plot item + :param qwt.plot.QwtPlotItem plotItem: Plot item :param list legendData: Entries to be displayed for the plot item ( usually 1 ) .. seealso:: @@ -1518,7 +1518,7 @@ def attachItem(self, plotItem, on): """ Attach/Detach a plot item - :param QwtPlotItem plotItem: Plot item + :param qwt.plot.QwtPlotItem plotItem: Plot item :param bool on: When true attach the item, otherwise detach it """ if plotItem.testItemInterest(QwtPlotItem.LegendInterest): @@ -1673,7 +1673,7 @@ def attach(self, plot): call to attach (if necessary). If a None argument is passed, it will detach from any `QwtPlot` it was attached to. - :param QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget .. seealso:: @@ -2166,7 +2166,7 @@ def updateLegend(self, item, data): updateLegend() is only called when the LegendInterest interest is enabled. The default implementation does nothing. - :param QwtPlotItem item: Plot item to be displayed on a legend + :param qwt.plot.QwtPlotItem item: Plot item to be displayed on a legend :param list data: Attributes how to display item on the legend .. note:: diff --git a/qwt/plot_canvas.py b/qwt/plot_canvas.py index 1845377..b98b27c 100644 --- a/qwt/plot_canvas.py +++ b/qwt/plot_canvas.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPlotCanvas +------------- + +.. autoclass:: QwtPlotCanvas + :members: +""" + from qwt.null_paintdevice import QwtNullPaintDevice from qwt.painter import QwtPainter @@ -307,6 +315,98 @@ def __init__(self): class QwtPlotCanvas(QFrame): + """ + Canvas of a QwtPlot. + + Canvas is the widget where all plot items are displayed + + .. seealso:: + + :py:meth:`qwt.plot.QwtPlot.setCanvas()` + + Paint attributes: + + * `QwtPlotCanvas.BackingStore`: + + Paint double buffered reusing the content of the pixmap buffer + when possible. + + Using a backing store might improve the performance significantly, + when working with widget overlays (like rubber bands). + Disabling the cache might improve the performance for + incremental paints + (using :py:class:`qwt.plot_directpainter.QwtPlotDirectPainter`). + + * `QwtPlotCanvas.Opaque`: + + Try to fill the complete contents rectangle of the plot canvas + + When using styled backgrounds Qt assumes, that the canvas doesn't + fill its area completely (f.e because of rounded borders) and + fills the area below the canvas. When this is done with gradients + it might result in a serious performance bottleneck - depending on + the size. + + When the Opaque attribute is enabled the canvas tries to + identify the gaps with some heuristics and to fill those only. + + .. warning:: + + Will not work for semitransparent backgrounds + + * `QwtPlotCanvas.HackStyledBackground`: + + Try to improve painting of styled backgrounds + + `QwtPlotCanvas` supports the box model attributes for + customizing the layout with style sheets. Unfortunately + the design of Qt style sheets has no concept how to + handle backgrounds with rounded corners - beside of padding. + + When HackStyledBackground is enabled the plot canvas tries + to separate the background from the background border + by reverse engineering to paint the background before and + the border after the plot items. In this order the border + gets perfectly antialiased and you can avoid some pixel + artifacts in the corners. + + * `QwtPlotCanvas.ImmediatePaint`: + + When ImmediatePaint is set replot() calls repaint() + instead of update(). + + .. seealso:: + + :py:meth:`replot()`, :py:meth:`QWidget.repaint()`, + :py:meth:`QWidget.update()` + + Focus indicators: + + * `QwtPlotCanvas.NoFocusIndicator`: + + Don't paint a focus indicator + + * `QwtPlotCanvas.CanvasFocusIndicator`: + + The focus is related to the complete canvas. + Paint the focus indicator using paintFocus() + + * `QwtPlotCanvas.ItemFocusIndicator`: + + The focus is related to an item (curve, point, ...) on + the canvas. It is up to the application to display a + focus indication using f.e. highlighting. + + .. py:class:: QwtPlotCanvas([plot=None]) + + Constructor + + :param qwt.plot.QwtPlot plot: Parent plot widget + + .. seealso:: + + :py:meth:`qwt.plot.QwtPlot.setCanvas()` + """ # enum PaintAttribute BackingStore = 1 @@ -330,9 +430,29 @@ def __init__(self, plot=None): self.setPaintAttribute(QwtPlotCanvas.HackStyledBackground, True) def plot(self): + """ + :return: Parent plot widget + """ return self.__plot def setPaintAttribute(self, attribute, on=True): + """ + Changing the paint attributes + + Paint attributes: + + * `QwtPlotCanvas.BackingStore` + * `QwtPlotCanvas.Opaque` + * `QwtPlotCanvas.HackStyledBackground` + * `QwtPlotCanvas.ImmediatePaint` + + :param int attribute: Paint attribute + :param bool on: On/Off + + .. seealso:: + + :py:meth:`testPaintAttribute()`, :py:meth:`backingStore()` + """ if bool(self.__data.paintAttributes & attribute) == on: return if on: @@ -361,25 +481,77 @@ def setPaintAttribute(self, attribute, on=True): pass def testPaintAttribute(self, attribute): + """ + Test whether a paint attribute is enabled + + :param int attribute: Paint attribute + :return: True, when attribute is enabled + + .. seealso:: + + :py:meth:`setPaintAttribute()` + """ return self.__data.paintAttributes & attribute def backingStore(self): + """ + :return: Backing store, might be None + """ return self.__data.backingStore def invalidateBackingStore(self): + """Invalidate the internal backing store""" if self.__data.backingStore: self.__data.backingStore = QPixmap() def setFocusIndicator(self, focusIndicator): + """ + Set the focus indicator + + Focus indicators: + + * `QwtPlotCanvas.NoFocusIndicator` + * `QwtPlotCanvas.CanvasFocusIndicator` + * `QwtPlotCanvas.ItemFocusIndicator` + + :param int focusIndicator: Focus indicator + + .. seealso:: + + :py:meth:`focusIndicator()` + """ self.__data.focusIndicator = focusIndicator def focusIndicator(self): + """ + :return: Focus indicator + + .. seealso:: + + :py:meth:`setFocusIndicator()` + """ return self.__data.focusIndicator def setBorderRadius(self, radius): + """ + Set the radius for the corners of the border frame + + :param float radius: Radius of a rounded corner + + .. seealso:: + + :py:meth:`borderRadius()` + """ self.__data.borderRadius = max([0., radius]) def borderRadius(self): + """ + :return: Radius for the corners of the border frame + + .. seealso:: + + :py:meth:`setBorderRadius()` + """ return self.__data.borderRadius def event(self, event): @@ -449,13 +621,26 @@ def drawCanvas(self, painter, withBackground): hackStyledBackground = False if withBackground and self.testAttribute(Qt.WA_StyledBackground) and\ self.testPaintAttribute(self.HackStyledBackground): + # Antialiasing rounded borders is done by + # inserting pixels with colors between the + # border color and the color on the canvas, + # When the border is painted before the plot items + # these colors are interpolated for the canvas + # and the plot items need to be clipped excluding + # the anialiased pixels. In situations, where + # the plot items fill the area at the rounded + # borders this is noticeable. + # The only way to avoid these annoying "artefacts" + # is to paint the border on top of the plot items. if self.__data.styleSheet.hasBorder and\ not self.__data.styleSheet.borderPath.isEmpty(): + # We have a border with at least one rounded corner hackStyledBackground = True if withBackground: painter.save() if self.testAttribute(Qt.WA_StyledBackground): if hackStyledBackground: + # paint background without border painter.setPen(Qt.NoPen) painter.setBrush(self.__data.styleSheet.background.brush) painter.setBrushOrigin(self.__data.styleSheet.background.origin) @@ -490,11 +675,21 @@ def drawCanvas(self, painter, withBackground): self.plot().drawCanvas(painter) painter.restore() if withBackground and hackStyledBackground: + # Now paint the border on top opt = QStyleOptionFrame() opt.initFrom(self) self.style().drawPrimitive(QStyle.PE_Frame, opt, painter, self) def drawBorder(self, painter): + """ + Draw the border of the plot canvas + + :param QPainter painter: Painter + + .. seealso:: + + :py:meth:`setBorderRadius()` + """ if self.__data.borderRadius > 0: if self.frameWidth() > 0: QwtPainter.drawRoundedFrame(painter, QRectF(self.frameRect()), @@ -531,6 +726,11 @@ def resizeEvent(self, event): self.updateStyleSheetInfo() def drawFocusIndicator(self, painter): + """ + Draw the focus indication + + :param QPainter painter: Painter + """ margin = 1 focusRect = self.contentsRect() focusRect.setRect(focusRect.x()+margin, focusRect.y()+margin, @@ -538,6 +738,9 @@ def drawFocusIndicator(self, painter): QwtPainter.drawFocusRect(painter, self, focusRect) def replot(self): + """ + Invalidate the paint cache and repaint the canvas + """ self.invalidateBackingStore() if self.testPaintAttribute(self.ImmediatePaint): self.repaint(self.contentsRect()) @@ -551,6 +754,9 @@ def invalidatePaintCache(self): self.replot() def updateStyleSheetInfo(self): + """ + Update the cached information about the current style sheet + """ if not self.testAttribute(Qt.WA_StyledBackground): return recorder = QwtStyleSheetRecorder(self.size()) @@ -571,6 +777,15 @@ def updateStyleSheetInfo(self): self.__data.styleSheet.background.origin = recorder.background.origin def borderPath(self, rect): + """ + Calculate the painter path for a styled or rounded border + + When the canvas has no styled background or rounded borders + the painter path is empty. + + :param QRect rect: Bounding rectangle of the canvas + :return: Painter path, that can be used for clipping + """ if self.testAttribute(Qt.WA_StyledBackground): recorder = QwtStyleSheetRecorder(rect.size()) painter = QPainter(recorder) diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index e2ee2aa..b8a3b5e 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPlotCurve +------------ + +.. autoclass:: QwtPlotCurve + :members: +""" + from qwt.text import QwtText from qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData from qwt.painter import QwtPainter @@ -64,6 +72,132 @@ def __init__(self): class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): + """ + A plot item, that represents a series of points + + A curve is the representation of a series of points in the x-y plane. + It supports different display styles, interpolation ( f.e. spline ) + and symbols. + + .. seealso:: + + :py:class:`qwt.series_data.QwtPointSeriesData()`, + :py:class:`qwt.symbol.QwtSymbol()`, + :py:class:`qwt.scale_map.QwtScaleMap()` + + Curve styles: + + * `QwtPlotCurve.NoCurve`: + + Don't draw a curve. Note: This doesn't affect the symbols. + + * `QwtPlotCurve.Lines`: + + Connect the points with straight lines. The lines might + be interpolated depending on the 'Fitted' attribute. Curve + fitting can be configured using setCurveFitter(). + + * `QwtPlotCurve.Sticks`: + + Draw vertical or horizontal sticks ( depending on the + orientation() ) from a baseline which is defined by setBaseline(). + + * `QwtPlotCurve.Steps`: + + Connect the points with a step function. The step function + is drawn from the left to the right or vice versa, + depending on the QwtPlotCurve::Inverted attribute. + + * `QwtPlotCurve.Dots`: + + Draw dots at the locations of the data points. Note: + This is different from a dotted line (see setPen()), and faster + as a curve in QwtPlotCurve::NoStyle style and a symbol + painting a point. + + * `QwtPlotCurve.UserCurve`: + + Styles >= QwtPlotCurve.UserCurve are reserved for derived + classes of QwtPlotCurve that overload drawCurve() with + additional application specific curve types. + + Curve attributes: + + * `QwtPlotCurve.Inverted`: + + For `QwtPlotCurve.Steps` only. + Draws a step function from the right to the left. + + * `QwtPlotCurve.Fitted`: + + .. warning :: + + This option is *not* supported in `python-qwt`. + + Legend attributes: + + * `QwtPlotCurve.LegendNoAttribute`: + + `QwtPlotCurve` tries to find a color representing the curve + and paints a rectangle with it. + + * `QwtPlotCurve.LegendShowLine`: + + If the style() is not `QwtPlotCurve.NoCurve` a line + is painted with the curve pen(). + + * `QwtPlotCurve.LegendShowSymbol`: + + If the curve has a valid symbol it is painted. + + * `QwtPlotCurve.LegendShowBrush`: + + If the curve has a brush a rectangle filled with the + curve brush() is painted. + + Paint attributes: + + * `QwtPlotCurve.ClipPolygons`: + + Clip polygons before painting them. In situations, where points + are far outside the visible area (f.e when zooming deep) this + might be a substantial improvement for the painting performance + + .. warning:: + + This option is currently *not* supported in `python-qwt`. + + * `QwtPlotCurve.FilterPoints`: + + Tries to reduce the data that has to be painted, by sorting out + duplicates, or paintings outside the visible area. Might have a + notable impact on curves with many close points. + Only a couple of very basic filtering algorithms are implemented. + + * `QwtPlotCurve.MinimizeMemory`: + + .. warning:: + + This option was removed as it has no sense in `python-qwt` + (the polyline plotting is not taking more memory than the + array data that is already there). + + * `QwtPlotCurve.ImageBuffer`: + + Render the points to a temporary image and paint the image. + This is a very special optimization for Dots style, when + having a huge amount of points. + With a reasonable number of points QPainter.drawPoints() + will be faster. + + + .. py:class:: QwtPlotCurve([title=None]) + + Constructor + + :param title: Parent plot widget + :type title: qwt.text.QwtText or str or None + """ # enum CurveStyle NoCurve = -1 @@ -96,6 +230,7 @@ def __init__(self, title=None): self.init() def init(self): + """Initialize internal members""" self.__data = QwtPlotCurve_PrivateData() self.setItemAttribute(QwtPlotItem.Legend) self.setItemAttribute(QwtPlotItem.AutoScale) @@ -103,18 +238,59 @@ def init(self): self.setZ(20.) def rtti(self): + """:return: `QwtPlotItem.Rtti_PlotCurve`""" return QwtPlotItem.Rtti_PlotCurve def setPaintAttribute(self, attribute, on=True): + """ + Specify an attribute how to draw the curve + + Supported paint attributes: + + * `QwtPlotCurve.FilterPoints` + * `QwtPlotCurve.ImageBuffer` + + :param int attribute: Paint attribute + :param bool on: On/Off + + .. seealso:: + + :py:meth:`testPaintAttribute()` + """ if on: self.__data.paintAttributes |= attribute else: self.__data.paintAttributes &= ~attribute def testPaintAttribute(self, attribute): + """ + :param int attribute: Paint attribute + :return: True, when attribute is enabled + + .. seealso:: + + :py:meth:`setPaintAttribute()` + """ return self.__data.paintAttributes & attribute def setLegendAttribute(self, attribute, on=True): + """ + Specify an attribute how to draw the legend icon + + Legend attributes: + + * `QwtPlotCurve.LegendNoAttribute` + * `QwtPlotCurve.LegendShowLine` + * `QwtPlotCurve.LegendShowSymbol` + * `QwtPlotCurve.LegendShowBrush` + + :param int attribute: Legend attribute + :param bool on: On/Off + + .. seealso:: + + :py:meth:`testLegendAttribute()`, :py:meth:`legendIcon()` + """ if on != self.testLegendAttribute(attribute): if on: self.__data.legendAttributes |= attribute @@ -124,18 +300,64 @@ def setLegendAttribute(self, attribute, on=True): self.legendChanged() def testLegendAttribute(self, attribute): + """ + :param int attribute: Legend attribute + :return: True, when attribute is enabled + + .. seealso:: + + :py:meth:`setLegendAttribute()` + """ return self.__data.legendAttributes & attribute def setStyle(self, style): + """ + Set the curve's drawing style + + Valid curve styles: + + * `QwtPlotCurve.NoCurve` + * `QwtPlotCurve.Lines` + * `QwtPlotCurve.Sticks` + * `QwtPlotCurve.Steps` + * `QwtPlotCurve.Dots` + * `QwtPlotCurve.UserCurve` + + :param int style: Curve style + + .. seealso:: + + :py:meth:`style()` + """ if style != self.__data.style: self.__data.style = style self.legendChanged() self.itemChanged() def style(self): + """ + :return: Style of the curve + + .. seealso:: + + :py:meth:`setStyle()` + """ return self.__data.style def setSymbol(self, symbol): + """ + Assign a symbol + + The curve will take the ownership of the symbol, hence the previously + set symbol will be delete by setting a new one. If symbol is None no + symbol will be drawn. + + :param qwt.symbol.QwtSymbol symbol: Symbol + + .. seealso:: + + :py:meth:`symbol()` + """ if symbol != self.__data.symbol: self.__data.symbol = symbol qwtUpdateLegendIconSize(self) @@ -143,9 +365,41 @@ def setSymbol(self, symbol): self.itemChanged() def symbol(self): + """ + :return: Current symbol or None, when no symbol has been assigned + + .. seealso:: + + :py:meth:`setSymbol()` + """ return self.__data.symbol def setPen(self, *args): + """ + Build and/or assigna a pen, depending on the arguments. + + .. py:method:: setPen(color, width, style) + + Build and assign a pen + + In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it + non cosmetic (see `QPen.isCosmetic()`). This method signature has + been introduced to hide this incompatibility. + + :param QColor color: Pen color + :param float width: Pen width + :param Qt.PenStyle style: Pen style + + .. py:method:: setPen(pen) + + Assign a pen + + :param QPen pen: New pen + + .. seealso:: + + :py:meth:`pen()`, :py:meth:`brush()` + """ if len(args) == 3: color, width, style = args elif len(args) == 1: @@ -163,9 +417,35 @@ def setPen(self, *args): self.itemChanged() def pen(self): + """ + :return: Pen used to draw the lines + + .. seealso:: + + :py:meth:`setPen()`, :py:meth:`brush()` + """ return self.__data.pen def setBrush(self, brush): + """ + Assign a brush. + + In case of `brush.style() != QBrush.NoBrush` + and `style() != QwtPlotCurve.Sticks` + the area between the curve and the baseline will be filled. + + In case `not brush.color().isValid()` the area will be filled by + `pen.color()`. The fill algorithm simply connects the first and the + last curve point to the baseline. So the curve data has to be sorted + (ascending or descending). + + :param brush: New brush + :type brush: QBrush or QColor + + .. seealso:: + + :py:meth:`brush()`, :py:meth:`setBaseline()`, :py:meth:`baseline()` + """ if isinstance(brush, QColor): brush = QBrush(brush) else: @@ -176,20 +456,51 @@ def setBrush(self, brush): self.itemChanged() def brush(self): + """ + :return: Brush used to fill the area between lines and the baseline + + .. seealso:: + + :py:meth:`setBrush()`, :py:meth:`setBaseline()`, + :py:meth:`baseline()` + """ return self.__data.brush def directPaint(self, from_, to): - """When observing an measurement while it is running, new points have - to be added to an existing seriesItem. drawSeries() can be used to + """ + When observing a measurement while it is running, new points have + to be added to an existing seriesItem. This method can be used to display them avoiding a complete redraw of the canvas. - Setting plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True) - will result in faster painting, if the paint engine of the canvas widget - supports this feature.""" + Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)` + will result in faster painting, if the paint engine of the canvas + widget supports this feature. + + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted + + .. seealso:: + + :py:meth:`drawSeries()` + """ directPainter = QwtPlotDirectPainter(self.plot()) directPainter.drawSeries(self, from_, to) def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): + """ + Draw an interval of the curve + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + :py:meth:`drawCurve()`, :py:meth:`drawSymbols()` + """ numSamples = self.dataSize() if not painter or numSamples <= 0: return @@ -209,6 +520,22 @@ def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): painter.restore() def drawCurve(self, painter, style, xMap, yMap, canvasRect, from_, to): + """ + Draw the line part (without symbols) of a curve interval. + + :param QPainter painter: Painter + :param int style: curve style, see `QwtPlotCurve.CurveStyle` + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + :py:meth:`draw()`, :py:meth:`drawDots()`, :py:meth:`drawLines()`, + :py:meth:`drawSteps()`, :py:meth:`drawSticks()` + """ if style == self.Lines: self.drawLines(painter, xMap, yMap, canvasRect, from_, to) elif style == self.Sticks: @@ -219,6 +546,21 @@ def drawCurve(self, painter, style, xMap, yMap, canvasRect, from_, to): self.drawDots(painter, xMap, yMap, canvasRect, from_, to) def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): + """ + Draw lines + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + :py:meth:`draw()`, :py:meth:`drawDots()`, + :py:meth:`drawSteps()`, :py:meth:`drawSticks()` + """ if from_ > to: return doAlign = QwtPainter.roundingAlignment(painter) @@ -264,6 +606,21 @@ def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): QwtPainter.drawPolyline(painter, polyline) def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): + """ + Draw sticks + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + :py:meth:`draw()`, :py:meth:`drawDots()`, + :py:meth:`drawSteps()`, :py:meth:`drawLines()` + """ painter.save() painter.setRenderHint(QPainter.Antialiasing, False) doAlign = QwtPainter.roundingAlignment(painter) @@ -288,6 +645,21 @@ def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): painter.restore() def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): + """ + Draw dots + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + :py:meth:`draw()`, :py:meth:`drawSticks()`, + :py:meth:`drawSteps()`, :py:meth:`drawLines()` + """ color = painter.pen().color() if painter.pen().style() == Qt.NoPen or color.alpha() == 0: return @@ -321,6 +693,21 @@ def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): QwtPainter.drawPoints(painter, points) def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): + """ + Draw steps + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + :py:meth:`draw()`, :py:meth:`drawSticks()`, + :py:meth:`drawDots()`, :py:meth:`drawLines()` + """ doAlign = QwtPainter.roundingAlignment(painter) polygon = QPolygonF(2*(to-from_)+1) inverted = self.orientation() == Qt.Vertical @@ -352,6 +739,20 @@ def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): self.fillCurve(painter, xMap, yMap, canvasRect, polygon) def setCurveAttribute(self, attribute, on=True): + """ + Specify an attribute for drawing the curve + + Supported curve attributes: + + * `QwtPlotCurve.Inverted` + + :param int attribute: Curve attribute + :param bool on: On/Off + + .. seealso:: + + :py:meth:`testCurveAttribute()` + """ if (self.__data.attributes & attribute) == on: return if on: @@ -361,9 +762,31 @@ def setCurveAttribute(self, attribute, on=True): self.itemChanged() def testCurveAttribute(self, attribute): + """ + :return: True, if attribute is enabled + + .. seealso:: + + :py:meth:`setCurveAttribute()` + """ return self.__data.attributes & attribute def fillCurve(self, painter, xMap, yMap, canvasRect, polygon): + """ + Fill the area between the curve and the baseline with + the curve brush + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + :param QPolygonF polygon: Polygon - will be modified ! + + .. seealso:: + + :py:meth:`setBrush()`, :py:meth:`setBaseline()`, + :py:meth:`setStyle()` + """ if self.__data.brush.style() == Qt.NoBrush: return self.closePolyline(painter, xMap, yMap, polygon) @@ -381,6 +804,15 @@ def fillCurve(self, painter, xMap, yMap, canvasRect, polygon): painter.restore() def closePolyline(self, painter, xMap, yMap, polygon): + """ + Complete a polygon to be a closed polygon including the + area between the original polygon and the baseline. + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QPolygonF polygon: Polygon to be completed + """ if polygon.size() < 2: return doAlign = QwtPainter.roundingAlignment(painter) @@ -403,6 +835,22 @@ def closePolyline(self, painter, xMap, yMap, polygon): polygon += QPointF(refX, polygon.first().y()) def drawSymbols(self, painter, symbol, xMap, yMap, canvasRect, from_, to): + """ + Draw symbols + + :param QPainter painter: Painter + :param qwt.symbol.QwtSymbol symbol: Curve symbol + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + :py:meth:`setSymbol()`, :py:meth:`drawSeries()`, + :py:meth:`drawCurve()` + """ mapper = QwtPointMapper() mapper.setFlag(QwtPointMapper.RoundPoints, QwtPainter.roundingAlignment(painter)) @@ -417,14 +865,56 @@ def drawSymbols(self, painter, symbol, xMap, yMap, canvasRect, from_, to): symbol.drawSymbols(painter, points) def setBaseline(self, value): + """ + Set the value of the baseline + + The baseline is needed for filling the curve with a brush or + the Sticks drawing style. + + The interpretation of the baseline depends on the `orientation()`. + With `Qt.Horizontal`, the baseline is interpreted as a horizontal line + at y = baseline(), with `Qt.Vertical`, it is interpreted as a vertical + line at x = baseline(). + + The default value is 0.0. + + :param float value: Value of the baseline + + .. seealso:: + + :py:meth:`baseline()`, :py:meth:`setBrush()`, + :py:meth:`setStyle()` + """ if self.__data.baseline != value: self.__data.baseline = value self.itemChanged() def baseline(self): + """ + :return: Value of the baseline + + .. seealso:: + + :py:meth:`setBaseline()` + """ return self.__data.baseline def closestPoint(self, pos): + """ + Find the closest curve point for a specific position + + :param QPoint pos: Position, where to look for the closest curve point + :return: tuple `(index, dist)` + + `dist` is the distance between the position and the closest curve + point. `index` is the index of the closest curve point, or -1 if + none can be found ( f.e when the curve has no points ). + + .. note:: + + `closestPoint()` implements a dumb algorithm, that iterates + over all points + """ numSamples = self.dataSize() if self.plot() is None or numSamples <= 0: return -1 @@ -445,6 +935,16 @@ def closestPoint(self, pos): return index, dist def legendIcon(self, index, size): + """ + :param int index: Index of the legend entry (ignored as there is only one) + :param QSizeF size: Icon size + :return: Icon representing the curve on the legend + + .. seealso:: + + :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`, + :py:meth:`qwt.plot.QwtPlotItem.legendData()` + """ if size.isEmpty(): return QwtGraphic() graphic = QwtGraphic() @@ -489,6 +989,29 @@ def setData(self, *args): % (self.__class__.__name__, len(args))) def setSamples(self, *args): + """ + Initialize data with an array of points. + + .. py:method:: setSamples(samples): + + Same as `setData(QwtPointSeriesData(samples))` + + :param samples: List/array of points + + .. py:method:: setSamples(xData, yData, [size=None]): + + Same as `setData(QwtPointArrayData(xData, yData, [size=None]))` + + :param xData: List/array of x values + :param yData: List/array of y values + :param size: size of xData and yData + :type size: int or None + + .. seealso:: + + :py:class:`qwt.point_data.QwtPointArrayData`, + :py:class:`qwt.series_data.QwtPointSeriesData` + """ if len(args) == 1: samples, = args if isinstance(samples, QwtSeriesData): @@ -506,4 +1029,16 @@ def setSamples(self, *args): "(%s given)" % (self.__class__.__name__, len(args))) def setRawSamples(self, xData, yData, size): + """ + Initialize the data by pointing to memory blocks which + are not managed by `QwtPlotCurve`. + + :param xData: List/array of x values + :param yData: List/array of y values + :param int size: size of xData and yData + + .. seealso:: + + :py:class:`qwt.point_data.QwtCPointerData` + """ self.setData(QwtCPointerData(xData, yData, size)) From 0f80dc66823267abdbbe8159358f48a164b01a72 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 27 Sep 2015 09:38:24 +0200 Subject: [PATCH 024/421] Added docstrings to plot_grid, plot_histogram and plot_layout modules --- doc/reference/index.rst | 4 + doc/reference/plot_directpainter.rst | 2 + doc/reference/plot_grid.rst | 2 + doc/reference/plot_histogram.rst | 2 + doc/reference/plot_layout.rst | 2 + qwt/plot_curve.py | 2 +- qwt/plot_directpainter.py | 127 +++++++++- qwt/plot_grid.py | 219 +++++++++++++++++ qwt/plot_histogram.py | 289 ++++++++++++++++++++++ qwt/plot_layout.py | 342 +++++++++++++++++++++++++++ 10 files changed, 987 insertions(+), 4 deletions(-) create mode 100644 doc/reference/plot_directpainter.rst create mode 100644 doc/reference/plot_grid.rst create mode 100644 doc/reference/plot_histogram.rst create mode 100644 doc/reference/plot_layout.rst diff --git a/doc/reference/index.rst b/doc/reference/index.rst index 8227afc..931cb25 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -15,3 +15,7 @@ Main `python-qwt` classes: plot plot_canvas plot_curve + plot_directpainter + plot_grid + plot_histogram + plot_layout diff --git a/doc/reference/plot_directpainter.rst b/doc/reference/plot_directpainter.rst new file mode 100644 index 0000000..52cc6e5 --- /dev/null +++ b/doc/reference/plot_directpainter.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.plot_directpainter + :members: diff --git a/doc/reference/plot_grid.rst b/doc/reference/plot_grid.rst new file mode 100644 index 0000000..7d31649 --- /dev/null +++ b/doc/reference/plot_grid.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.plot_grid + :members: diff --git a/doc/reference/plot_histogram.rst b/doc/reference/plot_histogram.rst new file mode 100644 index 0000000..f9c273c --- /dev/null +++ b/doc/reference/plot_histogram.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.plot_histogram + :members: diff --git a/doc/reference/plot_layout.rst b/doc/reference/plot_layout.rst new file mode 100644 index 0000000..00b801c --- /dev/null +++ b/doc/reference/plot_layout.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.plot_layout + :members: diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index b8a3b5e..f9c4eeb 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -195,7 +195,7 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): Constructor - :param title: Parent plot widget + :param title: Curve title :type title: qwt.text.QwtText or str or None """ diff --git a/qwt/plot_directpainter.py b/qwt/plot_directpainter.py index a57b486..ef32194 100644 --- a/qwt/plot_directpainter.py +++ b/qwt/plot_directpainter.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPlotDirectPainter +-------------------- + +.. autoclass:: QwtPlotDirectPainter + :members: +""" + from qwt.qt.QtGui import QPainter, QRegion from qwt.qt.QtCore import QObject, QT_VERSION, Qt, QEvent @@ -39,6 +47,51 @@ def __init__(self): class QwtPlotDirectPainter(QObject): + """ + Painter object trying to paint incrementally + + Often applications want to display samples while they are + collected. When there are too many samples complete replots + will be expensive to be processed in a collection cycle. + + `QwtPlotDirectPainter` offers an API to paint + subsets (f.e all additions points) without erasing/repainting + the plot canvas. + + On certain environments it might be important to calculate a proper + clip region before painting. F.e. for Qt Embedded only the clipped part + of the backing store will be copied to a (maybe unaccelerated) + frame buffer. + + .. warning:: + + Incremental painting will only help when no replot is triggered + by another operation (like changing scales) and nothing needs + to be erased. + + Paint attributes: + + * `QwtPlotDirectPainter.AtomicPainter`: + + Initializing a `QPainter` is an expensive operation. + When `AtomicPainter` is set each call of `drawSeries()` opens/closes + a temporary `QPainter`. Otherwise `QwtPlotDirectPainter` tries to + use the same `QPainter` as long as possible. + + * `QwtPlotDirectPainter.FullRepaint`: + + When `FullRepaint` is set the plot canvas is explicitly repainted + after the samples have been rendered. + + * `QwtPlotDirectPainter.CopyBackingStore`: + + When `QwtPlotCanvas.BackingStore` is enabled the painter + has to paint to the backing store and the widget. In certain + situations/environments it might be faster to paint to + the backing store only and then copy the backing store to the canvas. + This flag can also be useful for settings, where Qt fills the + the clip region with the widget background. + """ # enum Attribute AtomicPainter = 0x01 @@ -50,6 +103,16 @@ def __init__(self, parent=None): self.__data = QwtPlotDirectPainter_PrivateData() def setAttribute(self, attribute, on=True): + """ + Change an attribute + + :param int attribute: Attribute to change + :param bool on: On/Off + + .. seealso:: + + :py:meth:`testAttribute()` + """ if self.testAttribute(attribute) != on: self.__data.attributes |= attribute else: @@ -58,29 +121,86 @@ def setAttribute(self, attribute, on=True): self.reset() def testAttribute(self, attribute): + """ + :param int attribute: Attribute to be tested + :return: True, when attribute is enabled + + .. seealso:: + + :py:meth:`setAttribute()` + """ return self.__data.attributes & attribute def setClipping(self, enable): + """ + En/Disables clipping + + :param bool enable: Enables clipping is true, disable it otherwise + + .. seealso:: + + :py:meth:`hasClipping()`, :py:meth:`clipRegion()`, + :py:meth:`setClipRegion()` + """ self.__data.hasClipping = enable def hasClipping(self): + """ + :return: Return true, when clipping is enabled + + .. seealso:: + + :py:meth:`setClipping()`, :py:meth:`clipRegion()`, + :py:meth:`setClipRegion()` + """ return self.__data.hasClipping def setClipRegion(self, region): + """ + Assign a clip region and enable clipping + + Depending on the environment setting a proper clip region might + improve the performance heavily. F.e. on Qt embedded only the clipped + part of the backing store will be copied to a (maybe unaccelerated) + frame buffer device. + + :param QRegion region: Clip region + + .. seealso:: + + :py:meth:`hasClipping()`, :py:meth:`setClipping()`, + :py:meth:`clipRegion()` + """ self.__data.clipRegion = region self.__data.hasClipping = True def clipRegion(self): + """ + :return: Return Currently set clip region. + + .. seealso:: + + :py:meth:`hasClipping()`, :py:meth:`setClipping()`, + :py:meth:`setClipRegion()` + """ return self.__data.clipRegion def drawSeries(self, seriesItem, from_, to): - """When observing an measurement while it is running, new points have + """ + Draw a set of points of a seriesItem. + + When observing a measurement while it is running, new points have to be added to an existing seriesItem. drawSeries() can be used to display them avoiding a complete redraw of the canvas. - Setting plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True) + Setting `plot().canvas().setAttribute(Qt.WA_PaintOutsidePaintEvent, True)` will result in faster painting, if the paint engine of the canvas widget - supports this feature.""" + supports this feature. + + :param qwt.plot_seriesitem.QwtPlotSeriesItem seriesItem: Item to be painted + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the series will be painted to its last point. + """ if seriesItem is None or seriesItem.plot() is None: return canvas = seriesItem.plot().canvas() @@ -129,6 +249,7 @@ def drawSeries(self, seriesItem, from_, to): self.__data.seriesItem = None def reset(self): + """Close the internal QPainter""" if self.__data.painter.isActive(): w = self.__data.painter.device() #XXX: cast to QWidget if w: diff --git a/qwt/plot_grid.py b/qwt/plot_grid.py index d46cdf9..6dd91b0 100644 --- a/qwt/plot_grid.py +++ b/qwt/plot_grid.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPlotGrid +----------- + +.. autoclass:: QwtPlotGrid + :members: +""" + from qwt.scale_div import QwtScaleDiv from qwt.plot import QwtPlotItem from qwt.text import QwtText @@ -28,6 +36,18 @@ def __init__(self): class QwtPlotGrid(QwtPlotItem): + """ + A class which draws a coordinate grid + + The `QwtPlotGrid` class can be used to draw a coordinate grid. + A coordinate grid consists of major and minor vertical + and horizontal grid lines. The locations of the grid lines + are determined by the X and Y scale divisions which can + be assigned with `setXDiv()` and `setYDiv()`. + The `draw()` member draws the grid within a bounding + rectangle. + """ + def __init__(self): QwtPlotItem.__init__(self, QwtText("Grid")) self.__data = QwtPlotGrid_PrivateData() @@ -35,43 +55,117 @@ def __init__(self): self.setZ(10.) def rtti(self): + """ + :return: Return `QwtPlotItem.Rtti_PlotGrid` + """ return QwtPlotItem.Rtti_PlotGrid def enableX(self, on): + """ + Enable or disable vertical grid lines + + :param bool on: Enable (true) or disable + + .. seealso:: + + :py:meth:`enableXMin()` + """ if self.__data.xEnabled != on: self.__data.xEnabled = on self.legendChanged() self.itemChanged() def enableY(self, on): + """ + Enable or disable horizontal grid lines + + :param bool on: Enable (true) or disable + + .. seealso:: + + :py:meth:`enableYMin()` + """ if self.__data.yEnabled != on: self.__data.yEnabled = on self.legendChanged() self.itemChanged() def enableXMin(self, on): + """ + Enable or disable minor vertical grid lines. + + :param bool on: Enable (true) or disable + + .. seealso:: + + :py:meth:`enableX()` + """ if self.__data.xMinEnabled != on: self.__data.xMinEnabled = on self.legendChanged() self.itemChanged() def enableYMin(self, on): + """ + Enable or disable minor horizontal grid lines. + + :param bool on: Enable (true) or disable + + .. seealso:: + + :py:meth:`enableY()` + """ if self.__data.yMinEnabled != on: self.__data.yMinEnabled = on self.legendChanged() self.itemChanged() def setXDiv(self, scaleDiv): + """ + Assign an x axis scale division + + :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division + """ if self.__data.xScaleDiv != scaleDiv: self.__data.xScaleDiv = scaleDiv self.itemChanged() def setYDiv(self, scaleDiv): + """ + Assign an y axis scale division + + :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division + """ if self.__data.yScaleDiv != scaleDiv: self.__data.yScaleDiv = scaleDiv self.itemChanged() def setPen(self, *args): + """ + Build and/or assign a pen for both major and minor grid lines + + .. py:method:: setPen(color, width, style) + + Build and assign a pen for both major and minor grid lines + + In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it + non cosmetic (see `QPen.isCosmetic()`). This method signature has + been introduced to hide this incompatibility. + + :param QColor color: Pen color + :param float width: Pen width + :param Qt.PenStyle style: Pen style + + .. py:method:: setPen(pen) + + Assign a pen for both major and minor grid lines + + :param QPen pen: New pen + + .. seealso:: + + :py:meth:`pen()`, :py:meth:`brush()` + """ if len(args) == 3: color, width, style = args self.setPen(QPen(color, width, style)) @@ -87,6 +181,32 @@ def setPen(self, *args): % (self.__class__.__name__, len(args))) def setMajorPen(self, *args): + """ + Build and/or assign a pen for both major grid lines + + .. py:method:: setMajorPen(color, width, style) + + Build and assign a pen for both major grid lines + + In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it + non cosmetic (see `QPen.isCosmetic()`). This method signature has + been introduced to hide this incompatibility. + + :param QColor color: Pen color + :param float width: Pen width + :param Qt.PenStyle style: Pen style + + .. py:method:: setMajorPen(pen) + + Assign a pen for the major grid lines + + :param QPen pen: New pen + + .. seealso:: + + :py:meth:`majorPen()`, :py:meth:`setMinorPen()`, + :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()` + """ if len(args) == 3: color, width, style = args self.setMajorPen(QPen(color, width, style)) @@ -101,6 +221,32 @@ def setMajorPen(self, *args): "given)" % (self.__class__.__name__, len(args))) def setMinorPen(self, *args): + """ + Build and/or assign a pen for both minor grid lines + + .. py:method:: setMinorPen(color, width, style) + + Build and assign a pen for both minor grid lines + + In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it + non cosmetic (see `QPen.isCosmetic()`). This method signature has + been introduced to hide this incompatibility. + + :param QColor color: Pen color + :param float width: Pen width + :param Qt.PenStyle style: Pen style + + .. py:method:: setMinorPen(pen) + + Assign a pen for the minor grid lines + + :param QPen pen: New pen + + .. seealso:: + + :py:meth:`minorPen()`, :py:meth:`setMajorPen()`, + :py:meth:`setPen()`, :py:meth:`pen()`, :py:meth:`brush()` + """ if len(args) == 3: color, width, style = args self.setMinorPen(QPen(color, width, style)) @@ -115,6 +261,19 @@ def setMinorPen(self, *args): "given)" % (self.__class__.__name__, len(args))) def draw(self, painter, xMap, yMap, canvasRect): + """ + Draw the grid + + The grid is drawn into the bounding rectangle such that + grid lines begin and end at the rectangle's borders. The X and Y + maps are used to map the scale divisions into the drawing region + screen. + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: X axis map + :param qwt.scale_map.QwtScaleMap yMap: Y axis + :param QRectF canvasRect: Contents rectangle of the plot canvas + """ minorPen = QPen(self.__data.minorPen) minorPen.setCapStyle(Qt.FlatCap) painter.setPen(minorPen) @@ -158,30 +317,90 @@ def drawLines(self, painter, canvasRect, orientation, scaleMap, values): QwtPainter.drawLine(painter, value, y1, value, y2) def majorPen(self): + """ + :return: the pen for the major grid lines + + .. seealso:: + + :py:meth:`setMajorPen()`, :py:meth:`setMinorPen()`, + :py:meth:`setPen()` + """ return self.__data.majorPen def minorPen(self): + """ + :return: the pen for the minor grid lines + + .. seealso:: + + :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()`, + :py:meth:`setPen()` + """ return self.__data.minorPen def xEnabled(self): + """ + :return: True if vertical grid lines are enabled + + .. seealso:: + + :py:meth:`enableX()` + """ return self.__data.xEnabled def yEnabled(self): + """ + :return: True if horizontal grid lines are enabled + + .. seealso:: + + :py:meth:`enableY()` + """ return self.__data.yEnabled def xMinEnabled(self): + """ + :return: True if minor vertical grid lines are enabled + + .. seealso:: + + :py:meth:`enableXMin()` + """ return self.__data.xMinEnabled def yMinEnabled(self): + """ + :return: True if minor horizontal grid lines are enabled + + .. seealso:: + + :py:meth:`enableYMin()` + """ return self.__data.yMinEnabled def xScaleDiv(self): + """ + :return: the scale division of the x axis + """ return self.__data.xScaleDiv def yScaleDiv(self): + """ + :return: the scale division of the y axis + """ return self.__data.yScaleDiv def updateScaleDiv(self, xScaleDiv, yScaleDiv): + """ + Update the grid to changes of the axes scale division + + :param qwt.scale_map.QwtScaleMap xMap: Scale division of the x-axis + :param qwt.scale_map.QwtScaleMap yMap: Scale division of the y-axis + + .. seealso:: + + :py:meth:`updateAxes()` + """ self.setXDiv(xScaleDiv) self.setYDiv(yScaleDiv) \ No newline at end of file diff --git a/qwt/plot_histogram.py b/qwt/plot_histogram.py index 94fa05c..5c3d71f 100644 --- a/qwt/plot_histogram.py +++ b/qwt/plot_histogram.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPlotHistogram +---------------- + +.. autoclass:: QwtPlotHistogram + :members: +""" + from qwt.plot_seriesitem import QwtPlotSeriesItem from qwt.series_store import QwtSeriesStore from qwt.interval import QwtInterval @@ -37,16 +45,66 @@ def __init__(self): class QwtPlotHistogram(QwtPlotSeriesItem, QwtSeriesStore): + """ + `QwtPlotHistogram` represents a series of samples, where an interval + is associated with a value (`y = f([x1,x2])`). + + The representation depends on the style() and an optional symbol() + that is displayed for each interval. + + .. note:: + + The term "histogram" is used in a different way in the areas of + digital image processing and statistics. Wikipedia introduces the + terms "image histogram" and "color histogram" to avoid confusions. + While "image histograms" can be displayed by a QwtPlotCurve there + is no applicable plot item for a "color histogram" yet. + + Histogram styles: + + * `QwtPlotHistogram.Outline`: + + Draw an outline around the area, that is build by all intervals + using the `pen()` and fill it with the `brush()`. The outline style + requires, that the intervals are in increasing order and + not overlapping. + + * `QwtPlotHistogram.Columns`: + + Draw a column for each interval. When a `symbol()` has been set + the symbol is used otherwise the column is displayed as + plain rectangle using `pen()` and `brush()`. + + * `QwtPlotHistogram.Lines`: + + Draw a simple line using the `pen()` for each interval. + + * `QwtPlotHistogram.UserStyle`: + + Styles >= UserStyle are reserved for derived + classes that overload `drawSeries()` with + additional application specific ways to display a histogram. + + + .. py:class:: QwtPlotHistogram([title=None]) + + Constructor + + :param title: Histogram title + :type title: qwt.text.QwtText or str or None + """ # enum HistogramStyle Outline, Columns, Lines = list(range(3)) UserStyle = 100 def __init__(self, title=None): + QwtPlotSeriesItem.__init__(title) self.__data = None self.init() def init(self): + """Initialize data members""" self.__data = QwtPlotHistogram_PrivateData() self.setData(QwtIntervalSeriesData()) self.setItemAttribute(QwtPlotItem.AutoScale, True) @@ -54,15 +112,63 @@ def init(self): self.setZ(20.) def setStyle(self, style): + """ + Set the histogram's drawing style + + Valid histogram styles: + + * `QwtPlotHistogram.Outline`: + * `QwtPlotHistogram.Columns`: + * `QwtPlotHistogram.Lines`: + * `QwtPlotHistogram.UserStyle`: + + :param int style: Histogram style + + .. seealso:: + + :py:meth:`style()` + """ if style != self.__data.style: self.__data.style = style self.legendChanged() self.itemChanged() def style(self): + """ + :return: Style of the histogram + + .. seealso:: + + :py:meth:`setStyle()` + """ return self.__data.style def setPen(self, *args): + """ + Build and/or assign a pen + + .. py:method:: setPen(color, width, style) + + Build and assign a pen + + In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it + non cosmetic (see `QPen.isCosmetic()`). This method signature has + been introduced to hide this incompatibility. + + :param QColor color: Pen color + :param float width: Pen width + :param Qt.PenStyle style: Pen style + + .. py:method:: setPen(pen) + + Assign a pen + + :param QPen pen: New pen + + .. seealso:: + + :py:meth:`pen()`, :py:meth:`brush()` + """ if len(args) not in (1, 2, 3): raise TypeError if isinstance(args[0], QColor): @@ -82,35 +188,114 @@ def setPen(self, *args): self.itemChanged() def pen(self): + """ + :return: Pen used in a style() depending way. + + .. seealso:: + + :py:meth:`setPen()`, :py:meth:`brush()` + """ return self.__data.pen def setBrush(self, brush): + """ + Assign a brush, that is used in a style() depending way. + + :param brush: New brush + :type brush: QBrush or QColor + + .. seealso:: + + :py:meth:`pen()`, :py:meth:`brush()` + """ if brush != self.__data.brush: self.__data.brush = brush self.legendChanged() self.itemChanged() def brush(self): + """ + :return: Brush used in a style() depending way. + + .. seealso:: + + :py:meth:`setPen()`, :py:meth:`brush()` + """ return self.__data.brush def setSymbol(self, symbol): + """ + Assign a symbol + + In Column style an optional symbol can be assigned, that is + responsible for displaying the rectangle that is defined by the + interval and the distance between `baseline()` and value. When no + symbol has been defined the area is displayed as plain rectangle + using `pen()` and `brush()`. + + :param qwt.symbol.QwtSymbol symbol: Symbol + + .. seealso:: + + :py:meth:`style()`, :py:meth:`symbol()`, :py:meth:`drawColumn()`, + :py:meth:`pen()`, :py:meth:`brush()` + + .. note:: + + In applications, where different intervals need to be displayed + in a different way ( f.e different colors or even using different + symbols) it is recommended to overload `drawColumn()`. + """ if symbol != self.__data.symbol: self.__data.symbol = symbol self.legendChanged() self.itemChanged() def symbol(self): + """ + :return: Current symbol or None, when no symbol has been assigned + + .. seealso:: + + :py:meth:`setSymbol()` + """ return self.__data.symbol def setBaseline(self, value): + """ + Set the value of the baseline + + Each column representing an `QwtIntervalSample` is defined by its + interval and the interval between baseline and the value of the sample. + + The default value of the baseline is 0.0. + + :param float value: Value of the baseline + + .. seealso:: + + :py:meth:`baseline()` + """ if value != self.__data.baseline: self.__data.baseline = value self.itemChanged() def baseline(self): + """ + :return: Value of the baseline + + .. seealso:: + + :py:meth:`setBaseline()` + """ return self.__data.baseline def boundingRect(self): + """ + :return: Bounding rectangle of all samples. + + For an empty series the rectangle is invalid. + """ rect = QRectF(self.data().boundingRect()) if not rect.isValid(): return rect @@ -128,15 +313,36 @@ def boundingRect(self): return rect def rtti(self): + """:return: Return `QwtPlotItem.Rtti_PlotHistogram`""" return QwtPlotItem.Rtti_PlotHistogram def setSamples(self, samples): + """ + Initialize data with an array of samples. + + :param samples: Array of points + """ if not isinstance(samples, QwtIntervalSeriesData): self.setData(QwtIntervalSeriesData(samples)) else: self.setData(samples) def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): + """ + Draw a subset of the histogram samples + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + :py:meth:`drawOutline()`, :py:meth:`drawLines()`, + :py:meth:`drawColumns()` + """ if not painter or self.dataSize() <= 0: return if to < 0: @@ -149,6 +355,24 @@ def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): self.drawColumns(painter, xMap, yMap, from_, to) def drawOutline(self, painter, xMap, yMap, from_, to): + """ + Draw a histogram in Outline `style()` + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + :py:meth:`setStyle()`, :py:meth:`style()` + + .. warning:: + + The outline style requires, that the intervals are in increasing + order and not overlapping. + """ doAlign = QwtPainter.roundingAlignment(painter) if self.orientation() == Qt.Horizontal: v0 = xMap.transform(self.baseline()) @@ -195,6 +419,20 @@ def drawOutline(self, painter, xMap, yMap, from_, to): self.flushPolygon(painter, v0, polygon) def drawColumns(self, painter, xMap, yMap, from_, to): + """ + Draw a histogram in Columns `style()` + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + :py:meth:`setStyle()`, :py:meth:`style()`, + :py:meth:`setSymbol()`, :py:meth:`drawColumn()` + """ painter.setPen(self.__data.pen) painter.setBrush(self.__data.brush) series = self.data() @@ -205,6 +443,20 @@ def drawColumns(self, painter, xMap, yMap, from_, to): self.drawColumn(painter, rect, sample) def drawLines(self, painter, xMap, yMap, from_, to): + """ + Draw a histogram in Lines `style()` + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + :py:meth:`setStyle()`, :py:meth:`style()`, + :py:meth:`setPen()` + """ doAlign = QwtPainter.roundingAlignment(painter) painter.setPen(self.__data.pen) painter.setBrush(self.__data.brush) @@ -229,6 +481,7 @@ def drawLines(self, painter, xMap, yMap, from_, to): QwtPainter.drawLine(painter, r.topRight(), r.topLeft()) def flushPolygon(self, painter, baseline, polygon): + """Internal, used by the Outline style.""" if polygon.size() == 0: return if self.orientation() == Qt.Horizontal: @@ -254,6 +507,14 @@ def flushPolygon(self, painter, baseline, polygon): polygon.clear() def columnRect(self, sample, xMap, yMap): + """ + Calculate the area that is covered by a sample + + :param sample: Sample + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :return: Rectangle, that is covered by a sample + """ rect = QwtColumnRect() iv = sample.interval if not iv.isValid(): @@ -283,6 +544,22 @@ def columnRect(self, sample, xMap, yMap): return rect def drawColumn(self, painter, rect, sample): + """ + Draw a column for a sample in Columns `style()` + + When a `symbol()` has been set the symbol is used otherwise the + column is displayed as plain rectangle using `pen()` and `brush()`. + + :param QPainter painter: Painter + :param qwt.column_symbol.QwtColumnRect rect: Rectangle where to paint the column in paint device coordinates + :param sample: Sample to be displayed + + .. note:: + + In applications, where different intervals need to be displayed + in a different way ( f.e different colors or even using different + symbols) it is recommended to overload `drawColumn()`. + """ if self.__data.symbol and\ self.__data.symbol.style() != QwtColumnSymbol.NoStyle: self.__data.symbol.draw(painter, rect) @@ -296,4 +573,16 @@ def drawColumn(self, painter, rect, sample): QwtPainter.drawRect(painter, r) def legendIcon(self, index, size): + """ + A plain rectangle without pen using the brush() + + :param int index: Index of the legend entry (ignored as there is only one) + :param QSizeF size: Icon size + :return: A graphic displaying the icon + + .. seealso:: + + :py:meth:`setLegendIconSize()`, + :py:meth:`qwt.plot.QwtPlotItem.legendData()` + """ return self.defaultIcon(self.__data.brush, size) diff --git a/qwt/plot_layout.py b/qwt/plot_layout.py index 57676d9..7fa7f9e 100644 --- a/qwt/plot_layout.py +++ b/qwt/plot_layout.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPlotLayout +------------- + +.. autoclass:: QwtPlotLayout + :members: +""" + from qwt.text import QwtText from qwt.scale_widget import QwtScaleWidget from qwt.plot import QwtPlot @@ -59,6 +67,7 @@ def __init__(self): self.canvas = CanvasData() def init(self, plot, rect): + """Extract all layout relevant data from the plot components""" # legend if plot.legend(): self.legend.frameWidth = plot.legend().frameWidth() @@ -134,6 +143,26 @@ def __init__(self): class QwtPlotLayout(object): + """ + Layout engine for QwtPlot. + + It is used by the `QwtPlot` widget to organize its internal widgets + or by `QwtPlot.print()` to render its content to a QPaintDevice like + a QPrinter, QPixmap/QImage or QSvgRenderer. + + .. seealso:: + + :py:meth:`qwt.plot.QwtPlot.setPlotLayout()` + + Valid options: + + * `QwtPlotLayout.AlignScales`: Unused + * `QwtPlotLayout.IgnoreScrollbars`: Ignore the dimension of the scrollbars. There are no scrollbars, when the plot is not rendered to widgets. + * `QwtPlotLayout.IgnoreFrames`: Ignore all frames. + * `QwtPlotLayout.IgnoreLegend`: Ignore the legend. + * `QwtPlotLayout.IgnoreTitle`: Ignore the title. + * `QwtPlotLayout.IgnoreFooter`: Ignore the footer. + """ # enum Option AlignScales = 0x01 @@ -151,6 +180,22 @@ def __init__(self): self.invalidate() def setCanvasMargin(self, margin, axis=-1): + """ + Change a margin of the canvas. The margin is the space + above/below the scale ticks. A negative margin will + be set to -1, excluding the borders of the scales. + + :param int margin: New margin + :param int axisId: Axis index + + .. seealso:: + + :py:meth:`canvasMargin()` + + .. warning:: + + The margin will have no effect when `alignCanvasToScale()` is True + """ if margin < 1: margin = -1 if axis == -1: @@ -160,11 +205,49 @@ def setCanvasMargin(self, margin, axis=-1): self.__data.canvasMargin[axis] = margin def canvasMargin(self, axisId): + """ + :param int axisId: Axis index + :return: Margin around the scale tick borders + + .. seealso:: + + :py:meth:`setCanvasMargin()` + """ if axisId < 0 or axisId >= QwtPlot.axisCnt: return 0 return self.__data.canvasMargin[axisId] def setAlignCanvasToScales(self, *args): + """ + Change the align-canvas-to-axis-scales setting. + + .. py:method:: setAlignCanvasToScales(on): + + Set the align-canvas-to-axis-scales flag for all axes + + :param bool on: True/False + + .. py:method:: setAlignCanvasToScales(axisId, on): + + Change the align-canvas-to-axis-scales setting. + The canvas may: + + - extend beyond the axis scale ends to maximize its size, + - align with the axis scale ends to control its size. + + The axisId parameter is somehow confusing as it identifies a + border of the plot and not the axes, that are aligned. F.e when + `QwtPlot.yLeft` is set, the left end of the the x-axes + (`QwtPlot.xTop`, `QwtPlot.xBottom`) is aligned. + + :param int axisId: Axis index + :param bool on: True/False + + .. seealso:: + + :py:meth:`setAlignCanvasToScale()`, + :py:meth:`alignCanvasToScale()` + """ if len(args) == 1: on, = args for axis in range(QwtPlot.axisCnt): @@ -179,17 +262,74 @@ def setAlignCanvasToScales(self, *args): % (self.__class__.__name__, len(args))) def alignCanvasToScale(self, axisId): + """ + Return the align-canvas-to-axis-scales setting. + The canvas may: + + - extend beyond the axis scale ends to maximize its size + - align with the axis scale ends to control its size. + + :param int axisId: Axis index + :return: align-canvas-to-axis-scales setting + + .. seealso:: + + :py:meth:`setAlignCanvasToScale()`, :py:meth:`setCanvasMargin()` + """ if axisId < 0 or axisId >= QwtPlot.axisCnt: return False return self.__data.alignCanvasToScales[axisId] def setSpacing(self, spacing): + """ + Change the spacing of the plot. The spacing is the distance + between the plot components. + + :param int spacing: New spacing + + .. seealso:: + + :py:meth:`setCanvasMargin()`, :py:meth:`spacing()` + """ self.__data.spacing = max([0, spacing]) def spacing(self): + """ + :return: Spacing + + .. seealso:: + + :py:meth:`margin()`, :py:meth:`setSpacing()` + """ return self.__data.spacing def setLegendPosition(self, *args): + """ + Specify the position of the legend + + .. py:method:: setLegendPosition(pos, [ratio=0.]): + + Specify the position of the legend + + :param QwtPlot.LegendPosition pos: Legend position + :param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes + + The legend will be shrunk if it would need more space than the + given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of + <= 0.0 it will be reset to the default ratio. The default + vertical/horizontal ratio is 0.33/0.5. + + Valid position values: + + * `QwtPlot.LeftLegend`, + * `QwtPlot.RightLegend`, + * `QwtPlot.TopLegend`, + * `QwtPlot.BottomLegend` + + .. seealso:: + + :py:meth:`setLegendPosition()` + """ if len(args) == 2: pos, ratio = args if ratio > 1.: @@ -212,48 +352,180 @@ def setLegendPosition(self, *args): "(%s given)" % (self.__class__.__name__, len(args))) def legendPosition(self): + """ + :return: Position of the legend + + .. seealso:: + + :py:meth:`legendPosition()` + """ return self.__data.legendPos def setLegendRatio(self, ratio): + """ + Specify the relative size of the legend in the plot + + :param float ratio: Ratio between legend and the bounding rectangle of title, footer, canvas and axes + + The legend will be shrunk if it would need more space than the + given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of + <= 0.0 it will be reset to the default ratio. The default + vertical/horizontal ratio is 0.33/0.5. + + .. seealso:: + + :py:meth:`legendRatio()` + """ self.setLegendPosition(self.legendPosition(), ratio) def legendRatio(self): + """ + :return: The relative size of the legend in the plot. + + .. seealso:: + + :py:meth:`setLegendRatio()` + """ return self.__data.legendRatio def setTitleRect(self, rect): + """ + Set the geometry for the title + + This method is intended to be used from derived layouts + overloading `activate()` + + :param QRectF rect: Rectangle + + .. seealso:: + + :py:meth:`titleRect()`, :py:meth:`activate()` + """ self.__data.titleRect = rect def titleRect(self): + """ + :return: Geometry for the title + + .. seealso:: + + :py:meth:`invalidate()`, :py:meth:`activate()` + """ return self.__data.titleRect def setFooterRect(self, rect): + """ + Set the geometry for the footer + + This method is intended to be used from derived layouts + overloading `activate()` + + :param QRectF rect: Rectangle + + .. seealso:: + + :py:meth:`footerRect()`, :py:meth:`activate()` + """ self.__data.footerRect = rect def footerRect(self): + """ + :return: Geometry for the footer + + .. seealso:: + + :py:meth:`invalidate()`, :py:meth:`activate()` + """ return self.__data.footerRect def setLegendRect(self, rect): + """ + Set the geometry for the legend + + This method is intended to be used from derived layouts + overloading `activate()` + + :param QRectF rect: Rectangle for the legend + + .. seealso:: + + :py:meth:`footerRect()`, :py:meth:`activate()` + """ self.__data.legendRect = rect def legendRect(self): + """ + :return: Geometry for the legend + + .. seealso:: + + :py:meth:`invalidate()`, :py:meth:`activate()` + """ return self.__data.legendRect def setScaleRect(self, axis, rect): + """ + Set the geometry for an axis + + This method is intended to be used from derived layouts + overloading `activate()` + + :param int axisId: Axis index + :param QRectF rect: Rectangle for the scale + + .. seealso:: + + :py:meth:`scaleRect()`, :py:meth:`activate()` + """ if axis >= 0 and axis < QwtPlot.axisCnt: self.__data.scaleRect[axis] = rect def scaleRect(self, axis): + """ + :param int axisId: Axis index + :return: Geometry for the scale + + .. seealso:: + + :py:meth:`invalidate()`, :py:meth:`activate()` + """ if axis < 0 or axis >= QwtPlot.axisCnt: return QRectF() return self.__data.scaleRect[axis] def setCanvasRect(self, rect): + """ + Set the geometry for the canvas + + This method is intended to be used from derived layouts + overloading `activate()` + + :param QRectF rect: Rectangle + + .. seealso:: + + :py:meth:`canvasRect()`, :py:meth:`activate()` + """ self.__data.canvasRect = rect def canvasRect(self): + """ + :return: Geometry for the canvas + + .. seealso:: + + :py:meth:`invalidate()`, :py:meth:`activate()` + """ return self.__data.canvasRect def invalidate(self): + """ + Invalidate the geometry of all components. + + .. seealso:: + + :py:meth:`activate()` + """ self.__data.titleRect = QRectF() self.__data.footerRect = QRectF() self.__data.legendRect = QRectF() @@ -262,6 +534,14 @@ def invalidate(self): self.__data.scaleRect[axis] = QRectF() def minimumSizeHint(self, plot): + """ + :param qwt.plot.QwtPlot plot: Plot widget + :return: Minimum size hint + + .. seealso:: + + :py:meth:`qwt.plot.QwtPlot.minimumSizeHint()` + """ class _ScaleData(object): def __init__(self): self.w = 0 @@ -363,6 +643,13 @@ def __init__(self): return QSize(w, h) def layoutLegend(self, options, rect): + """ + Find the geometry for the legend + + :param options: Options how to layout the legend + :param QRectF rect: Rectangle where to place the legend + :return: Geometry for the legend + """ hint = self.__data.layoutData.legend.hint if self.__data.legendPos in (QwtPlot.LeftLegend, QwtPlot.RightLegend): dim = min([hint.width(), int(rect.width()*self.__data.legendRatio)]) @@ -386,6 +673,13 @@ def layoutLegend(self, options, rect): return legendRect def alignLegend(self, canvasRect, legendRect): + """ + Align the legend to the canvas + + :param QRectF canvasRect: Geometry of the canvas + :param QRectF legendRect: Maximum geometry for the legend + :return: Geometry for the aligned legend + """ alignedRect = legendRect if self.__data.legendPos in (QwtPlot.BottomLegend, QwtPlot.TopLegend): if self.__data.layoutData.legend.hint.width() < canvasRect.width(): @@ -398,6 +692,20 @@ def alignLegend(self, canvasRect, legendRect): return alignedRect def expandLineBreaks(self, options, rect): + """ + Expand all line breaks in text labels, and calculate the height + of their widgets in orientation of the text. + + :param options: Options how to layout the legend + :param QRectF rect: Bounding rectangle for title, footer, axes and canvas. + :return: tuple `(dimTitle, dimFooter, dimAxis)` + + Returns: + + * `dimTitle`: Expanded height of the title widget + * `dimFooter`: Expanded height of the footer widget + * `dimAxis`: Expanded heights of the axis in axis orientation. + """ dimTitle = dimFooter = 0 dimAxis = [0 for axis in range(QwtPlot.axisCnt)] backboneOffset = [0 for _i in range(QwtPlot.axisCnt)] @@ -409,6 +717,13 @@ def expandLineBreaks(self, options, rect): done = False while not done: done = True + # the size for the 4 axis depend on each other. Expanding + # the height of a horizontal axis will shrink the height + # for the vertical axis, shrinking the height of a vertical + # axis will result in a line break what will expand the + # width and results in shrinking the width of a horizontal + # axis what might result in a line break of a horizontal + # axis ... . So we loop as long until no size changes. if not ((options & self.IgnoreTitle) or \ self.__data.layoutData.title.text.isEmpty()): w = rect.width() @@ -470,6 +785,14 @@ def expandLineBreaks(self, options, rect): return dimTitle, dimFooter, dimAxis def alignScales(self, options, canvasRect, scaleRect): + """ + Align the ticks of the axis to the canvas borders using + the empty corners. + + :param options: Options how to layout the legend + :param QRectF canvasRect: Geometry of the canvas ( IN/OUT ) + :param QRectF scaleRect: Geometry of the scales ( IN/OUT ) + """ backboneOffset = [0 for _i in range(QwtPlot.axisCnt)] for axis in range(QwtPlot.axisCnt): backboneOffset[axis] = 0 @@ -596,6 +919,13 @@ def alignScales(self, options, canvasRect, scaleRect): sRect.setLeft(canvasRect.right()) def activate(self, plot, plotRect, options=0x00): + """ + Recalculate the geometry of all components. + + :param qwt.plot.QwtPlot plot: Plot to be layout + :param QRectF plotRect: Rectangle where to place the components + :param options: Layout options + """ self.invalidate() rect = QRectF(plotRect) self.__data.layoutData.init(plot, rect) @@ -629,6 +959,13 @@ def activate(self, plot, plotRect, options=0x00): # | Footer | # +---+-----------+---+ + # title, footer and axes include text labels. The height of each + # label depends on its line breaks, that depend on the width + # for the label. A line break in a horizontal text will reduce + # the available width for vertical texts and vice versa. + # expandLineBreaks finds the height/width for title, footer and axes + # including all line breaks. + dimTitle, dimFooter, dimAxes = self.expandLineBreaks(options, rect) if dimTitle > 0: self.__data.titleRect.setRect(rect.left(), rect.top(), @@ -686,6 +1023,11 @@ def activate(self, plot, plotRect, options=0x00): # +-V-+-----------+-V-+ # | <- Axis -> | # +---+-----------+---+ + + # The ticks of the axes - not the labels above - should + # be aligned to the canvas. So we try to use the empty + # corners to extend the axes, so that the label texts + # left/right of the min/max ticks are moved into them. self.alignScales(options, self.__data.canvasRect, self.__data.scaleRect) From 2af0ac645e990636f61f40e31212df099c168f00 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 27 Sep 2015 19:14:49 +0200 Subject: [PATCH 025/421] Added docstrings for plot_marker module --- doc/reference/index.rst | 1 + doc/reference/plot_marker.rst | 2 + qwt/plot_marker.py | 257 +++++++++++++++++++++++++++++++++- 3 files changed, 259 insertions(+), 1 deletion(-) create mode 100644 doc/reference/plot_marker.rst diff --git a/doc/reference/index.rst b/doc/reference/index.rst index 931cb25..149e89c 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -19,3 +19,4 @@ Main `python-qwt` classes: plot_grid plot_histogram plot_layout + plot_marker diff --git a/doc/reference/plot_marker.rst b/doc/reference/plot_marker.rst new file mode 100644 index 0000000..7e2f379 --- /dev/null +++ b/doc/reference/plot_marker.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.plot_marker + :members: diff --git a/qwt/plot_marker.py b/qwt/plot_marker.py index 87e05e4..f8967fa 100644 --- a/qwt/plot_marker.py +++ b/qwt/plot_marker.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPlotMarker +------------- + +.. autoclass:: QwtPlotMarker + :members: +""" + from qwt.plot import QwtPlotItem from qwt.text import QwtText from qwt.painter import QwtPainter @@ -29,11 +37,36 @@ def __init__(self): class QwtPlotMarker(QwtPlotItem): + """ + A class for drawing markers + + A marker can be a horizontal line, a vertical line, + a symbol, a label or any combination of them, which can + be drawn around a center point inside a bounding rectangle. + + The `setSymbol()` member assigns a symbol to the marker. + The symbol is drawn at the specified point. + + With `setLabel()`, a label can be assigned to the marker. + The `setLabelAlignment()` member specifies where the label is drawn. All + the Align*-constants in `Qt.AlignmentFlags` (see Qt documentation) + are valid. The interpretation of the alignment depends on the marker's + line style. The alignment refers to the center point of + the marker, which means, for example, that the label would be printed + left above the center point if the alignment was set to + `Qt.AlignLeft | Qt.AlignTop`. + + Line styles: + + * `QwtPlotMarker.NoLine`: No line + * `QwtPlotMarker.HLine`: A horizontal line + * `QwtPlotMarker.VLine`: A vertical line + * `QwtPlotMarker.Cross`: A crosshair + """ # enum LineStyle NoLine, HLine, VLine, Cross = list(range(4)) - def __init__(self, title=None): if title is None: title = "" @@ -44,18 +77,34 @@ def __init__(self, title=None): self.setZ(30.) def rtti(self): + """:return: `QwtPlotItem.Rtti_PlotMarker`""" return QwtPlotItem.Rtti_PlotMarker def value(self): + """:return: Value""" return QPointF(self.__data.xValue, self.__data.yValue) def xValue(self): + """:return: x Value""" return self.__data.xValue def yValue(self): + """:return: y Value""" return self.__data.yValue def setValue(self, *args): + """ + Set Value + + .. py:method:: setValue(pos): + + :param QPointF pos: Position + + .. py:method:: setValue(x, y): + + :param float x: x position + :param float y: y position + """ if len(args) == 1: pos, = args self.setValue(pos.x(), pos.y()) @@ -70,12 +119,30 @@ def setValue(self, *args): % (self.__class__.__name__, len(args))) def setXValue(self, x): + """ + Set X Value + + :param float x: x position + """ self.setValue(x, self.__data.yValue) def setYValue(self, y): + """ + Set Y Value + + :param float y: y position + """ self.setValue(self.__data.xValue, y) def draw(self, painter, xMap, yMap, canvasRect): + """ + Draw the marker + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: x Scale Map + :param qwt.scale_map.QwtScaleMap yMap: y Scale Map + :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates + """ pos = QPointF(xMap.transform(self.__data.xValue), yMap.transform(self.__data.yValue)) self.drawLines(painter, canvasRect, pos) @@ -89,6 +156,18 @@ def draw(self, painter, xMap, yMap, canvasRect): self.drawLabel(painter, canvasRect, pos) def drawLines(self, painter, canvasRect, pos): + """ + Draw the lines marker + + :param QPainter painter: Painter + :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates + :param QPointF pos: Position of the marker, translated into widget coordinates + + .. seealso:: + + :py:meth:`drawLabel()`, + :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()` + """ if self.__data.style == self.NoLine: return doAlign = QwtPainter.roundingAlignment(painter) @@ -107,17 +186,33 @@ def drawLines(self, painter, canvasRect, pos): canvasRect.top(), x, canvasRect.bottom()-1.) def drawLabel(self, painter, canvasRect, pos): + """ + Align and draw the text label of the marker + + :param QPainter painter: Painter + :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates + :param QPointF pos: Position of the marker, translated into widget coordinates + + .. seealso:: + + :py:meth:`drawLabel()`, + :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()` + """ if self.__data.label.isEmpty(): return align = Qt.Alignment(self.__data.labelAlignment) alignPos = QPointF(pos) symbolOff = QSizeF(0, 0) if self.__data.style == QwtPlotMarker.VLine: + # In VLine-style the y-position is pointless and + # the alignment flags are relative to the canvas if bool(self.__data.labelAlignment & Qt.AlignTop): alignPos.setY(canvasRect.top()) align &= ~Qt.AlignTop align |= Qt.AlignBottom elif bool(self.__data.labelAlignment & Qt.AlignBottom): + # In HLine-style the x-position is pointless and + # the alignment flags are relative to the canvas alignPos.setY(canvasRect.bottom()-1) align &= ~Qt.AlignBottom align |= Qt.AlignTop @@ -179,15 +274,47 @@ def drawLabel(self, painter, canvasRect, pos): self.__data.label.draw(painter, textRect) def setLineStyle(self, style): + """ + Set the line style + + :param int style: Line style + + Line styles: + + * `QwtPlotMarker.NoLine`: No line + * `QwtPlotMarker.HLine`: A horizontal line + * `QwtPlotMarker.VLine`: A vertical line + * `QwtPlotMarker.Cross`: A crosshair + + .. seealso:: + + :py:meth:`lineStyle()` + """ if style != self.__data.style: self.__data.style = style self.legendChanged() self.itemChanged() def lineStyle(self): + """ + :return: the line style + + .. seealso:: + + :py:meth:`setLineStyle()` + """ return self.__data.style def setSymbol(self, symbol): + """ + Assign a symbol + + :param qwt.symbol.QwtSymbol symbol: New symbol + + .. seealso:: + + :py:meth:`symbol()` + """ if symbol != self.__data.symbol: self.__data.symbol = symbol if symbol is not None: @@ -196,33 +323,112 @@ def setSymbol(self, symbol): self.itemChanged() def symbol(self): + """ + :return: the symbol + + .. seealso:: + + :py:meth:`setSymbol()` + """ return self.__data.symbol def setLabel(self, label): + """ + Set the label + + :param label: Label text + :type label: qwt.text.QwtText or str + + .. seealso:: + + :py:meth:`label()` + """ if label != self.__data.label: self.__data.label = label self.itemChanged() def label(self): + """ + :return: the label + + .. seealso:: + + :py:meth:`setLabel()` + """ return self.__data.label def setLabelAlignment(self, align): + """ + Set the alignment of the label + + In case of `QwtPlotMarker.HLine` the alignment is relative to the + y position of the marker, but the horizontal flags correspond to the + canvas rectangle. In case of `QwtPlotMarker.VLine` the alignment is + relative to the x position of the marker, but the vertical flags + correspond to the canvas rectangle. + + In all other styles the alignment is relative to the marker's position. + + :param Qt.Alignment align: Alignment + + .. seealso:: + + :py:meth:`labelAlignment()`, :py:meth:`labelOrientation()` + """ if align != self.__data.labelAlignment: self.__data.labelAlignment = align self.itemChanged() def labelAlignment(self): + """ + :return: the label alignment + + .. seealso:: + + :py:meth:`setLabelAlignment()`, :py:meth:`setLabelOrientation()` + """ return self.__data.labelAlignment def setLabelOrientation(self, orientation): + """ + Set the orientation of the label + + When orientation is `Qt.Vertical` the label is rotated by 90.0 degrees + (from bottom to top). + + :param Qt.Orientation orientation: Orientation of the label + + .. seealso:: + + :py:meth:`labelOrientation()`, :py:meth:`setLabelAlignment()` + """ if orientation != self.__data.labelOrientation: self.__data.labelOrientation = orientation self.itemChanged() def labelOrientation(self): + """ + :return: the label orientation + + .. seealso:: + + :py:meth:`setLabelOrientation()`, :py:meth:`labelAlignment()` + """ return self.__data.labelOrientation def setSpacing(self, spacing): + """ + Set the spacing + + When the label is not centered on the marker position, the spacing + is the distance between the position and the label. + + :param int spacing: Spacing + + .. seealso:: + + :py:meth:`spacing()`, :py:meth:`setLabelAlignment()` + """ if spacing < 0: spacing = 0 if spacing != self.__data.spacing: @@ -230,10 +436,42 @@ def setSpacing(self, spacing): self.itemChanged() def spacing(self): + """ + :return: the spacing + + .. seealso:: + + :py:meth:`setSpacing()` + """ return self.__data.spacing def setLinePen(self, *args): + """ + Build and/or assigna a line pen, depending on the arguments. + + .. py:method:: setPen(color, width, style) + + Build and assign a line pen + + In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it + non cosmetic (see `QPen.isCosmetic()`). This method signature has + been introduced to hide this incompatibility. + + :param QColor color: Pen color + :param float width: Pen width + :param Qt.PenStyle style: Pen style + + .. py:method:: setPen(pen) + + Specify a pen for the line. + + :param QPen pen: New pen + + .. seealso:: + + :py:meth:`pen()`, :py:meth:`brush()` + """ if len(args) == 1 and isinstance(args[0], QPen): pen, = args elif len(args) in (1, 2, 3): @@ -254,12 +492,29 @@ def setLinePen(self, *args): self.itemChanged() def linePen(self): + """ + :return: the line pen + + .. seealso:: + + :py:meth:`setLinePen()` + """ return self.__data.pen def boundingRect(self): return QRectF(self.__data.xValue, self.__data.yValue, 0., 0.) def legendIcon(self, index, size): + """ + :param int index: Index of the legend entry (ignored as there is only one) + :param QSizeF size: Icon size + :return: Icon representing the marker on the legend + + .. seealso:: + + :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`, + :py:meth:`qwt.plot.QwtPlotItem.legendData()` + """ if size.isEmpty(): return QwtGraphic() icon = QwtGraphic() From 6a1c67c331f9c7c4e5b57c2b2f5d898e5fcf9638 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 27 Sep 2015 22:52:17 +0200 Subject: [PATCH 026/421] Added docstrings for plot_renderer and plot_seriesitem modules --- doc/reference/index.rst | 2 + doc/reference/plot_renderer.rst | 2 + doc/reference/plot_seriesitem.rst | 2 + qwt/plot_renderer.py | 230 ++++++++++++++++++++++++++++++ qwt/plot_seriesitem.py | 37 +++++ 5 files changed, 273 insertions(+) create mode 100644 doc/reference/plot_renderer.rst create mode 100644 doc/reference/plot_seriesitem.rst diff --git a/doc/reference/index.rst b/doc/reference/index.rst index 149e89c..cb61a28 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -20,3 +20,5 @@ Main `python-qwt` classes: plot_histogram plot_layout plot_marker + plot_renderer + plot_seriesitem diff --git a/doc/reference/plot_renderer.rst b/doc/reference/plot_renderer.rst new file mode 100644 index 0000000..b796f96 --- /dev/null +++ b/doc/reference/plot_renderer.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.plot_renderer + :members: diff --git a/doc/reference/plot_seriesitem.rst b/doc/reference/plot_seriesitem.rst new file mode 100644 index 0000000..b91a6c6 --- /dev/null +++ b/doc/reference/plot_seriesitem.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.plot_seriesitem + :members: diff --git a/qwt/plot_renderer.py b/qwt/plot_renderer.py index 0591c11..e4bf9d6 100644 --- a/qwt/plot_renderer.py +++ b/qwt/plot_renderer.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPlotRenderer +--------------- + +.. autoclass:: QwtPlotRenderer + :members: +""" + from __future__ import division from qwt.painter import QwtPainter @@ -25,6 +33,11 @@ def qwtCanvasClip(canvas, canvasRect): + """ + The clip region is calculated in integers + To avoid too much rounding errors better + calculate it in target device resolution + """ x1 = np.ceil(canvasRect.left()) x2 = np.floor(canvasRect.right()) y1 = np.ceil(canvasRect.top()) @@ -39,6 +52,30 @@ def __init__(self): self.layoutFlags = QwtPlotRenderer.DefaultLayout class QwtPlotRenderer(QObject): + """ + Renderer for exporting a plot to a document, a printer + or anything else, that is supported by QPainter/QPaintDevice + + Discard flags: + + * `QwtPlotRenderer.DiscardNone`: Render all components of the plot + * `QwtPlotRenderer.DiscardBackground`: Don't render the background of the plot + * `QwtPlotRenderer.DiscardTitle`: Don't render the title of the plot + * `QwtPlotRenderer.DiscardLegend`: Don't render the legend of the plot + * `QwtPlotRenderer.DiscardCanvasBackground`: Don't render the background of the canvas + * `QwtPlotRenderer.DiscardFooter`: Don't render the footer of the plot + * `QwtPlotRenderer.DiscardCanvasFrame`: Don't render the frame of the canvas + + .. note:: + + The `QwtPlotRenderer.DiscardCanvasFrame` flag has no effect when using + style sheets, where the frame is part of the background + + Layout flags: + + * `QwtPlotRenderer.DefaultLayout`: Use the default layout as on screen + * `QwtPlotRenderer.FrameWithScales`: Instead of the scales a box is painted around the plot canvas, where the scale ticks are aligned to. + """ # enum DiscardFlag DiscardNone = 0x00 @@ -58,37 +95,123 @@ def __init__(self, parent=None): self.__data = QwtPlotRenderer_PrivateData() def setDiscardFlag(self, flag, on): + """ + Change a flag, indicating what to discard from rendering + + :param int flag: Flag to change + :param bool on: On/Off + + .. seealso:: + + :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlags()`, + :py:meth:`discardFlags()` + """ if on: self.__data.discardFlags |= flag else: self.__data.discardFlags &= ~flag def testDiscardFlag(self, flag): + """ + :param int flag: Flag to be tested + :return: True, if flag is enabled. + + .. seealso:: + + :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`, + :py:meth:`discardFlags()` + """ return self.__data.discardFlags & flag def setDiscardFlags(self, flags): + """ + Set the flags, indicating what to discard from rendering + + :param int flags: Flags + + .. seealso:: + + :py:meth:`testDiscardFlag()`, :py:meth:`setDiscardFlag()`, + :py:meth:`discardFlags()` + """ self.__data.discardFlags = flags def discardFlags(self): + """ + :return: Flags, indicating what to discard from rendering + + .. seealso:: + + :py:meth:`setDiscardFlag()`, :py:meth:`setDiscardFlags()`, + :py:meth:`testDiscardFlag()` + """ return self.__data.discardFlags def setLayoutFlag(self, flag, on): + """ + Change a layout flag + + :param int flag: Flag to change + + .. seealso:: + + :py:meth:`testLayoutFlag()`, :py:meth:`setLayoutFlags()`, + :py:meth:`layoutFlags()` + """ if on: self.__data.layoutFlags |= flag else: self.__data.layoutFlags &= ~flag def testLayoutFlag(self, flag): + """ + :param int flag: Flag to be tested + :return: True, if flag is enabled. + + .. seealso:: + + :py:meth:`setLayoutFlag()`, :py:meth:`setLayoutFlags()`, + :py:meth:`layoutFlags()` + """ return self.__data.layoutFlags & flag def setLayoutFlags(self, flags): + """ + Set the layout flags + + :param int flags: Flags + + .. seealso:: + + :py:meth:`setLayoutFlag()`, :py:meth:`testLayoutFlag()`, + :py:meth:`layoutFlags()` + """ self.__data.layoutFlags = flags def layoutFlags(self): + """ + :return: Layout flags + + .. seealso:: + + :py:meth:`setLayoutFlags()`, :py:meth:`setLayoutFlag()`, + :py:meth:`testLayoutFlag()` + """ return self.__data.layoutFlags def renderDocument(self, plot, filename, sizeMM=(300, 200), resolution=85, format_=None): + """ + Render a plot to a file + + The format of the document will be auto-detected from the + suffix of the file name. + + :param qwt.plot.QwtPlot plot: Plot widget + :param str fileName: Path of the file, where the document will be stored + :param QSizeF sizeMM: Size for the document in millimeters + :param int resolution: Resolution in dots per Inch (dpi) + """ if isinstance(sizeMM, tuple): sizeMM = QSizeF(*sizeMM) if format_ is None: @@ -144,6 +267,30 @@ def renderDocument(self, plot, filename, sizeMM=(300, 200), resolution=85, raise TypeError("Unsupported file format '%s'" % fmt) def renderTo(self, plot, dest): + """ + Render a plot to a file + + Supported formats are: + + - pdf: Portable Document Format PDF + - ps: Postcript + - svg: Scalable Vector Graphics SVG + - all image formats supported by Qt, see QImageWriter.supportedImageFormats() + + Scalable vector graphic formats like PDF or SVG are superior to + raster graphics formats. + + :param qwt.plot.QwtPlot plot: Plot widget + :param str fileName: Path of the file, where the document will be stored + :param str format: Format for the document + :param QSizeF sizeMM: Size for the document in millimeters. + :param int resolution: Resolution in dots per Inch (dpi) + + .. seealso:: + + :py:meth:`renderTo()`, :py:meth:`render()`, + :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()` + """ if isinstance(dest, QPaintDevice): w = dest.width() h = dest.height() @@ -165,12 +312,28 @@ def renderTo(self, plot, dest): self.render(plot, p, rect) def render(self, plot, painter, plotRect): + """ + Paint the contents of a QwtPlot instance into a given rectangle. + + :param qwt.plot.QwtPlot plot: Plot to be rendered + :param QPainter painter: Painter + :param str format: Format for the document + :param QRectF plotRect: Bounding rectangle + + .. seealso:: + + :py:meth:`renderDocument()`, :py:meth:`renderTo()`, + :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()` + """ if painter == 0 or not painter.isActive() or not plotRect.isValid()\ or plot.size().isNull(): return if not self.__data.discardFlags & self.DiscardBackground: QwtPainter.drawBackground(painter, plotRect, plot) + # The layout engine uses the same methods as they are used + # by the Qt layout system. Therefore we need to calculate the + # layout in screen coordinates and paint with a scaled painter. transform = QTransform() transform.scale(float(painter.device().logicalDpiX())/plot.logicalDpiX(), float(painter.device().logicalDpiY())/plot.logicalDpiY()) @@ -194,6 +357,9 @@ def render(self, plot, painter, plotRect): scaleWidget.setMargin(0) if not plot.axisEnabled(axisId): left, right, top, bottom = 0, 0, 0, 0 + # When we have a scale the frame is painted on + # the position of the backbone - otherwise we + # need to introduce a margin around the canvas if axisId == QwtPlot.yLeft: layoutRect.adjust(1, 0, 0, 0) elif axisId == QwtPlot.yRight: @@ -204,6 +370,7 @@ def render(self, plot, painter, plotRect): layoutRect.adjust(0, 0, 0, -1) layoutRect.adjust(left, top, right, bottom) + # Calculate the layout for the document. layoutOptions = QwtPlotLayout.IgnoreScrollbars if self.__data.layoutFlags & self.FrameWithScales or\ @@ -221,6 +388,8 @@ def render(self, plot, painter, plotRect): maps = self.buildCanvasMaps(plot, layout.canvasRect()) if self.updateCanvasMargins(plot, layout.canvasRect(), maps): + # recalculate maps and layout, when the margins + # have been changed layout.activate(plot, layoutRect, layoutOptions) maps = self.buildCanvasMaps(plot, layout.canvasRect()) @@ -261,24 +430,57 @@ def render(self, plot, painter, plotRect): layout.invalidate() def renderTitle(self, plot, painter, rect): + """ + Render the title into a given rectangle. + + :param qwt.plot.QwtPlot plot: Plot widget + :param QPainter painter: Painter + :param QRectF rect: Bounding rectangle + """ painter.setFont(plot.titleLabel().font()) color = plot.titleLabel().palette().color(QPalette.Active, QPalette.Text) painter.setPen(color) plot.titleLabel().text().draw(painter, rect) def renderFooter(self, plot, painter, rect): + """ + Render the footer into a given rectangle. + + :param qwt.plot.QwtPlot plot: Plot widget + :param QPainter painter: Painter + :param QRectF rect: Bounding rectangle + """ painter.setFont(plot.footerLabel().font()) color = plot.footerLabel().palette().color(QPalette.Active, QPalette.Text) painter.setPen(color) plot.footerLabel().text().draw(painter, rect) def renderLegend(self, plot, painter, rect): + """ + Render the legend into a given rectangle. + + :param qwt.plot.QwtPlot plot: Plot widget + :param QPainter painter: Painter + :param QRectF rect: Bounding rectangle + """ if plot.legend(): fillBackground = not self.__data.discardFlags & self.DiscardBackground plot.legend().renderLegend(painter, rect, fillBackground) def renderScale(self, plot, painter, axisId, startDist, endDist, baseDist, rect): + """ + Paint a scale into a given rectangle. + Paint the scale into a given rectangle. + + :param qwt.plot.QwtPlot plot: Plot widget + :param QPainter painter: Painter + :param int axisId: Axis + :param int startDist: Start border distance + :param int endDist: End border distance + :param int baseDist: Base distance + :param QRectF rect: Bounding rectangle + """ if not plot.axisEnabled(axisId): return scaleWidget = plot.axisWidget(axisId) @@ -322,6 +524,14 @@ def renderScale(self, plot, painter, axisId, startDist, endDist, painter.restore() def renderCanvas(self, plot, painter, canvasRect, maps): + """ + Render the canvas into a given rectangle. + + :param qwt.plot.QwtPlot plot: Plot widget + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap maps: mapping between plot and paint device coordinates + :param QRectF rect: Bounding rectangle + """ canvas = plot.canvas() r = canvasRect.adjusted(0., 0., -1., 1.) if self.__data.layoutFlags & self.FrameWithScales: @@ -385,6 +595,13 @@ def renderCanvas(self, plot, painter, canvasRect, maps): painter.restore() def buildCanvasMaps(self, plot, canvasRect): + """ + Calculated the scale maps for rendering the canvas + + :param qwt.plot.QwtPlot plot: Plot widget + :param QRectF canvasRect: Target rectangle + :return: Calculated scale maps + """ maps = [] for axisId in range(QwtPlot.axisCnt): map_ = QwtScaleMap() @@ -426,6 +643,19 @@ def updateCanvasMargins(self, plot, canvasRect, maps): return marginsChanged def exportTo(self, plot, documentname, sizeMM=None, resolution=85): + """ + Execute a file dialog and render the plot to the selected file + + :param qwt.plot.QwtPlot plot: Plot widget + :param str documentName: Default document name + :param QSizeF sizeMM: Size for the document in millimeters + :param int resolution: Resolution in dots per Inch (dpi) + :return: True, when exporting was successful + + .. seealso:: + + :py:meth:`renderDocument()` + """ if plot is None: return if sizeMM is None: diff --git a/qwt/plot_seriesitem.py b/qwt/plot_seriesitem.py index b52ee42..131ba84 100644 --- a/qwt/plot_seriesitem.py +++ b/qwt/plot_seriesitem.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtPlotSeriesItem +----------------- + +.. autoclass:: QwtPlotSeriesItem + :members: +""" + from qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData from qwt.text import QwtText from qwt.series_store import QwtAbstractSeriesStore @@ -19,6 +27,9 @@ def __init__(self): class QwtPlotSeriesItem(QwtPlotItem, QwtAbstractSeriesStore): + """ + Base class for plot items representing a series of samples + """ def __init__(self, title): QwtAbstractSeriesStore.__init__(self) if not isinstance(title, QwtText): @@ -27,15 +38,41 @@ def __init__(self, title): self.__data = QwtPlotSeriesItem_PrivateData() def setOrientation(self, orientation): + """ + Set the orientation of the item. + + The `orientation()` might be used in specific way by a plot item. + F.e. a QwtPlotCurve uses it to identify how to display the curve + int `QwtPlotCurve.Steps` or `QwtPlotCurve.Sticks` style. + + .. seealso:: + + :py:meth`orientation()` + """ if self.__data.orientation != orientation: self.__data.orientation = orientation self.legendChanged() self.itemChanged() def orientation(self): + """ + :return: Orientation of the plot item + + .. seealso:: + + :py:meth`setOrientation()` + """ return self.__data.orientation def draw(self, painter, xMap, yMap, canvasRect): + """ + Draw the complete series + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + """ self.drawSeries(painter, xMap, yMap, canvasRect, 0, -1) def boundingRect(self): From dc4c57d7937014818d167daee8c35d999b071359 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 1 Oct 2015 22:16:14 +0200 Subject: [PATCH 027/421] Added docstrings for various modules, removed unnecessary data classes, etc. --- doc/index.rst | 1 + doc/overview.rst | 25 ++ doc/reference/index.rst | 7 +- doc/reference/scale_div.rst | 2 + doc/reference/scale_draw.rst | 2 + doc/reference/scale_engine.rst | 2 + doc/reference/scale_widget.rst | 2 + doc/reference/series_data.rst | 2 + doc/reference/toqimage.rst | 2 + qwt/__init__.py | 4 +- qwt/plot.py | 27 -- qwt/plot_curve.py | 31 +- qwt/plot_histogram.py | 588 --------------------------------- qwt/point_data.py | 106 ------ qwt/point_mapper.py | 254 +++++++++++--- qwt/sample.py | 82 ----- qwt/scale_div.py | 173 +++++++++- qwt/scale_draw.py | 585 ++++++++++++++++++++++++++++++++ qwt/scale_engine.py | 404 ++++++++++++++++++++++ qwt/scale_map.py | 111 ++++++- qwt/scale_widget.py | 367 ++++++++++++++++++++ qwt/series_data.py | 270 +++++++-------- qwt/toqimage.py | 15 +- 23 files changed, 2038 insertions(+), 1024 deletions(-) create mode 100644 doc/reference/scale_div.rst create mode 100644 doc/reference/scale_draw.rst create mode 100644 doc/reference/scale_engine.rst create mode 100644 doc/reference/scale_widget.rst create mode 100644 doc/reference/series_data.rst create mode 100644 doc/reference/toqimage.rst delete mode 100644 qwt/plot_histogram.py delete mode 100644 qwt/point_data.py delete mode 100644 qwt/sample.py diff --git a/doc/index.rst b/doc/index.rst index 0215329..cd24ebd 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -7,6 +7,7 @@ Contents: :maxdepth: 2 overview + limitations installation examples/index reference/index diff --git a/doc/overview.rst b/doc/overview.rst index f4acbb6..add7a8e 100644 --- a/doc/overview.rst +++ b/doc/overview.rst @@ -25,6 +25,31 @@ only plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem`, `QwtPlotHistogram`, `QwtPlotCurve`. +The `HistogramItem` object implemented in PyQwt's HistogramDemo.py is not +available here as a similar item is already implemented in `guiqwt`. As a +consequence, the following classes are not implemented: `QwtPlotHistogram`, +`QwtIntervalSeriesData`, `QwtIntervalSample`. + +The following data structure objects are not implemented as they seemed not +relevant with Python and NumPy: `QwtCPointerData` (As a consequence, method +`QwtPlot.setRawSamples` is not implemented), `QwtSyntheticPointData`. + +The following sample data type objects are not implemented as they seemed +quite specific: `QwtSetSample`, `QwtOHLCSample`. For similar reasons, the +`QwtPointPolar` class and the following sample iterator objects are not +implemented: `QwtSetSeriesData`, `QwtTradingChartData`, +`QwtPoint3DSeriesData`, `QwtArraySeriesData`, `QwtPointSeriesData`. + +Threads: + + - Multiple threads for graphic rendering is implemented in Qwt C++ code + thanks to the `QtConcurrent` and `QFuture` Qt features which are + currently not supported by PyQt. + - As a consequence the following API is not supported in `python-qwt`: + - `QwtPlotItem.renderThreadCount` + - `QwtPlotItem.setRenderThreadCount` + - option `numThreads` in `QwtPointMapper.toImage` + The `QwtClipper` class is not implemented yet (and it will probably be very difficult or even impossible to implement it in pure Python without performance issues). As a consequence, when zooming in a plot curve, the diff --git a/doc/reference/index.rst b/doc/reference/index.rst index cb61a28..0705b9b 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -17,8 +17,13 @@ Main `python-qwt` classes: plot_curve plot_directpainter plot_grid - plot_histogram plot_layout plot_marker plot_renderer plot_seriesitem + scale_div + scale_draw + scale_engine + scale_widget + series_data + toqimage diff --git a/doc/reference/scale_div.rst b/doc/reference/scale_div.rst new file mode 100644 index 0000000..b965e4c --- /dev/null +++ b/doc/reference/scale_div.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.scale_div + :members: diff --git a/doc/reference/scale_draw.rst b/doc/reference/scale_draw.rst new file mode 100644 index 0000000..66189f6 --- /dev/null +++ b/doc/reference/scale_draw.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.scale_draw + :members: diff --git a/doc/reference/scale_engine.rst b/doc/reference/scale_engine.rst new file mode 100644 index 0000000..65ad334 --- /dev/null +++ b/doc/reference/scale_engine.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.scale_engine + :members: diff --git a/doc/reference/scale_widget.rst b/doc/reference/scale_widget.rst new file mode 100644 index 0000000..85072c3 --- /dev/null +++ b/doc/reference/scale_widget.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.scale_widget + :members: diff --git a/doc/reference/series_data.rst b/doc/reference/series_data.rst new file mode 100644 index 0000000..af0940d --- /dev/null +++ b/doc/reference/series_data.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.series_data + :members: diff --git a/doc/reference/toqimage.rst b/doc/reference/toqimage.rst new file mode 100644 index 0000000..d2db2d0 --- /dev/null +++ b/doc/reference/toqimage.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.toqimage + :members: diff --git a/qwt/__init__.py b/qwt/__init__.py index e75d6d8..2eb6eba 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -45,12 +45,10 @@ from qwt.scale_div import QwtScaleDiv from qwt.scale_draw import QwtScaleDraw from qwt.scale_draw import QwtAbstractScaleDraw -from qwt.series_data import QwtIntervalSeriesData -from qwt.sample import QwtIntervalSample from qwt.painter import QwtPainter from qwt.legend_data import QwtLegendData -from qwt.point_data import QwtPointArrayData +from qwt.series_data import QwtPointArrayData from qwt.plot_renderer import QwtPlotRenderer diff --git a/qwt/plot.py b/qwt/plot.py index a0e3305..e759475 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -1579,7 +1579,6 @@ def __init__(self): self.attributes = 0 self.interests = 0 self.renderHints = 0 - self.renderThreadCount = 1 self.z = 0. self.xAxis = QwtPlot.xBottom self.yAxis = QwtPlot.yLeft @@ -1874,32 +1873,6 @@ def testRenderHint(self, hint): """ return bool(self.__data.renderHints & hint) - def setRenderThreadCount(self, numThreads): - """ - On multi core systems rendering of certain plot item - ( f.e `QwtPlotRasterItem` ) can be done in parallel in - several threads. - - The default setting is set to 1. - - :param int numThreads: Number of threads to be used for rendering. - - If numThreads is set to 0, the system specific - ideal thread count is used. - - The default thread count is 1 ( = no additional threads ) - """ - self.__data.renderThreadCount = numThreads - - def renderThreadCount(self): - """ - :return: Number of threads to be used for rendering. - - If numThreads() is set to 0, the system specific - ideal thread count is used. - """ - return self.__data.renderThreadCount - def setLegendIconSize(self, size): """ Set the size of the legend icon diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index f9c4eeb..4518088 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -20,10 +20,9 @@ from qwt.clipper import QwtClipper from qwt.math import qwtSqr from qwt.graphic import QwtGraphic -from qwt.series_data import QwtPointSeriesData, QwtSeriesData +from qwt.series_data import QwtSeriesData, QwtPointArrayData from qwt.series_store import QwtSeriesStore from qwt.plot_seriesitem import QwtPlotSeriesItem -from qwt.point_data import QwtPointArrayData, QwtCPointerData from qwt.symbol import QwtSymbol from qwt.plot_directpainter import QwtPlotDirectPainter @@ -81,7 +80,6 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): .. seealso:: - :py:class:`qwt.series_data.QwtPointSeriesData()`, :py:class:`qwt.symbol.QwtSymbol()`, :py:class:`qwt.scale_map.QwtScaleMap()` @@ -234,7 +232,7 @@ def init(self): self.__data = QwtPlotCurve_PrivateData() self.setItemAttribute(QwtPlotItem.Legend) self.setItemAttribute(QwtPlotItem.AutoScale) - self.setData(QwtPointSeriesData()) + self.setData(QwtPointArrayData()) self.setZ(20.) def rtti(self): @@ -680,9 +678,8 @@ def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): self.fillCurve(painter, xMap, yMap, canvasRect, points) elif self.__data.paintAttributes & self.ImageBuffer: image = mapper.toImage(xMap, yMap, self.data(), from_, to, - self.__data.pen, - painter.testRenderHint(QPainter.Antialiasing), - self.renderThreadCount()) + self.__data.pen, + painter.testRenderHint(QPainter.Antialiasing)) painter.drawImage(canvasRect.toAlignedRect(), image) else: if doAlign: @@ -994,7 +991,7 @@ def setSamples(self, *args): .. py:method:: setSamples(samples): - Same as `setData(QwtPointSeriesData(samples))` + Same as `setData(QwtPointArrayData(samples))` :param samples: List/array of points @@ -1010,14 +1007,13 @@ def setSamples(self, *args): .. seealso:: :py:class:`qwt.point_data.QwtPointArrayData`, - :py:class:`qwt.series_data.QwtPointSeriesData` """ if len(args) == 1: samples, = args if isinstance(samples, QwtSeriesData): self.setData(samples) else: - self.setData(QwtPointSeriesData(samples)) + self.setData(QwtPointArrayData(samples)) elif len(args) == 3: xData, yData, size = args self.setData(QwtPointArrayData(xData, yData, size)) @@ -1027,18 +1023,3 @@ def setSamples(self, *args): else: raise TypeError("%s().setSamples() takes 1, 2 or 3 argument(s) "\ "(%s given)" % (self.__class__.__name__, len(args))) - - def setRawSamples(self, xData, yData, size): - """ - Initialize the data by pointing to memory blocks which - are not managed by `QwtPlotCurve`. - - :param xData: List/array of x values - :param yData: List/array of y values - :param int size: size of xData and yData - - .. seealso:: - - :py:class:`qwt.point_data.QwtCPointerData` - """ - self.setData(QwtCPointerData(xData, yData, size)) diff --git a/qwt/plot_histogram.py b/qwt/plot_histogram.py deleted file mode 100644 index 5c3d71f..0000000 --- a/qwt/plot_histogram.py +++ /dev/null @@ -1,588 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -""" -QwtPlotHistogram ----------------- - -.. autoclass:: QwtPlotHistogram - :members: -""" - -from qwt.plot_seriesitem import QwtPlotSeriesItem -from qwt.series_store import QwtSeriesStore -from qwt.interval import QwtInterval -from qwt.series_data import QwtIntervalSeriesData -from qwt.plot import QwtPlotItem -from qwt.painter import QwtPainter -from qwt.sample import QwtIntervalSample -from qwt.column_symbol import QwtColumnRect, QwtColumnSymbol - -from qwt.qt.QtGui import QPen, QBrush, QColor, QPolygonF -from qwt.qt.QtCore import Qt, QPointF, QRectF - - -def qwtIsCombinable(d1, d2): - if d1.isValid() and d2.isValid(): - if d1.maxValue() == d2.minValue(): - if not d1.borderFlags() & QwtInterval.ExcludeMaximum\ - and d2.borderFlags() & QwtInterval.ExcludeMinimum: - return True - return False - - -class QwtPlotHistogram_PrivateData(object): - def __init__(self): - self.baseline = 0. - self.style = 0 - self.symbol = None - self.pen = QPen() - self.brush = QBrush() - - -class QwtPlotHistogram(QwtPlotSeriesItem, QwtSeriesStore): - """ - `QwtPlotHistogram` represents a series of samples, where an interval - is associated with a value (`y = f([x1,x2])`). - - The representation depends on the style() and an optional symbol() - that is displayed for each interval. - - .. note:: - - The term "histogram" is used in a different way in the areas of - digital image processing and statistics. Wikipedia introduces the - terms "image histogram" and "color histogram" to avoid confusions. - While "image histograms" can be displayed by a QwtPlotCurve there - is no applicable plot item for a "color histogram" yet. - - Histogram styles: - - * `QwtPlotHistogram.Outline`: - - Draw an outline around the area, that is build by all intervals - using the `pen()` and fill it with the `brush()`. The outline style - requires, that the intervals are in increasing order and - not overlapping. - - * `QwtPlotHistogram.Columns`: - - Draw a column for each interval. When a `symbol()` has been set - the symbol is used otherwise the column is displayed as - plain rectangle using `pen()` and `brush()`. - - * `QwtPlotHistogram.Lines`: - - Draw a simple line using the `pen()` for each interval. - - * `QwtPlotHistogram.UserStyle`: - - Styles >= UserStyle are reserved for derived - classes that overload `drawSeries()` with - additional application specific ways to display a histogram. - - - .. py:class:: QwtPlotHistogram([title=None]) - - Constructor - - :param title: Histogram title - :type title: qwt.text.QwtText or str or None - """ - - # enum HistogramStyle - Outline, Columns, Lines = list(range(3)) - UserStyle = 100 - - def __init__(self, title=None): - QwtPlotSeriesItem.__init__(title) - self.__data = None - self.init() - - def init(self): - """Initialize data members""" - self.__data = QwtPlotHistogram_PrivateData() - self.setData(QwtIntervalSeriesData()) - self.setItemAttribute(QwtPlotItem.AutoScale, True) - self.setItemAttribute(QwtPlotItem.Legend, True) - self.setZ(20.) - - def setStyle(self, style): - """ - Set the histogram's drawing style - - Valid histogram styles: - - * `QwtPlotHistogram.Outline`: - * `QwtPlotHistogram.Columns`: - * `QwtPlotHistogram.Lines`: - * `QwtPlotHistogram.UserStyle`: - - :param int style: Histogram style - - .. seealso:: - - :py:meth:`style()` - """ - if style != self.__data.style: - self.__data.style = style - self.legendChanged() - self.itemChanged() - - def style(self): - """ - :return: Style of the histogram - - .. seealso:: - - :py:meth:`setStyle()` - """ - return self.__data.style - - def setPen(self, *args): - """ - Build and/or assign a pen - - .. py:method:: setPen(color, width, style) - - Build and assign a pen - - In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it - non cosmetic (see `QPen.isCosmetic()`). This method signature has - been introduced to hide this incompatibility. - - :param QColor color: Pen color - :param float width: Pen width - :param Qt.PenStyle style: Pen style - - .. py:method:: setPen(pen) - - Assign a pen - - :param QPen pen: New pen - - .. seealso:: - - :py:meth:`pen()`, :py:meth:`brush()` - """ - if len(args) not in (1, 2, 3): - raise TypeError - if isinstance(args[0], QColor): - color = args[0] - width = 0. - style = Qt.PenStyle - if len(args) > 1: - width = args[1] - if len(args) > 2: - style = args[2] - self.setPen(QPen(color, width, style)) - else: - pen, = args - if pen != self.__data.pen: - self.__data.pen = pen - self.legendChanged() - self.itemChanged() - - def pen(self): - """ - :return: Pen used in a style() depending way. - - .. seealso:: - - :py:meth:`setPen()`, :py:meth:`brush()` - """ - return self.__data.pen - - def setBrush(self, brush): - """ - Assign a brush, that is used in a style() depending way. - - :param brush: New brush - :type brush: QBrush or QColor - - .. seealso:: - - :py:meth:`pen()`, :py:meth:`brush()` - """ - if brush != self.__data.brush: - self.__data.brush = brush - self.legendChanged() - self.itemChanged() - - def brush(self): - """ - :return: Brush used in a style() depending way. - - .. seealso:: - - :py:meth:`setPen()`, :py:meth:`brush()` - """ - return self.__data.brush - - def setSymbol(self, symbol): - """ - Assign a symbol - - In Column style an optional symbol can be assigned, that is - responsible for displaying the rectangle that is defined by the - interval and the distance between `baseline()` and value. When no - symbol has been defined the area is displayed as plain rectangle - using `pen()` and `brush()`. - - :param qwt.symbol.QwtSymbol symbol: Symbol - - .. seealso:: - - :py:meth:`style()`, :py:meth:`symbol()`, :py:meth:`drawColumn()`, - :py:meth:`pen()`, :py:meth:`brush()` - - .. note:: - - In applications, where different intervals need to be displayed - in a different way ( f.e different colors or even using different - symbols) it is recommended to overload `drawColumn()`. - """ - if symbol != self.__data.symbol: - self.__data.symbol = symbol - self.legendChanged() - self.itemChanged() - - def symbol(self): - """ - :return: Current symbol or None, when no symbol has been assigned - - .. seealso:: - - :py:meth:`setSymbol()` - """ - return self.__data.symbol - - def setBaseline(self, value): - """ - Set the value of the baseline - - Each column representing an `QwtIntervalSample` is defined by its - interval and the interval between baseline and the value of the sample. - - The default value of the baseline is 0.0. - - :param float value: Value of the baseline - - .. seealso:: - - :py:meth:`baseline()` - """ - if value != self.__data.baseline: - self.__data.baseline = value - self.itemChanged() - - def baseline(self): - """ - :return: Value of the baseline - - .. seealso:: - - :py:meth:`setBaseline()` - """ - return self.__data.baseline - - def boundingRect(self): - """ - :return: Bounding rectangle of all samples. - - For an empty series the rectangle is invalid. - """ - rect = QRectF(self.data().boundingRect()) - if not rect.isValid(): - return rect - if self.orientation() == Qt.Horizontal: - rect = QRectF(rect.y(), rect.x(), rect.height(), rect.width()) - if rect.left() > self.__data.baseline: - rect.setLeft(self.__data.baseline) - elif rect.right() < self.__data.baseline: - rect.setRight(self.__data.baseline) - else: - if rect.bottom() < self.__data.baseline: - rect.setBottom(self.__data.baseline) - elif rect.top() > self.__data.baseline: - rect.setTop(self.__data.baseline) - return rect - - def rtti(self): - """:return: Return `QwtPlotItem.Rtti_PlotHistogram`""" - return QwtPlotItem.Rtti_PlotHistogram - - def setSamples(self, samples): - """ - Initialize data with an array of samples. - - :param samples: Array of points - """ - if not isinstance(samples, QwtIntervalSeriesData): - self.setData(QwtIntervalSeriesData(samples)) - else: - self.setData(samples) - - def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): - """ - Draw a subset of the histogram samples - - :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. - :param QRectF canvasRect: Contents rectangle of the canvas - :param int from_: Index of the first point to be painted - :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. - - .. seealso:: - - :py:meth:`drawOutline()`, :py:meth:`drawLines()`, - :py:meth:`drawColumns()` - """ - if not painter or self.dataSize() <= 0: - return - if to < 0: - to = self.dataSize()-1 - if self.__data.style == self.Outline: - self.drawOutline(painter, xMap, yMap, from_, to) - elif self.__data.style == self.Lines: - self.drawLines(painter, xMap, yMap, from_, to) - elif self.__data.style == self.Columns: - self.drawColumns(painter, xMap, yMap, from_, to) - - def drawOutline(self, painter, xMap, yMap, from_, to): - """ - Draw a histogram in Outline `style()` - - :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. - :param int from_: Index of the first point to be painted - :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. - - .. seealso:: - - :py:meth:`setStyle()`, :py:meth:`style()` - - .. warning:: - - The outline style requires, that the intervals are in increasing - order and not overlapping. - """ - doAlign = QwtPainter.roundingAlignment(painter) - if self.orientation() == Qt.Horizontal: - v0 = xMap.transform(self.baseline()) - else: - v0 = yMap.transform(self.baseline()) - if doAlign: - v0 = round(v0) - previous = QwtIntervalSample() - polygon = QPolygonF() - for i in range(from_, to+1): - sample = self.sample(i) - if not sample.interval.isValid(): - self.flushPolygon(painter, v0, polygon) - previous = sample - continue - if previous.interval.isValid(): - if not qwtIsCombinable(previous.interval, sample.interval): - self.flushPolygon(painter, v0, polygon) - if self.orientation() == Qt.Vertical: - x1 = xMap.transform(sample.interval.minValue()) - x2 = xMap.transform(sample.interval.maxValue()) - y = yMap.transform(sample.value) - if doAlign: - x1 = round(x1) - x2 = round(x2) - y = round(y) - if polygon.size() == 0: - polygon += QPointF(x1, v0) - polygon += QPointF(x1, y) - polygon += QPointF(x2, y) - else: - y1 = yMap.transform(sample.interval.minValue()) - y2 = yMap.transform(sample.interval.maxValue()) - x = xMap.transform(sample.value) - if doAlign: - y1 = round(y1) - y2 = round(y2) - x = round(x) - if polygon.size() == 0: - polygon += QPointF(v0, y1) - polygon += QPointF(x, y1) - polygon += QPointF(x, y2) - previous = sample - self.flushPolygon(painter, v0, polygon) - - def drawColumns(self, painter, xMap, yMap, from_, to): - """ - Draw a histogram in Columns `style()` - - :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. - :param int from_: Index of the first point to be painted - :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. - - .. seealso:: - - :py:meth:`setStyle()`, :py:meth:`style()`, - :py:meth:`setSymbol()`, :py:meth:`drawColumn()` - """ - painter.setPen(self.__data.pen) - painter.setBrush(self.__data.brush) - series = self.data() - for i in range(from_, to+1): - sample = series.sample(i) - if not sample.interval.isNull(): - rect = self.columnRect(sample, xMap, yMap) - self.drawColumn(painter, rect, sample) - - def drawLines(self, painter, xMap, yMap, from_, to): - """ - Draw a histogram in Lines `style()` - - :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. - :param int from_: Index of the first point to be painted - :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. - - .. seealso:: - - :py:meth:`setStyle()`, :py:meth:`style()`, - :py:meth:`setPen()` - """ - doAlign = QwtPainter.roundingAlignment(painter) - painter.setPen(self.__data.pen) - painter.setBrush(self.__data.brush) - series = self.data() - for i in range(from_, to+1): - sample = series.sample(i) - if not sample.interval.isNull(): - rect = self.columnRect(sample, xMap, yMap) - r = QRectF(rect.toRect()) - if doAlign: - r.setLeft(round(r.left())) - r.setRight(round(r.right())) - r.setTop(round(r.top())) - r.setBottom(round(r.bottom())) - if rect.direction == QwtColumnRect.LeftToRight: - QwtPainter.drawLine(painter, r.topRight(), r.bottomRight()) - elif rect.direction == QwtColumnRect.RightToLeft: - QwtPainter.drawLine(painter, r.topLeft(), r.bottomLeft()) - elif rect.direction == QwtColumnRect.TopToBottom: - QwtPainter.drawLine(painter, r.bottomRight(), r.bottomLeft()) - elif rect.direction == QwtColumnRect.BottomToTop: - QwtPainter.drawLine(painter, r.topRight(), r.topLeft()) - - def flushPolygon(self, painter, baseline, polygon): - """Internal, used by the Outline style.""" - if polygon.size() == 0: - return - if self.orientation() == Qt.Horizontal: - polygon += QPointF(baseline, polygon[-1].y()) - else: - polygon += QPointF(polygon[-1].x(), baseline) - if self.__data.brush.style() != Qt.NoBrush: - painter.setPen(Qt.NoPen) - painter.setBrush(self.__data.brush) - if self.orientation() == Qt.Horizontal: - polygon += QPointF(polygon[-1].x(), baseline) - polygon += QPointF(polygon[0].x(), baseline) - else: - polygon += QPointF(baseline, polygon[-1].y()) - polygon += QPointF(baseline, polygon[0].y()) - QwtPainter.drawPolygon(painter, polygon) - polygon.pop(-1) - polygon.pop(-1) - if self.__data.pen.style != Qt.NoPen: - painter.setBrush(Qt.NoBrush) - painter.setPen(self.__data.pen) - QwtPainter.drawPolyline(painter, polygon) - polygon.clear() - - def columnRect(self, sample, xMap, yMap): - """ - Calculate the area that is covered by a sample - - :param sample: Sample - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. - :return: Rectangle, that is covered by a sample - """ - rect = QwtColumnRect() - iv = sample.interval - if not iv.isValid(): - return rect - if self.orientation() == Qt.Horizontal: - x0 = xMap.transform(self.baseline()) - x = xMap.transform(sample.value) - y1 = yMap.transform(iv.minValue()) - y2 = yMap.transform(iv.maxValue()) - rect.hInterval.setInterval(x0, x) - rect.vInterval.setInterval(y1, y2, iv.borderFlags()) - if x < x0: - rect.direction = QwtColumnRect.RightToLeft - else: - rect.direction = QwtColumnRect.LeftToRight - else: - x1 = xMap.transform(iv.minValue()) - x2 = xMap.transform(iv.maxValue()) - y0 = yMap.transform(self.baseline()) - y = yMap.transform(sample.value) - rect.hInterval.setInterval(x1, x2, iv.borderFlags()) - rect.vInterval.setInterval(y0, y) - if y < y0: - rect.direction = QwtColumnRect.BottomToTop - else: - rect.direction = QwtColumnRect.TopToBottom - return rect - - def drawColumn(self, painter, rect, sample): - """ - Draw a column for a sample in Columns `style()` - - When a `symbol()` has been set the symbol is used otherwise the - column is displayed as plain rectangle using `pen()` and `brush()`. - - :param QPainter painter: Painter - :param qwt.column_symbol.QwtColumnRect rect: Rectangle where to paint the column in paint device coordinates - :param sample: Sample to be displayed - - .. note:: - - In applications, where different intervals need to be displayed - in a different way ( f.e different colors or even using different - symbols) it is recommended to overload `drawColumn()`. - """ - if self.__data.symbol and\ - self.__data.symbol.style() != QwtColumnSymbol.NoStyle: - self.__data.symbol.draw(painter, rect) - else: - r = QRectF(rect.toRect()) - if QwtPainter.roundingAlignment(painter): - r.setLeft(round(r.left())) - r.setRight(round(r.right())) - r.setTop(round(r.top())) - r.setBottom(round(r.bottom())) - QwtPainter.drawRect(painter, r) - - def legendIcon(self, index, size): - """ - A plain rectangle without pen using the brush() - - :param int index: Index of the legend entry (ignored as there is only one) - :param QSizeF size: Icon size - :return: A graphic displaying the icon - - .. seealso:: - - :py:meth:`setLegendIconSize()`, - :py:meth:`qwt.plot.QwtPlotItem.legendData()` - """ - return self.defaultIcon(self.__data.brush, size) diff --git a/qwt/point_data.py b/qwt/point_data.py deleted file mode 100644 index 2048ffe..0000000 --- a/qwt/point_data.py +++ /dev/null @@ -1,106 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -from qwt.series_data import QwtSeriesData, qwtBoundingRect -from qwt.interval import QwtInterval - -from qwt.qt.QtCore import QPointF, QRectF -import numpy as np - - -class QwtPointArrayData(QwtSeriesData): - def __init__(self, x, y, size=None): - QwtSeriesData.__init__(self) - if isinstance(x, (tuple, list)): - x = np.array(x) - if isinstance(y, (tuple, list)): - y = np.array(y) - self.__x = x - self.__y = y - - def boundingRect(self): - xmin = self.__x.min() - xmax = self.__x.max() - ymin = self.__y.min() - ymax = self.__y.max() - return QRectF(xmin, ymin, xmax-xmin, ymax-ymin) - - def size(self): - return min([self.__x.size, self.__y.size]) - - def sample(self, index): - return QPointF(self.__x[index], self.__y[index]) - - def xData(self): - return self.__x - - def yData(self): - return self.__y - - -class QwtCPointerData(QwtPointArrayData): - def __init__(self, x, y, size): - QwtSeriesData.__init__(self) - self.__x = x - self.__y = y - self.__size = size - - def size(self): - return self.__size - - -class QwtSyntheticPointData(QwtSeriesData): - def __init__(self, size, interval): - QwtSeriesData.__init__(self) - self.__size = size - self.__interval = interval - self.__rectOfInterest = None - self.__intervalOfInterest = None - - def setSize(self, size): - self.__size = size - - def size(self): - return self.__size - - def setInterval(self, interval): - self.__interval = interval.normalized() - - def interval(self): - return self.__interval - - def setRectOfInterest(self, rect): - self.__rectOfInterest = rect - self.__intervalOfInterest = QwtInterval(rect.left(), rect.right() - ).normalized() - - def rectOfInterest(self): - return self.__rectOfInterest - - def boundingRect(self): - if self.__size == 0 or\ - not (self.__interval.isValid() or self.__intervalOfInterest.isValid()): - return QRectF(1.0, 1.0, -2.0, -2.0) - return qwtBoundingRect(self) - - def sample(self, index): - if index >= self.__size: - return QPointF(0, 0) - xValue = self.x(index) - yValue = self.y(xValue) - return QPointF(xValue, yValue) - - def x(self, index): - if self.__interval.isValid(): - interval = self.__interval - else: - interval = self.__intervalOfInterest - if not interval.isValid() or self.__size == 0 or index >= self.__size: - return 0. - dx = interval.width()/self.__size - return interval.minValue() + index*dx - \ No newline at end of file diff --git a/qwt/point_mapper.py b/qwt/point_mapper.py index 6880481..77f3bac 100644 --- a/qwt/point_mapper.py +++ b/qwt/point_mapper.py @@ -5,10 +5,16 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) -USE_THREADS = False # QtConcurrent is not supported by PyQt +""" +QwtPointMapper +-------------- + +.. autoclass:: QwtPointMapper + :members: +""" from qwt.qt.QtGui import QPolygon, QPolygonF, QImage, QPainter -from qwt.qt.QtCore import QThread, Qt, QPoint, QPointF, QRectF +from qwt.qt.QtCore import Qt, QPoint, QPointF, QRectF #from qwt.pixel_matrix import QwtPixelMatrix @@ -25,30 +31,12 @@ def qwtRoundI(data): return np.array(np.rint(data), dtype=np.int) -class QwtDotsCommand(object): - def __init__(self): - self.series = None - self.from_ = None - self.to = None - self.rgb = None - -def qwtRenderDots(xMap, yMap, command, pos, image): - rgb = command.rgb - bits = image.bits() - w = image.width() - h = image.height() - x0 = pos.x() - y0 = pos.y() - for i in range(command.from_, command.to+1): - sample = command.series.sample(i) - x = int(xMap.transform(sample.x())+0.5)-x0 - y = int(yMap.transform(sample.y())+0.5)-y0 - if x >= 0 and x < w and y >= 0 and y < h: - bits[y*w+x] = rgb - - def qwtToPoints(boundingRect, xMap, yMap, series, from_, to, round_, Polygon): + """ + Mapping points without any filtering + - beside checking the bounding rectangle + """ Point = QPointF if Polygon is QPolygonF else QPoint polygon = qwtToPolylineFiltered(xMap, yMap, series, from_, to, round_, Polygon, Point) @@ -82,6 +70,14 @@ def qwtToPointsF(boundingRect, xMap, yMap, series, from_, to, round_): def qwtToPolylineFiltered(xMap, yMap, series, from_, to, round_, Polygon, Point): + """ + Mapping points with filtering out consecutive + points mapped to the same position + + .. warning:: + + Filtering is currently not implemented + """ polyline = Polygon(to-from_+1) pointer = polyline.data() if Polygon is QPolygonF: @@ -156,6 +152,20 @@ def __init__(self): class QwtPointMapper(object): + """ + A helper class for translating a series of points + + `QwtPointMapper` is a collection of methods and optimizations + for translating a series of points into paint device coordinates. + It is used by `QwtPlotCurve` but might also be useful for + similar plot items displaying a `QwtSeriesData`. + + Transformation flags: + + * `QwtPointMapper.RoundPoints`: Round points to integer values + * `QwtPointMapper.WeedOutPoints`: Try to remove points, that are translated to the same position + """ + RoundPoints = 0x01 WeedOutPoints = 0x02 @@ -165,27 +175,95 @@ def __init__(self): self.setBoundingRect(self.qwtInvalidRect) def setFlags(self, flags): + """ + Set the flags affecting the transformation process + + :param flags: Flags + + .. seealso:: + + :py:meth:`flags()`, :py:meth:`setFlag()` + """ self.__data.flags = flags def flags(self): + """ + :return: Flags affecting the transformation process + + .. seealso:: + + :py:meth:`setFlags()`, :py:meth:`setFlag()` + """ return self.__data.flags def setFlag(self, flag, on=True): + """ + Modify a flag affecting the transformation process + + :param flag: Flag type + + .. seealso:: + + :py:meth:`flag()`, :py:meth:`setFlags()` + """ if on: self.__data.flags |= flag else: self.__data.flags &= ~flag def testFlag(self, flag): + """ + :param int flag: Flag type + :return: True, when the flag is set + + .. seealso:: + + :py:meth:`setFlags()`, :py:meth:`setFlag()` + """ return self.__data.flags & flag def setBoundingRect(self, rect): + """ + Set a bounding rectangle for the point mapping algorithm + + A valid bounding rectangle can be used for optimizations + + :param QRectF rect: Bounding rectangle + + .. seealso:: + + :py:meth:`boundingRect()` + """ self.__data.boundingRect = rect def boundingRect(self): + """ + :return: Bounding rectangle + + .. seealso:: + + :py:meth:`setBoundingRect()` + """ return self.__data.boundingRect def toPolygonF(self, xMap, yMap, series, from_, to): + """ + Translate a series of points into a QPolygonF + + When the WeedOutPoints flag is enabled consecutive points, + that are mapped to the same position will be one point. + + When RoundPoints is set all points are rounded to integers + but returned as PolygonF - what only makes sense + when the further processing of the values need a QPolygonF. + + :param qwt.scale_map.QwtScaleMap xMap: x map + :param qwt.scale_map.QwtScaleMap yMap: y map + :param series: Series of points to be mapped + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted + :return: Translated polygon + """ if self.__data.flags & QwtPointMapper.WeedOutPoints: if self.__data.flags & QwtPointMapper.RoundPoints: polyline = qwtToPolylineFilteredF(xMap, yMap, series, @@ -203,6 +281,19 @@ def toPolygonF(self, xMap, yMap, series, from_, to): return polyline def toPolygon(self, xMap, yMap, series, from_, to): + """ + Translate a series of points into a QPolygon + + When the WeedOutPoints flag is enabled consecutive points, + that are mapped to the same position will be one point. + + :param qwt.scale_map.QwtScaleMap xMap: x map + :param qwt.scale_map.QwtScaleMap yMap: y map + :param series: Series of points to be mapped + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted + :return: Translated polygon + """ if self.__data.flags & QwtPointMapper.WeedOutPoints: polyline = qwtToPolylineFilteredI(xMap, yMap, series, from_, to) else: @@ -211,6 +302,40 @@ def toPolygon(self, xMap, yMap, series, from_, to): return polyline def toPointsF(self, xMap, yMap, series, from_, to): + """ + Translate a series of points into a QPolygonF: + + - `WeedOutPoints and RoundPoints and boundingRect().isValid()`: + + All points that are mapped to the same position + will be one point. Points outside of the bounding + rectangle are ignored. + + - `WeedOutPoints and RoundPoints and not boundingRect().isValid()`: + + All consecutive points that are mapped to the same position + will one point + + - `WeedOutPoints and not RoundPoints`: + + All consecutive points that are mapped to the same position + will one point + + - `not WeedOutPoints and boundingRect().isValid()`: + + Points outside of the bounding rectangle are ignored. + + When RoundPoints is set all points are rounded to integers + but returned as PolygonF - what only makes sense + when the further processing of the values need a QPolygonF. + + :param qwt.scale_map.QwtScaleMap xMap: x map + :param qwt.scale_map.QwtScaleMap yMap: y map + :param series: Series of points to be mapped + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted + :return: Translated polygon + """ if self.__data.flags & QwtPointMapper.WeedOutPoints: if self.__data.flags & QwtPointMapper.RoundPoints: if self.__data.boundingRect.isValid(): @@ -232,6 +357,31 @@ def toPointsF(self, xMap, yMap, series, from_, to): return points def toPoints(self, xMap, yMap, series, from_, to): + """ + Translate a series of points into a QPolygon: + + - `WeedOutPoints and boundingRect().isValid()`: + + All points that are mapped to the same position + will be one point. Points outside of the bounding + rectangle are ignored. + + - `WeedOutPoints and not boundingRect().isValid()`: + + All consecutive points that are mapped to the same position + will one point + + - `not WeedOutPoints and boundingRect().isValid()`: + + Points outside of the bounding rectangle are ignored. + + :param qwt.scale_map.QwtScaleMap xMap: x map + :param qwt.scale_map.QwtScaleMap yMap: y map + :param series: Series of points to be mapped + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted + :return: Translated polygon + """ if self.__data.flags & QwtPointMapper.WeedOutPoints: if self.__data.boundingRect.isValid(): points = qwtToPointsFilteredI(self.__data.boundingRect, @@ -243,41 +393,35 @@ def toPoints(self, xMap, yMap, series, from_, to): series, from_, to) return points - def toImage(self, xMap, yMap, series, from_, to, pen, antialiased, - numThreads): - if USE_THREADS: - if numThreads == 0: - numThreads = QThread.idealThreadCount() - if numThreads <= 0: - numThreads = 1 + def toImage(self, xMap, yMap, series, from_, to, pen, antialiased): + """ + Translate a series into a QImage + + :param qwt.scale_map.QwtScaleMap xMap: x map + :param qwt.scale_map.QwtScaleMap yMap: y map + :param series: Series of points to be mapped + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted + :param QPen pen: Pen used for drawing a point of the image, where a point is mapped to + :param bool antialiased: True, when the dots should be displayed antialiased + :return: Image displaying the series + """ + #TODO: rewrite this method to fix performance issue (litteral translation from C++!) rect = self.__data.boundingRect.toAlignedRect() image = QImage(rect.size(), QImage.Format_ARGB32) image.fill(Qt.transparent) if pen.width() <= 1 and pen.color().alpha() == 255: - command = QwtDotsCommand() - command.series = series - command.rgb = pen.color().rgba() - if USE_THREADS: - numPoints = int((to-from_+1)/numThreads) - futures = [] - for i in range(numThreads): - pos = rect.topLeft() - index0 = from_ + i*numPoints - if i == numThreads-1: - command.from_ = index0 - command.to = to - qwtRenderDots(xMap, yMap, command, pos, image) - else: - command.from_ = index0 - command.to = index0 + numPoints - 1 - futures += [QtConcurrent.run(qwtRenderDots, - xMap, yMap, command, pos, image)] - for future in futures: - future.waitForFinished() - else: - command.from_ = from_ - command.to = to - qwtRenderDots(xMap, yMap, command, rect.topLeft(), image) + bits = image.bits() + w = image.width() + h = image.height() + x0 = rect.topLeft().x() + y0 = rect.topLeft().y() + for i in range(from_, to+1): + sample = series.sample(i) + x = int(xMap.transform(sample.x())+0.5)-x0 + y = int(yMap.transform(sample.y())+0.5)-y0 + if x >= 0 and x < w and y >= 0 and y < h: + bits[y*w+x] = pen.color().rgba() else: painter = QPainter(image) painter.setPen(pen) diff --git a/qwt/sample.py b/qwt/sample.py deleted file mode 100644 index fbc2924..0000000 --- a/qwt/sample.py +++ /dev/null @@ -1,82 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -from qwt.interval import QwtInterval - - -class QwtIntervalSample(object): - def __init__(self, *args): - if len(args) == 0: - self.value = 0. - self.interval = QwtInterval() - elif len(args) == 2: - v, intv = args - self.value = v - self.interval = intv - elif len(args) == 3: - v, min_, max_ = args - self.value = v - self.interval = QwtInterval(min_, max_) - else: - raise TypeError("%s() takes 0, 2 or 3 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) - - def __eq__(self, other): - return self.value == other.value and self.interval == other.interval - - def __ne__(self, other): - return not (self == other) - - -class QwtSetSample(object): - def __init__(self, *args): - if len(args) == 0: - self.value = 0 - self.set = [] - elif len(args) == 2: - v, s = args - self.value = v - self.set = s - else: - raise TypeError("%s() takes 0 or 2 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) - - def __eq__(self, other): - return self.value == other.value and self.set == other.set - - def __ne__(self, other): - return not (self == other) - - def added(self): - return sum(self.set) - - -class QwtOHLCSample(object): - def __init__(self, time=0., open_=0., high=0., low=0., close=0.): - self.time = time - self.open = open_ - self.high = high - self.low = low - self.close = close - - def isValid(self): - return self.low <= self.high and self.open >= self.low and\ - self.open <= self.high and self.close >= self.low and\ - self.close <= self.high - - def boundingInterval(self): - minY = self.open - minY = min([minY, self.high]) - minY = min([minY, self.low]) - minY = min([minY, self.close]) - maxY = self.open - maxY = max([maxY, self.high]) - maxY = max([maxY, self.low]) - maxY = max([maxY, self.close]) - return QwtInterval(minY, maxY) - - diff --git a/qwt/scale_div.py b/qwt/scale_div.py index 10b6d18..d0b28c1 100644 --- a/qwt/scale_div.py +++ b/qwt/scale_div.py @@ -5,12 +5,77 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtScaleDiv +----------- + +.. autoclass:: QwtScaleDiv + :members: +""" + from qwt.interval import QwtInterval import copy class QwtScaleDiv(object): + """ + A class representing a scale division + + A Qwt scale is defined by its boundaries and 3 list + for the positions of the major, medium and minor ticks. + + The `upperLimit()` might be smaller than the `lowerLimit()` + to indicate inverted scales. + + Scale divisions can be calculated from a `QwtScaleEngine`. + + .. seealso:: + + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`, + :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()` + + Scale tick types: + + * `QwtScaleDiv.NoTick`: No ticks + * `QwtScaleDiv.MinorTick`: Minor ticks + * `QwtScaleDiv.MediumTick`: Medium ticks + * `QwtScaleDiv.MajorTick`: Major ticks + * `QwtScaleDiv.NTickTypes`: Number of valid tick types + + .. py:class:: QwtScaleDiv() + + Basic constructor. Lower bound = Upper bound = 0. + + .. py:class:: QwtScaleDiv(interval, ticks) + + :param qwt.interval.QwtInterval interval: Interval + :param list ticks: list of major, medium and minor ticks + + .. py:class:: QwtScaleDiv(lowerBound, upperBound) + + :param float lowerBound: First boundary + :param float upperBound: Second boundary + + .. py:class:: QwtScaleDiv(lowerBound, upperBound, ticks) + + :param float lowerBound: First boundary + :param float upperBound: Second boundary + :param list ticks: list of major, medium and minor ticks + + .. py:class:: QwtScaleDiv(lowerBound, upperBound, minorTicks, mediumTicks, majorTicks) + + :param float lowerBound: First boundary + :param float upperBound: Second boundary + :param list minorTicks: list of minor ticks + :param list mediumTicks: list of medium ticks + :param list majorTicks: list of major ticks + + .. note:: + + lowerBound might be greater than upperBound for inverted scales + """ + # enum TickType NoTick = -1 MinorTick, MediumTick, MajorTick, NTickTypes = list(range(4)) @@ -27,7 +92,7 @@ def __init__(self, *args): elif len(args) == 3: self.__lowerBound, self.__upperBound, ticks = args self.__ticks = ticks[:] - elif len(args) == 4: + elif len(args) == 5: (self.__lowerBound, self.__upperBound, minorTicks, mediumTicks, majorTicks) = args self.__ticks[self.MinorTick] = minorTicks @@ -36,10 +101,26 @@ def __init__(self, *args): elif len(args) == 0: self.__lowerBound, self.__upperBound = 0., 0. else: - raise TypeError("%s() takes 0, 2, 3 or 4 argument(s) (%s given)"\ + raise TypeError("%s() takes 0, 2, 3 or 5 argument(s) (%s given)"\ % (self.__class__.__name__, len(args))) def setInterval(self, *args): + """ + Change the interval + + .. py:method:: setInterval(lowerBound, upperBound) + + :param float lowerBound: First boundary + :param float upperBound: Second boundary + + .. py:method:: setInterval(interval) + + :param qwt.interval.QwtInterval interval: Interval + + .. note:: + + lowerBound might be greater than upperBound for inverted scales + """ if len(args) == 2: self.__lowerBound, self.__upperBound = args elif len(args) == 1: @@ -51,21 +132,59 @@ def setInterval(self, *args): "given)" % (self.__class__.__name__, len(args))) def interval(self): + """ + :return: Interval + """ return QwtInterval(self.__lowerBound, self.__upperBound) def setLowerBound(self, lowerBound): + """ + Set the first boundary + + :param float lowerBound: First boundary + + .. seealso:: + + :py:meth:`lowerBound()`, :py:meth:`setUpperBound()` + """ self.__lowerBound = lowerBound def lowerBound(self): + """ + :return: the first boundary + + .. seealso:: + + :py:meth:`upperBound()` + """ return self.__lowerBound def setUpperBound(self, upperBound): + """ + Set the second boundary + + :param float lowerBound: Second boundary + + .. seealso:: + + :py:meth:`upperBound()`, :py:meth:`setLowerBound()` + """ self.__upperBound = upperBound def upperBound(self): + """ + :return: the second boundary + + .. seealso:: + + :py:meth:`lowerBound()` + """ return self.__upperBound def range(self): + """ + :return: upperBound() - lowerBound() + """ return self.__upperBound - self.__lowerBound def __eq__(self, other): @@ -80,28 +199,66 @@ def __ne__(self, other): return not self.__eq__(other) def isEmpty(self): + """ + Check if the scale division is empty( lowerBound() == upperBound() ) + """ return self.__lowerBound == self.__upperBound def isIncreasing(self): + """ + Check if the scale division is increasing( lowerBound() <= upperBound() ) + """ return self.__lowerBound <= self.__upperBound def contains(self, value): + """ + Return if a value is between lowerBound() and upperBound() + + :param float value: Value + :return: True/False + """ min_ = min([self.__lowerBound, self.__upperBound]) max_ = max([self.__lowerBound, self.__upperBound]) return value >= min_ and value <= max_ def invert(self): + """ + Invert the scale division + + .. seealso:: + + :py:meth:`inverted()` + """ (self.__lowerBound, self.__upperBound) = self.__upperBound, self.__lowerBound for index in range(self.NTickTypes): self.__ticks[index].reverse() def inverted(self): + """ + :return: A scale division with inverted boundaries and ticks + + .. seealso:: + + :py:meth:`invert()` + """ other = copy.deepcopy(self) other.invert() return other def bounded(self, lowerBound, upperBound): + """ + Return a scale division with an interval [lowerBound, upperBound] + where all ticks outside this interval are removed + + :param float lowerBound: First boundary + :param float lowerBound: Second boundary + :return: Scale division with all ticks inside of the given interval + + .. note:: + + lowerBound might be greater than upperBound for inverted scales + """ min_ = min([self.__lowerBound, self.__upperBound]) max_ = max([self.__lowerBound, self.__upperBound]) sd = QwtScaleDiv() @@ -112,10 +269,22 @@ def bounded(self, lowerBound, upperBound): return sd def setTicks(self, tickType, ticks): + """ + Assign ticks + + :param int type: MinorTick, MediumTick or MajorTick + :param list ticks: Values of the tick positions + """ if tickType in range(self.NTickTypes): self.__ticks[tickType] = ticks def ticks(self, tickType): + """ + Return a list of ticks + + :param int type: MinorTick, MediumTick or MajorTick + :return: Tick list + """ if self.__ticks is not None and tickType in range(self.NTickTypes): return self.__ticks[tickType] else: diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index 1f7ed6c..1a20192 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -5,6 +5,20 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtAbstractScaleDraw +-------------------- + +.. autoclass:: QwtAbstractScaleDraw + :members: + +QwtScaleDraw +------------ + +.. autoclass:: QwtScaleDraw + :members: +""" + from qwt.scale_div import QwtScaleDiv from qwt.scale_map import QwtScaleMap from qwt.text import QwtText @@ -39,47 +53,182 @@ def __init__(self): class QwtAbstractScaleDraw(object): + """ + A abstract base class for drawing scales + + `QwtAbstractScaleDraw` can be used to draw linear or logarithmic scales. + + After a scale division has been specified as a `QwtScaleDiv` object + using `setScaleDiv()`, the scale can be drawn with the `draw()` member. + + Scale components: + + * `QwtAbstractScaleDraw.Backbone`: Backbone = the line where the ticks are located + * `QwtAbstractScaleDraw.Ticks`: Ticks + * `QwtAbstractScaleDraw.Labels`: Labels + + .. py:class:: QwtAbstractScaleDraw() + + The range of the scale is initialized to [0, 100], + The spacing (distance between ticks and labels) is + set to 4, the tick lengths are set to 4,6 and 8 pixels + """ + # enum ScaleComponent Backbone = 0x01 Ticks = 0x02 Labels = 0x04 def __init__(self): self.__data = QwtAbstractScaleDraw_PrivateData() + + def extent(self, font): + """ + Calculate the extent + + The extent is the distance from the baseline to the outermost + pixel of the scale draw in opposite to its orientation. + It is at least minimumExtent() pixels. + + :param QFont font: Font used for drawing the tick labels + :return: Number of pixels + + .. seealso:: + + :py:meth:`setMinimumExtent()`, :py:meth:`minimumExtent()` + """ + return 0. + + def drawTick(self, painter, value, len_): + """ + Draw a tick + + :param QPainter painter: Painter + :param float value: Value of the tick + :param float len: Length of the tick + + .. seealso:: + + :py:meth:`drawBackbone()`, :py:meth:`drawLabel()` + """ + pass + + def drawBackbone(self, painter): + """ + Draws the baseline of the scale + + :param QPainter painter: Painter + + .. seealso:: + + :py:meth:`drawTick()`, :py:meth:`drawLabel()` + """ + pass + + def drawLabel(self, painter, value): + """ + Draws the label for a major scale tick + + :param QPainter painter: Painter + :param float value: Value + + .. seealso:: + + :py:meth:`drawTick()`, :py:meth:`drawBackbone()` + """ + pass def enableComponent(self, component, enable): + """ + En/Disable a component of the scale + + :param int component: Scale component + :param bool enable: On/Off + + .. seealso:: + + :py:meth:`hasComponent()` + """ if enable: self.__data.components |= component else: self.__data.components &= ~component def hasComponent(self, component): + """ + Check if a component is enabled + + :param int component: Component type + :return: True, when component is enabled + + .. seealso:: + + :py:meth:`enableComponent()` + """ return self.__data.components & component def setScaleDiv(self, scaleDiv): + """ + Change the scale division + + :param qwt.scale_div.QwtScaleDiv scaleDiv: New scale division + """ self.__data.scaleDiv = scaleDiv self.__data.map.setScaleInterval(scaleDiv.lowerBound(), scaleDiv.upperBound()) self.__data.labelCache.clear() def setTransformation(self, transformation): + """ + Change the transformation of the scale + + :param qwt.transform.QwtTransform transformation: New scale transformation + """ self.__data.map.setTransformation(transformation) def scaleMap(self): + """ + :return: Map how to translate between scale and pixel values + """ return self.__data.map def scaleDiv(self): + """ + :return: scale division + """ return self.__data.scaleDiv def setPenWidth(self, width): + """ + Specify the width of the scale pen + + :param int width: Pen width + + .. seealso:: + + :py:meth:`penWidth()` + """ if width < 0: width = 0 if width != self.__data.penWidth: self.__data.penWidth = width def penWidth(self): + """ + :return: Scale pen width + + .. seealso:: + + :py:meth:`setPenWidth()` + """ return self.__data.penWidth def draw(self, painter, palette): + """ + Draw the scale + + :param QPainter painter: The painter + :param QPalette palette: Palette, text color is used for the labels, foreground color for ticks and backbone + """ painter.save() pen = painter.pen() @@ -124,22 +273,80 @@ def draw(self, painter, palette): painter.restore() def setSpacing(self, spacing): + """ + Set the spacing between tick and labels + + The spacing is the distance between ticks and labels. + The default spacing is 4 pixels. + + :param float spacing: Spacing + + .. seealso:: + + :py:meth:`spacing()` + """ if spacing < 0: spacing = 0 self.__data.spacing = spacing def spacing(self): + """ + Get the spacing + + The spacing is the distance between ticks and labels. + The default spacing is 4 pixels. + + :return: Spacing + + .. seealso:: + + :py:meth:`setSpacing()` + """ return self.__data.spacing def setMinimumExtent(self, minExtent): + """ + Set a minimum for the extent + + The extent is calculated from the components of the + scale draw. In situations, where the labels are + changing and the layout depends on the extent (f.e scrolling + a scale), setting an upper limit as minimum extent will + avoid jumps of the layout. + + :param float minExtent: Minimum extent + + .. seealso:: + + :py:meth:`extent()`, :py:meth:`minimumExtent()` + """ if minExtent < 0.: minExtent = 0. self.__data.minExtent = minExtent def minimumExtent(self): + """ + Get the minimum extent + + :return: Minimum extent + + .. seealso:: + + :py:meth:`extent()`, :py:meth:`setMinimumExtent()` + """ return self.__data.minExtent def setTickLength(self, tickType, length): + """ + Set the length of the ticks + + :param int tickType: Tick type + :param float length: New length + + .. warning:: + + the length is limited to [0..1000] + """ if tickType < QwtScaleDiv.MinorTick or\ tickType > QwtScaleDiv.MajorTick: return @@ -151,21 +358,60 @@ def setTickLength(self, tickType, length): self.__data.tickLength[tickType] = length def tickLength(self, tickType): + """ + :return: Length of the ticks + + .. seealso:: + + :py:meth:`setTickLength()`, :py:meth:`maxTickLength()` + """ if tickType < QwtScaleDiv.MinorTick or\ tickType > QwtScaleDiv.MajorTick: return 0 return self.__data.tickLength[tickType] def maxTickLength(self): + """ + :return: Length of the longest tick + + Useful for layout calculations + + .. seealso:: + + :py:meth:`tickLength()`, :py:meth:`setTickLength()` + """ length = 0. for tickType in range(QwtScaleDiv.NTickTypes): length = max([length, self.__data.tickLength[tickType]]) return length def label(self, value): + """ + Convert a value into its representing label + + The value is converted to a plain text using + `QLocale().toString(value)`. + This method is often overloaded by applications to have individual + labels. + + :param float value: Value + :return: Label string + """ return QLocale().toString(value) def tickLabel(self, font, value): + """ + Convert a value into its representing label and cache it. + + The conversion between value and label is called very often + in the layout and painting code. Unfortunately the + calculation of the label sizes might be slow (really slow + for rich text in Qt4), so it's necessary to cache the labels. + + :param QFont font: Font + :param float value: Value + :return: Tick label + """ lbl = self.__data.labelCache.get(value) if lbl is None: lbl = QwtText(self.label(value)) @@ -174,6 +420,16 @@ def tickLabel(self, font, value): lbl.textSize(font) self.__data.labelCache[value] = lbl return lbl + + def invalidateCache(self): + """ + Invalidate the cache used by `tickLabel()` + + The cache is invalidated, when a new `QwtScaleDiv` is set. If + the labels need to be changed. while the same `QwtScaleDiv` is set, + `invalidateCache()` needs to be called manually. + """ + self.__data.labelCache.clear() @@ -188,6 +444,32 @@ def __init__(self): class QwtScaleDraw(QwtAbstractScaleDraw): + """ + A class for drawing scales + + QwtScaleDraw can be used to draw linear or logarithmic scales. + A scale has a position, an alignment and a length, which can be specified . + The labels can be rotated and aligned + to the ticks using `setLabelRotation()` and `setLabelAlignment()`. + + After a scale division has been specified as a QwtScaleDiv object + using `QwtAbstractScaleDraw.setScaleDiv(scaleDiv)`, + the scale can be drawn with the `QwtAbstractScaleDraw.draw()` member. + + Alignment of the scale draw: + + * `QwtScaleDraw.BottomScale`: The scale is below + * `QwtScaleDraw.TopScale`: The scale is above + * `QwtScaleDraw.LeftScale`: The scale is left + * `QwtScaleDraw.RightScale`: The scale is right + + .. py:class:: QwtAbstractScaleDraw() + + The range of the scale is initialized to [0, 100], + The position is at (0, 0) with a length of 100. + The orientation is `QwtAbstractScaleDraw.Bottom`. + """ + # enum Alignment BottomScale, TopScale, LeftScale, RightScale = list(range(4)) Flags = ( @@ -203,18 +485,69 @@ def __init__(self): self.setLength(100) def alignment(self): + """ + :return: Alignment of the scale + + .. seealso:: + + :py:meth:`setAlignment()` + """ return self.__data.alignment def setAlignment(self, align): + """ + Set the alignment of the scale + + :param int align: Alignment of the scale + + Alignment of the scale draw: + + * `QwtScaleDraw.BottomScale`: The scale is below + * `QwtScaleDraw.TopScale`: The scale is above + * `QwtScaleDraw.LeftScale`: The scale is left + * `QwtScaleDraw.RightScale`: The scale is right + + The default alignment is `QwtScaleDraw.BottomScale` + + .. seealso:: + + :py:meth:`alignment()` + """ self.__data.alignment = align def orientation(self): + """ + Return the orientation + + TopScale, BottomScale are horizontal (`Qt.Horizontal`) scales, + LeftScale, RightScale are vertical (`Qt.Vertical`) scales. + + :return: Orientation of the scale + + .. seealso:: + + :py:meth:`alignment()` + """ if self.__data.alignment in (self.TopScale, self.BottomScale): return Qt.Horizontal elif self.__data.alignment in (self.LeftScale, self.RightScale): return Qt.Vertical def getBorderDistHint(self, font): + """ + Determine the minimum border distance + + This member function returns the minimum space + needed to draw the mark labels at the scale's endpoints. + + :param QFont font: Font + :return: tuple `(start, end)` + + Returned tuple: + + * start: Start border distance + * end: End border distance + """ start, end = 0, 1. if not self.hasComponent(QwtAbstractScaleDraw.Labels): @@ -257,6 +590,17 @@ def getBorderDistHint(self, font): return start, end def minLabelDist(self, font): + """ + Determine the minimum distance between two labels, that is necessary + that the texts don't overlap. + + :param QFont font: Font + :return: The maximum width of a label + + .. seealso:: + + :py:meth:`getBorderDistHint()` + """ if not self.hasComponent(QwtAbstractScaleDraw.Labels): return 0 @@ -314,6 +658,21 @@ def minLabelDist(self, font): return np.ceil(labelDist) def extent(self, font): + """ + Calculate the width/height that is needed for a + vertical/horizontal scale. + + The extent is calculated from the pen width of the backbone, + the major tick length, the spacing and the maximum width/height + of the labels. + + :param QFont font: Font used for painting the labels + :return: Extent + + .. seealso:: + + :py:meth:`minLength()` + """ d = 0. if self.hasComponent(QwtAbstractScaleDraw.Labels): if self.orientation() == Qt.Vertical: @@ -330,6 +689,16 @@ def extent(self, font): return max([d, self.minimumExtent()]) def minLength(self, font): + """ + Calculate the minimum length that is needed to draw the scale + + :param QFont font: Font used for painting the labels + :return: Minimum length that is needed to draw the scale + + .. seealso:: + + :py:meth:`extent()` + """ startDist, endDist = self.getBorderDistHint(font) sd = self.scaleDiv() minorCount = len(sd.ticks(QwtScaleDiv.MinorTick))+\ @@ -345,6 +714,15 @@ def minLength(self, font): return startDist + endDist + max([lengthForLabels, lengthForTicks]) def labelPosition(self, value): + """ + Find the position, where to paint a label + + The position has a distance that depends on the length of the ticks + in direction of the `alignment()`. + + :param float value: Value + :return: Position, where to paint a label + """ tval = self.scaleMap().transform(value) dist = self.spacing() if self.hasComponent(QwtAbstractScaleDraw.Backbone): @@ -370,6 +748,17 @@ def labelPosition(self, value): return QPointF(px, py) def drawTick(self, painter, value, len_): + """ + Draw a tick + + :param QPainter painter: Painter + :param float value: Value of the tick + :param float len: Length of the tick + + .. seealso:: + + :py:meth:`drawBackbone()`, :py:meth:`drawLabel()` + """ if len_ <= 0: return @@ -414,6 +803,15 @@ def drawTick(self, painter, value, len_): QwtPainter.drawLine(painter, tval, y1, tval, y2) def drawBackbone(self, painter): + """ + Draws the baseline of the scale + + :param QPainter painter: Painter + + .. seealso:: + + :py:meth:`drawTick()`, :py:meth:`drawLabel()` + """ doAlign = QwtPainter.roundingAlignment(painter) pos = self.__data.pos len_ = self.__data.len @@ -449,6 +847,48 @@ def drawBackbone(self, painter): QwtPainter.drawLine(painter, pos.x(), y, pos.x()+len_, y) def move(self, *args): + """ + Move the position of the scale + + The meaning of the parameter pos depends on the alignment: + + * `QwtScaleDraw.LeftScale`: + + The origin is the topmost point of the backbone. The backbone is a + vertical line. Scale marks and labels are drawn at the left of the + backbone. + + * `QwtScaleDraw.RightScale`: + + The origin is the topmost point of the backbone. The backbone is a + vertical line. Scale marks and labels are drawn at the right of + the backbone. + + * `QwtScaleDraw.TopScale`: + + The origin is the leftmost point of the backbone. The backbone is + a horizontal line. Scale marks and labels are drawn above the + backbone. + + * `QwtScaleDraw.BottomScale`: + + The origin is the leftmost point of the backbone. The backbone is + a horizontal line Scale marks and labels are drawn below the + backbone. + + .. py:method:: move(x, y) + + :param float x: X coordinate + :param float y: Y coordinate + + .. py:method:: move(pos) + + :param QPointF pos: position + + .. seealso:: + + :py:meth:`pos()`, :py:meth:`setLength()` + """ if len(args) == 2: x, y = args self.move(QPointF(x, y)) @@ -461,9 +901,27 @@ def move(self, *args): % (self.__class__.__name__, len(args))) def pos(self): + """ + :return: Origin of the scale + + .. seealso:: + + :py:meth:`pos()`, :py:meth:`setLength()` + """ return self.__data.pos def setLength(self, length): + """ + Set the length of the backbone. + + The length doesn't include the space needed for overlapping labels. + + :param float length: Length of the backbone + + .. seealso:: + + :py:meth:`move()`, :py:meth:`minLabelDist()` + """ if length >= 0 and length < 10: length = 10 if length < 0 and length > -10: @@ -472,9 +930,27 @@ def setLength(self, length): self.updateMap() def length(self): + """ + :return: the length of the backbone + + .. seealso:: + + :py:meth:`setLength()`, :py:meth:`pos()` + """ return self.__data.len def drawLabel(self, painter, value): + """ + Draws the label for a major scale tick + + :param QPainter painter: Painter + :param float value: Value + + .. seealso:: + + :py:meth:`drawTick()`, :py:meth:`drawBackbone()`, + :py:meth:`boundingLabelRect()` + """ lbl = self.tickLabel(painter.font(), value) if lbl is None or lbl.isEmpty(): return @@ -487,6 +963,20 @@ def drawLabel(self, painter, value): painter.restore() def boundingLabelRect(self, font, value): + """ + Find the bounding rectangle for the label. + + The coordinates of the rectangle are absolute (calculated from + `pos()`) in direction of the tick. + + :param QFont font: Font used for painting + :param float value: Value + :return: Bounding rectangle + + .. seealso:: + + :py:meth:`labelRect()` + """ lbl = self.tickLabel(font, value) if lbl.isEmpty(): return QRect() @@ -496,6 +986,18 @@ def boundingLabelRect(self, font, value): return transform.mapRect(QRect(QPoint(0, 0), labelSize.toSize())) def labelTransformation(self, pos, size): + """ + Calculate the transformation that is needed to paint a label + depending on its alignment and rotation. + + :param QPointF pos: Position where to paint the label + :param QSizeF size: Size of the label + :return: Transformation matrix + + .. seealso:: + + :py:meth:`setLabelAlignment()`, :py:meth:`setLabelRotation()` + """ transform = QTransform() transform.translate(pos.x(), pos.y()) transform.rotate(self.labelRotation()) @@ -523,6 +1025,15 @@ def labelTransformation(self, pos, size): return transform def labelRect(self, font, value): + """ + Find the bounding rectangle for the label. The coordinates of + the rectangle are relative to spacing + tick length from the backbone + in direction of the tick. + + :param QFont font: Font used for painting + :param float value: Value + :return: Bounding rectangle that is needed to draw a label + """ lbl = self.tickLabel(font, value) if not lbl or lbl.isEmpty(): return QRectF(0., 0., 0., 0.) @@ -534,21 +1045,91 @@ def labelRect(self, font, value): return br def labelSize(self, font, value): + """ + Calculate the size that is needed to draw a label + + :param QFont font: Label font + :param float value: Value + :return: Size that is needed to draw a label + """ return self.labelRect(font, value).size() def setLabelRotation(self, rotation): + """ + Rotate all labels. + + When changing the rotation, it might be necessary to + adjust the label flags too. Finding a useful combination is + often the result of try and error. + + :param float rotation: Angle in degrees. When changing the label rotation, the label flags often needs to be adjusted too. + + .. seealso:: + + :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()`, + :py:meth:`labelAlignment()` + """ self.__data.labelRotation = rotation def labelRotation(self): + """ + :return: the label rotation + + .. seealso:: + + :py:meth:`setLabelRotation()`, :py:meth:`labelAlignment()` + """ return self.__data.labelRotation def setLabelAlignment(self, alignment): + """ + Change the label flags + + Labels are aligned to the point tick length + spacing away from the + backbone. + + The alignment is relative to the orientation of the label text. + In case of an flags of 0 the label will be aligned + depending on the orientation of the scale: + + * `QwtScaleDraw.TopScale`: `Qt.AlignHCenter | Qt.AlignTop` + * `QwtScaleDraw.BottomScale`: `Qt.AlignHCenter | Qt.AlignBottom` + * `QwtScaleDraw.LeftScale`: `Qt.AlignLeft | Qt.AlignVCenter` + * `QwtScaleDraw.RightScale`: `Qt.AlignRight | Qt.AlignVCenter` + + Changing the alignment is often necessary for rotated labels. + + :param Qt.Alignment alignment Or'd `Qt.AlignmentFlags` + + .. seealso:: + + :py:meth:`setLabelRotation()`, :py:meth:`labelRotation()`, + :py:meth:`labelAlignment()` + + .. warning:: + + The various alignments might be confusing. The alignment of the + label is not the alignment of the scale and is not the alignment + of the flags (`QwtText.flags()`) returned from + `QwtAbstractScaleDraw.label()`. + """ self.__data.labelAlignment = alignment def labelAlignment(self): + """ + :return: the label flags + + .. seealso:: + + :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()` + """ return self.__data.labelAlignment def maxLabelWidth(self, font): + """ + :param QFont font: Font + :return: the maximum width of a label + """ ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if not ticks: return 0 @@ -556,6 +1137,10 @@ def maxLabelWidth(self, font): for v in ticks if self.scaleDiv().contains(v)])) def maxLabelHeight(self, font): + """ + :param QFont font: Font + :return: the maximum height of a label + """ ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if not ticks: return 0 diff --git a/qwt/scale_engine.py b/qwt/scale_engine.py index 7eeb326..167b15b 100644 --- a/qwt/scale_engine.py +++ b/qwt/scale_engine.py @@ -5,6 +5,26 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtScaleEngine +-------------- + +.. autoclass:: QwtScaleEngine + :members: + +QwtLinearScaleEngine +-------------------- + +.. autoclass:: QwtLinearScaleEngine + :members: + +QwtLogScaleEngine +----------------- + +.. autoclass:: QwtLogScaleEngine + :members: +""" + from __future__ import division from qwt.interval import QwtInterval @@ -34,32 +54,75 @@ def qwtPowInterval(base, interval): np.power(base, interval.maxValue())) def qwtStepSize(intervalSize, maxSteps, base): + """this version often doesn't find the best ticks: f.e for 15: 5, 10""" minStep = divideInterval(intervalSize, maxSteps, base) if minStep != 0.: + # # ticks per interval numTicks = np.ceil(abs(intervalSize/minStep))-1 + # Do the minor steps fit into the interval? if qwtFuzzyCompare((numTicks+1)*abs(minStep), abs(intervalSize), intervalSize) > 0: + # The minor steps doesn't fit into the interval return .5*intervalSize return minStep EPS = 1.0e-6 def ceilEps(value, intervalSize): + """ + Ceil a value, relative to an interval + + :param float value: Value to be ceiled + :param float intervalSize: Interval size + :return: Rounded value + + .. seealso:: + + :py:func:`qwt.scale_engine.floorEps()` + """ eps = EPS*intervalSize value = (value-eps)/intervalSize return np.ceil(value)*intervalSize def floorEps(value, intervalSize): + """ + Floor a value, relative to an interval + + :param float value: Value to be floored + :param float intervalSize: Interval size + :return: Rounded value + + .. seealso:: + + :py:func:`qwt.scale_engine.ceilEps()` + """ eps = EPS*intervalSize value = (value+eps)/intervalSize return np.floor(value)*intervalSize def divideEps(intervalSize, numSteps): + """ + Divide an interval into steps + + `stepSize = (intervalSize - intervalSize * 10**-6) / numSteps` + + :param float intervalSize: Interval size + :param float numSteps: Number of steps + :return: Step size + """ if numSteps == 0. or intervalSize == 0.: return 0. return (intervalSize-(EPS*intervalSize))/numSteps def divideInterval(intervalSize, numSteps, base): + """ + Calculate a step size for a given interval + + :param float intervalSize: Interval size + :param float numSteps: Number of steps + :param int base: Base for the division (usually 10) + :return: Calculated step size + """ if numSteps <= 0: return 0. v = divideEps(intervalSize, numSteps) @@ -91,6 +154,29 @@ def __init__(self): class QwtScaleEngine(object): + """ + Base class for scale engines. + + A scale engine tries to find "reasonable" ranges and step sizes + for scales. + + The layout of the scale can be varied with `setAttribute()`. + + `python-qwt` offers implementations for logarithmic and linear scales. + + Layout attributes: + + * `QwtScaleEngine.NoAttribute`: No attributes + * `QwtScaleEngine.IncludeReference`: Build a scale which includes the + `reference()` value + * `QwtScaleEngine.Symmetric`: Build a scale which is symmetric to the + `reference()` value + * `QwtScaleEngine.Floating`: The endpoints of the scale are supposed to + be equal the outmost included values plus the specified margins (see + `setMargins()`). If this attribute is *not* set, the endpoints of the + scale will be integer multiples of the step size. + * `QwtScaleEngine.Inverted`: Turn the scale upside down + """ # enum Attribute NoAttribute = 0x00 @@ -103,29 +189,129 @@ def __init__(self, base=10): self.__data = QwtScaleEngine_PrivateData() self.setBase(base) + def autoScale(self, maxNumSteps, x1, x2, stepSize): + """ + Align and divide an interval + + :param int maxNumSteps: Max. number of steps + :param float x1: First limit of the interval (In/Out) + :param float x2: Second limit of the interval (In/Out) + :param float stepSize: Step size + :return: tuple (x1, x2, stepSize) + """ + pass + + def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): + """ + Calculate a scale division + + :param float x1: First interval limit + :param float x2: Second interval limit + :param int maxMajorSteps: Maximum for the number of major steps + :param int maxMinorSteps: Maximum number of minor steps + :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one + :return: Calculated scale division + """ + pass + def setTransformation(self, transform): + """ + Assign a transformation + + :param qwt.transform.QwtTransform transform: Transformation + + The transformation object is used as factory for clones + that are returned by `transformation()` + + The scale engine takes ownership of the transformation. + + .. seealso:: + + :py:meth:`QwtTransform.copy()`, :py:meth:`transformation()` + """ assert transform is None or isinstance(transform, QwtTransform) if transform != self.__data.transform: self.__data.transform = transform def transformation(self): + """ + Create and return a clone of the transformation + of the engine. When the engine has no special transformation + None is returned, indicating no transformation. + + :return: A clone of the transfomation + + .. seealso:: + + :py:meth:`setTransformation()` + """ if self.__data.transform: return self.__data.transform.copy() def lowerMargin(self): + """ + :return: the margin at the lower end of the scale + + The default margin is 0. + + .. seealso:: + + :py:meth:`setMargins()` + """ return self.__data.lowerMargin def upperMargin(self): + """ + :return: the margin at the upper end of the scale + + The default margin is 0. + + .. seealso:: + + :py:meth:`setMargins()` + """ return self.__data.upperMargin def setMargins(self, lower, upper): + """ + Specify margins at the scale's endpoints + + :param float lower: minimum distance between the scale's lower boundary and the smallest enclosed value + :param float upper: minimum distance between the scale's upper boundary and the greatest enclosed value + :return: A clone of the transfomation + + Margins can be used to leave a minimum amount of space between + the enclosed intervals and the boundaries of the scale. + + .. warning:: + + `QwtLogScaleEngine` measures the margins in decades. + + .. seealso:: + + :py:meth:`upperMargin()`, :py:meth:`lowerMargin()` + """ self.__data.lowerMargin = max([lower, 0.]) self.__data.upperMargin = max([upper, 0.]) def divideInterval(self, intervalSize, numSteps): + """ + Calculate a step size for a given interval + + :param float intervalSize: Interval size + :param float numSteps: Number of steps + :return: Step size + """ return divideInterval(intervalSize, numSteps, self.__data.base) def contains(self, interval, value): + """ + Check if an interval "contains" a value + + :param float intervalSize: Interval size + :param float value: Value + :return: True, when the value is inside the interval + """ if not interval.isValid(): return False elif qwtFuzzyCompare(value, interval.minValue(), interval.width()) < 0: @@ -136,6 +322,13 @@ def contains(self, interval, value): return True def strip(self, ticks, interval): + """ + Remove ticks from a list, that are not inside an interval + + :param list ticks: Tick list + :param qwt.interval.QwtInterval interval: Interval + :return: Stripped tick list + """ if not interval.isValid() or not ticks: return [] if self.contains(interval, ticks[0]) and\ @@ -145,6 +338,15 @@ def strip(self, ticks, interval): if self.contains(interval, tick)] def buildInterval(self, value): + """ + Build an interval around a value + + In case of v == 0.0 the interval is [-0.5, 0.5], + otherwide it is [0.5 * v, 1.5 * v] + + :param float value: Initial value + :return: Calculated interval + """ if value == 0.: delta = .5 else: @@ -156,38 +358,129 @@ def buildInterval(self, value): return QwtInterval(value-delta, value+delta) def setAttribute(self, attribute, on=True): + """ + Change a scale attribute + + :param int attribute: Attribute to change + :param bool on: On/Off + :return: Calculated interval + + .. seealso:: + + :py:meth:`testAttribute()` + """ if on: self.__data.attributes |= attribute else: self.__data.attributes &= ~attribute def testAttribute(self, attribute): + """ + :param int attribute: Attribute to be tested + :return: True, if attribute is enabled + + .. seealso:: + + :py:meth:`setAttribute()` + """ return self.__data.attributes & attribute def setAttributes(self, attributes): + """ + Change the scale attribute + + :param attributes: Set scale attributes + + .. seealso:: + + :py:meth:`attributes()` + """ self.__data.attributes = attributes def attributes(self): + """ + :return: Scale attributes + + .. seealso:: + + :py:meth:`setAttributes()`, :py:meth:`testAttribute()` + """ return self.__data.attributes def setReference(self, r): + """ + Specify a reference point + + :param float r: new reference value + + The reference point is needed if options `IncludeReference` or + `Symmetric` are active. Its default value is 0.0. + """ self.__data.referenceValue = r def reference(self): + """ + :return: the reference value + + .. seealso:: + + :py:meth:`setReference()`, :py:meth:`setAttribute()` + """ return self.__data.referenceValue def setBase(self, base): + """ + Set the base of the scale engine + + While a base of 10 is what 99.9% of all applications need + certain scales might need a different base: f.e 2 + + The default setting is 10 + + :param int base: Base of the engine + + .. seealso:: + + :py:meth:`base()` + """ self.__data.base = max([base, 2]) def base(self): + """ + :return: Base of the scale engine + + .. seealso:: + + :py:meth:`setBase()` + """ return self.__data.base class QwtLinearScaleEngine(QwtScaleEngine): + """ + A scale engine for linear scales + + The step size will fit into the pattern + \f$\left\{ 1,2,5\right\} \cdot 10^{n}\f$, where n is an integer. + """ + def __init__(self, base=10): super(QwtLinearScaleEngine, self).__init__(base) def autoScale(self, maxNumSteps, x1, x2, stepSize): + """ + Align and divide an interval + + :param int maxNumSteps: Max. number of steps + :param float x1: First limit of the interval (In/Out) + :param float x2: Second limit of the interval (In/Out) + :param float stepSize: Step size + :return: tuple (x1, x2, stepSize) + + .. seealso:: + + :py:meth:`setAttribute()` + """ interval = QwtInterval(x1, x2) interval = interval.normalized() interval.setMinValue(interval.minValue()-self.lowerMargin()) @@ -210,6 +503,16 @@ def autoScale(self, maxNumSteps, x1, x2, stepSize): return x1, x2, stepSize def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): + """ + Calculate a scale division for an interval + + :param float x1: First interval limit + :param float x2: Second interval limit + :param int maxMajorSteps: Maximum for the number of major steps + :param int maxMinorSteps: Maximum number of minor steps + :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one + :return: Calculated scale division + """ interval = QwtInterval(x1, x2).normalized() if interval.width() <= 0: return QwtScaleDiv() @@ -228,6 +531,14 @@ def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): return scaleDiv def buildTicks(self, interval, stepSize, maxMinorSteps): + """ + Calculate ticks for an interval + + :param qwt.interval.QwtInterval interval: Interval + :param float stepSize: Step size + :param int maxMinorSteps: Maximum number of minor steps + :return: Calculated ticks + """ ticks = [[] for _i in range(QwtScaleDiv.NTickTypes)] boundingInterval = self.align(interval, stepSize) ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, @@ -242,6 +553,13 @@ def buildTicks(self, interval, stepSize, maxMinorSteps): return ticks def buildMajorTicks(self, interval, stepSize): + """ + Calculate major ticks for an interval + + :param qwt.interval.QwtInterval interval: Interval + :param float stepSize: Step size + :return: Calculated ticks + """ numTicks = min([round(interval.width()/stepSize)+1, 10000]) ticks = [interval.minValue()] for i in range(1, int(numTicks-1)): @@ -250,6 +568,13 @@ def buildMajorTicks(self, interval, stepSize): return ticks def buildMinorTicks(self, ticks, maxMinorSteps, stepSize): + """ + Calculate minor ticks for an interval + + :param list ticks: Major ticks (returned) + :param int maxMinorSteps: Maximum number of minor steps + :param float stepSize: Step size + """ minStep = qwtStepSize(stepSize, maxMinorSteps, self.base()) if minStep == 0.: return @@ -269,6 +594,16 @@ def buildMinorTicks(self, ticks, maxMinorSteps, stepSize): ticks[QwtScaleDiv.MinorTick] += [alignedValue] def align(self, interval, stepSize): + """ + Align an interval to a step size + + The limits of an interval are aligned that both are integer + multiples of the step size. + + :param qwt.interval.QwtInterval interval: Interval + :param float stepSize: Step size + :return: Aligned interval + """ x1 = interval.minValue() x2 = interval.maxValue() if -DBL_MAX+stepSize <= x1: @@ -283,11 +618,36 @@ def align(self, interval, stepSize): class QwtLogScaleEngine(QwtScaleEngine): + """ + A scale engine for logarithmic scales + + The step size is measured in *decades* + and the major step size will be adjusted to fit the pattern + \f$\left\{ 1,2,3,5\right\} \cdot 10^{n}\f$, where n is a natural number + including zero. + + .. warning:: + + The step size as well as the margins are measured in *decades*. + """ def __init__(self, base=10): super(QwtLogScaleEngine, self).__init__(base) self.setTransformation(QwtLogTransform()) def autoScale(self, maxNumSteps, x1, x2, stepSize): + """ + Align and divide an interval + + :param int maxNumSteps: Max. number of steps + :param float x1: First limit of the interval (In/Out) + :param float x2: Second limit of the interval (In/Out) + :param float stepSize: Step size + :return: tuple (x1, x2, stepSize) + + .. seealso:: + + :py:meth:`setAttribute()` + """ if x1 > x2: x1, x2 = x2, x1 logBase = self.base() @@ -343,8 +703,20 @@ def autoScale(self, maxNumSteps, x1, x2, stepSize): if self.testAttribute(QwtScaleEngine.Inverted): x1, x2 = x2, x1 stepSize = -stepSize + + return x1, x2, stepSize def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): + """ + Calculate a scale division for an interval + + :param float x1: First interval limit + :param float x2: Second interval limit + :param int maxMajorSteps: Maximum for the number of major steps + :param int maxMinorSteps: Maximum number of minor steps + :param float stepSize: Step size. If stepSize == 0.0, the scaleEngine calculates one + :return: Calculated scale division + """ interval = QwtInterval(x1, x2).normalized() interval = interval.limited(LOG_MIN, LOG_MAX) @@ -388,6 +760,14 @@ def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): return scaleDiv def buildTicks(self, interval, stepSize, maxMinorSteps): + """ + Calculate ticks for an interval + + :param qwt.interval.QwtInterval interval: Interval + :param float stepSize: Step size + :param int maxMinorSteps: Maximum number of minor steps + :return: Calculated ticks + """ ticks = [[] for _i in range(QwtScaleDiv.NTickTypes)] boundingInterval = self.align(interval, stepSize) ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, @@ -399,6 +779,13 @@ def buildTicks(self, interval, stepSize, maxMinorSteps): return ticks def buildMajorTicks(self, interval, stepSize): + """ + Calculate major ticks for an interval + + :param qwt.interval.QwtInterval interval: Interval + :param float stepSize: Step size + :return: Calculated ticks + """ width = qwtLogInterval(self.base(), interval).width() numTicks = min([int(round(width/stepSize))+1, 10000]) @@ -413,6 +800,13 @@ def buildMajorTicks(self, interval, stepSize): return ticks def buildMinorTicks(self, ticks, maxMinorSteps, stepSize): + """ + Calculate minor ticks for an interval + + :param list ticks: Major ticks (returned) + :param int maxMinorSteps: Maximum number of minor steps + :param float stepSize: Step size + """ logBase = self.base() if stepSize < 1.1: @@ -472,6 +866,16 @@ def buildMinorTicks(self, ticks, maxMinorSteps, stepSize): ticks[QwtScaleDiv.MinorTick] += [tick] def align(self, interval, stepSize): + """ + Align an interval to a step size + + The limits of an interval are aligned that both are integer + multiples of the step size. + + :param qwt.interval.QwtInterval interval: Interval + :param float stepSize: Step size + :return: Aligned interval + """ intv = qwtLogInterval(self.base(), interval) x1 = floorEps(intv.minValue(), stepSize) diff --git a/qwt/scale_map.py b/qwt/scale_map.py index 4a3b11d..f9ecfdf 100644 --- a/qwt/scale_map.py +++ b/qwt/scale_map.py @@ -5,12 +5,29 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtScaleMap +----------- + +.. autoclass:: QwtScaleMap + :members: +""" + from qwt.math import qwtFuzzyCompare from qwt.qt.QtCore import QRectF, QPointF class QwtScaleMap(object): + """ + A scale map + + `QwtScaleMap` offers transformations from the coordinate system + of a scale into the linear coordinate system of a paint device + and vice versa. + + The scale and paint device intervals are both set to [0,1]. + """ def __init__(self, *args): self.__transform = None # QwtTransform self.__s1 = 0. @@ -51,46 +68,107 @@ def __eq__(self, other): self.__ts1 == other.__ts1 def s1(self): + """ + :return: First border of the scale interval + """ return self.__s1 def s2(self): + """ + :return: Second border of the scale interval + """ return self.__s2 def p1(self): + """ + :return: First border of the paint interval + """ return self.__p1 def p2(self): + """ + :return: Second border of the paint interval + """ return self.__p2 def pDist(self): + """ + :return: `abs(p2() - p1())` + """ return abs(self.__p2 - self.__p1) def sDist(self): + """ + :return: `abs(s2() - s1())` + """ return abs(self.__s2 - self.__s1) def transform_scalar(self, s): + """ + Transform a point related to the scale interval into an point + related to the interval of the paint device + + :param float s: Value relative to the coordinates of the scale + :return: Transformed value + + .. seealso:: + + :py:meth:`invTransform_scalar()` + """ if self.__transform: s = self.__transform.transform(s) return self.__p1 + (s - self.__ts1)*self.__cnv def invTransform_scalar(self, p): + """ + Transform an paint device value into a value in the + interval of the scale. + + :param float p: Value relative to the coordinates of the paint device + :return: Transformed value + + .. seealso:: + + :py:meth:`transform_scalar()` + """ s = self.__ts1 + ( p - self.__p1 ) / self.__cnv if self.__transform: s = self.__transform.invTransform(s) return s def isInverting(self): + """ + :return: True, when ( p1() < p2() ) != ( s1() < s2() ) + """ return ( self.__p1 < self.__p2 ) != ( self.__s1 < self.__s2 ) def setTransformation(self, transform): + """ + Initialize the map with a transformation + + :param qwt.transform.QwtTransform transform: Transformation + """ if self.__transform != transform: self.__transform = transform self.setScaleInterval(self.__s1, self.__s2) def transformation(self): + """ + :return: the transformation + """ return self.__transform def setScaleInterval(self, s1, s2): + """ + Specify the borders of the scale interval + + :param float s1: first border + :param float s2: second border + + .. warning:: + + Scales might be aligned to transformation depending boundaries + """ self.__s1 = s1 self.__s2 = s2 if self.__transform: @@ -99,6 +177,12 @@ def setScaleInterval(self, s1, s2): self.updateFactor() def setPaintInterval(self, p1, p2): + """ + Specify the borders of the paint device interval + + :param float p1: first border + :param float p2: second border + """ self.__p1 = p1 self.__p2 = p2 self.updateFactor() @@ -114,11 +198,36 @@ def updateFactor(self): self.__cnv = (self.__p2 - self.__p1)/(ts2 - self.__ts1) def transform(self, *args): - """Transform from scale to paint coordinates + """ + Transform a rectangle from scale to paint coordinates + + .. py:method:: transform(scalar) + + :param float scalar: Scalar + + .. py:method:: transform(xMap, yMap, rect) + Transform a rectangle from scale to paint coordinates + + :param qwt.scale_map.QwtScaleMap xMap: X map + :param qwt.scale_map.QwtScaleMap yMap: Y map + :param QRectF rect: Rectangle in paint coordinates + + .. py:method:: transform(xMap, yMap, pos) + + Transform a point from scale to paint coordinates + + :param qwt.scale_map.QwtScaleMap xMap: X map + :param qwt.scale_map.QwtScaleMap yMap: Y map + :param QPointF pos: Position in scale coordinates + Scalar: scalemap.transform(scalar) Point (QPointF): scalemap.transform(xMap, yMap, pos) Rectangle (QRectF): scalemap.transform(xMap, yMap, rect) + + .. seealso:: + + :py:meth:`invTransform()` """ if len(args) == 1: # Scalar transform diff --git a/qwt/scale_widget.py b/qwt/scale_widget.py index cde3a14..16cad08 100644 --- a/qwt/scale_widget.py +++ b/qwt/scale_widget.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtScaleWidget +-------------- + +.. autoclass:: QwtScaleWidget + :members: +""" + from qwt.scale_draw import QwtScaleDraw from qwt.scale_engine import QwtLinearScaleEngine from qwt.color_map import QwtLinearColorMap @@ -42,6 +50,28 @@ def __init__(self): class QwtScaleWidget(QWidget): + """ + A Widget which contains a scale + + This Widget can be used to decorate composite widgets with + a scale. + + Layout flags: + + * `QwtScaleWidget.TitleInverted`: The title of vertical scales is painted from top to bottom. Otherwise it is painted from bottom to top. + + .. py:class:: QwtScaleWidget([parent=None]) + + Alignment default is `QwtScaleDraw.LeftScale`. + + :param parent: Parent widget + :type parent: QWidget or None + + .. py:class:: QwtScaleWidget(align, parent) + + :param int align: Alignment + :param QWidget parent: Parent widget + """ SIG_SCALE_DIV_CHANGED = Signal() @@ -64,6 +94,11 @@ def __init__(self, *args): self.initScale(align) def initScale(self, align): + """ + Initialize the scale + + :param int align: Alignment + """ self.__data = QwtScaleWidget_PrivateData() self.__data.layoutFlags = 0 if align == QwtScaleDraw.RightScale: @@ -99,6 +134,16 @@ def initScale(self, align): self.setAttribute(Qt.WA_WState_OwnSizePolicy, False) def setLayoutFlag(self, flag, on=True): + """ + Toggle an layout flag + + :param int flag: Layout flag + :param bool on: True/False + + .. seealso:: + + :py:meth:`testLayoutFlag()` + """ if (self.__data.layoutFlags & flag != 0) != on: if on: self.__data.layoutFlags |= flag @@ -106,9 +151,29 @@ def setLayoutFlag(self, flag, on=True): self.__data.layoutFlags &= ~flag def testLayoutFlag(self, flag): + """ + Test a layout flag + + :param int flag: Layout flag + :return: True/False + + .. seealso:: + + :py:meth:`setLayoutFlag()` + """ return self.__data.layoutFlags & flag def setTitle(self, title): + """ + Give title new text contents + + :param title: New title + :type title: qwt.text.QwtText or str + + .. seealso:: + + :py:meth:`title()` + """ if isinstance(title, QwtText): flags = title.renderFlags() & (~ int(Qt.AlignTop|Qt.AlignBottom)) title.setRenderFlags(flags) @@ -121,6 +186,17 @@ def setTitle(self, title): self.layoutScale() def setAlignment(self, alignment): + """ + Change the alignment + + :param int alignment: New alignment + + Valid alignment values: see :py:class:`qwt.scale_draw.QwtScaleDraw` + + .. seealso:: + + :py:meth:`alignment()` + """ if self.__data.scaleDraw: self.__data.scaleDraw.setAlignment(alignment) if not self.testAttribute(Qt.WA_WState_OwnSizePolicy): @@ -133,37 +209,108 @@ def setAlignment(self, alignment): self.layoutScale() def alignment(self): + """ + :return: position + + .. seealso:: + + :py:meth:`setAlignment()` + """ if not self.scaleDraw(): return QwtScaleDraw.LeftScale return self.scaleDraw().alignment() def setBorderDist(self, dist1, dist2): + """ + Specify distances of the scale's endpoints from the + widget's borders. The actual borders will never be less + than minimum border distance. + + :param int dist1: Left or top Distance + :param int dist2: Right or bottom distance + + .. seealso:: + + :py:meth:`borderDist()` + """ if dist1 != self.__data.borderDist[0] or\ dist2 != self.__data.borderDist[1]: self.__data.borderDist = [dist1, dist2] self.layoutScale() def setMargin(self, margin): + """ + Specify the margin to the colorBar/base line. + + :param int margin: Margin + + .. seealso:: + + :py:meth:`margin()` + """ margin = max([0, margin]) if margin != self.__data.margin: self.__data.margin = margin self.layoutScale() def setSpacing(self, spacing): + """ + Specify the distance between color bar, scale and title + + :param int spacing: Spacing + + .. seealso:: + + :py:meth:`spacing()` + """ spacing = max([0, spacing]) if spacing != self.__data.spacing: self.__data.spacing = spacing self.layoutScale() def setLabelAlignment(self, alignment): + """ + Change the alignment for the labels. + + :param int spacing: Spacing + + .. seealso:: + + :py:meth:`QwtScaleDraw.setLabelAlignment()`, + :py:meth:`setLabelRotation()` + """ self.__data.scaleDraw.setLabelAlignment(alignment) self.layoutScale() def setLabelRotation(self, rotation): + """ + Change the rotation for the labels. + + :param float rotation: Rotation + + .. seealso:: + + :py:meth:`QwtScaleDraw.setLabelRotation()`, + :py:meth:`setLabelFlags()` + """ self.__data.scaleDraw.setLabelRotation(rotation) self.layoutScale() def setScaleDraw(self, scaleDraw): + """ + Set a scale draw + + scaleDraw has to be created with new and will be deleted in + class destructor or the next call of `setScaleDraw()`. + scaleDraw will be initialized with the attributes of + the previous scaleDraw object. + + :param qwt.scale_draw.QwtScaleDraw scaleDraw: ScaleDraw object + + .. seealso:: + + :py:meth:`scaleDraw()` + """ if scaleDraw is None or scaleDraw == self.__data.scaleDraw: return sd = self.__data.scaleDraw @@ -178,21 +325,63 @@ def setScaleDraw(self, scaleDraw): self.layoutScale() def scaleDraw(self): + """ + :return: scaleDraw of this scale + + .. seealso:: + + :py:meth:`QwtScaleDraw.setScaleDraw()` + """ return self.__data.scaleDraw def title(self): + """ + :return: title + + .. seealso:: + + :py:meth:`setTitle` + """ return self.__data.title def startBorderDist(self): + """ + :return: start border distance + + .. seealso:: + + :py:meth:`setBorderDist` + """ return self.__data.borderDist[0] def endBorderDist(self): + """ + :return: end border distance + + .. seealso:: + + :py:meth:`setBorderDist` + """ return self.__data.borderDist[1] def margin(self): + """ + :return: margin + + .. seealso:: + + :py:meth:`setMargin` + """ return self.__data.margin def spacing(self): + """ + :return: distance between scale and title + + .. seealso:: + + :py:meth:`setSpacing` + """ return self.__data.spacing def paintEvent(self, event): @@ -204,6 +393,11 @@ def paintEvent(self, event): self.draw(painter) def draw(self, painter): + """ + Draw the scale + + :param QPainter painter: Painter + """ self.__data.scaleDraw.draw(painter, self.palette()) if self.__data.colorBar.isEnabled and\ self.__data.colorBar.width > 0 and\ @@ -222,6 +416,12 @@ def draw(self, painter): self.drawTitle(painter, self.__data.scaleDraw.alignment(), r) def colorBarRect(self, rect): + """ + Calculate the the rectangle for the color bar + + :param QRectF rect: Bounding rectangle for all components of the scale + :return: Rectangle for the color bar + """ cr = QRectF(rect) if self.__data.scaleDraw.orientation() == Qt.Horizontal: cr.setLeft(cr.left() + self.__data.borderDist[0]) @@ -248,6 +448,12 @@ def resizeEvent(self, event): self.layoutScale(False) def layoutScale(self, update_geometry=True): + """ + Recalculate the scale's geometry and layout based on + the current geometry and fonts. + + :param bool update_geometry: Notify the layout system and call update to redraw the scale + """ bd0, bd1 = self.getBorderDistHint() if self.__data.borderDist[0] > bd0: bd0 = self.__data.borderDist[0] @@ -287,6 +493,16 @@ def layoutScale(self, update_geometry=True): self.update() def drawColorBar(self, painter, rect): + """ + Draw the color bar of the scale widget + + :param QPainter painter: Painter + :param QRectF rect: Bounding rectangle for the color bar + + .. seealso:: + + :py:meth:`setColorBarEnabled()` + """ if not self.__data.colorBar.interval.isValid(): return sd = self.__data.scaleDraw @@ -295,6 +511,13 @@ def drawColorBar(self, painter, rect): sd.scaleMap(), sd.orientation(), rect) def drawTitle(self, painter, align, rect): + """ + Rotate and paint a title according to its position into a given rectangle. + + :param QPainter painter: Painter + :param int align: Alignment + :param QRectF rect: Bounding rectangle + """ r = rect flags = self.__data.title.renderFlags()\ &(~ int(Qt.AlignTop|Qt.AlignBottom|Qt.AlignVCenter)) @@ -338,6 +561,12 @@ def drawTitle(self, painter, align, rect): painter.restore() def scaleChange(self): + """ + Notify a change of the scale + + This method can be overloaded by derived classes. The default + implementation updates the geometry and repaints the widget. + """ self.layoutScale() def sizeHint(self): @@ -364,9 +593,23 @@ def minimumSizeHint(self): return size + QSize(left + right, top + bottom) def titleHeightForWidth(self, width): + """ + Find the height of the title for a given width. + + :param int width: Width + :return: Height + """ return np.ceil(self.__data.title.heightForWidth(width, self.font())) def dimForLength(self, length, scaleFont): + """ + Find the minimum dimension for a given length. + dim is the height, length the width seen in direction of the title. + + :param int length: width for horizontal, height for vertical scales + :param QFont scaleFont: Font of the scale + :return: height for horizontal, width for vertical scales + """ extent = np.ceil(self.__data.scaleDraw.extent(scaleFont)) dim = self.__data.margin + extent + 1 if not self.__data.title.isEmpty(): @@ -376,6 +619,27 @@ def dimForLength(self, length, scaleFont): return dim def getBorderDistHint(self): + """ + Calculate a hint for the border distances. + + This member function calculates the distance + of the scale's endpoints from the widget borders which + is required for the mark labels to fit into the widget. + The maximum of this distance an the minimum border distance + is returned. + + :param int start: Return parameter for the border width at the beginning of the scale + :param int end: Return parameter for the border width at the end of the scale + + .. warning:: + + The minimum border distance depends on the font. + + .. seealso:: + + :py:meth:`setMinBorderDist()`, :py:meth:`getMinBorderDist()`, + :py:meth:`setBorderDist()` + """ start, end = self.__data.scaleDraw.getBorderDistHint(self.font()) if start < self.__data.minBorderDist[0]: start = self.__data.minBorderDist[0] @@ -384,12 +648,48 @@ def getBorderDistHint(self): return start, end def setMinBorderDist(self, start, end): + """ + Set a minimum value for the distances of the scale's endpoints from + the widget borders. This is useful to avoid that the scales + are "jumping", when the tick labels or their positions change + often. + + :param int start: Minimum for the start border + :param int end: Minimum for the end border + + .. seealso:: + + :py:meth:`getMinBorderDist()`, :py:meth:`getBorderDistHint()` + """ self.__data.minBorderDist = [start, end] def getMinBorderDist(self): + """ + Get the minimum value for the distances of the scale's endpoints from + the widget borders. + + :param int start: Return parameter for the border width at the beginning of the scale + :param int end: Return parameter for the border width at the end of the scale + + .. seealso:: + + :py:meth:`setMinBorderDist()`, :py:meth:`getBorderDistHint()` + """ return self.__data.minBorderDist def setScaleDiv(self, scaleDiv): + """ + Assign a scale division + + The scale division determines where to set the tick marks. + + :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale Division + + .. seealso:: + + For more information about scale divisions, + see :py:class:`qwt.scale_div.QwtScaleDiv`. + """ sd = self.__data.scaleDraw if sd.scaleDiv() != scaleDiv: sd.setScaleDiv(scaleDiv) @@ -397,30 +697,90 @@ def setScaleDiv(self, scaleDiv): self.SIG_SCALE_DIV_CHANGED.emit() def setTransformation(self, transformation): + """ + Set the transformation + + :param qwt.transform.Transform transformation: Transformation + + .. seealso:: + + :py:meth:`qwt.scale_draw.QwtAbstractScaleDraw.scaleDraw()`, + :py:class:`qwt.scale_map.QwtScaleMap` + """ self.__data.scaleDraw.setTransformation(transformation) self.layoutScale() def setColorBarEnabled(self, on): + """ + En/disable a color bar associated to the scale + + :param bool on: On/Off + + .. seealso:: + + :py:meth:`isColorBarEnabled()`, :py:meth:`setColorBarWidth()` + """ if on != self.__data.colorBar.isEnabled: self.__data.colorBar.isEnabled = on self.layoutScale() def isColorBarEnabled(self): + """ + :return: True, when the color bar is enabled + + .. seealso:: + + :py:meth:`setColorBarEnabled()`, :py:meth:`setColorBarWidth()` + """ return self.__data.colorBar.isEnabled def setColorBarWidth(self, width): + """ + Set the width of the color bar + + :param int width: Width + + .. seealso:: + + :py:meth:`colorBarWidth()`, :py:meth:`setColorBarEnabled()` + """ if width != self.__data.colorBar.width: self.__data.colorBar.width = width if self.isColorBarEnabled(): self.layoutScale() def colorBarWidth(self): + """ + :return: Width of the color bar + + .. seealso:: + + :py:meth:`setColorBarWidth()`, :py:meth:`setColorBarEnabled()` + """ return self.__data.colorBar.width def colorBarInterval(self): + """ + :return: Value interval for the color bar + + .. seealso:: + + :py:meth:`setColorMap()`, :py:meth:`colorMap()` + """ return self.__data.colorBar.interval def setColorMap(self, interval, colorMap): + """ + Set the color map and value interval, that are used for displaying + the color bar. + + :param qwt.interval.QwtInterval interval: Value interval + :param qwt.color_map.QwtColorMap colorMap: Color map + + .. seealso:: + + :py:meth:`colorMap()`, :py:meth:`colorBarInterval()` + """ self.__data.colorBar.interval = interval if colorMap != self.__data.colorBar.colorMap: self.__data.colorBar.colorMap = colorMap @@ -428,5 +788,12 @@ def setColorMap(self, interval, colorMap): self.layoutScale() def colorMap(self): + """ + :return: Color map + + .. seealso:: + + :py:meth:`setColorMap()`, :py:meth:`colorBarInterval()` + """ return self.__data.colorBar.colorMap diff --git a/qwt/series_data.py b/qwt/series_data.py index 693c20f..4c899fe 100644 --- a/qwt/series_data.py +++ b/qwt/series_data.py @@ -5,161 +5,165 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) -from qwt.sample import QwtIntervalSample, QwtSetSample, QwtOHLCSample +""" +QwtSeriesData +------------- -from qwt.qt.QtCore import QRectF, QPointF +.. autoclass:: QwtSeriesData + :members: + +QwtPointArrayData +----------------- + +.. autoclass:: QwtPointArrayData + :members: +""" +from qwt.qt.QtCore import QRectF, QPointF -class QwtPoint3d(object): - pass #TODO: Fake / to be implemented - -class QwtPointPolar(object): - pass #TODO Fake / to be implemented - - -def qwtBoundingRect(*args): - if args: - sample = args[0] - if len(args) == 1 and isinstance(sample, (QPointF, QwtPoint3d)): - return QRectF(sample.x(), sample.y(), 0.0, 0.0) - elif len(args) == 1 and isinstance(sample, QwtPointPolar): - return QRectF(sample.x(), sample.y(), 0.0, 0.0) - elif len(args) == 1 and isinstance(sample, QwtIntervalSample): - return QRectF(sample.interval.minValue(), sample.value, - sample.interval.maxValue()-sample.interval.minValue(), 0.) - elif len(args) == 1 and isinstance(sample, QwtSetSample): - minY = sample.set[0] - maxY = sample.set[0] - for val in sample.set: - if val < minY: - minY = val - if val > maxY: - maxY = val - minX = sample.value - maxX = sample.value - return QRectF(minX, minY, maxX-minX, maxY-minY) - elif len(args) == 1 and isinstance(sample, QwtOHLCSample): - interval = sample.boundingInterval() - return QRectF(interval.minValue(), sample.time, interval.width(), 0.) - elif len(args) in (1, 2, 3): - series = args[0] - from_ = 0 - to = -1 - if len(args) > 1: - from_ = args[1] - if len(args) > 2: - to = args[2] - return qwtBoundingRectT(series, from_, to) - else: - raise TypeError("%s() takes 1 or 3 argument(s) (%s given)"\ - % ("qwtBoundingRect", len(args))) - - -def qwtBoundingRectT(series, from_, to): - boundingRect = QRectF(1.0, 1.0, -2.0, -2.0) - if from_ < 0: - from_ = 0 - if to < 0: - to = series.size()-1 - if to < from_: - return boundingRect - first_stage = True - for i in range(from_, to+1): - rect = qwtBoundingRect(series.sample(i)) - if rect.width() >= 0. and rect.height() >= 0.: - if first_stage: - boundingRect = rect - first_stage = False - continue - else: - boundingRect.setLeft(min([boundingRect.left(), rect.left()])) - boundingRect.setRight(max([boundingRect.right(), rect.right()])) - boundingRect.setTop(min([boundingRect.top(), rect.top()])) - boundingRect.setBottom(max([boundingRect.bottom(), rect.bottom()])) - return boundingRect +import numpy as np class QwtSeriesData(object): + """ + Abstract interface for iterating over samples + + `python-qwt` offers several implementations of the QwtSeriesData API, + but in situations, where data of an application specific format + needs to be displayed, without having to copy it, it is recommended + to implement an individual data access. + + A subclass of `QwtSeriesData` must implement: + + - size(): + + Should return number of data points. + + - sample() + + Should return values x and y values of the sample at specific position + as QPointF object. + + - boundingRect() + + Should return the bounding rectangle of the data series. + It is used for autoscaling and might help certain algorithms for + displaying the data. + The member `_boundingRect` is intended for caching the calculated + rectangle. + """ def __init__(self): self._boundingRect = QRectF(0.0, 0.0, -1.0, -1.0) def setRectOfInterest(self, rect): - raise NotImplementedError + """ + Set a the "rect of interest" + + QwtPlotSeriesItem defines the current area of the plot canvas + as "rectangle of interest" ( QwtPlotSeriesItem::updateScaleDiv() ). + It can be used to implement different levels of details. + + The default implementation does nothing. + + :param QRectF rect: Rectangle of interest + """ + pass def size(self): - raise NotImplementedError + """ + :return: Number of samples + """ + pass def sample(self, i): - raise NotImplementedError - - -class QwtArraySeriesData(QwtSeriesData): - def __init__(self, samples=None): - QwtSeriesData.__init__(self) - self.__samples = [] - if samples is not None: - self.__samples = samples + """ + Return a sample - def setSamples(self, samples): - self._boundingRect = QRectF(0.0, 0.0, -1.0, -1.0) - self.__samples = samples - - def samples(self): - return self.__samples - - def size(self): - return len(self.__samples) - - def sample(self, i): - return self.__samples[i] - - -class QwtPointSeriesData(QwtArraySeriesData): - def __init__(self, samples=[]): - QwtArraySeriesData.__init__(self, samples) + :param int i: Index + :return: Sample at position i + """ + pass def boundingRect(self): - if self._boundingRect.width() < 0.: - self._boundingRect = qwtBoundingRect(self) - return self._boundingRect + """ + Calculate the bounding rect of all samples + The bounding rect is necessary for autoscaling and can be used + for a couple of painting optimizations. -class QwtPoint3DSeriesData(QwtArraySeriesData): - def __init__(self, samples): - QwtArraySeriesData.__init__(self, samples) - - def boundingRect(self): - if self._boundingRect.width() < 0.: - self._boundingRect = qwtBoundingRect(self) - return self._boundingRect + :return: Bounding rectangle + """ + pass -class QwtIntervalSeriesData(QwtArraySeriesData): - def __init__(self, samples=None): - QwtArraySeriesData.__init__(self, samples) +class QwtPointArrayData(QwtSeriesData): + """ + Interface for iterating over two array objects - def boundingRect(self): - if self._boundingRect.width() < 0.: - self._boundingRect = qwtBoundingRect(self) - return self._boundingRect - - -class QwtSetSeriesData(QwtArraySeriesData): - def __init__(self, samples): - QwtArraySeriesData.__init__(self, samples) + .. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None]) + :param x: Array of x values + :type x: list or tuple or numpy.array + :param y: Array of y values + :type y: list or tuple or numpy.array + :param int size: Size of the x and y arrays + """ + def __init__(self, x=None, y=None, size=None): + QwtSeriesData.__init__(self) + if x is None and y is not None: + x = np.arange(len(y)) + elif y is None and x is not None: + y = x + x = np.arange(len(y)) + elif x is None and y is None: + x = np.array([]) + y = np.array([]) + if isinstance(x, (tuple, list)): + x = np.array(x) + if isinstance(y, (tuple, list)): + y = np.array(y) + if size is not None: + x = np.resize(x, (size, )) + y = np.resize(y, (size, )) + self.__x = x + self.__y = y + def boundingRect(self): - if self._boundingRect.width() < 0.: - self._boundingRect = qwtBoundingRect(self) - return self._boundingRect - - -class QwtTradingChartData(QwtArraySeriesData): - def __init__(self, samples): - QwtArraySeriesData.__init__(self, samples) + """ + Calculate the bounding rectangle + + The bounding rectangle is calculated once by iterating over all + points and is stored for all following requests. + + :return: Bounding rectangle + """ + xmin = self.__x.min() + xmax = self.__x.max() + ymin = self.__y.min() + ymax = self.__y.max() + return QRectF(xmin, ymin, xmax-xmin, ymax-ymin) - def boundingRect(self): - if self._boundingRect.width() < 0.: - self._boundingRect = qwtBoundingRect(self) - return self._boundingRect - + def size(self): + """ + :return: Size of the data set + """ + return min([self.__x.size, self.__y.size]) + + def sample(self, index): + """ + :param int index: Index + :return: Sample at position `index` + """ + return QPointF(self.__x[index], self.__y[index]) + + def xData(self): + """ + :return: Array of the x-values + """ + return self.__x + + def yData(self): + """ + :return: Array of the y-values + """ + return self.__y diff --git a/qwt/toqimage.py b/qwt/toqimage.py index d52226b..78eb1c8 100644 --- a/qwt/toqimage.py +++ b/qwt/toqimage.py @@ -3,13 +3,26 @@ # Licensed under the terms of the MIT License # (see LICENSE file for more details) +""" +NumPy array to QImage +--------------------- + +.. autofunction:: array_to_qimage +""" + from qwt.qt.QtGui import QImage import numpy as np def array_to_qimage(arr, copy=False): - """Convert NumPy array to QImage object""" + """ + Convert NumPy array to QImage object + + :param numpy.array arr: NumPy array + :param bool copy: if True, make a copy of the array + :return: QImage object + """ # https://gist.githubusercontent.com/smex/5287589/raw/toQImage.py if arr is None: return QImage() From 6c13d5f26ed24dc849e55f9dc2b20780e81d0875 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 2 Oct 2015 20:19:11 +0200 Subject: [PATCH 028/421] Added docstrings for symbol/series_store modules + removed QwtAbstractSeriesStore --- doc/images/symbol_path_example.png | Bin 0 -> 6962 bytes doc/index.rst | 1 - doc/overview.rst | 14 +- doc/reference/index.rst | 2 + doc/reference/series_store.rst | 2 + doc/reference/symbol.rst | 2 + qwt/plot_curve.py | 2 +- qwt/plot_seriesitem.py | 4 +- qwt/scale_engine.py | 5 +- qwt/series_store.py | 86 +++-- qwt/symbol.py | 489 ++++++++++++++++++++++++++++- 11 files changed, 567 insertions(+), 40 deletions(-) create mode 100644 doc/images/symbol_path_example.png create mode 100644 doc/reference/series_store.rst create mode 100644 doc/reference/symbol.rst diff --git a/doc/images/symbol_path_example.png b/doc/images/symbol_path_example.png new file mode 100644 index 0000000000000000000000000000000000000000..b149979e036e32d7e0bcd8f0f37574a80e3937d9 GIT binary patch literal 6962 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 P=YlR8T{bK+aJ&CM1Hy06 literal 0 HcmV?d00001 diff --git a/doc/index.rst b/doc/index.rst index cd24ebd..0215329 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -7,7 +7,6 @@ Contents: :maxdepth: 2 overview - limitations installation examples/index reference/index diff --git a/doc/overview.rst b/doc/overview.rst index add7a8e..7636892 100644 --- a/doc/overview.rst +++ b/doc/overview.rst @@ -26,19 +26,23 @@ only plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotCurve`. The `HistogramItem` object implemented in PyQwt's HistogramDemo.py is not -available here as a similar item is already implemented in `guiqwt`. As a +available here (a similar item is already implemented in `guiqwt`). As a consequence, the following classes are not implemented: `QwtPlotHistogram`, `QwtIntervalSeriesData`, `QwtIntervalSample`. -The following data structure objects are not implemented as they seemed not -relevant with Python and NumPy: `QwtCPointerData` (As a consequence, method +The following data structure objects are not implemented as they seemed +irrelevant with Python and NumPy: `QwtCPointerData` (as a consequence, method `QwtPlot.setRawSamples` is not implemented), `QwtSyntheticPointData`. The following sample data type objects are not implemented as they seemed quite specific: `QwtSetSample`, `QwtOHLCSample`. For similar reasons, the `QwtPointPolar` class and the following sample iterator objects are not -implemented: `QwtSetSeriesData`, `QwtTradingChartData`, -`QwtPoint3DSeriesData`, `QwtArraySeriesData`, `QwtPointSeriesData`. +implemented: `QwtSetSeriesData`, `QwtTradingChartData` and +`QwtPoint3DSeriesData`. + +The following classes are not implemented because they seem inappropriate in +the Python/NumPy context: `QwtArraySeriesData`, `QwtPointSeriesData`, +`QwtAbstractSeriesStore`. Threads: diff --git a/doc/reference/index.rst b/doc/reference/index.rst index 0705b9b..e1a1e89 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -26,4 +26,6 @@ Main `python-qwt` classes: scale_engine scale_widget series_data + series_store + symbol toqimage diff --git a/doc/reference/series_store.rst b/doc/reference/series_store.rst new file mode 100644 index 0000000..65ae198 --- /dev/null +++ b/doc/reference/series_store.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.series_store + :members: diff --git a/doc/reference/symbol.rst b/doc/reference/symbol.rst new file mode 100644 index 0000000..5bc78e3 --- /dev/null +++ b/doc/reference/symbol.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.symbol + :members: diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 4518088..0bbaf03 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -374,7 +374,7 @@ def symbol(self): def setPen(self, *args): """ - Build and/or assigna a pen, depending on the arguments. + Build and/or assign a pen, depending on the arguments. .. py:method:: setPen(color, width, style) diff --git a/qwt/plot_seriesitem.py b/qwt/plot_seriesitem.py index 131ba84..f799460 100644 --- a/qwt/plot_seriesitem.py +++ b/qwt/plot_seriesitem.py @@ -15,7 +15,6 @@ from qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData from qwt.text import QwtText -from qwt.series_store import QwtAbstractSeriesStore from qwt.qt.QtCore import Qt, QRectF @@ -26,12 +25,11 @@ def __init__(self): self.orientation = Qt.Vertical -class QwtPlotSeriesItem(QwtPlotItem, QwtAbstractSeriesStore): +class QwtPlotSeriesItem(QwtPlotItem): """ Base class for plot items representing a series of samples """ def __init__(self, title): - QwtAbstractSeriesStore.__init__(self) if not isinstance(title, QwtText): title = QwtText(title) QwtPlotItem.__init__(self, title) diff --git a/qwt/scale_engine.py b/qwt/scale_engine.py index 167b15b..78659bd 100644 --- a/qwt/scale_engine.py +++ b/qwt/scale_engine.py @@ -621,9 +621,8 @@ class QwtLogScaleEngine(QwtScaleEngine): """ A scale engine for logarithmic scales - The step size is measured in *decades* - and the major step size will be adjusted to fit the pattern - \f$\left\{ 1,2,3,5\right\} \cdot 10^{n}\f$, where n is a natural number + The step size is measured in *decades* and the major step size will be + adjusted to fit the pattern {1,2,3,5}.10**n, where n is a natural number including zero. .. warning:: diff --git a/qwt/series_store.py b/qwt/series_store.py index a8f6261..d2700ca 100644 --- a/qwt/series_store.py +++ b/qwt/series_store.py @@ -5,57 +5,103 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) -from qwt.qt.QtCore import QRectF +""" +QwtSeriesStore +-------------- +.. autoclass:: QwtSeriesStore + :members: +""" -class QwtAbstractSeriesStore(object): - def dataChanged(self): - raise NotImplementedError - - def dataSize(self): - raise NotImplementedError - - def dataRect(self): - raise NotImplementedError - - def setRectOfInterest(self, rect): - raise NotImplementedError +from qwt.qt.QtCore import QRectF -class QwtSeriesStore(QwtAbstractSeriesStore): +class QwtSeriesStore(object): + """ + Class storing a `QwtSeriesData` object + + `QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for + all plot items iterating over a series of samples. + """ def __init__(self): self.__series = None + def setData(self, series): + """ + Assign a series of samples + + :param qwt.series_data.QwtSeriesData series: Data + + .. warning:: + + The item takes ownership of the data object, deleting it + when its not used anymore. + """ + if self.__series != series: + self.__series = series + self.dataChanged() + def data(self): + """ + :return: the series data + """ return self.__series def sample(self, index): + """ + :param int index: Index + :return: Sample at position index + """ if self.__series: return self.__series.sample(index) else: - #TODO: not implemented! return - def setData(self, series): - if self.__series != series: - self.__series = series - self.dataChanged() - def dataSize(self): + """ + :return: Number of samples of the series + + .. seealso:: + + :py:meth:`setData()`, + :py:meth:`qwt.series_data.QwtSeriesData.size()` + """ if self.__series is None: return 0 return self.__series.size() def dataRect(self): + """ + :return: Bounding rectangle of the series or an invalid rectangle, when no series is stored + + .. seealso:: + + :py:meth:`qwt.series_data.QwtSeriesData.boundingRect()` + """ if self.__series is None or self.dataSize() == 0: return QRectF(1.0, 1.0, -2.0, -2.0) return self.__series.boundingRect() def setRectOfInterest(self, rect): + """ + Set a the "rect of interest" for the series + + :param QRectF rect: Rectangle of interest + + .. seealso:: + + :py:meth:`qwt.series_data.QwtSeriesData.setRectOfInterest()` + """ if self.__series: self.__series.setRectOfInterest(rect) def swapData(self, series): + """ + Replace a series without deleting the previous one + + :param qwt.series_data.QwtSeriesData series: New series + :return: Previously assigned series + """ swappedSeries = self.__series self.__series = series return swappedSeries diff --git a/qwt/symbol.py b/qwt/symbol.py index 2663333..3ac31f0 100644 --- a/qwt/symbol.py +++ b/qwt/symbol.py @@ -5,6 +5,14 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtSymbol +--------- + +.. autoclass:: QwtSymbol + :members: +""" + from qwt.graphic import QwtGraphic from qwt.painter import QwtPainter @@ -447,6 +455,116 @@ def __init__(self): class QwtSymbol(object): + """ + A class for drawing symbols + + Symbol styles: + + * `QwtSymbol.NoSymbol`: No Style. The symbol cannot be drawn. + * `QwtSymbol.Ellipse`: Ellipse or circle + * `QwtSymbol.Rect`: Rectangle + * `QwtSymbol.Diamond`: Diamond + * `QwtSymbol.Triangle`: Triangle pointing upwards + * `QwtSymbol.DTriangle`: Triangle pointing downwards + * `QwtSymbol.UTriangle`: Triangle pointing upwards + * `QwtSymbol.LTriangle`: Triangle pointing left + * `QwtSymbol.RTriangle`: Triangle pointing right + * `QwtSymbol.Cross`: Cross (+) + * `QwtSymbol.XCross`: Diagonal cross (X) + * `QwtSymbol.HLine`: Horizontal line + * `QwtSymbol.VLine`: Vertical line + * `QwtSymbol.Star1`: X combined with + + * `QwtSymbol.Star2`: Six-pointed star + * `QwtSymbol.Hexagon`: Hexagon + * `QwtSymbol.Path`: The symbol is represented by a painter path, where + the origin (0, 0) of the path coordinate system is mapped to the + position of the symbol + + ..seealso:: + + :py:meth:`setPath()`, :py:meth:`path()` + * `QwtSymbol.Pixmap`: The symbol is represented by a pixmap. + The pixmap is centered or aligned to its pin point. + + ..seealso:: + + :py:meth:`setPinPoint()` + * `QwtSymbol.Graphic`: The symbol is represented by a graphic. + The graphic is centered or aligned to its pin point. + + ..seealso:: + + :py:meth:`setPinPoint()` + * `QwtSymbol.SvgDocument`: The symbol is represented by a SVG graphic. + The graphic is centered or aligned to its pin point. + + ..seealso:: + + :py:meth:`setPinPoint()` + * `QwtSymbol.UserStyle`: Styles >= `QwtSymbol.UserStyle` are reserved + for derived classes of `QwtSymbol` that overload `drawSymbols()` with + additional application specific symbol types. + + Cache policies: + + Depending on the render engine and the complexity of the + symbol shape it might be faster to render the symbol + to a pixmap and to paint this pixmap. + + F.e. the raster paint engine is a pure software renderer + where in cache mode a draw operation usually ends in + raster operation with the the backing store, that are usually + faster, than the algorithms for rendering polygons. + But the opposite can be expected for graphic pipelines + that can make use of hardware acceleration. + + The default setting is AutoCache + + ..seealso:: + + :py:meth:`setCachePolicy()`, :py:meth:`cachePolicy()` + + .. note:: + + The policy has no effect, when the symbol is painted + to a vector graphics format (PDF, SVG). + + .. warning:: + + Since Qt 4.8 raster is the default backend on X11 + + Valid cache policies: + + * `QwtSymbol.NoCache`: Don't use a pixmap cache + * `QwtSymbol.Cache`: Always use a pixmap cache + * `QwtSymbol.AutoCache`: Use a cache when the symbol is rendered + with the software renderer (`QPaintEngine.Raster`) + + .. py:class:: QwtSymbol([style=QwtSymbol.NoSymbol]) + + The symbol is constructed with gray interior, + black outline with zero width, no size and style 'NoSymbol'. + + :param int style: Symbol Style + + .. py:class:: QwtSymbol(style, brush, pen, size) + + :param int style: Symbol Style + :param QBrush brush: Brush to fill the interior + :param QPen pen: Outline pen + :param QSize size: Size + + .. py:class:: QwtSymbol(path, brush, pen) + + :param QPainterPath path: Painter path + :param QBrush brush: Brush to fill the interior + :param QPen pen: Outline pen + + .. seealso:: + + :py:meth:`setPath()`, :py:meth:`setBrush()`, + :py:meth:`setPen()`, :py:meth:`setSize()` + """ # enum Style Style = int @@ -480,60 +598,258 @@ def __init__(self, *args): % (self.__class__.__name__, len(args))) def setCachePolicy(self, policy): + """ + Change the cache policy + + The default policy is AutoCache + + :param int policy: Cache policy + + .. seealso:: + + :py:meth:`cachePolicy()` + """ if self.__data.cache.policy != policy: self.__data.cache.policy = policy self.invalidateCache() def cachePolicy(self): + """ + :return: Cache policy + + .. seealso:: + + :py:meth:`setCachePolicy()` + """ return self.__data.cache.policy def setPath(self, path): + """ + Set a painter path as symbol + + The symbol is represented by a painter path, where the + origin (0, 0) of the path coordinate system is mapped to + the position of the symbol. + + When the symbol has valid size the painter path gets scaled + to fit into the size. Otherwise the symbol size depends on + the bounding rectangle of the path. + + The following code defines a symbol drawing an arrow:: + + from qwt.qt.QtGui import QApplication, QPen, QPainterPath, QTransform + from qwt.qt.QtCore import Qt, QPointF + from qwt import QwtPlot, QwtPlotCurve, QwtSymbol + import numpy as np + + app = QApplication([]) + + # --- Construct custom symbol --- + + path = QPainterPath() + path.moveTo(0, 8) + path.lineTo(0, 5) + path.lineTo(-3, 5) + path.lineTo(0, 0) + path.lineTo(3, 5) + path.lineTo(0, 5) + + transform = QTransform() + transform.rotate(-30.0) + path = transform.map(path) + + pen = QPen(Qt.black, 2 ); + pen.setJoinStyle(Qt.MiterJoin) + + symbol = QwtSymbol() + symbol.setPen(pen) + symbol.setBrush(Qt.red) + symbol.setPath(path) + symbol.setPinPoint(QPointF(0., 0.)) + symbol.setSize(10, 14) + + # --- Test it within a simple plot --- + + curve = QwtPlotCurve() + curve_pen = QPen(Qt.blue) + curve_pen.setStyle(Qt.DotLine) + curve.setPen(curve_pen) + curve.setSymbol(symbol) + x = np.linspace(0, 10, 10) + curve.setData(x, np.sin(x)) + + plot = QwtPlot() + curve.attach(plot) + plot.resize(600, 300) + plot.replot() + plot.show() + + app.exec_() + + .. image:: /images/symbol_path_example.png + + :param QPainterPath path: Painter path + + .. seealso:: + + :py:meth:`path()`, :py:meth:`setSize()` + """ self.__data.style = QwtSymbol.Path self.__data.path.path = path self.__data.path.graphic.reset() def path(self): + """ + :return: Painter path for displaying the symbol + + .. seealso:: + + :py:meth:`setPath()` + """ return self.__data.path.path def setPixmap(self, pixmap): + """ + Set a pixmap as symbol + + :param QPixmap pixmap: Pixmap + + .. seealso:: + + :py:meth:`pixmap()`, :py:meth:`setGraphic()` + + .. note:: + + The `style()` is set to `QwtSymbol.Pixmap` + + .. note:: + + `brush()` and `pen()` have no effect + """ self.__data.style = QwtSymbol.Pixmap self.__data.pixmap.pixmap = pixmap def pixmap(self): + """ + :return: Assigned pixmap + + .. seealso:: + + :py:meth:`setPixmap()` + """ return self.__data.pixmap.pixmap def setGraphic(self, graphic): + """ + Set a graphic as symbol + + :param qwt.graphic.QwtGraphic graphic: Graphic + + .. seealso:: + + :py:meth:`graphic()`, :py:meth:`setPixmap()` + + .. note:: + + The `style()` is set to `QwtSymbol.Graphic` + + .. note:: + + `brush()` and `pen()` have no effect + """ self.__data.style = QwtSymbol.Graphic self.__data.graphic.graphic = graphic def graphic(self): + """ + :return: Assigned graphic + + .. seealso:: + + :py:meth:`setGraphic()` + """ return self.__data.graphic.graphic def setSvgDocument(self, svgDocument): + """ + Set a SVG icon as symbol + + :param svgDocument: SVG icon + + .. seealso:: + + :py:meth:`setGraphic()`, :py:meth:`setPixmap()` + + .. note:: + + The `style()` is set to `QwtSymbol.SvgDocument` + + .. note:: + + `brush()` and `pen()` have no effect + """ self.__data.style = QwtSymbol.SvgDocument if self.__data.svg.renderer is None: self.__data.svg.renderer = QSvgRenderer() self.__data.svg.renderer.load(svgDocument) def setSize(self, *args): + """ + Specify the symbol's size + + .. py:method:: setSize(width, [height=-1]) + + :param int width: Width + :param int height: Height + + .. py:method:: setSize(size) + + :param QSize size: Size + + .. seealso:: + + :py:meth:`size()` + """ if len(args) == 2: width, height = args if width >= 0 and height < 0: height = width self.setSize(QSize(width, height)) elif len(args) == 1: - size, = args - if size.isValid() and size != self.__data.size: - self.__data.size = size - self.invalidateCache() + if isinstance(args[0], QSize): + size, = args + if size.isValid() and size != self.__data.size: + self.__data.size = size + self.invalidateCache() + else: + width, = args + self.setSize(width, -1) else: raise TypeError("%s().setSize() takes 1 or 2 argument(s) (%s given)"\ % (self.__class__.__name__, len(args))) def size(self): + """ + :return: Size + + .. seealso:: + + :py:meth:`setSize()` + """ return self.__data.size def setBrush(self, brush): + """ + Assign a brush + + The brush is used to draw the interior of the symbol. + + :param QBrush brush: Brush + + .. seealso:: + + :py:meth:`brush()` + """ if brush != self.__data.brush: self.__data.brush = brush self.invalidateCache() @@ -541,9 +857,41 @@ def setBrush(self, brush): self.__data.path.graphic.reset() def brush(self): + """ + :return: Brush + + .. seealso:: + + :py:meth:`setBrush()` + """ return self.__data.brush def setPen(self, *args): + """ + Build and/or assign a pen, depending on the arguments. + + .. py:method:: setPen(color, width, style) + + Build and assign a pen + + In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it + non cosmetic (see `QPen.isCosmetic()`). This method signature has + been introduced to hide this incompatibility. + + :param QColor color: Pen color + :param float width: Pen width + :param Qt.PenStyle style: Pen style + + .. py:method:: setPen(pen) + + Assign a pen + + :param QPen pen: New pen + + .. seealso:: + + :py:meth:`pen()`, :py:meth:`brush()` + """ if len(args) == 3: color, width, style = args self.setPen(QPen(color, width, style)) @@ -559,9 +907,29 @@ def setPen(self, *args): % (self.__class__.__name__, len(args))) def pen(self): + """ + :return: Pen + + .. seealso:: + + :py:meth:`setPen()`, :py:meth:`brush()` + """ return self.__data.pen def setColor(self, color): + """ + Set the color of the symbol + + Change the color of the brush for symbol types with a filled area. + For all other symbol types the color will be assigned to the pen. + + :param QColor color: Color + + .. seealso:: + + :py:meth:`setPen()`, :py:meth:`setBrush()`, + :py:meth:`brush()`, :py:meth:`pen()` + """ if self.__data.style in (QwtSymbol.Ellipse, QwtSymbol.Rect, QwtSymbol.Diamond, QwtSymbol.Triangle, QwtSymbol.UTriangle, QwtSymbol.DTriangle, @@ -583,7 +951,23 @@ def setColor(self, color): self.__data.brush.setColor(color) self.__data.pen.setColor(color) - def setPinPoint(self, pos, enable): + def setPinPoint(self, pos, enable=True): + """ + Set and enable a pin point + + The position of a complex symbol is not always aligned to its center + ( f.e an arrow, where the peak points to a position ). The pin point + defines the position inside of a Pixmap, Graphic, SvgDocument + or PainterPath symbol where the represented point has to + be aligned to. + + :param QPointF pos: Position + :enable bool enable: En/Disable the pin point alignment + + .. seealso:: + + :py:meth:`pinPoint()`, :py:meth:`setPinPointEnabled()` + """ if self.__data.pinPoint != pos: self.__data.pinPoint = pos if self.__data.isPinPointEnabled: @@ -591,18 +975,51 @@ def setPinPoint(self, pos, enable): self.setPinPointEnabled(enable) def pinPoint(self): + """ + :return: Pin point + + .. seealso:: + + :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()` + """ return self.__data.pinPoint def setPinPointEnabled(self, on): + """ + En/Disable the pin point alignment + + :param bool on: Enabled, when on is true + + .. seealso:: + + :py:meth:`setPinPoint()`, :py:meth:`isPinPointEnabled()` + """ if self.__data.isPinPointEnabled != on: self.__data.isPinPointEnabled = on self.invalidateCache() def isPinPointEnabled(self): + """ + :return: True, when the pin point translation is enabled + + .. seealso:: + + :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()` + """ return self.__data.isPinPointEnabled def drawSymbols(self, painter, points, numPoints=None): - #TODO: remove argument numPoints (not necessary in Python's qwt) + """ + Render an array of symbols + + Painting several symbols is more effective than drawing symbols + one by one, as a couple of layout calculations and setting of pen/brush + can be done once for the complete array. + + :param QPainter painter: Painter + :param QPolygonF points: Positions of the symbols in screen coordinates + """ + #TODO: remove argument numPoints (not necessary in `python-qwt`) if numPoints is not None and numPoints <= 0: return useCache = False @@ -646,6 +1063,18 @@ def drawSymbols(self, painter, points, numPoints=None): painter.restore() def drawSymbol(self, painter, point_or_rect): + """ + Draw the symbol into a rectangle + + The symbol is painted centered and scaled into the target rectangle. + It is always painted uncached and the pin point is ignored. + + This method is primarily intended for drawing a symbol to the legend. + + :param QPainter painter: Painter + :param point_or_rect: Position or target rectangle of the symbol in screen coordinates + :type point_or_rect: QPointF or QPoint or QRectF + """ if isinstance(point_or_rect, (QPointF, QPoint)): # drawSymbol( QPainter *, const QPointF & ) self.drawSymbols(painter, [point_or_rect], 1) @@ -688,7 +1117,19 @@ def drawSymbol(self, painter, point_or_rect): self.__data.isPinPointEnabled = isPinPointEnabled painter.restore() - def renderSymbols(self, painter, points, numPoints): + def renderSymbols(self, painter, points, numPoints=None): + """ + Render the symbol to series of points + + :param QPainter painter: Painter + :param point_or_rect: Positions of the symbols + """ + #TODO: remove argument numPoints (not necessary in `python-qwt`) + try: + assert numPoints is None + except AssertionError: + raise RuntimeError("argument numPoints is not implemented "\ + "in `python-qwt`") if self.__data.style == QwtSymbol.Ellipse: qwtDrawEllipseSymbols(painter, points, numPoints, self) elif self.__data.style == QwtSymbol.Rect: @@ -738,6 +1179,11 @@ def renderSymbols(self, painter, points, numPoints): self.__data.svg.renderer, self) def boundingRect(self): + """ + Calculate the bounding rectangle for a symbol at position (0,0). + + :return: Bounding rectangle + """ rect = QRectF() pinPointTranslation = False if self.__data.style in (QwtSymbol.Ellipse, QwtSymbol.Rect, @@ -803,13 +1249,42 @@ def boundingRect(self): return r def invalidateCache(self): + """ + Invalidate the cached symbol pixmap + + The symbol invalidates its cache, whenever an attribute is changed + that has an effect ob how to display a symbol. In case of derived + classes with individual styles (>= `QwtSymbol.UserStyle`) it + might be necessary to call invalidateCache() for attributes + that are relevant for this style. + + .. seealso:: + + :py:meth:`setCachePolicy()`, :py:meth:`drawSymbols()` + """ if self.__data.cache.pixmap is not None: self.__data.cache.pixmap = QPixmap() def setStyle(self, style): + """ + Specify the symbol style + + :param int style: Style + + .. seealso:: + + :py:meth:`style()` + """ if self.__data.style != style: self.__data.style = style self.invalidateCache() def style(self): + """ + :return: Current symbol style + + .. seealso:: + + :py:meth:`setStyle()` + """ return self.__data.style From 3e39331ad02e410e46f95c49a8084d740baa0610 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 2 Oct 2015 23:23:22 +0200 Subject: [PATCH 029/421] Removed plot_histogram.rst (re-committed accidently to repo) --- doc/reference/plot_histogram.rst | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 doc/reference/plot_histogram.rst diff --git a/doc/reference/plot_histogram.rst b/doc/reference/plot_histogram.rst deleted file mode 100644 index f9c273c..0000000 --- a/doc/reference/plot_histogram.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.plot_histogram - :members: From 6b1a422c59a1504329da8814e6c56f918711c4b7 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 3 Oct 2015 10:41:57 +0200 Subject: [PATCH 030/421] Added docstrings for module text --- doc/reference/index.rst | 1 + doc/reference/text.rst | 2 + qwt/text.py | 531 +++++++++++++++++++++++++++++++++++++--- 3 files changed, 502 insertions(+), 32 deletions(-) create mode 100644 doc/reference/text.rst diff --git a/doc/reference/index.rst b/doc/reference/index.rst index e1a1e89..3eed0a1 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -28,4 +28,5 @@ Main `python-qwt` classes: series_data series_store symbol + text toqimage diff --git a/doc/reference/text.rst b/doc/reference/text.rst new file mode 100644 index 0000000..1394b54 --- /dev/null +++ b/doc/reference/text.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.text + :members: diff --git a/qwt/text.py b/qwt/text.py index 3f09287..863fd9f 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -5,11 +5,25 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtText +------- + +.. autoclass:: QwtText + :members: + +QwtTextLabel +------------ + +.. autoclass:: QwtTextLabel + :members: +""" + from qwt.painter import QwtPainter from qwt.text_engine import QwtPlainTextEngine, QwtRichTextEngine from qwt.qt.QtGui import (QPainter, QFrame, QSizePolicy, QPalette, QFont, - QFontMetrics, QApplication, QColor) + QFontMetrics, QApplication, QColor, QWidget) from qwt.qt.QtCore import Qt, QSizeF, QSize, QRectF import numpy as np @@ -38,6 +52,100 @@ def invalidate(self): self.textSize = QSizeF() class QwtText(object): + """ + A class representing a text + + A `QwtText` is a text including a set of attributes how to render it. + + - Format: + + A text might include control sequences (f.e tags) describing + how to render it. Each format (f.e MathML, TeX, Qt Rich Text) + has its own set of control sequences, that can be handles by + a special `QwtTextEngine` for this format. + + - Background: + + A text might have a background, defined by a `QPen` and `QBrush` + to improve its visibility. The corners of the background might + be rounded. + + - Font: + + A text might have an individual font. + + - Color + + A text might have an individual color. + + - Render Flags + + Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` used like in + `QPainter.drawText()`. + + ..seealso:: + + :py:meth:`qwt.text_engine.QwtTextEngine`, + :py:meth:`qwt.text.QwtTextLabel` + + Text formats: + + * `QwtText.AutoText`: + + The text format is determined using `QwtTextEngine.mightRender()` for + all available text engines in increasing order > PlainText. + If none of the text engines can render the text is rendered + like `QwtText.PlainText`. + + * `QwtText.PlainText`: + + Draw the text as it is, using a QwtPlainTextEngine. + + * `QwtText.RichText`: + + Use the Scribe framework (Qt Rich Text) to render the text. + + * `QwtText.MathMLText`: + + Use a MathML (http://en.wikipedia.org/wiki/MathML) render engine + to display the text. The Qwt MathML extension offers such an engine + based on the MathML renderer of the Qt solutions package. + To enable MathML support the following code needs to be added to the + application:: + + QwtText.setTextEngine(QwtText.MathMLText, QwtMathMLTextEngine()) + + * `QwtText.TeXText`: + + Use a TeX (http://en.wikipedia.org/wiki/TeX) render engine + to display the text ( not implemented yet ). + + * `QwtText.OtherFormat`: + + The number of text formats can be extended using `setTextEngine`. + Formats >= `QwtText.OtherFormat` are not used by Qwt. + + Paint attributes: + + * `QwtText.PaintUsingTextFont`: The text has an individual font. + * `QwtText.PaintUsingTextColor`: The text has an individual color. + * `QwtText.PaintBackground`: The text has an individual background. + + Layout attributes: + + * `QwtText.MinimumLayout`: + + Layout the text without its margins. This mode is useful if a + text needs to be aligned accurately, like the tick labels of a scale. + If `QwtTextEngine.textMargins` is not implemented for the format + of the text, `MinimumLayout` has no effect. + + .. py:class:: QwtText([text=None], [textFormat=None], [other=None]) + + :param str text: Text content + :param int textFormat: Text format + :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored) + """ # enum TextFormat AutoText, PlainText, RichText, MathMLText, TeXText = list(range(5)) @@ -51,39 +159,34 @@ class QwtText(object): # enum LayoutAttribute MinimumLayout = 0x01 - def __init__(self, *args): - self._desktopwidget = None + def __init__(self, text=None, textFormat=None, other=None): + self.__desktopwidget = None self._dict = QwtTextEngineDict() - if len(args) in (0, 2): - if len(args) == 2: - text, textFormat = args - else: - text, textFormat = "", self.AutoText + if text is None: + text = '' + if textFormat is None: + textFormat = self.AutoText + if other is not None: + text = other + if isinstance(text, QwtText): + self.__data = text.__data + self.__layoutCache = text.__layoutCache + else: self.__data = QwtText_PrivateData() self.__data.text = text self.__data.textEngine = self.textEngine(text, textFormat) self.__layoutCache = QwtText_LayoutCache() - elif len(args) == 1: - if isinstance(args[0], QwtText): - other, = args - self.__data = other.__data - self.__layoutCache = other.__layoutCache - else: - text, = args - textFormat = self.AutoText - self.__data = QwtText_PrivateData() - self.__data.text = text - self.__data.textEngine = self.textEngine(text, textFormat) - self.__layoutCache = QwtText_LayoutCache() - else: - raise TypeError("%s() takes 0, 1 or 2 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) @property - def desktopwidget(self): - if self._desktopwidget is None: - self._desktopwidget = QApplication.desktop() - return self._desktopwidget + def _desktopwidget(self): + """ + Property used to store the Application Desktop Widget to avoid calling + the `QApplication.desktop()" function more than necessary as its + calling time is not negligible. + """ + if self.__desktopwidget is None: + self.__desktopwidget = QApplication.desktop() + return self.__desktopwidget def __eq__(self, other): return self.__data.renderFlags == other.__data.renderFlags and\ @@ -100,9 +203,22 @@ def __ne__(self, other): return not self.__eq__(other) def isEmpty(self): + """ + :return: True if text is empty + """ return len(self.text()) == 0 def setText(self, text, textFormat=None): + """ + Assign a new text content + + :param str text: Text content + :param int textFormat: Text format + + .. seealso:: + + :py:meth:`text()` + """ if textFormat is None: textFormat = self.AutoText self.__data.text = text @@ -110,84 +226,276 @@ def setText(self, text, textFormat=None): self.__layoutCache.invalidate() def text(self): + """ + :return: Text content + + .. seealso:: + + :py:meth:`setText()` + """ return self.__data.text def setRenderFlags(self, renderFlags): + """ + Change the render flags + + The default setting is `Qt.AlignCenter` + + :param int renderFlags: Bitwise OR of the flags used like in `QPainter.drawText()` + + .. seealso:: + + :py:meth:`renderFlags()`, + :py:meth:`qwt.text_engine.QwtTextEngine.draw()` + """ renderFlags = Qt.AlignmentFlag(renderFlags) if renderFlags != self.__data.renderFlags: self.__data.renderFlags = renderFlags self.__layoutCache.invalidate() def renderFlags(self): + """ + :return: Render flags + + .. seealso:: + + :py:meth:`setRenderFlags()` + """ return self.__data.renderFlags def setFont(self, font): + """ + Set the font. + + :param QFont font: Font + + .. note:: + + Setting the font might have no effect, when + the text contains control sequences for setting fonts. + + .. seealso:: + + :py:meth:`font()`, :py:meth:`usedFont()` + """ self.__data.font = font self.setPaintAttribute(self.PaintUsingTextFont) def font(self): + """ + :return: Return the font + + .. seealso:: + + :py:meth:`setFont()`, :py:meth:`usedFont()` + """ return self.__data.font def usedFont(self, defaultFont): + """ + Return the font of the text, if it has one. + Otherwise return defaultFont. + + :param QFont defaultFont: Default font + :return: Font used for drawing the text + + .. seealso:: + + :py:meth:`setFont()`, :py:meth:`font()` + """ if self.__data.paintAttributes & self.PaintUsingTextFont: return self.__data.font return defaultFont def setColor(self, color): + """ + Set the pen color used for drawing the text. + + :param QColor color: Color + + .. note:: + + Setting the color might have no effect, when + the text contains control sequences for setting colors. + + .. seealso:: + + :py:meth:`color()`, :py:meth:`usedColor()` + """ self.__data.color = QColor(color) self.setPaintAttribute(self.PaintUsingTextColor) def color(self): + """ + :return: Return the pen color, used for painting the text + + .. seealso:: + + :py:meth:`setColor()`, :py:meth:`usedColor()` + """ return self.__data.color def usedColor(self, defaultColor): + """ + Return the color of the text, if it has one. + Otherwise return defaultColor. + + :param QColor defaultColor: Default color + :return: Color used for drawing the text + + .. seealso:: + + :py:meth:`setColor()`, :py:meth:`color()` + """ if self.__data.paintAttributes & self.PaintUsingTextColor: return self.__data.color return defaultColor def setBorderRadius(self, radius): + """ + Set the radius for the corners of the border frame + + :param float radius: Radius of a rounded corner + + .. seealso:: + + :py:meth:`borderRadius()`, :py:meth:`setBorderPen()`, + :py:meth:`setBackgroundBrush()` + """ self.__data.borderRadius = max([0., radius]) def borderRadius(self): + """ + :return: Radius for the corners of the border frame + + .. seealso:: + + :py:meth:`setBorderRadius()`, :py:meth:`borderPen()`, + :py:meth:`backgroundBrush()` + """ return self.__data.borderRadius def setBorderPen(self, pen): + """ + Set the background pen + + :param QPen pen: Background pen + + .. seealso:: + + :py:meth:`borderPen()`, :py:meth:`setBackgroundBrush()` + """ self.__data.borderPen = pen self.setPaintAttribute(self.PaintBackground) def borderPen(self): + """ + :return: Background pen + + .. seealso:: + + :py:meth:`setBorderPen()`, :py:meth:`backgroundBrush()` + """ return self.__data.borderPen def setBackgroundBrush(self, brush): + """ + Set the background brush + + :param QBrush brush: Background brush + + .. seealso:: + + :py:meth:`backgroundBrush()`, :py:meth:`setBorderPen()` + """ self.__data.backgroundBrush = brush self.setPaintAttribute(self.PaintBackground) def backgroundBrush(self): + """ + :return: Background brush + + .. seealso:: + + :py:meth:`setBackgroundBrush()`, :py:meth:`borderPen()` + """ return self.__data.backgroundBrush def setPaintAttribute(self, attribute, on=True): + """ + Change a paint attribute + + :param int attribute: Paint attribute + :param bool on: On/Off + + .. note:: + + Used by `setFont()`, `setColor()`, `setBorderPen()` + and `setBackgroundBrush()` + + .. seealso:: + + :py:meth:`testPaintAttribute()` + """ if on: self.__data.paintAttributes |= attribute else: self.__data.paintAttributes &= ~attribute def testPaintAttribute(self, attribute): + """ + Test a paint attribute + + :param int attribute: Paint attribute + :return: True, if attribute is enabled + + .. seealso:: + + :py:meth:`setPaintAttribute()` + """ return self.__data.paintAttributes & attribute def setLayoutAttribute(self, attribute, on=True): + """ + Change a layout attribute + + :param int attribute: Layout attribute + :param bool on: On/Off + + .. seealso:: + + :py:meth:`testLayoutAttribute()` + """ if on: self.__data.layoutAttributes |= attribute else: self.__data.layoutAttributes &= ~attribute def testLayoutAttribute(self, attribute): + """ + Test a layout attribute + + :param int attribute: Layout attribute + :return: True, if attribute is enabled + + .. seealso:: + + :py:meth:`setLayoutAttribute()` + """ return self.__data.layoutAttributes & attribute def heightForWidth(self, width, defaultFont=None): + """ + Find the height for a given width + + :param float width: Width + :param QFont defaultFont: Font, used for the calculation if the text has no font + :return: Calculated height + """ if defaultFont is None: defaultFont = QFont() - font = QFont(self.usedFont(defaultFont), self.desktopwidget) + font = QFont(self.usedFont(defaultFont), self._desktopwidget) h = 0 if self.__data.layoutAttributes & self.MinimumLayout: (left, right, top, bottom @@ -202,7 +510,13 @@ def heightForWidth(self, width, defaultFont=None): return h def textSize(self, defaultFont): - font = QFont(self.usedFont(defaultFont), self.desktopwidget) + """ + Returns the size, that is needed to render text + + :param QFont defaultFont Font, used for the calculation if the text has no font + :return: Caluclated size + """ + font = QFont(self.usedFont(defaultFont), self._desktopwidget) if not self.__layoutCache.textSize.isValid() or\ self.__layoutCache.font is not font: self.__layoutCache.textSize =\ @@ -217,6 +531,12 @@ def textSize(self, defaultFont): return sz def draw(self, painter, rect): + """ + Draw a text into a rectangle + + :param QPainter painter: Painter + :param QRectF rect: Rectangle + """ if self.__data.paintAttributes & self.PaintBackground: if self.__data.borderPen != Qt.NoPen or\ self.__data.backgroundBrush != Qt.NoBrush: @@ -238,7 +558,7 @@ def draw(self, painter, rect): painter.setPen(self.__data.color) expandedRect = rect if self.__data.layoutAttributes & self.MinimumLayout: - font = QFont(painter.font(), self.desktopwidget) + font = QFont(painter.font(), self._desktopwidget) (left, right, top, bottom ) = self.__data.textEngine.textMargins(font) expandedRect.setTop(rect.top()-top) @@ -250,9 +570,43 @@ def draw(self, painter, rect): painter.restore() def textEngine(self, *args): + """ + Find the text engine for a text format + + In case of `QwtText.AutoText` the first text engine + (beside `QwtPlainTextEngine`) is returned, where + `QwtTextEngine.mightRender` returns true. + If there is none `QwtPlainTextEngine` is returned. + + If no text engine is registered for the format `QwtPlainTextEngine` + is returned. + + :param str text: Text, needed in case of AutoText + :param int format: Text format + :return: Corresponding text engine + """ return self._dict.textEngine(*args) def setTextEngine(self, format_, engine): + """ + Assign/Replace a text engine for a text format + + With setTextEngine it is possible to extend `python-qwt` with + other types of text formats. + + For `QwtText.PlainText` it is not allowed to assign a engine to None. + + :param int format_: Text format + :param qwt.text_engine.QwtTextEngine engine: Text engine + + .. seealso:: + + :py:meth:`setPaintAttribute()` + + .. warning:: + + Using `QwtText.AutoText` does nothing. + """ self._dict.setTextEngine(format_, engine) @@ -301,12 +655,28 @@ def __init__(self): class QwtTextLabel(QFrame): + """ + A Widget which displays a QwtText + + .. py:class:: QwtTextLabel(parent) + + :param QWidget parent: Parent widget + + .. py:class:: QwtTextLabel([text=None], [parent=None]) + + :param str text: Text + :param QWidget parent: Parent widget + """ def __init__(self, *args): if len(args) == 0: text, parent = None, None elif len(args) == 1: - text = None - parent, = args + if isinstance(args[0], QWidget): + text = None + parent, = args + else: + parent = None + text, = args elif len(args) == 2: text, parent = args else: @@ -322,12 +692,41 @@ def init(self): self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) def setPlainText(self, text): + """ + Interface for the designer plugin - does the same as setText() + + :param str text: Text + + .. seealso:: + + :py:meth:`plainText()` + """ self.setText(QwtText(text)) def plainText(self): + """ + Interface for the designer plugin + + :return: Text as plain text + + .. seealso:: + + :py:meth:`setPlainText()` + """ return self.__data.text.text() def setText(self, text, textFormat=QwtText.AutoText): + """ + Change the label's text, keeping all other QwtText attributes + + :param text: New text + :type text: qwt.text.QwtText or str + :param int textFormat: Format of text + + .. seealso:: + + :py:meth:`text()` + """ if isinstance(text, QwtText): self.__data.text = text else: @@ -336,17 +735,43 @@ def setText(self, text, textFormat=QwtText.AutoText): self.updateGeometry() def text(self): + """ + :return: Return the text + + .. seealso:: + + :py:meth:`setText()` + """ return self.__data.text def clear(self): + """ + Clear the text and all `QwtText` attributes + """ self.__data.text = QwtText() self.update() self.updateGeometry() def indent(self): + """ + :return: Label's text indent in pixels + + .. seealso:: + + :py:meth:`setIndent()` + """ return self.__data.indent def setIndent(self, indent): + """ + Set label's text indent in pixels + + :param int indent: Indentation in pixels + + .. seealso:: + + :py:meth:`indent()` + """ if indent < 0: indent = 0 self.__data.indent = indent @@ -354,17 +779,39 @@ def setIndent(self, indent): self.updateGeometry() def margin(self): + """ + :return: Label's text indent in pixels + + .. seealso:: + + :py:meth:`setMargin()` + """ return self.__data.margin def setMargin(self, margin): + """ + Set label's margin in pixels + + :param int margin: Margin in pixels + + .. seealso:: + + :py:meth:`margin()` + """ self.__data.margin = margin self.update() self.updateGeometry() def sizeHint(self): + """ + Return a size hint + """ return self.minimumSizeHint() def minimumSizeHint(self): + """ + Return a minimum size hint + """ sz = self.__data.text.textSize(self.font()) mw = 2*(self.frameWidth()+self.__data.margin) mh = mw @@ -381,6 +828,10 @@ def minimumSizeHint(self): return QSize(np.ceil(sz.width()), np.ceil(sz.height())) def heightForWidth(self, width): + """ + :param int width: Width + :return: Preferred height for this widget, given the width. + """ renderFlags = self.__data.text.renderFlags() indent = self.__data.indent if indent <= 0: @@ -405,6 +856,11 @@ def paintEvent(self, event): self.drawContents(painter) def drawContents(self, painter): + """ + Redraw the text and focus indicator + + :param QPainter painter: Painter + """ r = self.textRect() if r.isEmpty(): return @@ -417,9 +873,20 @@ def drawContents(self, painter): QwtPainter.drawFocusRect(painter, self, focusRect) def drawText(self, painter, textRect): + """ + Redraw the text + + :param QPainter painter: Painter + :param QRectF textRect: Text rectangle + """ self.__data.text.draw(painter, textRect) def textRect(self): + """ + Calculate geometry for the text in widget coordinates + + :return: Geometry for the text + """ r = self.contentsRect() if not r.isEmpty() and self.__data.margin > 0: r.setRect(r.x()+self.__data.margin, r.y()+self.__data.margin, From 2585d39eb413a5a0983cf9445833432598c2ed10 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 3 Oct 2015 10:55:33 +0200 Subject: [PATCH 031/421] Added docstrings for text_engine module --- doc/reference/index.rst | 1 + doc/reference/text_engine.rst | 2 + qwt/text_engine.py | 189 ++++++++++++++++++++++++++++++++++ 3 files changed, 192 insertions(+) create mode 100644 doc/reference/text_engine.rst diff --git a/doc/reference/index.rst b/doc/reference/index.rst index 3eed0a1..662fe96 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -29,4 +29,5 @@ Main `python-qwt` classes: series_store symbol text + text_engine toqimage diff --git a/doc/reference/text_engine.rst b/doc/reference/text_engine.rst new file mode 100644 index 0000000..87d1764 --- /dev/null +++ b/doc/reference/text_engine.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.text_engine + :members: diff --git a/qwt/text_engine.py b/qwt/text_engine.py index 5b2bcd0..dfde417 100644 --- a/qwt/text_engine.py +++ b/qwt/text_engine.py @@ -5,6 +5,26 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtTextEngine +------------- + +.. autoclass:: QwtTextEngine + :members: + +QwtPlainTextEngine +------------------ + +.. autoclass:: QwtPlainTextEngine + :members: + +QwtRichTextEngine +----------------- + +.. autoclass:: QwtRichTextEngine + :members: +""" + from qwt.painter import QwtPainter from qwt.qt.QtGui import (QTextDocument, QTextOption, QColor, QFontMetricsF, @@ -56,13 +76,92 @@ def __init__(self, text, flags, font): class QwtTextEngine(object): + """ + Abstract base class for rendering text strings + + A text engine is responsible for rendering texts for a + specific text format. They are used by `QwtText` to render a text. + + `QwtPlainTextEngine` and `QwtRichTextEngine` are part of the + `python-qwt` library. + The implementation of `QwtMathMLTextEngine` uses code from the + `Qt` solution package. Because of license implications it is built into + a separate library. + + .. seealso:: + + :py:meth:`qwt.text.QwtText.setTextEngine()` + """ def __init__(self): pass + + def heightForWidth(self, font, flags, text, width): + """ + Find the height for a given width + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags used like in QPainter::drawText + :param str text: Text to be rendered + :param float width: Width + :return: Calculated height + """ + pass + + def textSize(self, font, flags, text): + """ + Returns the size, that is needed to render text + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags like in for QPainter::drawText + :param str text: Text to be rendered + :return: Calculated size + """ + pass + + def mightRender(self, text): + """ + Test if a string can be rendered by this text engine + + :param str text: Text to be tested + :return: True, if it can be rendered + """ + pass + + def textMargins(self, font): + """ + Return margins around the texts + + The textSize might include margins around the + text, like QFontMetrics::descent(). In situations + where texts need to be aligned in detail, knowing + these margins might improve the layout calculations. + + :param QFont font: Font of the text + :return: tuple (left, right, top, bottom) representing margins + """ + pass + + def draw(self, painter, rect, flags, text): + """ + Draw the text in a clipping rectangle + + :param QPainter painter: Painter + :param QRectF rect: Clipping rectangle + :param int flags: Bitwise OR of the flags like in for QPainter::drawText() + :param str text: Text to be rendered + """ + pass ASCENTCACHE = {} class QwtPlainTextEngine(QwtTextEngine): + """ + A text engine for plain texts + + `QwtPlainTextEngine` renders texts using the basic `Qt` classes + `QPainter` and `QFontMetrics`. + """ def __init__(self): self.qrectf_max = QRectF(0, 0, QWIDGETSIZE_MAX, QWIDGETSIZE_MAX) self._fm_cache = {} @@ -85,12 +184,29 @@ def fontmetrics_f(self, font): return fm def heightForWidth(self, font, flags, text, width): + """ + Find the height for a given width + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags used like in QPainter::drawText + :param str text: Text to be rendered + :param float width: Width + :return: Calculated height + """ fm = self.fontmetrics_f(font) rect = fm.boundingRect(QRectF(0, 0, width, QWIDGETSIZE_MAX), flags, text) return rect.height() def textSize(self, font, flags, text): + """ + Returns the size, that is needed to render text + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags like in for QPainter::drawText + :param str text: Text to be rendered + :return: Calculated size + """ fm = self.fontmetrics_f(font) rect = fm.boundingRect(self.qrectf_max, flags, text) return rect.size() @@ -129,6 +245,17 @@ def findAscent(self, font): return fm.ascent() def textMargins(self, font): + """ + Return margins around the texts + + The textSize might include margins around the + text, like QFontMetrics::descent(). In situations + where texts need to be aligned in detail, knowing + these margins might improve the layout calculations. + + :param QFont font: Font of the text + :return: tuple (left, right, top, bottom) representing margins + """ left = right = top = 0 fm = self.fontmetrics_f(font) top = fm.ascent() - self.effectiveAscent(font) @@ -136,22 +263,59 @@ def textMargins(self, font): return left, right, top, bottom def draw(self, painter, rect, flags, text): + """ + Draw the text in a clipping rectangle + + :param QPainter painter: Painter + :param QRectF rect: Clipping rectangle + :param int flags: Bitwise OR of the flags like in for QPainter::drawText() + :param str text: Text to be rendered + """ QwtPainter.drawText(painter, rect, flags, text) def mightRender(self, text): + """ + Test if a string can be rendered by this text engine + + :param str text: Text to be tested + :return: True, if it can be rendered + """ return True class QwtRichTextEngine(QwtTextEngine): + """ + A text engine for `Qt` rich texts + + `QwtRichTextEngine` renders `Qt` rich texts using the classes + of the Scribe framework of `Qt`. + """ def __init__(self): pass def heightForWidth(self, font, flags, text, width): + """ + Find the height for a given width + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags used like in QPainter::drawText + :param str text: Text to be rendered + :param float width: Width + :return: Calculated height + """ doc = QwtRichTextDocument(text, flags, font) doc.setPageSize(QSizeF(width, QWIDGETSIZE_MAX)) return doc.documentLayout().documentSize().height() def textSize(self, font, flags, text): + """ + Returns the size, that is needed to render text + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags like in for QPainter::drawText + :param str text: Text to be rendered + :return: Calculated size + """ doc = QwtRichTextDocument(text, flags, font) option = doc.defaultTextOption() if option.wrapMode() != QTextOption.NoWrap: @@ -161,6 +325,14 @@ def textSize(self, font, flags, text): return doc.size() def draw(self, painter, rect, flags, text): + """ + Draw the text in a clipping rectangle + + :param QPainter painter: Painter + :param QRectF rect: Clipping rectangle + :param int flags: Bitwise OR of the flags like in for QPainter::drawText() + :param str text: Text to be rendered + """ doc = QwtRichTextDocument(text, flags, painter.font()) QwtPainter.drawSimpleRichText(painter, rect, flags, doc) @@ -168,7 +340,24 @@ def taggedText(self, text, flags): return self.taggedRichText(text,flags) def mightRender(self, text): + """ + Test if a string can be rendered by this text engine + + :param str text: Text to be tested + :return: True, if it can be rendered + """ return Qt.mightBeRichText(text) def textMargins(self, font): + """ + Return margins around the texts + + The textSize might include margins around the + text, like QFontMetrics::descent(). In situations + where texts need to be aligned in detail, knowing + these margins might improve the layout calculations. + + :param QFont font: Font of the text + :return: tuple (left, right, top, bottom) representing margins + """ return 0, 0, 0, 0 From 17e5e25b5c6e5872f19463d90793e609f6c4119f Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 3 Oct 2015 14:47:57 +0200 Subject: [PATCH 032/421] Added docstrings for transform module --- doc/reference/index.rst | 1 + doc/reference/transform.rst | 2 + qwt/transform.py | 182 +++++++++++++++++++++++++++++++++++- 3 files changed, 184 insertions(+), 1 deletion(-) create mode 100644 doc/reference/transform.rst diff --git a/doc/reference/index.rst b/doc/reference/index.rst index 662fe96..9692c28 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -30,4 +30,5 @@ Main `python-qwt` classes: symbol text text_engine + transform toqimage diff --git a/doc/reference/transform.rst b/doc/reference/transform.rst new file mode 100644 index 0000000..6912291 --- /dev/null +++ b/doc/reference/transform.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.transform + :members: diff --git a/qwt/transform.py b/qwt/transform.py index 304d6be..66bb3b0 100644 --- a/qwt/transform.py +++ b/qwt/transform.py @@ -5,69 +5,249 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +""" +QwtTransform +------------ + +.. autoclass:: QwtTransform + :members: + +QwtNullTransform +---------------- + +.. autoclass:: QwtNullTransform + :members: + +QwtLogTransform +--------------- + +.. autoclass:: QwtLogTransform + :members: + +QwtPowerTransform +----------------- + +.. autoclass:: QwtPowerTransform + :members: +""" + import numpy as np class QwtTransform(object): + """ + A transformation between coordinate systems + + QwtTransform manipulates values, when being mapped between + the scale and the paint device coordinate system. + + A transformation consists of 2 methods: + + - transform + - invTransform + + where one is is the inverse function of the other. + + When p1, p2 are the boundaries of the paint device coordinates + and s1, s2 the boundaries of the scale, QwtScaleMap uses the + following calculations:: + + p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) ) + s = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) ) + """ def __init__(self): pass def bounded(self, value): + """ + Modify value to be a valid value for the transformation. + The default implementation does nothing. + """ return value def transform(self, value): + """ + Transformation function + + :param float value: Value + :return: Modified value + + .. seealso:: + + :py:meth:`invTransform()` + """ raise NotImplementedError def invTransform(self, value): + """ + Inverse transformation function + + :param float value: Value + :return: Modified value + + .. seealso:: + + :py:meth:`transform()` + """ raise NotImplementedError def copy(self): + """ + :return: Clone of the transformation + + The default implementation does nothing. + """ raise NotImplementedError class QwtNullTransform(QwtTransform): def transform(self, value): + """ + Transformation function + + :param float value: Value + :return: Modified value + + .. seealso:: + + :py:meth:`invTransform()` + """ return value def invTransform(self, value): + """ + Inverse transformation function + + :param float value: Value + :return: Modified value + + .. seealso:: + + :py:meth:`transform()` + """ return value def copy(self): + """ + :return: Clone of the transformation + """ return QwtNullTransform() class QwtLogTransform(QwtTransform): + """ + Logarithmic transformation + + `QwtLogTransform` modifies the values using `numpy.log()` and + `numpy.exp()`. + + .. note:: + + In the calculations of `QwtScaleMap` the base of the log function + has no effect on the mapping. So `QwtLogTransform` can be used + for logarithmic scale in base 2 or base 10 or any other base. + + Extremum values: + + * `QwtLogTransform.LogMin`: Smallest allowed value for logarithmic + scales: 1.0e-150 + * `QwtLogTransform.LogMax`: Largest allowed value for logarithmic + scales: 1.0e150 + """ + LogMin = 1.0e-150 LogMax = 1.0e150 + def bounded(self, value): + """ + Modify value to be a valid value for the transformation. + + :param float value: Value to be bounded + :return: Value unmodified + """ return np.clip(value, self.LogMin, self.LogMax) def transform(self, value): + """ + Transformation function + + :param float value: Value + :return: Modified value + + .. seealso:: + + :py:meth:`invTransform()` + """ return np.log(value) def invTransform(self, value): + """ + Inverse transformation function + + :param float value: Value + :return: Modified value + + .. seealso:: + + :py:meth:`transform()` + """ return np.exp(value) def copy(self): + """ + :return: Clone of the transformation + """ return QwtLogTransform() class QwtPowerTransform(QwtTransform): + """ + A transformation using `numpy.pow()` + + `QwtPowerTransform` preserves the sign of a value. + F.e. a transformation with a factor of 2 + transforms a value of -3 to -9 and v.v. Thus `QwtPowerTransform` + can be used for scales including negative values. + """ + def __init__(self, exponent): self.__exponent = exponent super(QwtPowerTransform, self).__init__() def transform(self, value): + """ + Transformation function + + :param float value: Value + :return: Modified value + + .. seealso:: + + :py:meth:`invTransform()` + """ if value < 0.: return -np.pow(-value, 1./self.__exponent) else: return np.pow(value, 1./self.__exponent) def invTransform(self, value): + """ + Inverse transformation function + + :param float value: Value + :return: Modified value + + .. seealso:: + + :py:meth:`transform()` + """ if value < 0.: return -np.pow(-value, self.__exponent) else: return np.pow(value, self.__exponent) def copy(self): - return QwtPowerTransform() + """ + :return: Clone of the transformation + """ + return QwtPowerTransform(self.__exponent) From a4d328f3f35da64bdcd2582f7bf1d22e12595457 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 3 Oct 2015 15:19:09 +0200 Subject: [PATCH 033/421] Reorganized reference documentation --- .gitignore | 2 +- build_chm.bat | 6 +++--- doc/conf.py | 2 +- doc/reference/color_map.rst | 2 -- doc/reference/index.rst | 29 ++++++++++++----------------- doc/reference/legend.rst | 2 -- doc/reference/plot.rst | 30 ++++++++++++++++++++++++++++++ doc/reference/plot_canvas.rst | 2 -- doc/reference/plot_curve.rst | 2 -- doc/reference/plot_grid.rst | 2 -- doc/reference/plot_marker.rst | 2 -- doc/reference/plot_renderer.rst | 2 -- doc/reference/scale.rst | 14 ++++++++++++++ doc/reference/scale_div.rst | 2 -- doc/reference/scale_draw.rst | 2 -- doc/reference/scale_engine.rst | 2 -- doc/reference/scale_widget.rst | 2 -- doc/reference/text.rst | 6 ++++++ doc/reference/text_engine.rst | 2 -- qwt/color_map.py | 9 ++++++--- qwt/plot.py | 6 ------ qwt/series_data.py | 7 +++++-- qwt/text_engine.py | 9 ++++++--- qwt/transform.py | 11 +++++++---- 24 files changed, 91 insertions(+), 64 deletions(-) delete mode 100644 doc/reference/color_map.rst delete mode 100644 doc/reference/legend.rst delete mode 100644 doc/reference/plot_canvas.rst delete mode 100644 doc/reference/plot_curve.rst delete mode 100644 doc/reference/plot_grid.rst delete mode 100644 doc/reference/plot_marker.rst delete mode 100644 doc/reference/plot_renderer.rst create mode 100644 doc/reference/scale.rst delete mode 100644 doc/reference/scale_div.rst delete mode 100644 doc/reference/scale_draw.rst delete mode 100644 doc/reference/scale_engine.rst delete mode 100644 doc/reference/scale_widget.rst delete mode 100644 doc/reference/text_engine.rst diff --git a/.gitignore b/.gitignore index 728df3c..b04b38a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ .spyderproject qwt-6.1.2 qwt/tests/demo.png -qwtdoc.chm +python-qwtdoc.chm # Created by https://www.gitignore.io/api/python diff --git a/build_chm.bat b/build_chm.bat index 5f92547..310d872 100644 --- a/build_chm.bat +++ b/build_chm.bat @@ -1,6 +1,6 @@ sphinx-build -b htmlhelp doc doctmp -"C:\Program Files\HTML Help Workshop\hhc.exe" doctmp\qwtdoc.hhp -"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" doctmp\qwtdoc.hhp -copy doctmp\qwtdoc.chm . +"C:\Program Files\HTML Help Workshop\hhc.exe" doctmp\python-qwtdoc.hhp +"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" doctmp\python-qwtdoc.hhp +copy doctmp\python-qwtdoc.chm . rmdir /S /Q doctmp pause \ No newline at end of file diff --git a/doc/conf.py b/doc/conf.py index c7e9532..6a9237d 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -168,7 +168,7 @@ #html_file_suffix = '' # Output file base name for HTML help builder. -htmlhelp_basename = 'qwtdoc' +htmlhelp_basename = 'python-qwtdoc' # -- Options for LaTeX output -------------------------------------------------- diff --git a/doc/reference/color_map.rst b/doc/reference/color_map.rst deleted file mode 100644 index a42e20a..0000000 --- a/doc/reference/color_map.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.color_map - :members: diff --git a/doc/reference/index.rst b/doc/reference/index.rst index 9692c28..dd7fdde 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -1,34 +1,29 @@ Reference ========= -Main `python-qwt` classes: +Public API: + +.. toctree:: + :maxdepth: 2 + + plot + scale + symbol + text + toqimage + +Private API: .. toctree:: :maxdepth: 2 - color_map graphic interval - legend legend_data legend_label - plot - plot_canvas - plot_curve plot_directpainter - plot_grid plot_layout - plot_marker - plot_renderer plot_seriesitem - scale_div - scale_draw - scale_engine - scale_widget series_data series_store - symbol - text - text_engine transform - toqimage diff --git a/doc/reference/legend.rst b/doc/reference/legend.rst deleted file mode 100644 index a51d1d4..0000000 --- a/doc/reference/legend.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.legend - :members: diff --git a/doc/reference/plot.rst b/doc/reference/plot.rst index 59a22eb..9a988a7 100644 --- a/doc/reference/plot.rst +++ b/doc/reference/plot.rst @@ -1,2 +1,32 @@ +Plot widget fundamentals +------------------------ + .. automodule:: qwt.plot :members: + +.. automodule:: qwt.plot_canvas + :members: + +Plot items +---------- + +.. automodule:: qwt.plot_grid + :members: + +.. automodule:: qwt.plot_curve + :members: + +.. automodule:: qwt.plot_marker + :members: + +Additional plot features +------------------------ + +.. automodule:: qwt.legend + :members: + +.. automodule:: qwt.color_map + :members: + +.. automodule:: qwt.plot_renderer + :members: diff --git a/doc/reference/plot_canvas.rst b/doc/reference/plot_canvas.rst deleted file mode 100644 index 1e3a383..0000000 --- a/doc/reference/plot_canvas.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.plot_canvas - :members: diff --git a/doc/reference/plot_curve.rst b/doc/reference/plot_curve.rst deleted file mode 100644 index 916bbb3..0000000 --- a/doc/reference/plot_curve.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.plot_curve - :members: diff --git a/doc/reference/plot_grid.rst b/doc/reference/plot_grid.rst deleted file mode 100644 index 7d31649..0000000 --- a/doc/reference/plot_grid.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.plot_grid - :members: diff --git a/doc/reference/plot_marker.rst b/doc/reference/plot_marker.rst deleted file mode 100644 index 7e2f379..0000000 --- a/doc/reference/plot_marker.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.plot_marker - :members: diff --git a/doc/reference/plot_renderer.rst b/doc/reference/plot_renderer.rst deleted file mode 100644 index b796f96..0000000 --- a/doc/reference/plot_renderer.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.plot_renderer - :members: diff --git a/doc/reference/scale.rst b/doc/reference/scale.rst new file mode 100644 index 0000000..cc47b6e --- /dev/null +++ b/doc/reference/scale.rst @@ -0,0 +1,14 @@ +Scales +------ + +.. automodule:: qwt.scale_widget + :members: + +.. automodule:: qwt.scale_div + :members: + +.. automodule:: qwt.scale_engine + :members: + +.. automodule:: qwt.scale_draw + :members: diff --git a/doc/reference/scale_div.rst b/doc/reference/scale_div.rst deleted file mode 100644 index b965e4c..0000000 --- a/doc/reference/scale_div.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.scale_div - :members: diff --git a/doc/reference/scale_draw.rst b/doc/reference/scale_draw.rst deleted file mode 100644 index 66189f6..0000000 --- a/doc/reference/scale_draw.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.scale_draw - :members: diff --git a/doc/reference/scale_engine.rst b/doc/reference/scale_engine.rst deleted file mode 100644 index 65ad334..0000000 --- a/doc/reference/scale_engine.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.scale_engine - :members: diff --git a/doc/reference/scale_widget.rst b/doc/reference/scale_widget.rst deleted file mode 100644 index 85072c3..0000000 --- a/doc/reference/scale_widget.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.scale_widget - :members: diff --git a/doc/reference/text.rst b/doc/reference/text.rst index 1394b54..c06c3b0 100644 --- a/doc/reference/text.rst +++ b/doc/reference/text.rst @@ -1,2 +1,8 @@ +Text +---- + .. automodule:: qwt.text :members: + +.. automodule:: qwt.text_engine + :members: diff --git a/doc/reference/text_engine.rst b/doc/reference/text_engine.rst deleted file mode 100644 index 87d1764..0000000 --- a/doc/reference/text_engine.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.text_engine - :members: diff --git a/qwt/color_map.py b/qwt/color_map.py index 666d723..ddd304c 100644 --- a/qwt/color_map.py +++ b/qwt/color_map.py @@ -6,20 +6,23 @@ # (see LICENSE file for more details) """ +Color maps +---------- + QwtColorMap ------------ +~~~~~~~~~~~ .. autoclass:: QwtColorMap :members: QwtLinearColorMap ------------------ +~~~~~~~~~~~~~~~~~ .. autoclass:: QwtLinearColorMap :members: QwtAlphaColorMap ----------------- +~~~~~~~~~~~~~~~~ .. autoclass:: QwtAlphaColorMap :members: diff --git a/qwt/plot.py b/qwt/plot.py index e759475..fbdaa4e 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -6,12 +6,6 @@ # (see LICENSE file for more details) """ -QwtPlotDict ------------ - -.. autoclass:: QwtPlotDict - :members: - QwtPlot ------- diff --git a/qwt/series_data.py b/qwt/series_data.py index 4c899fe..01f4175 100644 --- a/qwt/series_data.py +++ b/qwt/series_data.py @@ -6,14 +6,17 @@ # (see LICENSE file for more details) """ +Series data +----------- + QwtSeriesData -------------- +~~~~~~~~~~~~~ .. autoclass:: QwtSeriesData :members: QwtPointArrayData ------------------ +~~~~~~~~~~~~~~~~~ .. autoclass:: QwtPointArrayData :members: diff --git a/qwt/text_engine.py b/qwt/text_engine.py index dfde417..c0c12f2 100644 --- a/qwt/text_engine.py +++ b/qwt/text_engine.py @@ -6,20 +6,23 @@ # (see LICENSE file for more details) """ +Text engine +----------- + QwtTextEngine -------------- +~~~~~~~~~~~~~ .. autoclass:: QwtTextEngine :members: QwtPlainTextEngine ------------------- +~~~~~~~~~~~~~~~~~~ .. autoclass:: QwtPlainTextEngine :members: QwtRichTextEngine ------------------ +~~~~~~~~~~~~~~~~~ .. autoclass:: QwtRichTextEngine :members: diff --git a/qwt/transform.py b/qwt/transform.py index 66bb3b0..6dd7dd3 100644 --- a/qwt/transform.py +++ b/qwt/transform.py @@ -6,26 +6,29 @@ # (see LICENSE file for more details) """ +Coordinates tranformations +-------------------------- + QwtTransform ------------- +~~~~~~~~~~~~ .. autoclass:: QwtTransform :members: QwtNullTransform ----------------- +~~~~~~~~~~~~~~~~ .. autoclass:: QwtNullTransform :members: QwtLogTransform ---------------- +~~~~~~~~~~~~~~~ .. autoclass:: QwtLogTransform :members: QwtPowerTransform ------------------ +~~~~~~~~~~~~~~~~~ .. autoclass:: QwtPowerTransform :members: From 0e32aa80fd7c54211a6ddf8f3992e53d580cf597 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 3 Oct 2015 15:21:27 +0200 Subject: [PATCH 034/421] Histogram demo was removed (see earlier commit message) --- qwt/tests/HistogramDemo.py | 222 ------------------------------------- 1 file changed, 222 deletions(-) delete mode 100644 qwt/tests/HistogramDemo.py diff --git a/qwt/tests/HistogramDemo.py b/qwt/tests/HistogramDemo.py deleted file mode 100644 index e7eb98b..0000000 --- a/qwt/tests/HistogramDemo.py +++ /dev/null @@ -1,222 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the PyQwt License -# Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) -# (see LICENSE file for more details) - -SHOW = True # Show test in GUI-based test launcher - -import random -import sys - -from qwt.qt.QtGui import QApplication, QPen, QColor -from qwt.qt.QtCore import QRect -from qwt.qt.QtCore import Qt -from qwt import (QwtPlot, QwtIntervalSample, QwtInterval, QwtPlotGrid, - QwtPlotItem, QwtPainter, QwtIntervalSeriesData) - - -class HistogramItem(QwtPlotItem): - Auto = 0 - Xfy = 1 - def __init__(self, *args): - QwtPlotItem.__init__(self, *args) - self.__attributes = HistogramItem.Auto - self.__data = QwtIntervalSeriesData() - self.__color = QColor() - self.__reference = 0.0 - self.setItemAttribute(QwtPlotItem.AutoScale, True) - self.setItemAttribute(QwtPlotItem.Legend, True) - self.setZ(20.0) - - def setData(self, data): - self.__data = data - self.itemChanged() - - def data(self): - return self.__data - - def setColor(self, color): - if self.__color != color: - self.__color = color - self.itemChanged() - - def color(self): - return self.__color - - def boundingRect(self): - result = self.__data.boundingRect() - if not result.isValid(): - return result - if self.testHistogramAttribute(HistogramItem.Xfy): - result = QwtDoubleRect(result.y(), result.x(), - result.height(), result.width()) - if result.left() > self.baseline(): - result.setLeft(self.baseline()) - elif result.right() < self.baseline(): - result.setRight(self.baseline()) - else: - if result.bottom() < self.baseline(): - result.setBottom(self.baseline()) - elif result.top() > self.baseline(): - result.setTop(self.baseline()) - return result - - def rtti(self): - return QwtPlotItem.PlotHistogram - - def draw(self, painter, xMap, yMap, rect): - iData = self.data() - painter.setPen(self.color()) - x0 = xMap.transform(self.baseline()) - y0 = yMap.transform(self.baseline()) - for i in range(iData.size()): - if self.testHistogramAttribute(HistogramItem.Xfy): - x2 = xMap.transform(iData.sample(i).value) - if x2 == x0: - continue - - y1 = yMap.transform(iData.sample(i).interval.minValue()) - y2 = yMap.transform(iData.sample(i).interval.maxValue()) - - if y1 > y2: - y1, y2 = y2, y1 - - if i < iData.size()-2: - yy1 = yMap.transform(iData.sample(i+1).interval.minValue()) - yy2 = yMap.transform(iData.sample(i+1).interval.maxValue()) - - if y2 == min(yy1, yy2): - xx2 = xMap.transform(iData.sample(i+1).interval.minValue()) - if xx2 != x0 and ((xx2 < x0 and x2 < x0) - or (xx2 > x0 and x2 > x0)): - # One pixel distance between neighboured bars - y2 += 1 - - self.drawBar( - painter, Qt.Horizontal, QRect(x0, y1, x2-x0, y2-y1)) - else: - y2 = yMap.transform(iData.sample(i).value) - if y2 == y0: - continue - - x1 = xMap.transform(iData.sample(i).interval.minValue()) - x2 = xMap.transform(iData.sample(i).interval.maxValue()) - - if x1 > x2: - x1, x2 = x2, x1 - - if i < iData.size()-2: - xx1 = xMap.transform(iData.sample(i+1).interval.minValue()) - xx2 = xMap.transform(iData.sample(i+1).interval.maxValue()) - x2 = min(xx1, xx2) - yy2 = yMap.transform(iData.sample(i+1).value) - if x2 == min(xx1, xx2): - if yy2 != 0 and (( yy2 < y0 and y2 < y0) - or (yy2 > y0 and y2 > y0)): - # One pixel distance between neighboured bars - x2 -= 1 - - self.drawBar( - painter, Qt.Vertical, QRect(x1, y0, x2-x1, y2-y0)) - - def setBaseline(self, reference): - if self.baseline() != reference: - self.__reference = reference - self.itemChanged() - - def baseline(self,): - return self.__reference - - def setHistogramAttribute(self, attribute, on = True): - if self.testHistogramAttribute(attribute): - return - - if on: - self.__attributes |= attribute - else: - self.__attributes &= ~attribute - - self.itemChanged() - - def testHistogramAttribute(self, attribute): - return bool(self.__attributes & attribute) - - def drawBar(self, painter, orientation, rect): - painter.save() - color = painter.pen().color() - r = rect.normalized() - factor = 125; - light = color.lighter(factor) - dark = color.darker(factor) - - painter.setBrush(color) - painter.setPen(Qt.NoPen) - QwtPainter.drawRect(painter, r.x()+1, r.y()+1, - r.width()-2, r.height()-2) - - painter.setBrush(Qt.NoBrush) - - painter.setPen(QPen(light, 2)) - QwtPainter.drawLine( - painter, r.left()+1, r.top()+2, r.right()+1, r.top()+2) - - painter.setPen(QPen(dark, 2)) - QwtPainter.drawLine( - painter, r.left()+1, r.bottom(), r.right()+1, r.bottom()) - - painter.setPen(QPen(light, 1)) - QwtPainter.drawLine( - painter, r.left(), r.top() + 1, r.left(), r.bottom()) - QwtPainter.drawLine( - painter, r.left()+1, r.top()+2, r.left()+1, r.bottom()-1) - - painter.setPen(QPen(dark, 1)) - QwtPainter.drawLine( - painter, r.right()+1, r.top()+1, r.right()+1, r.bottom()) - QwtPainter.drawLine( - painter, r.right(), r.top()+2, r.right(), r.bottom()-1) - - painter.restore() - - -def make(): - demo = QwtPlot() - demo.setCanvasBackground(Qt.white) - demo.setTitle("Histogram") - - grid = QwtPlotGrid() - grid.enableXMin(True) - grid.enableYMin(True) - grid.setMajorPen(QPen(Qt.black, 0, Qt.DotLine)); - grid.setMinorPen(QPen(Qt.gray, 0 , Qt.DotLine)); - grid.attach(demo) - - histogram = HistogramItem() - histogram.setColor(Qt.darkCyan) - - numValues = 20 - samples = [] - pos = 0.0 - for i in range(numValues): - width = 5 + random.randint(0, 4) - value = random.randint(0, 99) - samples.append(QwtIntervalSample(value, QwtInterval(pos, pos+width))); - pos += width - - histogram.setData(QwtIntervalSeriesData(samples)) - histogram.attach(demo) - demo.setAxisScale(QwtPlot.yLeft, 0.0, 100.0) - demo.setAxisScale(QwtPlot.xBottom, 0.0, pos) - demo.replot() - demo.resize(600, 400) - demo.show() - return demo - - -if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - sys.exit(app.exec_()) From 0431fe308bfc4df55adc27fa3cad7bd9d4c17cc0 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 3 Oct 2015 15:28:17 +0200 Subject: [PATCH 035/421] version --- CHANGELOG.md | 5 +++++ README.md | 22 +++------------------- doc/overview.rst | 4 ++-- qwt/__init__.py | 2 +- 4 files changed, 11 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 723f2d9..2677437 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # History of changes +## Version 0.2.0 + +Added docstrings in all Python modules and a complete documentation based on +Sphinx. See the Overview section for API limitations when comparing to Qwt. + ## Version 0.1.1 Fixed Issue #21 (blocking issue *only* on non-Windows platforms when building diff --git a/README.md b/README.md index a8ac10c..e5120ae 100644 --- a/README.md +++ b/README.md @@ -48,26 +48,10 @@ powerful features already exist in `guiqwt`: `QwtPlotZoomer`, Only the following plot items are currently implemented in `qwt` (the only plot items needed by `guiqwt`): `QwtPlotItem` (base class), -`QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem`, `QwtPlotHistogram`, -`QwtPlotCurve`. +`QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. -The `QwtClipper` class is not implemented yet (and it will probably be -very difficult or even impossible to implement it in pure Python without -performance issues). As a consequence, when zooming in a plot curve, the -entire curve is still painted (in other words, when working with large -amount of data, there is no performance gain when zooming in). - -The curve fitter feature is not implemented because powerful curve fitting -features are already implemented in `guiqwt`. - -Other API compatibility issues with `Qwt`: - - - `QwtPlotCurve.MinimizeMemory` option was removed as this option has no - sense in `python-qwt` (the polyline plotting is not taking more memory - than the array data that is already there). - - - `QwtPlotCurve.Fitted` option was removed as this option is not supported - at the moment. +See the "Overview" section in package documentation for more details on +API limitations when comparing to Qwt. ## Dependencies diff --git a/doc/overview.rst b/doc/overview.rst index 7636892..ea524c7 100644 --- a/doc/overview.rst +++ b/doc/overview.rst @@ -22,8 +22,7 @@ powerful features already exist in `guiqwt`: `QwtPlotZoomer`, Only the following plot items are currently implemented in `qwt` (the only plot items needed by `guiqwt`): `QwtPlotItem` (base class), -`QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem`, `QwtPlotHistogram`, -`QwtPlotCurve`. +`QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. The `HistogramItem` object implemented in PyQwt's HistogramDemo.py is not available here (a similar item is already implemented in `guiqwt`). As a @@ -49,6 +48,7 @@ Threads: - Multiple threads for graphic rendering is implemented in Qwt C++ code thanks to the `QtConcurrent` and `QFuture` Qt features which are currently not supported by PyQt. + - As a consequence the following API is not supported in `python-qwt`: - `QwtPlotItem.renderThreadCount` - `QwtPlotItem.setRenderThreadCount` diff --git a/qwt/__init__.py b/qwt/__init__.py index 2eb6eba..71aed3e 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -21,7 +21,7 @@ .. _GitHub: https://github.com/PierreRaybaut/python-qwt """ -__version__ = '0.1.1' +__version__ = '0.2.0' QWT_VERSION_STR = '6.1.2' import warnings From 688cd992130fcf7bac32def7f69638bcc1d332bd Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 3 Oct 2015 15:52:29 +0200 Subject: [PATCH 036/421] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e5120ae..85e1ec5 100644 --- a/README.md +++ b/README.md @@ -50,8 +50,8 @@ Only the following plot items are currently implemented in `qwt` (the only plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. -See the "Overview" section in package documentation for more details on -API limitations when comparing to Qwt. +See "Overview" section in [documentation](http://pythonhosted.org/python-qwt/) +for more details on API limitations when comparing to Qwt. ## Dependencies From 5c6e476fdbb96ec29d474c013a1e2c5cbf53c360 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 3 Oct 2015 22:15:36 +0200 Subject: [PATCH 037/421] Fixed Issue #23: "argument numPoints is not implemented" error was showing up when calling QwtSymbol.drawSymbol(symbol, QPoint(x, y)). --- .gitignore | 1 + CHANGELOG.md | 5 +++++ qwt/__init__.py | 2 +- qwt/symbol.py | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index b04b38a..2693567 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ qwt-6.1.2 qwt/tests/demo.png python-qwtdoc.chm +doc.zip # Created by https://www.gitignore.io/api/python diff --git a/CHANGELOG.md b/CHANGELOG.md index 2677437..582e529 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # History of changes +## Version 0.2.1 + +Fixed Issue #23: "argument numPoints is not implemented" error was showing up +when calling QwtSymbol.drawSymbol(symbol, QPoint(x, y)). + ## Version 0.2.0 Added docstrings in all Python modules and a complete documentation based on diff --git a/qwt/__init__.py b/qwt/__init__.py index 71aed3e..d610ebd 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -21,7 +21,7 @@ .. _GitHub: https://github.com/PierreRaybaut/python-qwt """ -__version__ = '0.2.0' +__version__ = '0.2.1' QWT_VERSION_STR = '6.1.2' import warnings diff --git a/qwt/symbol.py b/qwt/symbol.py index 3ac31f0..c831b6b 100644 --- a/qwt/symbol.py +++ b/qwt/symbol.py @@ -1077,7 +1077,7 @@ def drawSymbol(self, painter, point_or_rect): """ if isinstance(point_or_rect, (QPointF, QPoint)): # drawSymbol( QPainter *, const QPointF & ) - self.drawSymbols(painter, [point_or_rect], 1) + self.drawSymbols(painter, [point_or_rect]) return # drawSymbol( QPainter *, const QRectF & ) rect = point_or_rect From 469a54f9d074603e3d615e18e965f134795a47b6 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 4 Oct 2015 15:02:52 +0200 Subject: [PATCH 038/421] Doc: forgot to remove the histogram demo from examples --- doc/examples/histogram_demo.rst | 7 ------- doc/examples/index.rst | 1 - 2 files changed, 8 deletions(-) delete mode 100644 doc/examples/histogram_demo.rst diff --git a/doc/examples/histogram_demo.rst b/doc/examples/histogram_demo.rst deleted file mode 100644 index 56653cc..0000000 --- a/doc/examples/histogram_demo.rst +++ /dev/null @@ -1,7 +0,0 @@ -Histogram demo -~~~~~~~~~~~~~~ - -.. image:: /images/tests/HistogramDemo.png - -.. literalinclude:: /../qwt/tests/HistogramDemo.py - :start-after: SHOW diff --git a/doc/examples/index.rst b/doc/examples/index.rst index 690a7f2..48c8a60 100644 --- a/doc/examples/index.rst +++ b/doc/examples/index.rst @@ -33,7 +33,6 @@ Here are some examples from the `qwt.test` module: data_demo error_bar event_filter_demo - histogram_demo image_plot_demo map_demo really_simple_demo From 38599c8eef302ec46ec8f177d747b21225c012ce Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 4 Oct 2015 15:17:41 +0200 Subject: [PATCH 039/421] Added CHM doc (included in doc package) download link to HTML index page --- .gitignore | 2 +- build_chm.bat | 15 +++++++++++---- build_doc_zip.bat | 1 + doc/conf.py | 2 +- doc/index.rst | 1 + 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 2693567..874fb39 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ .spyderproject qwt-6.1.2 qwt/tests/demo.png -python-qwtdoc.chm +python-qwt.chm doc.zip # Created by https://www.gitignore.io/api/python diff --git a/build_chm.bat b/build_chm.bat index 310d872..d7db8d8 100644 --- a/build_chm.bat +++ b/build_chm.bat @@ -1,6 +1,13 @@ sphinx-build -b htmlhelp doc doctmp -"C:\Program Files\HTML Help Workshop\hhc.exe" doctmp\python-qwtdoc.hhp -"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" doctmp\python-qwtdoc.hhp -copy doctmp\python-qwtdoc.chm . +"C:\Program Files\HTML Help Workshop\hhc.exe" doctmp\python-qwt.hhp +"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" doctmp\python-qwt.hhp +copy doctmp\python-qwt.chm . +7z a python-qwt.chm.zip python-qwt.chm +del doctmp\python-qwt.chm +del doc.zip +sphinx-build -b html doc doctmp +cd doctmp +7z a -r ..\doc.zip *.* +cd .. rmdir /S /Q doctmp -pause \ No newline at end of file +del python-qwt.chm.zip \ No newline at end of file diff --git a/build_doc_zip.bat b/build_doc_zip.bat index 7527350..8602dfe 100644 --- a/build_doc_zip.bat +++ b/build_doc_zip.bat @@ -1,3 +1,4 @@ +del doc.zip sphinx-build -b html doc doctmp cd doctmp 7z a -r ..\doc.zip *.* diff --git a/doc/conf.py b/doc/conf.py index 6a9237d..1bd5565 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -168,7 +168,7 @@ #html_file_suffix = '' # Output file base name for HTML help builder. -htmlhelp_basename = 'python-qwtdoc' +htmlhelp_basename = 'python-qwt' # -- Options for LaTeX output -------------------------------------------------- diff --git a/doc/index.rst b/doc/index.rst index 0215329..1c43fff 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,5 +1,6 @@ .. automodule:: qwt +Download :download:`CHM Documentation (unzip and open) <../python-qwt.chm.zip>`. Contents: From 85b8c4de8ee43dbaf0903dcb3fe0baf00356bcf0 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 6 Oct 2015 21:05:57 +0200 Subject: [PATCH 040/421] Renamed project: python-qwt --> PythonQwt --- CHANGELOG.md | 2 +- README.md | 14 +++++++------- doc/conf.py | 6 +++--- doc/examples/index.rst | 2 +- doc/index.rst | 2 +- doc/installation.rst | 2 +- doc/overview.rst | 8 ++++---- qwt/__init__.py | 8 ++++---- qwt/plot_curve.py | 6 +++--- qwt/scale_engine.py | 2 +- qwt/series_data.py | 2 +- qwt/symbol.py | 6 +++--- qwt/tests/BodeDemo.py | 2 +- qwt/tests/CPUplot.py | 2 +- qwt/tests/CartesianDemo.py | 2 +- qwt/tests/CurveDemo1.py | 2 +- qwt/tests/CurveDemo2.py | 2 +- qwt/tests/DataDemo.py | 2 +- qwt/tests/ErrorBarDemo.py | 2 +- qwt/tests/EventFilterDemo.py | 2 +- qwt/tests/ImagePlotDemo.py | 2 +- qwt/tests/MapDemo.py | 2 +- qwt/tests/MultiDemo.py | 2 +- qwt/tests/ReallySimpleDemo.py | 2 +- qwt/tests/__init__.py | 6 +++--- qwt/text.py | 2 +- qwt/text_engine.py | 2 +- setup.py | 14 +++++++------- 28 files changed, 54 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 582e529..5141941 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ Sphinx. See the Overview section for API limitations when comparing to Qwt. ## Version 0.1.1 Fixed Issue #21 (blocking issue *only* on non-Windows platforms when building -the package): typo in "python-qwt-tests" script name (setup.py) +the package): typo in "PythonQwt-tests" script name (setup.py) ## Version 0.1.0 diff --git a/README.md b/README.md index 85e1ec5..9c82802 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ -# python-qwt +# PythonQwt ## Purpose and Motivation -The ``python-qwt`` project was initiated to solve -at least temporarily- +The ``PythonQwt`` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is no longer maintained. The idea was to translate the original Qwt C++ code to Python and then to optimize some parts of the code by writing new modules based on NumPy and other libraries. -The ``python-qwt`` package consists of a single Python package named +The ``PythonQwt`` package consists of a single Python package named `qwt` and of a few other files (examples, doc, ...). ## Copyrights @@ -17,7 +17,7 @@ The ``python-qwt`` package consists of a single Python package named - Copyright © 2002 Uwe Rathmann, for the original Qwt C++ code - Copyright © 2015 Pierre Raybaut, for the Qwt C++ to Python translation and optimization - - Copyright © 2015 Pierre Raybaut, for the python-qwt specific and + - Copyright © 2015 Pierre Raybaut, for the PythonQwt specific and exclusive Python material #### PyQt, PySide and Python2/Python3 compatibility modules @@ -27,7 +27,7 @@ exclusive Python material #### Some examples - Copyright © 2003-2009 Gerard Vermeulen, for the original PyQwt code - Copyright © 2015 Pierre Raybaut, for the PyQt5/PySide port and -further developments (e.g. ported to python-qwt API) +further developments (e.g. ported to PythonQwt API) ## License @@ -50,7 +50,7 @@ Only the following plot items are currently implemented in `qwt` (the only plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. -See "Overview" section in [documentation](http://pythonhosted.org/python-qwt/) +See "Overview" section in [documentation](http://pythonhosted.org/PythonQwt/) for more details on API limitations when comparing to Qwt. ## Dependencies @@ -78,4 +78,4 @@ from qwt import tests tests.run() ``` -or from the command line: `python-qwt-tests`. +or from the command line: `PythonQwt-tests`. diff --git a/doc/conf.py b/doc/conf.py index 1bd5565..7018898 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -41,7 +41,7 @@ master_doc = 'index' # General information about the project. -project = 'python-qwt' +project = 'PythonQwt' import time this_year = time.strftime("%Y", time.localtime()) copyright = "2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)" @@ -168,7 +168,7 @@ #html_file_suffix = '' # Output file base name for HTML help builder. -htmlhelp_basename = 'python-qwt' +htmlhelp_basename = 'PythonQwt' # -- Options for LaTeX output -------------------------------------------------- @@ -182,7 +182,7 @@ # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'qwt.tex', 'python-qwt Documentation', 'Pierre Raybaut', 'manual'), + ('index', 'qwt.tex', 'PythonQwt Manual', 'Pierre Raybaut', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of diff --git a/doc/examples/index.rst b/doc/examples/index.rst index 48c8a60..79e11cc 100644 --- a/doc/examples/index.rst +++ b/doc/examples/index.rst @@ -11,7 +11,7 @@ A lot of examples are available in the `qwt.test` module :: from qwt import tests tests.run() -The two lines above execute the `python-qwt` test launcher: +The two lines above execute the `PythonQwt` test launcher: .. image:: /images/tests/__init__.png diff --git a/doc/index.rst b/doc/index.rst index 1c43fff..3c58a24 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,6 +1,6 @@ .. automodule:: qwt -Download :download:`CHM Documentation (unzip and open) <../python-qwt.chm.zip>`. +Download :download:`CHM Documentation (unzip and open) <../PythonQwt.chm.zip>`. Contents: diff --git a/doc/installation.rst b/doc/installation.rst index b0849a3..4688e52 100644 --- a/doc/installation.rst +++ b/doc/installation.rst @@ -23,4 +23,4 @@ External resources: * Bug reports and feature requests: `GitHub`_ -.. _GitHub: https://github.com/PierreRaybaut/python-qwt +.. _GitHub: https://github.com/PierreRaybaut/PythonQwt diff --git a/doc/overview.rst b/doc/overview.rst index ea524c7..d950ab0 100644 --- a/doc/overview.rst +++ b/doc/overview.rst @@ -1,13 +1,13 @@ Purpose and Motivation ====================== -The ``python-qwt`` project was initiated to solve -at least temporarily- +The ``PythonQwt`` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is no longer maintained. The idea was to translate the original Qwt C++ code to Python and then to optimize some parts of the code by writing new modules based on NumPy and other libraries. -The ``python-qwt`` package consists of a single Python package named +The ``PythonQwt`` package consists of a single Python package named `qwt` and of a few other files (examples, doc, ...). Overview @@ -49,7 +49,7 @@ Threads: thanks to the `QtConcurrent` and `QFuture` Qt features which are currently not supported by PyQt. - - As a consequence the following API is not supported in `python-qwt`: + - As a consequence the following API is not supported in `PythonQwt`: - `QwtPlotItem.renderThreadCount` - `QwtPlotItem.setRenderThreadCount` - option `numThreads` in `QwtPointMapper.toImage` @@ -66,7 +66,7 @@ features are already implemented in `guiqwt`. Other API compatibility issues with `Qwt`: - `QwtPlotCurve.MinimizeMemory` option was removed as this option has no - sense in python-qwt (the polyline plotting is not taking more memory + sense in PythonQwt (the polyline plotting is not taking more memory than the array data that is already there). - `QwtPlotCurve.Fitted` option was removed as this option is not supported diff --git a/qwt/__init__.py b/qwt/__init__.py index d610ebd..ede450f 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -5,10 +5,10 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) """ -python-qwt -========== +PythonQwt +========= -The ``python-qwt`` package is a 2D-data plotting library using Qt graphical +The ``PythonQwt`` package is a 2D-data plotting library using Qt graphical user interfaces for the Python programming language. It consists of a single Python package named `qwt` which is a pure Python @@ -19,7 +19,7 @@ External resources: * Bug reports and feature requests: `GitHub`_ -.. _GitHub: https://github.com/PierreRaybaut/python-qwt +.. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ __version__ = '0.2.1' QWT_VERSION_STR = '6.1.2' diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 0bbaf03..d8a74ba 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -130,7 +130,7 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): .. warning :: - This option is *not* supported in `python-qwt`. + This option is *not* supported in `PythonQwt`. Legend attributes: @@ -163,7 +163,7 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): .. warning:: - This option is currently *not* supported in `python-qwt`. + This option is currently *not* supported in `PythonQwt`. * `QwtPlotCurve.FilterPoints`: @@ -176,7 +176,7 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): .. warning:: - This option was removed as it has no sense in `python-qwt` + This option was removed as it has no sense in `PythonQwt` (the polyline plotting is not taking more memory than the array data that is already there). diff --git a/qwt/scale_engine.py b/qwt/scale_engine.py index 78659bd..65fbe7c 100644 --- a/qwt/scale_engine.py +++ b/qwt/scale_engine.py @@ -162,7 +162,7 @@ class QwtScaleEngine(object): The layout of the scale can be varied with `setAttribute()`. - `python-qwt` offers implementations for logarithmic and linear scales. + `PythonQwt` offers implementations for logarithmic and linear scales. Layout attributes: diff --git a/qwt/series_data.py b/qwt/series_data.py index 01f4175..2f455e2 100644 --- a/qwt/series_data.py +++ b/qwt/series_data.py @@ -31,7 +31,7 @@ class QwtSeriesData(object): """ Abstract interface for iterating over samples - `python-qwt` offers several implementations of the QwtSeriesData API, + `PythonQwt` offers several implementations of the QwtSeriesData API, but in situations, where data of an application specific format needs to be displayed, without having to copy it, it is recommended to implement an individual data access. diff --git a/qwt/symbol.py b/qwt/symbol.py index c831b6b..f4ae1a1 100644 --- a/qwt/symbol.py +++ b/qwt/symbol.py @@ -1019,7 +1019,7 @@ def drawSymbols(self, painter, points, numPoints=None): :param QPainter painter: Painter :param QPolygonF points: Positions of the symbols in screen coordinates """ - #TODO: remove argument numPoints (not necessary in `python-qwt`) + #TODO: remove argument numPoints (not necessary in `PythonQwt`) if numPoints is not None and numPoints <= 0: return useCache = False @@ -1124,12 +1124,12 @@ def renderSymbols(self, painter, points, numPoints=None): :param QPainter painter: Painter :param point_or_rect: Positions of the symbols """ - #TODO: remove argument numPoints (not necessary in `python-qwt`) + #TODO: remove argument numPoints (not necessary in `PythonQwt`) try: assert numPoints is None except AssertionError: raise RuntimeError("argument numPoints is not implemented "\ - "in `python-qwt`") + "in `PythonQwt`") if self.__data.style == QwtSymbol.Ellipse: qwtDrawEllipseSymbols(painter, points, numPoints, self) elif self.__data.style == QwtSymbol.Rect: diff --git a/qwt/tests/BodeDemo.py b/qwt/tests/BodeDemo.py index 0dda487..8d3d640 100644 --- a/qwt/tests/BodeDemo.py +++ b/qwt/tests/BodeDemo.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) from __future__ import unicode_literals diff --git a/qwt/tests/CPUplot.py b/qwt/tests/CPUplot.py index c496d72..3a99838 100644 --- a/qwt/tests/CPUplot.py +++ b/qwt/tests/CPUplot.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher diff --git a/qwt/tests/CartesianDemo.py b/qwt/tests/CartesianDemo.py index 8e8e17a..2271e6a 100644 --- a/qwt/tests/CartesianDemo.py +++ b/qwt/tests/CartesianDemo.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher diff --git a/qwt/tests/CurveDemo1.py b/qwt/tests/CurveDemo1.py index 47dcb45..f7192f3 100644 --- a/qwt/tests/CurveDemo1.py +++ b/qwt/tests/CurveDemo1.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher diff --git a/qwt/tests/CurveDemo2.py b/qwt/tests/CurveDemo2.py index de75b56..0366729 100644 --- a/qwt/tests/CurveDemo2.py +++ b/qwt/tests/CurveDemo2.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) #FIXME: scale issue! diff --git a/qwt/tests/DataDemo.py b/qwt/tests/DataDemo.py index 263c9bc..c02b6f3 100644 --- a/qwt/tests/DataDemo.py +++ b/qwt/tests/DataDemo.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher diff --git a/qwt/tests/ErrorBarDemo.py b/qwt/tests/ErrorBarDemo.py index 30ab679..e04269c 100644 --- a/qwt/tests/ErrorBarDemo.py +++ b/qwt/tests/ErrorBarDemo.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher diff --git a/qwt/tests/EventFilterDemo.py b/qwt/tests/EventFilterDemo.py index a0354c5..855999d 100644 --- a/qwt/tests/EventFilterDemo.py +++ b/qwt/tests/EventFilterDemo.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher diff --git a/qwt/tests/ImagePlotDemo.py b/qwt/tests/ImagePlotDemo.py index 5e707b4..c13c3d1 100644 --- a/qwt/tests/ImagePlotDemo.py +++ b/qwt/tests/ImagePlotDemo.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) #FIXME: This example is still not working: image scaling issue (see PlotImage.draw) diff --git a/qwt/tests/MapDemo.py b/qwt/tests/MapDemo.py index 50d8fe7..5d5c644 100644 --- a/qwt/tests/MapDemo.py +++ b/qwt/tests/MapDemo.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher diff --git a/qwt/tests/MultiDemo.py b/qwt/tests/MultiDemo.py index a5f847c..995efd4 100644 --- a/qwt/tests/MultiDemo.py +++ b/qwt/tests/MultiDemo.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher diff --git a/qwt/tests/ReallySimpleDemo.py b/qwt/tests/ReallySimpleDemo.py index fbba895..f02ce20 100644 --- a/qwt/tests/ReallySimpleDemo.py +++ b/qwt/tests/ReallySimpleDemo.py @@ -3,7 +3,7 @@ # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example # Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to python-qwt API) +# developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) SHOW = True # Show test in GUI-based test launcher diff --git a/qwt/tests/__init__.py b/qwt/tests/__init__.py index 615c3c0..8525580 100644 --- a/qwt/tests/__init__.py +++ b/qwt/tests/__init__.py @@ -5,12 +5,12 @@ # (see LICENSE file for more details) """ -python-qwt test package -======================= +PythonQwt test package +====================== """ def run(): - """Run python-qwt test launcher (requires `guidata`)""" + """Run PythonQwt test launcher (requires `guidata`)""" import qwt try: from guidata.guitest import run_testlauncher diff --git a/qwt/text.py b/qwt/text.py index 863fd9f..a7b8d49 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -591,7 +591,7 @@ def setTextEngine(self, format_, engine): """ Assign/Replace a text engine for a text format - With setTextEngine it is possible to extend `python-qwt` with + With setTextEngine it is possible to extend `PythonQwt` with other types of text formats. For `QwtText.PlainText` it is not allowed to assign a engine to None. diff --git a/qwt/text_engine.py b/qwt/text_engine.py index c0c12f2..ddebed1 100644 --- a/qwt/text_engine.py +++ b/qwt/text_engine.py @@ -86,7 +86,7 @@ class QwtTextEngine(object): specific text format. They are used by `QwtText` to render a text. `QwtPlainTextEngine` and `QwtRichTextEngine` are part of the - `python-qwt` library. + `PythonQwt` library. The implementation of `QwtMathMLTextEngine` uses code from the `Qt` solution package. Because of license implications it is built into a separate library. diff --git a/setup.py b/setup.py index a963552..3a3f464 100644 --- a/setup.py +++ b/setup.py @@ -5,8 +5,8 @@ # (see LICENSE file for more details) """ -python-qwt -========== +PythonQwt +========= Qt plotting widgets for Python """ @@ -21,20 +21,20 @@ from distutils.core import setup from distutils.command.build import build -LIBNAME = 'python-qwt' +LIBNAME = 'PythonQwt' PACKAGE_NAME = 'qwt' from qwt import __version__ as version DESCRIPTION = 'Qt plotting widgets for Python' LONG_DESCRIPTION = """\ -The ``python-qwt`` project was initiated to solve -at least temporarily- the +The ``PythonQwt`` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is no longer maintained. The idea was to translate the original Qwt C++ code to Python and then to optimize some parts of the code by writing new modules based on NumPy and other libraries. -The ``python-qwt`` package consists of a single Python package named `qwt` +The ``PythonQwt`` package consists of a single Python package named `qwt` which is a pure Python implementation of Qwt C++ library with the following limitations. @@ -60,9 +60,9 @@ else: CLASSIFIERS += ['Development Status :: 5 - Production/Stable'] if os.name == 'nt': - SCRIPTS = ['python-qwt-tests', 'python-qwt-tests.bat'] + SCRIPTS = ['PythonQwt-tests', 'PythonQwt-tests.bat'] else: - SCRIPTS = ['python-qwt-tests'] + SCRIPTS = ['PythonQwt-tests'] SCRIPTS = [osp.join('scripts', fname) for fname in SCRIPTS] From 35b1853269a3066a6409c8ec772a6442812e944c Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 6 Oct 2015 21:07:04 +0200 Subject: [PATCH 041/421] version --- qwt/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/__init__.py b/qwt/__init__.py index ede450f..d9f6227 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -21,7 +21,7 @@ .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.2.1' +__version__ = '0.3.0' QWT_VERSION_STR = '6.1.2' import warnings From e1d77cb7eeead2dd45290604abed226fea2f9fec Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 6 Oct 2015 23:25:31 +0200 Subject: [PATCH 042/421] Replaced remaining 'python-qwt' occurences --- .gitignore | 2 +- LICENSE | 10 +++++----- build_chm.bat | 12 ++++++------ doc/conf.py | 4 ++-- doc/index.rst | 13 ++++++++++++- 5 files changed, 26 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 874fb39..f244cb5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ .spyderproject qwt-6.1.2 qwt/tests/demo.png -python-qwt.chm +PythonQwt.chm doc.zip # Created by https://www.gitignore.io/api/python diff --git a/LICENSE b/LICENSE index e939599..370a71c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ -python-qwt License Agreement ----------------------------- +PythonQwt License Agreement +--------------------------- [1] Software licensed under the terms of Qwt License @@ -21,7 +21,7 @@ terms of the GPL License from which the PyQwt License 1.0 is derived from (see [****] for more details). -[*] python-qwt License Agreement for new and exclusive Python material (MIT) +[*] PythonQwt License Agreement for new and exclusive Python material (MIT) Copyright (c) 2015 Pierre Raybaut @@ -77,7 +77,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -[***] python-qwt License Agreement for code translated from C++ (Qwt License) +[***] PythonQwt License Agreement for code translated from C++ (Qwt License) Copyright (c) 2002 Uwe Rathmann, for the original C++ code Copyright (c) 2015 Pierre Raybaut, for the Python translation and optimization @@ -630,7 +630,7 @@ That's all there is to it! Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt code Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -developments (e.g. ported to python-qwt API) +developments (e.g. ported to PythonQwt API) PyQwt LICENSE Version 3, March 2006 diff --git a/build_chm.bat b/build_chm.bat index d7db8d8..825cada 100644 --- a/build_chm.bat +++ b/build_chm.bat @@ -1,13 +1,13 @@ sphinx-build -b htmlhelp doc doctmp -"C:\Program Files\HTML Help Workshop\hhc.exe" doctmp\python-qwt.hhp -"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" doctmp\python-qwt.hhp -copy doctmp\python-qwt.chm . -7z a python-qwt.chm.zip python-qwt.chm -del doctmp\python-qwt.chm +"C:\Program Files\HTML Help Workshop\hhc.exe" doctmp\PythonQwt.hhp +"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" doctmp\PythonQwt.hhp +copy doctmp\PythonQwt.chm . +7z a PythonQwt.chm.zip PythonQwt.chm +del doctmp\PythonQwt.chm del doc.zip sphinx-build -b html doc doctmp cd doctmp 7z a -r ..\doc.zip *.* cd .. rmdir /S /Q doctmp -del python-qwt.chm.zip \ No newline at end of file +del PythonQwt.chm.zip \ No newline at end of file diff --git a/doc/conf.py b/doc/conf.py index 7018898..6cbd824 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -113,10 +113,10 @@ # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +html_title = '%s %s Manual' % (project, version) # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +html_short_title = '%s Manual' % project # The name of an image file (relative to this directory) to place at the top # of the sidebar. diff --git a/doc/index.rst b/doc/index.rst index 3c58a24..f9a156b 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,6 +1,17 @@ .. automodule:: qwt -Download :download:`CHM Documentation (unzip and open) <../PythonQwt.chm.zip>`. +.. note:: + + Download :download:`CHM Manual <../PythonQwt.chm.zip>`. + + After downloading this file, you may see blank pages in the documentation. + That's because Windows is blocking CHM files for security reasons. + Fixing this problem is easy: + + * Right-click the CHM file, select properties, then click “Unblock”. + * Or compress the CHM file into a zip archive and decompress it in + another directory. + * Do not open the CHM file on a network drive. Contents: From f3ade09ce4e9062b429e7dd1a74772e5f8de3411 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 6 Oct 2015 23:43:41 +0200 Subject: [PATCH 043/421] Renamed scripts (python-qwt --> PythonQwt) --- scripts/{python-qwt-tests => PythonQwt-tests} | 0 scripts/{python-qwt-tests.bat => PythonQwt-tests.bat} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename scripts/{python-qwt-tests => PythonQwt-tests} (100%) rename scripts/{python-qwt-tests.bat => PythonQwt-tests.bat} (100%) diff --git a/scripts/python-qwt-tests b/scripts/PythonQwt-tests similarity index 100% rename from scripts/python-qwt-tests rename to scripts/PythonQwt-tests diff --git a/scripts/python-qwt-tests.bat b/scripts/PythonQwt-tests.bat similarity index 100% rename from scripts/python-qwt-tests.bat rename to scripts/PythonQwt-tests.bat From 162a1650a6395972d253a918a28f737ec781288e Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Wed, 7 Oct 2015 18:59:06 +0200 Subject: [PATCH 044/421] Doc index: modified link to CHM documentation --- doc/index.rst | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/doc/index.rst b/doc/index.rst index f9a156b..a5b748c 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,17 +1,19 @@ .. automodule:: qwt -.. note:: +.. only:: html and not htmlhelp - Download :download:`CHM Manual <../PythonQwt.chm.zip>`. + .. note:: - After downloading this file, you may see blank pages in the documentation. - That's because Windows is blocking CHM files for security reasons. - Fixing this problem is easy: + Windows users may download the :download:`CHM Manual <../PythonQwt.chm.zip>`. - * Right-click the CHM file, select properties, then click “Unblock”. - * Or compress the CHM file into a zip archive and decompress it in - another directory. - * Do not open the CHM file on a network drive. + After downloading this file, you may see blank pages in the documentation. + That's because Windows is blocking CHM files for security reasons. + Fixing this problem is easy: + + * Right-click the CHM file, select properties, then click “Unblock”. + * Or compress the CHM file into a zip archive and decompress it in + another directory. + * Do not open the CHM file on a network drive. Contents: From e0efb4c58acab5b18715aee69bcc49f82fd46bd5 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 8 Oct 2015 23:14:25 +0200 Subject: [PATCH 045/421] Updated CHANGELOG.md (0.3.0) and setup.py (long description) --- CHANGELOG.md | 4 ++++ setup.py | 20 +++----------------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5141941..d589373 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # History of changes +## Version 0.3.0 + +Renamed the project (python-qwt --> PythonQwt), for various reasons. + ## Version 0.2.1 Fixed Issue #23: "argument numPoints is not implemented" error was showing up diff --git a/setup.py b/setup.py index 3a3f464..285dfd2 100644 --- a/setup.py +++ b/setup.py @@ -33,24 +33,10 @@ Python and then to optimize some parts of the code by writing new modules based on NumPy and other libraries. - The ``PythonQwt`` package consists of a single Python package named `qwt` -which is a pure Python implementation of Qwt C++ library with the following -limitations. - -The following `Qwt` classes won't be reimplemented in `qwt` because more -powerful features already exist in `guiqwt`: `QwtPlotZoomer`, `QwtCounter`, -`QwtEventPattern`, `QwtPicker`, `QwtPlotPicker`. - -Only the following plot items are currently implemented in `qwt` (the only -plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotItem`, -`QwtPlotMarker`, `QwtPlotSeriesItem`, `QwtPlotHistogram`, `QwtPlotCurve`. - -The `QwtClipper` class is not implemented yet (and it will probably be -very difficult or even impossible to implement it in pure Python without -performance issues). As a consequence, when zooming in a plot curve, the -entire curve is still painted (in other words, when working with large -amount of data, there is no performance gain when zooming in).""" +which is a pure Python implementation of Qwt C++ library with some +limitations: efforts were concentrated on basic plotting features, leaving +higher level features to the `guiqwt` library.""" KEYWORDS = '' CLASSIFIERS = [] if 'beta' in version or 'b' in version: From 468a62c10192c5c6fa98e01d985ed9b7789fdd56 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 20 Oct 2015 09:18:49 +0200 Subject: [PATCH 046/421] Restored compatibility with original Qwt signals (QwtPlot, ...) --- qwt/legend.py | 37 ++++++++++++++++++++++++++++++------ qwt/legend_label.py | 16 ++++++++-------- qwt/plot.py | 37 +++++++++++++++++++++++++----------- qwt/scale_widget.py | 4 ++-- qwt/tests/CPUplot.py | 2 +- qwt/tests/EventFilterDemo.py | 12 ++++++------ qwt/tests/ImagePlotDemo.py | 2 +- 7 files changed, 75 insertions(+), 35 deletions(-) diff --git a/qwt/legend.py b/qwt/legend.py index 452b142..f4d19cf 100644 --- a/qwt/legend.py +++ b/qwt/legend.py @@ -177,10 +177,35 @@ class QwtLegend(QwtAbstractLegend): Constructor :param QWidget parent: Parent widget + + .. py:data:: clicked + + A signal which is emitted when the user has clicked on + a legend label, which is in `QwtLegendData.Clickable` mode. + + :param itemInfo: Info for the item item of the selected legend item + :param index: Index of the legend label in the list of widgets that are associated with the plot item + + .. note:: + + Clicks are disabled as default + + .. py:data:: checked + + A signal which is emitted when the user has clicked on + a legend label, which is in `QwtLegendData.Checkable` mode + + :param itemInfo: Info for the item of the selected legend label + :param index: Index of the legend label in the list of widgets that are associated with the plot item + :param on: True when the legend label is checked + + .. note:: + + Clicks are disabled as default """ - SIG_CLICKED = Signal("PyQt_PyObject", int) - SIG_CHECKED = Signal("PyQt_PyObject", bool, int) + clicked = Signal("PyQt_PyObject", int) + checked = Signal("PyQt_PyObject", bool, int) def __init__(self, parent=None): QwtAbstractLegend.__init__(self, parent) @@ -338,8 +363,8 @@ def createWidget(self, data): """ label = QwtLegendLabel() label.setItemMode(self.defaultItemMode()) - label.SIG_CLICKED.connect(lambda: self.itemClicked(label)) - label.SIG_CHECKED.connect(lambda state: self.itemChecked(state, label)) + label.clicked.connect(lambda: self.itemClicked(label)) + label.checked.connect(lambda state: self.itemChecked(state, label)) return label def updateWidget(self, widget, data): @@ -421,7 +446,7 @@ def itemClicked(self, widget): widgetList = self.__data.itemMap.legendWidgets(itemInfo) if w in widgetList: index = widgetList.index(w) - self.SIG_CLICKED.emit(itemInfo, index) + self.clicked.emit(itemInfo, index) def itemChecked(self, on, widget): # w = self.sender() #TODO: cast to QWidget @@ -432,7 +457,7 @@ def itemChecked(self, on, widget): widgetList = self.__data.itemMap.legendWidgets(itemInfo) if w in widgetList: index = widgetList.index(w) - self.SIG_CHECKED.emit(itemInfo, on, index) + self.checked.emit(itemInfo, on, index) def renderLegend(self, painter, rect, fillBackground): """ diff --git a/qwt/legend_label.py b/qwt/legend_label.py index 87b87c4..826635a 100644 --- a/qwt/legend_label.py +++ b/qwt/legend_label.py @@ -45,10 +45,10 @@ def __init__(self): class QwtLegendLabel(QwtTextLabel): """A widget representing something on a QwtLegend.""" - SIG_CLICKED = Signal() - SIG_PRESSED = Signal() - SIG_RELEASED = Signal() - SIG_CHECKED = Signal(bool) + clicked = Signal() + pressed = Signal() + released = Signal() + checked = Signal(bool) def __init__(self, parent=None): QwtTextLabel.__init__(self, parent) @@ -229,12 +229,12 @@ def setDown(self, down): self.update() if self.__data.itemMode == QwtLegendData.Clickable: if self.__data.isDown: - self.SIG_PRESSED.emit() + self.pressed.emit() else: - self.SIG_RELEASED.emit() - self.SIG_CLICKED.emit() + self.released.emit() + self.clicked.emit() if self.__data.itemMode == QwtLegendData.Checkable: - self.SIG_CHECKED.emit(self.__data.isDown) + self.checked.emit(self.__data.isDown) def isDown(self): """ diff --git a/qwt/plot.py b/qwt/plot.py index fbdaa4e..6f2856a 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -39,9 +39,9 @@ def qwtEnableLegendItems(plot, on): if on: - plot.SIG_LEGEND_DATA_CHANGED.connect(plot.updateLegendItems) + plot.legendDataChanged.connect(plot.updateLegendItems) else: - plot.SIG_LEGEND_DATA_CHANGED.disconnect(plot.updateLegendItems) + plot.legendDataChanged.disconnect(plot.updateLegendItems) def qwtSetTabOrder(first, second, with_children): tab_chain = [first, second] @@ -255,10 +255,26 @@ class QwtPlot(QFrame, QwtPlotDict): :param str title: Title text :param QWidget parent: Parent widget + + .. py:data:: itemAttached + + A signal indicating, that an item has been attached/detached + + :param plotItem: Plot item + :param on: Attached/Detached + + .. py:data:: legendDataChanged + + A signal with the attributes how to update + the legend entries for a plot item. + + :param itemInfo: Info about a plot item, build from itemToInfo() + :param data: Attributes of the entries (usually <= 1) for the plot item. + """ - SIG_ITEM_ATTACHED = Signal("PyQt_PyObject", bool) - SIG_LEGEND_DATA_CHANGED = Signal("PyQt_PyObject", "PyQt_PyObject") + itemAttached = Signal("PyQt_PyObject", bool) + legendDataChanged = Signal("PyQt_PyObject", "PyQt_PyObject") # enum Axis yLeft, yRight, xBottom, xTop, axisCnt = list(range(5)) @@ -1432,8 +1448,7 @@ def insertLegend(self, legend, pos=None, ratio=-1): del self.__data.legend self.__data.legend = legend if self.__data.legend: - self.SIG_LEGEND_DATA_CHANGED.connect( - self.__data.legend.updateLegend) + self.legendDataChanged.connect(self.__data.legend.updateLegend) if self.__data.legend.parent() is not self: self.__data.legend.setParent(self) @@ -1467,14 +1482,14 @@ def insertLegend(self, legend, pos=None, ratio=-1): def updateLegend(self, plotItem=None): """ - If plotItem is None, emit QwtPlot.SIG_LEGEND_DATA_CHANGED for all + If plotItem is None, emit QwtPlot.legendDataChanged for all plot item. Otherwise, emit the signal for passed plot item. :param qwt.plot.QwtPlotItem plotItem: Plot item .. seealso:: - :py:meth:`QwtPlotItem.legendData()`, :py:data:`QwtPlot.SIG_LEGEND_DATA_CHANGED` + :py:meth:`QwtPlotItem.legendData()`, :py:data:`QwtPlot.legendDataChanged` """ if plotItem is None: items = list(self.itemList()) @@ -1486,7 +1501,7 @@ def updateLegend(self, plotItem=None): legendData = [] if plotItem.testItemAttribute(QwtPlotItem.Legend): legendData = plotItem.legendData() - self.SIG_LEGEND_DATA_CHANGED.emit(plotItem, legendData) + self.legendDataChanged.emit(plotItem, legendData) def updateLegendItems(self, plotItem, legendData): """ @@ -1527,13 +1542,13 @@ def attachItem(self, plotItem, on): else: self.removeItem(plotItem) - self.SIG_ITEM_ATTACHED.emit(plotItem, on) + self.itemAttached.emit(plotItem, on) if plotItem.testItemAttribute(QwtPlotItem.Legend): if on: self.updateLegend(plotItem) else: - self.SIG_LEGEND_DATA_CHANGED.emit(plotItem, []) + self.legendDataChanged.emit(plotItem, []) self.autoRefresh() diff --git a/qwt/scale_widget.py b/qwt/scale_widget.py index 16cad08..92c0d1c 100644 --- a/qwt/scale_widget.py +++ b/qwt/scale_widget.py @@ -73,7 +73,7 @@ class QwtScaleWidget(QWidget): :param QWidget parent: Parent widget """ - SIG_SCALE_DIV_CHANGED = Signal() + scaleDivChanged = Signal() # enum LayoutFlag TitleInverted = 1 @@ -694,7 +694,7 @@ def setScaleDiv(self, scaleDiv): if sd.scaleDiv() != scaleDiv: sd.setScaleDiv(scaleDiv) self.layoutScale() - self.SIG_SCALE_DIV_CHANGED.emit() + self.scaleDivChanged.emit() def setTransformation(self, transformation): """ diff --git a/qwt/tests/CPUplot.py b/qwt/tests/CPUplot.py index 3a99838..c58836d 100644 --- a/qwt/tests/CPUplot.py +++ b/qwt/tests/CPUplot.py @@ -347,7 +347,7 @@ def __init__(self, *args): self.startTimer(1000) - legend.SIG_CHECKED.connect(self.showCurve) + legend.checked.connect(self.showCurve) self.replot() def timerEvent(self, e): diff --git a/qwt/tests/EventFilterDemo.py b/qwt/tests/EventFilterDemo.py index 855999d..dbda4f1 100644 --- a/qwt/tests/EventFilterDemo.py +++ b/qwt/tests/EventFilterDemo.py @@ -20,7 +20,7 @@ class ColorBar(QWidget): - SIG_COLOR_SELECTED = Signal(QColor) + colorSelected = Signal(QColor) def __init__(self, orientation, *args): QWidget.__init__(self, *args) @@ -63,7 +63,7 @@ def mousePressEvent(self, event): pm = QPixmap.grabWidget(self) color = QColor() color.setRgb(pm.toImage().pixel(event.x(), event.y())) - self.SIG_COLOR_SELECTED.emit(color) + self.colorSelected.emit(color) event.accept() def paintEvent(self, _): @@ -136,7 +136,7 @@ def __init__(self, *args): self.__colorBar.setRange( QColor(Qt.red), QColor(Qt.darkBlue)) self.__colorBar.setFocusPolicy(Qt.TabFocus) - self.__colorBar.SIG_COLOR_SELECTED.connect(self.setCanvasColor) + self.__colorBar.colorSelected.connect(self.setCanvasColor) # we need the resize events, to lay out the color bar scaleWidget.installEventFilter(self) @@ -376,7 +376,7 @@ def __shiftPointCursor(self, up): class ScalePicker(QObject): - SIG_CLICKED = Signal(int, float) + clicked = Signal(int, float) def __init__(self, plot): QObject.__init__(self, plot) @@ -412,7 +412,7 @@ def __mouseClicked(self, scale, pos): elif scale.alignment() == QwtScaleDraw.TopScale: value = sd.scaleMap().invTransform(pos.x()) axis = QwtPlot.xBottom - self.SIG_CLICKED.emit(axis, value) + self.clicked.emit(axis, value) def __scaleRect(self, scale): bld = scale.margin() @@ -447,7 +447,7 @@ def make(): ) CanvasPicker(plot) scalePicker = ScalePicker(plot) - scalePicker.SIG_CLICKED.connect(plot.insertCurve) + scalePicker.clicked.connect(plot.insertCurve) demo.resize(540, 400) demo.show() return demo diff --git a/qwt/tests/ImagePlotDemo.py b/qwt/tests/ImagePlotDemo.py index c13c3d1..f0513b7 100644 --- a/qwt/tests/ImagePlotDemo.py +++ b/qwt/tests/ImagePlotDemo.py @@ -167,7 +167,7 @@ def __init__(self, *args): plotImage.setData(square(512, -2*np.pi, 2*np.pi), (-2*np.pi, 2*np.pi), (-2*np.pi, 2*np.pi)) - legend.SIG_CLICKED.connect(self.toggleVisibility) + legend.clicked.connect(self.toggleVisibility) # replot self.replot() From 4e18ce2dfcd3d910dad7db04871791cc5dd45283 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 20 Oct 2015 15:10:59 +0200 Subject: [PATCH 047/421] version --- qwt/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/__init__.py b/qwt/__init__.py index d9f6227..ad99d4a 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -21,7 +21,7 @@ .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.3.0' +__version__ = '0.4.0' QWT_VERSION_STR = '6.1.2' import warnings From 052c07fc0d9090eacff868472056db437490f637 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 25 Oct 2015 07:57:04 +0100 Subject: [PATCH 048/421] Fixed QwtPainter.drawColorBar for horizontal color bars (typo) --- qwt/painter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/painter.py b/qwt/painter.py index 82ce865..5bbaf6c 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -692,7 +692,7 @@ def drawColorBar(self, painter, colorMap, interval, scaleMap, else: c = colorTable[colorMap.colorIndex(interval, value)] pmPainter.setPen(c) - pmPainter.drawLine(x, devRect.top(), devRect.bottom()) + pmPainter.drawLine(x, devRect.top(), x, devRect.bottom()) else: sMap = scaleMap sMap.setPaintInterval(rect.bottom(), rect.top()) From 01811224e2d2b9a93ea1e57a7c10e4dcfb1b1ed4 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 25 Oct 2015 09:35:38 +0100 Subject: [PATCH 049/421] Color bar: fixed axis ticks shaking when color bar is enabled Very nasty and sneaky bug! --- qwt/painter.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qwt/painter.py b/qwt/painter.py index 5bbaf6c..d175c9a 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -15,6 +15,7 @@ from qwt.clipper import QwtClipper from qwt.color_map import QwtColorMap +from qwt.scale_map import QwtScaleMap from qwt.qt.QtGui import (QPaintEngine, QApplication, QFont, QFontInfo, QFrame, QPixmap, QPainter, QPolygonF, QPalette, QStyle, QPen, @@ -683,7 +684,7 @@ def drawColorBar(self, painter, colorMap, interval, scaleMap, pmPainter = QPainter(pixmap) pmPainter.translate(-devRect.x(), -devRect.y()) if orientation == Qt.Horizontal: - sMap = scaleMap + sMap = QwtScaleMap(scaleMap) sMap.setPaintInterval(rect.left(), rect.right()) for x in range(devRect.left(), devRect.right()+1): value = sMap.invTransform(x) @@ -694,7 +695,7 @@ def drawColorBar(self, painter, colorMap, interval, scaleMap, pmPainter.setPen(c) pmPainter.drawLine(x, devRect.top(), x, devRect.bottom()) else: - sMap = scaleMap + sMap = QwtScaleMap(scaleMap) sMap.setPaintInterval(rect.bottom(), rect.top()) for y in range(devRect.top(), devRect.bottom()+1): value = sMap.invTransform(y) From 8d02ecacbf2498b6a404c2fc713ed6722142e6e0 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 26 Oct 2015 19:00:50 +0100 Subject: [PATCH 050/421] Added QwtPlot.validAxes class attribute This is an optimization: when plot methods are called several times, using QwtPlot.validAxes instead of range(QwtPlot.axisCnt) will gain precious milliseconds. --- qwt/plot.py | 32 +++++++++++++-------------- qwt/plot_layout.py | 52 ++++++++++++++++++++++---------------------- qwt/plot_renderer.py | 10 ++++----- 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/qwt/plot.py b/qwt/plot.py index 6f2856a..7e5976c 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -277,7 +277,8 @@ class QwtPlot(QFrame, QwtPlotDict): legendDataChanged = Signal("PyQt_PyObject", "PyQt_PyObject") # enum Axis - yLeft, yRight, xBottom, xTop, axisCnt = list(range(5)) + validAxes = yLeft, yRight, xBottom, xTop = list(range(4)) + axisCnt = len(validAxes) # enum LegendPosition LeftLegend, RightLegend, BottomLegend, TopLegend = list(range(4)) @@ -363,7 +364,7 @@ def __del__(self): def initAxesData(self): """Initialize axes""" - self.__axisData = [AxisData() for axisId in range(self.axisCnt)] + self.__axisData = [AxisData() for axisId in self.validAxes] self.__axisData[self.yLeft].scaleWidget = \ QwtScaleWidget(QwtScaleDraw.LeftScale, self) @@ -386,7 +387,7 @@ def initAxesData(self): fscl = QFont(self.fontInfo().family(), 10) fttl = QFont(self.fontInfo().family(), 12, QFont.Bold) - for axisId in range(self.axisCnt): + for axisId in self.validAxes: d = self.__axisData[axisId] d.scaleEngine = QwtLinearScaleEngine() @@ -414,7 +415,7 @@ def initAxesData(self): def deleteAxesData(self): #XXX Is is really necessary in Python? (pure transcription of C++) - for axisId in range(self.axisCnt): + for axisId in self.validAxes: self.__axisData[axisId].scaleEngine = None self.__axisData[axisId] = None @@ -851,7 +852,7 @@ def updateAxes(self): :py:meth:`setAxisScaleDiv()`, :py:meth:`replot()`, :py:meth:`QwtPlotItem.boundingRect()` """ - intv = [QwtInterval() for _i in range(self.axisCnt)] + intv = [QwtInterval() for _i in self.validAxes] itmList = self.itemList() for item in itmList: if not item.testItemAttribute(QwtPlotItem.AutoScale): @@ -864,7 +865,7 @@ def updateAxes(self): intv[item.xAxis()] |= QwtInterval(rect.left(), rect.right()) if rect.height() >= 0.: intv[item.yAxis()] |= QwtInterval(rect.top(), rect.bottom()) - for axisId in range(self.axisCnt): + for axisId in self.validAxes: d = self.__axisData[axisId] minValue = d.minValue maxValue = d.maxValue @@ -1084,7 +1085,7 @@ def sizeHint(self): :py:meth:`minimumSizeHint()` """ dw = dh = 0 - for axisId in range(self.axisCnt): + for axisId in self.validAxes: if self.axisEnabled(axisId): niceDist = 40 scaleWidget = self.axisWidget(axisId) @@ -1145,7 +1146,7 @@ def get_layout_state(self): return (self.contentsRect(), self.__data.titleLabel.text(), self.__data.footerLabel.text(), [(self.axisEnabled(axisId), self.axisTitle(axisId).text()) - for axisId in range(self.axisCnt)], + for axisId in self.validAxes], self.__data.legend) def updateLayout(self): @@ -1166,9 +1167,8 @@ def updateLayout(self): titleRect = self.__data.layout.titleRect().toRect() footerRect = self.__data.layout.footerRect().toRect() - scaleRect = [None] * self.axisCnt - for axisId in range(self.axisCnt): - scaleRect[axisId] = self.__data.layout.scaleRect(axisId).toRect() + scaleRect = [self.__data.layout.scaleRect(axisId).toRect() + for axisId in self.validAxes] legendRect = self.__data.layout.legendRect().toRect() canvasRect = self.__data.layout.canvasRect().toRect() @@ -1186,7 +1186,7 @@ def updateLayout(self): else: self.__data.footerLabel.hide() - for axisId in range(self.axisCnt): + for axisId in self.validAxes: if self.axisEnabled(axisId): self.axisWidget(axisId).setGeometry(scaleRect[axisId]) @@ -1254,12 +1254,12 @@ def updateCanvasMargins(self): :py:meth:`getCanvasMarginsHint()`, :py:meth:`QwtPlotItem.getCanvasMarginHint()` """ - maps = [self.canvasMap(axisId) for axisId in range(self.axisCnt)] + maps = [self.canvasMap(axisId) for axisId in self.validAxes] margins = self.getCanvasMarginsHint(maps, self.canvas().contentsRect()) doUpdate = False - for axisId in range(self.axisCnt): + for axisId in self.validAxes: if margins[axisId] >= 0.: m = np.ceil(margins[axisId]) self.plotLayout().setCanvasMargin(m, axisId) @@ -1285,7 +1285,7 @@ def drawCanvas(self, painter): :py:meth:`getCanvasMarginsHint()`, :py:meth:`QwtPlotItem.getCanvasMarginHint()` """ - maps = [self.canvasMap(axisId) for axisId in range(self.axisCnt)] + maps = [self.canvasMap(axisId) for axisId in self.validAxes] self.drawItems(painter, self.__data.canvas.contentsRect(), maps) def drawItems(self, painter, canvasRect, maps): @@ -1397,7 +1397,7 @@ def axisValid(self, axisId): :param int axisId: Axis :return: True if the specified axis exists, otherwise False """ - return axisId in range(QwtPlot.axisCnt) + return axisId in QwtPlot.validAxes def insertLegend(self, legend, pos=None, ratio=-1): """ diff --git a/qwt/plot_layout.py b/qwt/plot_layout.py index 7fa7f9e..c0c9661 100644 --- a/qwt/plot_layout.py +++ b/qwt/plot_layout.py @@ -56,14 +56,14 @@ def __init__(self): class CanvasData(object): def __init__(self): - self.contentsMargins = [0 for _i in range(QwtPlot.axisCnt)] + self.contentsMargins = [0 for _i in QwtPlot.validAxes] class QwtPlotLayout_LayoutData(object): def __init__(self): self.legend = LegendData() self.title = TitleData() self.footer = FooterData() - self.scale = [ScaleData() for _i in range(QwtPlot.axisCnt)] + self.scale = [ScaleData() for _i in QwtPlot.validAxes] self.canvas = CanvasData() def init(self, plot, rect): @@ -100,7 +100,7 @@ def init(self, plot, rect): self.footer.text.setFont(label.font()) self.footer.frameWidth = plot.footerLabel().frameWidth() # scales - for axis in range(QwtPlot.axisCnt): + for axis in QwtPlot.validAxes: if plot.axisEnabled(axis): scaleWidget = plot.axisWidget(axis) self.scale[axis].isEnabled = True @@ -133,7 +133,7 @@ def __init__(self): self.titleRect = QRectF() self.footerRect = QRectF() self.legendRect = QRectF() - self.scaleRect = [QRectF() for _i in range(QwtPlot.axisCnt)] + self.scaleRect = [QRectF() for _i in QwtPlot.validAxes] self.canvasRect = QRectF() self.layoutData = QwtPlotLayout_LayoutData() self.legendPos = None @@ -199,9 +199,9 @@ def setCanvasMargin(self, margin, axis=-1): if margin < 1: margin = -1 if axis == -1: - for axis in range(QwtPlot.axisCnt): + for axis in QwtPlot.validAxes: self.__data.canvasMargin[axis] = margin - elif axis >= 0 and axis < QwtPlot.axisCnt: + elif axis in QwtPlot.validAxes: self.__data.canvasMargin[axis] = margin def canvasMargin(self, axisId): @@ -213,7 +213,7 @@ def canvasMargin(self, axisId): :py:meth:`setCanvasMargin()` """ - if axisId < 0 or axisId >= QwtPlot.axisCnt: + if axisId not in QwtPlot.validAxes: return 0 return self.__data.canvasMargin[axisId] @@ -250,11 +250,11 @@ def setAlignCanvasToScales(self, *args): """ if len(args) == 1: on, = args - for axis in range(QwtPlot.axisCnt): + for axis in QwtPlot.validAxes: self.__data.alignCanvasToScales[axis] = on elif len(args) == 2: axisId, on = args - if axis >= 0 and axis < QwtPlot.axisCnt: + if axis in QwtPlot.validAxes: self.__data.alignCanvasToScales[axisId] = on else: raise TypeError("%s().setAlignCanvasToScales() takes 1 or 2 "\ @@ -276,7 +276,7 @@ def alignCanvasToScale(self, axisId): :py:meth:`setAlignCanvasToScale()`, :py:meth:`setCanvasMargin()` """ - if axisId < 0 or axisId >= QwtPlot.axisCnt: + if axisId not in QwtPlot.validAxes: return False return self.__data.alignCanvasToScales[axisId] @@ -477,7 +477,7 @@ def setScaleRect(self, axis, rect): :py:meth:`scaleRect()`, :py:meth:`activate()` """ - if axis >= 0 and axis < QwtPlot.axisCnt: + if axis in QwtPlot.validAxes: self.__data.scaleRect[axis] = rect def scaleRect(self, axis): @@ -489,7 +489,7 @@ def scaleRect(self, axis): :py:meth:`invalidate()`, :py:meth:`activate()` """ - if axis < 0 or axis >= QwtPlot.axisCnt: + if axis not in QwtPlot.validAxes: return QRectF() return self.__data.scaleRect[axis] @@ -530,7 +530,7 @@ def invalidate(self): self.__data.footerRect = QRectF() self.__data.legendRect = QRectF() self.__data.canvasRect = QRectF() - for axis in range(QwtPlot.axisCnt): + for axis in QwtPlot.validAxes: self.__data.scaleRect[axis] = QRectF() def minimumSizeHint(self, plot): @@ -549,10 +549,10 @@ def __init__(self): self.minLeft = 0 self.minRight = 0 self.tickOffset = 0 - scaleData = [_ScaleData() for _i in range(QwtPlot.axisCnt)] - canvasBorder = [0 for _i in range(QwtPlot.axisCnt)] + scaleData = [_ScaleData() for _i in QwtPlot.validAxes] + canvasBorder = [0 for _i in QwtPlot.validAxes] fw, _, _, _ = plot.canvas().getContentsMargins() - for axis in range(QwtPlot.axisCnt): + for axis in QwtPlot.validAxes: if plot.axisEnabled(axis): scl = plot.axisWidget(axis) sd = scaleData[axis] @@ -564,7 +564,7 @@ def __init__(self): if scl.scaleDraw().hasComponent(QwtAbstractScaleDraw.Ticks): sd.tickOffset += np.ceil(scl.scaleDraw().maxTickLength()) canvasBorder[axis] = fw + self.__data.canvasMargin[axis] + 1 - for axis in range(QwtPlot.axisCnt): + for axis in QwtPlot.validAxes: sd = scaleData[axis] if sd.w and axis in (QwtPlot.xBottom, QwtPlot.xTop): if sd.minLeft > canvasBorder[QwtPlot.yLeft]\ @@ -707,9 +707,9 @@ def expandLineBreaks(self, options, rect): * `dimAxis`: Expanded heights of the axis in axis orientation. """ dimTitle = dimFooter = 0 - dimAxis = [0 for axis in range(QwtPlot.axisCnt)] - backboneOffset = [0 for _i in range(QwtPlot.axisCnt)] - for axis in range(QwtPlot.axisCnt): + dimAxis = [0 for axis in QwtPlot.validAxes] + backboneOffset = [0 for _i in QwtPlot.validAxes] + for axis in QwtPlot.validAxes: if not (options & self.IgnoreFrames): backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[axis] if not self.__data.alignCanvasToScales[axis]: @@ -748,7 +748,7 @@ def expandLineBreaks(self, options, rect): if d > dimFooter: dimFooter = d done = False - for axis in range(QwtPlot.axisCnt): + for axis in QwtPlot.validAxes: scaleData = self.__data.layoutData.scale[axis] if scaleData.isEnabled: if axis in (QwtPlot.xTop, QwtPlot.xBottom): @@ -793,14 +793,14 @@ def alignScales(self, options, canvasRect, scaleRect): :param QRectF canvasRect: Geometry of the canvas ( IN/OUT ) :param QRectF scaleRect: Geometry of the scales ( IN/OUT ) """ - backboneOffset = [0 for _i in range(QwtPlot.axisCnt)] - for axis in range(QwtPlot.axisCnt): + backboneOffset = [0 for _i in QwtPlot.validAxes] + for axis in QwtPlot.validAxes: backboneOffset[axis] = 0 if not self.__data.alignCanvasToScales[axis]: backboneOffset[axis] += self.__data.canvasMargin[axis] if not options & self.IgnoreFrames: backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[axis] - for axis in range(QwtPlot.axisCnt): + for axis in QwtPlot.validAxes: if not scaleRect[axis].isValid(): continue startDist = self.__data.layoutData.scale[axis].start @@ -881,7 +881,7 @@ def alignScales(self, options, canvasRect, scaleRect): else: if topOffset > 0: axisRect.setTop(axisRect.top()+topOffset) - for axis in range(QwtPlot.axisCnt): + for axis in QwtPlot.validAxes: sRect = scaleRect[axis] if not sRect.isValid(): continue @@ -990,7 +990,7 @@ def activate(self, plot, plotRect, options=0x00): rect.y()+dimAxes[QwtPlot.xTop], rect.width()-dimAxes[QwtPlot.yRight]-dimAxes[QwtPlot.yLeft], rect.height()-dimAxes[QwtPlot.xBottom]-dimAxes[QwtPlot.xTop]) - for axis in range(QwtPlot.axisCnt): + for axis in QwtPlot.validAxes: if dimAxes[axis]: dim = dimAxes[axis] scaleRect = self.__data.scaleRect[axis] diff --git a/qwt/plot_renderer.py b/qwt/plot_renderer.py index e4bf9d6..b409676 100644 --- a/qwt/plot_renderer.py +++ b/qwt/plot_renderer.py @@ -348,7 +348,7 @@ def render(self, plot, painter, plotRect): baseLineDists = [None]*QwtPlot.axisCnt canvasMargins = [None]*QwtPlot.axisCnt - for axisId in range(QwtPlot.axisCnt): + for axisId in QwtPlot.validAxes: canvasMargins[axisId] = layout.canvasMargin(axisId) if self.__data.layoutFlags & self.FrameWithScales: scaleWidget = plot.axisWidget(axisId) @@ -410,7 +410,7 @@ def render(self, plot, painter, plotRect): plot.titleLabel().text(): self.renderLegend(plot, painter, layout.legendRect()) - for axisId in range(QwtPlot.axisCnt): + for axisId in QwtPlot.validAxes: scaleWidget = plot.axisWidget(axisId) if scaleWidget: baseDist = scaleWidget.margin() @@ -420,7 +420,7 @@ def render(self, plot, painter, plotRect): painter.restore() - for axisId in range(QwtPlot.axisCnt): + for axisId in QwtPlot.validAxes: if self.__data.layoutFlags & self.FrameWithScales: scaleWidget = plot.axisWidget(axisId) if scaleWidget: @@ -603,7 +603,7 @@ def buildCanvasMaps(self, plot, canvasRect): :return: Calculated scale maps """ maps = [] - for axisId in range(QwtPlot.axisCnt): + for axisId in QwtPlot.validAxes: map_ = QwtScaleMap() map_.setTransformation( plot.axisScaleEngine(axisId).transformation()) @@ -635,7 +635,7 @@ def buildCanvasMaps(self, plot, canvasRect): def updateCanvasMargins(self, plot, canvasRect, maps): margins = plot.getCanvasMarginsHint(maps, canvasRect) marginsChanged = False - for axisId in range(QwtPlot.axisCnt): + for axisId in QwtPlot.validAxes: if margins[axisId] >= 0.: m = np.ceil(margins[axisId]) plot.plotLayout().setCanvasMargin(m, axisId) From 54fbf0ed4e5c3e8bbae51ae2f393064f13200dbc Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 26 Oct 2015 19:02:43 +0100 Subject: [PATCH 051/421] Added QwtScaleDraw.setFixedSize/fixedSize methods to set the new fixed size option When drawing text labels, if fixed size option is enabled, the axes width and height won't change when axis range is changing. On the contrary, if this option is disabled (default behavior), axes are drawn in order to optimize layout space and depends on text label individual sizes. This option is not implemented in Qwt C++ library: this may be used either as an optimization (updating plot layout is faster when this option is enabled) or as an appearance preference (with Qwt default behavior, the size of axes may change when zooming and/or panning plot canvas which in some cases may not be desired). --- CHANGELOG.md | 11 ++++++++++ qwt/plot.py | 14 ++++++++++++ qwt/scale_draw.py | 56 ++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 78 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d589373..2e114b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # History of changes +## Version 0.5.0 + +Various optimizations +Added QwtScaleDraw.setFixedSize/fixedSize methods to set the new fixed size option (see documentation) + +## Version 0.4.0 + +Color bar: fixed axis ticks shaking when color bar is enabled +Fixed QwtPainter.drawColorBar for horizontal color bars (typo) +Restored compatibility with original Qwt signals (QwtPlot, ...) + ## Version 0.3.0 Renamed the project (python-qwt --> PythonQwt), for various reasons. diff --git a/qwt/plot.py b/qwt/plot.py index 7e5976c..c628b7b 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -774,6 +774,20 @@ def setAxisLabelRotation(self, axisId, rotation): if self.axisValid(axisId): self.axisWidget(axisId).setLabelRotation(rotation) + def setAxisFixedSize(self, axisId, state): + """ + Set tick labels fixed size option + + :param int axisId: Axis index + :param bool state: On/off + + .. seealso:: + + :py:meth:`qwt.scale_draw.QwtScaleDraw.setFixedSize()` + """ + if self.axisValid(axisId): + self.axisWidget(axisId).setFixedSize(state) + def setAxisMaxMinor(self, axisId, maxMinor): """ Set the maximum number of minor scale intervals for a specified axis diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index 1a20192..ca4c362 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -439,7 +439,7 @@ def __init__(self): self.alignment = QwtScaleDraw.BottomScale self.labelAlignment = 0 self.labelRotation = 0. - + self.fixedSize = False self.pos = QPointF() @@ -483,6 +483,7 @@ def __init__(self): QwtAbstractScaleDraw.__init__(self) self.__data = QwtScaleDraw_PrivateData() self.setLength(100) + self._max_label_sizes = {} def alignment(self): """ @@ -1124,6 +1125,49 @@ def labelAlignment(self): :py:meth:`setLabelAlignment()`, :py:meth:`labelRotation()` """ return self.__data.labelAlignment + + def setFixedSize(self, state): + """ + Set fixed size option state + + When drawing text labels, if fixed size option is enabled, the axes + width and height won't change when axis range is changing. On the + contrary, if this option is disabled (default behavior), axes are + drawn in order to optimize layout space and depends on text label + individual sizes. + + This option is not implemented in Qwt C++ library: this may be used + either as an optimization (updating plot layout is faster when this + option is enabled) or as an appearance preference (with Qwt default + behavior, the size of axes may change when zooming and/or panning + plot canvas which in some cases may not be desired). + + :param bool state: On/off + + .. seealso:: + + :py:meth:`fixedSize()` + """ + self.__data.fixedSize = state + + def fixedSize(self): + """ + :return: True if fixed size option is enabled for labels + + .. seealso:: + + :py:meth:`setFixedSize()` + """ + return self.__data.fixedSize + + def _get_max_label_size(self, font): + fid = font.toString() + size = self._max_label_sizes.get(fid) + if size is None: + size = self.labelSize(font, -999999) + return self._max_label_sizes.setdefault(fid, size) + else: + return size def maxLabelWidth(self, font): """ @@ -1133,7 +1177,10 @@ def maxLabelWidth(self, font): ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if not ticks: return 0 - return np.ceil(max([self.labelSize(font, v).width() + if self.fixedSize(): + return self._get_max_label_size(font).width() + else: + return np.ceil(max([self.labelSize(font, v).width() for v in ticks if self.scaleDiv().contains(v)])) def maxLabelHeight(self, font): @@ -1144,7 +1191,10 @@ def maxLabelHeight(self, font): ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if not ticks: return 0 - return np.ceil(max([self.labelSize(font, v).height() + if self.fixedSize(): + return self._get_max_label_size(font).height() + else: + return np.ceil(max([self.labelSize(font, v).height() for v in ticks if self.scaleDiv().contains(v)])) def updateMap(self): From c4d8897666a191046e2b81164ec6d1a9b808ffd7 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 26 Oct 2015 19:03:31 +0100 Subject: [PATCH 052/421] QwtText: code cleaning / optimization --- qwt/text.py | 56 +++++++++++++++++++---------------------------------- 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/qwt/text.py b/qwt/text.py index a7b8d49..2958360 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -159,9 +159,12 @@ class QwtText(object): # enum LayoutAttribute MinimumLayout = 0x01 + # Optimization: a single text engine for all QwtText objects + # (this is not how it's implemented in Qwt6 C++ library) + __map = {PlainText: QwtPlainTextEngine(), RichText: QwtRichTextEngine()} + def __init__(self, text=None, textFormat=None, other=None): self.__desktopwidget = None - self._dict = QwtTextEngineDict() if text is None: text = '' if textFormat is None: @@ -569,7 +572,7 @@ def draw(self, painter, rect): self.__data.renderFlags, self.__data.text) painter.restore() - def textEngine(self, *args): + def textEngine(self, text=None, format_=None): """ Find the text engine for a text format @@ -585,7 +588,21 @@ def textEngine(self, *args): :param int format: Text format :return: Corresponding text engine """ - return self._dict.textEngine(*args) + if text is None: + return self.__map.get(format_) + elif format_ is not None: + if format_ == QwtText.AutoText: + for key, engine in list(self.__map.items()): + if key != QwtText.PlainText: + if engine and engine.mightRender(text): + return engine + engine = self.__map.get(format_) + if engine is not None: + return engine + return self.__map[QwtText.PlainText] + else: + raise TypeError("%s().textEngine() takes 1 or 2 argument(s) (none"\ + " given)" % self.__class__.__name__) def setTextEngine(self, format_, engine): """ @@ -607,39 +624,6 @@ def setTextEngine(self, format_, engine): Using `QwtText.AutoText` does nothing. """ - self._dict.setTextEngine(format_, engine) - - -class QwtTextEngineDict(object): - # Optimization: a single text engine for all QwtText objects - # (this is not how it's implemented in Qwt6 C++ library) - __map = {QwtText.PlainText: QwtPlainTextEngine(), - QwtText.RichText: QwtRichTextEngine()} - - def textEngine(self, *args): - if len(args) == 1: - format_ = args[0] - return self.__map.get(format_) - elif len(args) == 2: - text, format_ = args - - if format_ == QwtText.AutoText: - for key, engine in list(self.__map.items()): - if key != QwtText.PlainText: - if engine and engine.mightRender(text): - return engine - - engine = self.__map.get(format_) - if engine is not None: - return engine - - engine = self.__map[QwtText.PlainText] - return engine - else: - raise TypeError("%s().textEngine() takes 1 or 2 argument(s) (%s "\ - "given)" % (self.__class__.__name__, len(args))) - - def setTextEngine(self, format_, engine): if format_ == QwtText.AutoText: return if format_ == QwtText.PlainText and engine is None: From f0b95558c4441aa742f5e2c562558bf37f8d2ece Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 26 Oct 2015 23:52:52 +0100 Subject: [PATCH 053/421] Renamed axis scale option "fixedSize" (False by default) to "labelAutoSize" (True by default) Added missing method in QwtScaleWidget: setLabelAutoSize Fixed limitation: when auto size if off, the max label size depends on label rotation value --- qwt/plot.py | 8 ++++---- qwt/scale_draw.py | 49 +++++++++++++++++++++++---------------------- qwt/scale_widget.py | 19 +++++++++++++++--- 3 files changed, 45 insertions(+), 31 deletions(-) diff --git a/qwt/plot.py b/qwt/plot.py index c628b7b..4891eb9 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -774,19 +774,19 @@ def setAxisLabelRotation(self, axisId, rotation): if self.axisValid(axisId): self.axisWidget(axisId).setLabelRotation(rotation) - def setAxisFixedSize(self, axisId, state): + def setAxisLabelAutoSize(self, axisId, state): """ - Set tick labels fixed size option + Set tick labels automatic size option (default: on) :param int axisId: Axis index :param bool state: On/off .. seealso:: - :py:meth:`qwt.scale_draw.QwtScaleDraw.setFixedSize()` + :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()` """ if self.axisValid(axisId): - self.axisWidget(axisId).setFixedSize(state) + self.axisWidget(axisId).setLabelAutoSize(state) def setAxisMaxMinor(self, axisId, maxMinor): """ diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index ca4c362..8428192 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -439,7 +439,7 @@ def __init__(self): self.alignment = QwtScaleDraw.BottomScale self.labelAlignment = 0 self.labelRotation = 0. - self.fixedSize = False + self.labelAutoSize = True self.pos = QPointF() @@ -1126,15 +1126,14 @@ def labelAlignment(self): """ return self.__data.labelAlignment - def setFixedSize(self, state): + def setLabelAutoSize(self, state): """ - Set fixed size option state + Set label automatic size option state - When drawing text labels, if fixed size option is enabled, the axes - width and height won't change when axis range is changing. On the - contrary, if this option is disabled (default behavior), axes are - drawn in order to optimize layout space and depends on text label - individual sizes. + When drawing text labels, if automatic size mode is enabled (default + behavior), the axes are drawn in order to optimize layout space and + depends on text label individual sizes. Otherwise, width and height + won't change when axis range is changing. This option is not implemented in Qwt C++ library: this may be used either as an optimization (updating plot layout is faster when this @@ -1146,26 +1145,28 @@ def setFixedSize(self, state): .. seealso:: - :py:meth:`fixedSize()` + :py:meth:`labelAutoSize()` """ - self.__data.fixedSize = state + self.__data.labelAutoSize = state - def fixedSize(self): + def labelAutoSize(self): """ - :return: True if fixed size option is enabled for labels + :return: True if automatic size option is enabled for labels .. seealso:: - :py:meth:`setFixedSize()` + :py:meth:`setLabelAutoSize()` """ - return self.__data.fixedSize + return self.__data.labelAutoSize def _get_max_label_size(self, font): - fid = font.toString() - size = self._max_label_sizes.get(fid) + key = (font.toString(), self.labelRotation()) + size = self._max_label_sizes.get(key) if size is None: - size = self.labelSize(font, -999999) - return self._max_label_sizes.setdefault(fid, size) + size = self.labelSize(font, -999999) # -999999 is the biggest label + size.setWidth(np.ceil(size.width())) + size.setHeight(np.ceil(size.height())) + return self._max_label_sizes.setdefault(key, size) else: return size @@ -1177,11 +1178,11 @@ def maxLabelWidth(self, font): ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if not ticks: return 0 - if self.fixedSize(): - return self._get_max_label_size(font).width() - else: + if self.labelAutoSize(): return np.ceil(max([self.labelSize(font, v).width() for v in ticks if self.scaleDiv().contains(v)])) + else: + return self._get_max_label_size(font).width() def maxLabelHeight(self, font): """ @@ -1191,11 +1192,11 @@ def maxLabelHeight(self, font): ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if not ticks: return 0 - if self.fixedSize(): - return self._get_max_label_size(font).height() - else: + if self.labelAutoSize(): return np.ceil(max([self.labelSize(font, v).height() for v in ticks if self.scaleDiv().contains(v)])) + else: + return self._get_max_label_size(font).height() def updateMap(self): pos = self.__data.pos diff --git a/qwt/scale_widget.py b/qwt/scale_widget.py index 92c0d1c..197f3a7 100644 --- a/qwt/scale_widget.py +++ b/qwt/scale_widget.py @@ -276,7 +276,7 @@ def setLabelAlignment(self, alignment): .. seealso:: - :py:meth:`QwtScaleDraw.setLabelAlignment()`, + :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`, :py:meth:`setLabelRotation()` """ self.__data.scaleDraw.setLabelAlignment(alignment) @@ -290,12 +290,25 @@ def setLabelRotation(self, rotation): .. seealso:: - :py:meth:`QwtScaleDraw.setLabelRotation()`, + :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelRotation()`, :py:meth:`setLabelFlags()` """ self.__data.scaleDraw.setLabelRotation(rotation) self.layoutScale() + def setLabelAutoSize(self, state): + """ + Set the automatic size option for labels (default: on). + + :param bool state: On/off + + .. seealso:: + + :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()` + """ + self.__data.scaleDraw.setLabelAutoSize(state) + self.layoutScale() + def setScaleDraw(self, scaleDraw): """ Set a scale draw @@ -330,7 +343,7 @@ def scaleDraw(self): .. seealso:: - :py:meth:`QwtScaleDraw.setScaleDraw()` + :py:meth:`qwt.scale_draw.QwtScaleDraw.setScaleDraw()` """ return self.__data.scaleDraw From 316bfecc465e95b1808c2788c50cde8215271f6e Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 26 Oct 2015 23:56:16 +0100 Subject: [PATCH 054/421] Scale drawing: drastically optimized performance when labelAutoSize is On --- qwt/scale_draw.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index 8428192..ea69a6d 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -1179,8 +1179,12 @@ def maxLabelWidth(self, font): if not ticks: return 0 if self.labelAutoSize(): - return np.ceil(max([self.labelSize(font, v).width() - for v in ticks if self.scaleDiv().contains(v)])) + vmax = sorted([v for v in ticks if self.scaleDiv().contains(v)], + key=lambda obj: len(QLocale().toString(obj)))[-1] + return np.ceil(self.labelSize(font, vmax).width()) + ## Original implementation (closer to Qwt's C++ code, but slower): + #return np.ceil(max([self.labelSize(font, v).width() + # for v in ticks if self.scaleDiv().contains(v)])) else: return self._get_max_label_size(font).width() @@ -1193,8 +1197,12 @@ def maxLabelHeight(self, font): if not ticks: return 0 if self.labelAutoSize(): - return np.ceil(max([self.labelSize(font, v).height() - for v in ticks if self.scaleDiv().contains(v)])) + vmax = sorted([v for v in ticks if self.scaleDiv().contains(v)], + key=lambda obj: len(QLocale().toString(obj)))[-1] + return np.ceil(self.labelSize(font, vmax).height()) + ## Original implementation (closer to Qwt's C++ code, but slower): + #return np.ceil(max([self.labelSize(font, v).height() + # for v in ticks if self.scaleDiv().contains(v)])) else: return self._get_max_label_size(font).height() From 2d80fda3f0f3c4e5547e264fa204f8a401994226 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Wed, 28 Oct 2015 20:58:37 +0100 Subject: [PATCH 055/421] Fixed bug from Qwt6: QwtPlotCurve orientation was inverted (horizontal <--> vertical) --- qwt/plot_curve.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index d8a74ba..8ac27ca 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -637,9 +637,9 @@ def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): xi = round(xi) yi = round(yi) if o == Qt.Horizontal: - QwtPainter.drawLine(painter, x0, yi, xi, yi) - else: QwtPainter.drawLine(painter, xi, y0, xi, yi) + else: + QwtPainter.drawLine(painter, x0, yi, xi, yi) painter.restore() def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): @@ -814,7 +814,7 @@ def closePolyline(self, painter, xMap, yMap, polygon): return doAlign = QwtPainter.roundingAlignment(painter) baseline = self.__data.baseline - if self.orientation() == Qt.Vertical: + if self.orientation() == Qt.Horizontal: if yMap.transformation(): baseline = yMap.transformation().bounded(baseline) refY = yMap.transform(baseline) From 479ed130cc3b042c7dabbd65f44c08d85ecc7030 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Wed, 28 Oct 2015 21:00:06 +0100 Subject: [PATCH 056/421] qwtToPolylineFiltered/tiny optimization: slicing arrays before transforming data --- qwt/point_mapper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qwt/point_mapper.py b/qwt/point_mapper.py index 77f3bac..16eaba5 100644 --- a/qwt/point_mapper.py +++ b/qwt/point_mapper.py @@ -87,9 +87,9 @@ def qwtToPolylineFiltered(xMap, yMap, series, from_, to, round_, pointer.setsize(2*polyline.size()*tinfo(dtype).dtype.itemsize) memory = np.frombuffer(pointer, dtype) memory[:(to-from_)*2+1:2] =\ - round_(xMap.transform(series.xData()))[from_:to+1] + round_(xMap.transform(series.xData()[from_:to+1])) memory[1:(to-from_)*2+2:2] =\ - round_(yMap.transform(series.yData()))[from_:to+1] + round_(yMap.transform(series.yData()[from_:to+1])) return polyline # # Pure Python implementation (catastophic performance) # points = polyline.data() From 183b7b09bf091133f3f8738ec30fb210d5f1b5d3 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Wed, 28 Oct 2015 21:01:42 +0100 Subject: [PATCH 057/421] Added comparative benchmark: PyQwt5 vs. PythonQwt --- qwt/tests/CurveBenchmark.py | 125 ++++++++++++++++++---------- qwt/tests/CurveStyles.py | 71 +++++++--------- qwt/tests/comparative_benchmarks.py | 43 ++++++++++ 3 files changed, 154 insertions(+), 85 deletions(-) create mode 100644 qwt/tests/comparative_benchmarks.py diff --git a/qwt/tests/CurveBenchmark.py b/qwt/tests/CurveBenchmark.py index 0b8cdaf..dc8cb68 100644 --- a/qwt/tests/CurveBenchmark.py +++ b/qwt/tests/CurveBenchmark.py @@ -10,13 +10,20 @@ import time import numpy as np +import sys -from qwt.qt.QtGui import (QApplication, QPen, QBrush, QMainWindow, QGridLayout, +from qwt.qt.QtGui import (QApplication, QPen, QMainWindow, QGridLayout, QTabWidget, QWidget, QTextEdit, QLineEdit, QFont, QFontDatabase) -from qwt.qt.QtCore import QSize from qwt.qt.QtCore import Qt -from qwt import QwtPlot, QwtSymbol, QwtPlotCurve + +import os +if os.environ.get('USE_PYQWT5', False): + USE_PYQWT5 = True + from PyQt4.Qwt5 import QwtPlot, QwtPlotCurve +else: + USE_PYQWT5 = False + from qwt import QwtPlot, QwtPlotCurve # analysis:ignore COLOR_INDEX = None @@ -38,34 +45,40 @@ def __init__(self, title, xdata, ydata, style, symbol=None, *args): self.setTitle(title) self.setAxisTitle(QwtPlot.xBottom, 'x') self.setAxisTitle(QwtPlot.yLeft, 'y') - curve = QwtPlotCurve() - curve.setPen(QPen(get_curve_color())) - curve.setStyle(style) - curve.setRenderHint(QwtPlotCurve.RenderAntialiased) - if symbol is not None: - curve.setSymbol(symbol) - curve.attach(self) - curve.setData(xdata, ydata) + for idx in range(1, 11): + curve = QwtPlotCurve() + curve.setPen(QPen(get_curve_color())) + curve.setStyle(style) + curve.setRenderHint(QwtPlotCurve.RenderAntialiased) + if symbol is not None: + curve.setSymbol(symbol) + curve.attach(self) + curve.setData(xdata, ydata*idx) +# self.setAxisScale(self.yLeft, -1.5, 1.5) +# self.setAxisScale(self.xBottom, 9.9, 10.) self.replot() class BMWidget(QWidget): - def __init__(self, points, *args): + def __init__(self, points, *args, **kwargs): super(BMWidget, self).__init__() - self.setup(points, *args) + self.setup(points, *args, **kwargs) - def params(self, *args): - return ( - ('Lines', None), - ('Dots', None), - ) + def params(self, *args, **kwargs): + if kwargs.get('only_lines', False): + return (('Lines', None),) + else: + return ( + ('Lines', None), + ('Dots', None), + ) - def setup(self, points, *args): + def setup(self, points, *args, **kwargs): x = np.linspace(.001, 20., points) y = (np.sin(x)/x)*np.cos(20*x) layout = QGridLayout() nbcol, col, row = 2, 0, 0 - for style, symbol in self.params(*args): + for style, symbol in self.params(*args, **kwargs): layout.addWidget(BMPlot(style, x, y, getattr(QwtPlotCurve, style), symbol=symbol), row, col) col += 1 @@ -81,50 +94,69 @@ def setup(self, points, *args): class BMText(QTextEdit): - def __init__(self, parent=None): + def __init__(self, parent=None, title=None): super(BMText, self).__init__(parent) self.setReadOnly(True) + library = 'PyQwt5' if USE_PYQWT5 else 'PythonQwt' + wintitle = self.parent().windowTitle() + if not wintitle: + wintitle = "Benchmark" + if title is None: + title = '%s example' % wintitle + self.parent().setWindowTitle('%s [%s]' % (wintitle, library)) self.setText("""\ -Curve benchmark example:

+%s:
+(base plotting library: %s)

Click on each tab to test if plotting performance is acceptable in terms of GUI response time (switch between tabs, resize main windows, ...).


Benchmarks results: -""") +""" % (title, library)) class BMDemo(QMainWindow): + TITLE = 'Curve benchmark' + SIZE = (1000, 800) def __init__(self, max_n, parent=None, **kwargs): super(BMDemo, self).__init__(parent=parent) - self.setWindowTitle('Curve benchmark') - tabs = QTabWidget() - self.setCentralWidget(tabs) - contents = BMText() - tabs.addTab(contents, 'Contents') - self.resize(1000, 600) + title = self.TITLE + if kwargs.get('only_lines', False): + title = '%s (%s)' % (title, 'only lines') + self.setWindowTitle(title) + self.tabs = QTabWidget() + self.setCentralWidget(self.tabs) + self.text = BMText(self) + self.tabs.addTab(self.text, 'Contents') + self.resize(*self.SIZE) # Force window to show up and refresh (for test purpose only) self.show() QApplication.processEvents() - + t0g = time.time() + self.run_benchmark(max_n, **kwargs) + dt = time.time()-t0g + self.text.append("

Total elapsed time: %d ms" % (dt*1e3)) + self.tabs.setCurrentIndex(0) + + def process_iteration(self, title, widget, t0): + self.tabs.addTab(widget, title) + self.tabs.setCurrentWidget(widget) + + # Force widget to refresh (for test purpose only) + QApplication.processEvents() + + time_str = "Elapsed time: %d ms" % ((time.time()-t0)*1000) + widget.text.setText(time_str) + self.text.append("
%s:
%s" % (title, time_str)) + + def run_benchmark(self, max_n, **kwargs): for idx in range(4, -1, -1): points = max_n/10**idx - t0 = time.time() - widget = BMWidget(points) title = '%d points' % points - tabs.addTab(widget, title) - tabs.setCurrentWidget(widget) - - # Force widget to refresh (for test purpose only) - QApplication.processEvents() - - time_str = "Elapsed time: %d ms" % ((time.time()-t0)*1000) - widget.text.setText(time_str) - contents.append("
%s:
%s" % (title, time_str)) - dt = time.time()-t0g - contents.append("

Total elapsed time: %d ms" % (dt*1000)) - tabs.setCurrentIndex(0) + t0 = time.time() + widget = BMWidget(points, **kwargs) + self.process_iteration(title, widget, t0) if __name__ == '__main__': @@ -133,5 +165,8 @@ def __init__(self, max_n, parent=None, **kwargs): if name in QFontDatabase().families(): app.setFont(QFont(name)) break - demo = BMDemo(1000000) + kwargs = {} + for arg in sys.argv[1:]: + kwargs[arg] = True + demo = BMDemo(1000000, **kwargs) app.exec_() diff --git a/qwt/tests/CurveStyles.py b/qwt/tests/CurveStyles.py index 63796b5..5f0f038 100644 --- a/qwt/tests/CurveStyles.py +++ b/qwt/tests/CurveStyles.py @@ -9,67 +9,55 @@ SHOW = True # Show test in GUI-based test launcher import time +import sys -from qwt.qt.QtGui import (QApplication, QPen, QBrush, QMainWindow, QTabWidget, - QFont, QFontDatabase) +from qwt.qt.QtGui import QApplication, QPen, QBrush, QFont, QFontDatabase from qwt.qt.QtCore import QSize from qwt.qt.QtCore import Qt from qwt.tests import CurveBenchmark as cb -from qwt import QwtSymbol + +if cb.USE_PYQWT5: + from PyQt4.Qwt5 import QwtSymbol +else: + from qwt import QwtSymbol # analysis:ignore class CSWidget(cb.BMWidget): - def params(self, *args): + def params(self, *args, **kwargs): symbols, = args symb1 = QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.yellow), QPen(Qt.blue), QSize(5, 5)) symb2 = QwtSymbol(QwtSymbol.XCross, QBrush(), QPen(Qt.darkMagenta), QSize(5, 5)) if symbols: - return ( - ('Sticks', symb1), - ('Lines', symb1), - ('Steps', symb2), - ('Dots', symb2), - ) + if kwargs.get('only_lines', False): + return (('Lines', symb1), ('Lines', symb1), ('Lines', symb2), + ('Lines', symb2),) + else: + return (('Sticks', symb1), ('Lines', symb1), + ('Steps', symb2), ('Dots', symb2),) else: - return ( - ('Sticks', None), - ('Lines', None), - ('Steps', None), - ('Dots', None), - ) + if kwargs.get('only_lines', False): + return (('Lines', None), ('Lines', None), ('Lines', None), + ('Lines', None),) + else: + return (('Sticks', None), ('Lines', None), ('Steps', None), + ('Dots', None),) -class BMDemo(QMainWindow): - def __init__(self, max_n, parent=None, **kwargs): - super(BMDemo, self).__init__(parent=parent) - self.setWindowTitle('Curve styles') - tabs = QTabWidget() - self.resize(1000, 800) - - # Force window to show up and refresh (for test purpose only) - self.show() - QApplication.processEvents() +class BMDemo(cb.BMDemo): + TITLE = 'Curve styles' + SIZE = (1000, 800) - self.setCentralWidget(tabs) - pts = 1000 - for points, symbols in zip((pts/10, pts/10, pts, pts), + def run_benchmark(self, max_n, **kwargs): + for points, symbols in zip((max_n/10, max_n/10, max_n, max_n), (True, False)*2): t0 = time.time() - widget = CSWidget(points, symbols) symtext = "with%s symbols" % ("" if symbols else "out") title = '%d points, %s' % (points, symtext) - tabs.addTab(widget, title) - tabs.setCurrentWidget(widget) - - # Force widget to refresh (for test purpose only) - QApplication.processEvents() - - time_str = "Elapsed time: %d ms" % ((time.time()-t0)*1000) - widget.text.setText(time_str) - tabs.setCurrentIndex(0) + widget = CSWidget(points, symbols, **kwargs) + self.process_iteration(title, widget, t0) if __name__ == '__main__': @@ -78,5 +66,8 @@ def __init__(self, max_n, parent=None, **kwargs): if name in QFontDatabase().families(): app.setFont(QFont(name)) break - demo = BMDemo(100000) + kwargs = {} + for arg in sys.argv[1:]: + kwargs[arg] = True + demo = BMDemo(1000, **kwargs) app.exec_() diff --git a/qwt/tests/comparative_benchmarks.py b/qwt/tests/comparative_benchmarks.py new file mode 100644 index 0000000..9f5753c --- /dev/null +++ b/qwt/tests/comparative_benchmarks.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the terms of the MIT License +# Copyright (c) 2015 Pierre Raybaut +# (see LICENSE file for more details) + +""" +PyQwt5 vs. PythonQwt +==================== +""" + +import os +import os.path as osp +import sys +import subprocess +import time + + +def run_script(filename, args=None, wait=True): + """Run Python script""" + os.environ['PYTHONPATH'] = os.pathsep.join(sys.path) + + command = [sys.executable, '"'+filename+'"'] + if args is not None: + command.append(args) + proc = subprocess.Popen(" ".join(command), shell=True) + if wait: + proc.wait() + + +def main(): + for name in ('CurveBenchmark.py', 'CurveStyles.py',): + for args in (None, 'only_lines'): + for value in ('', '1'): + os.environ['USE_PYQWT5'] = value + filename = osp.join(osp.dirname(osp.abspath(__file__)), name) + run_script(filename, wait=False, args=args) + time.sleep(4) + + +if __name__ == '__main__': + main() + \ No newline at end of file From 111f88b6e76a808a487beb1247d204ebb3756cb5 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 29 Oct 2015 08:19:41 +0100 Subject: [PATCH 058/421] Major API simplification --- qwt/clipper.py | 123 ------------ qwt/column_symbol.py | 5 - qwt/painter.py | 246 +----------------------- qwt/plot_curve.py | 209 ++++----------------- qwt/plot_grid.py | 3 - qwt/plot_marker.py | 5 - qwt/plot_renderer.py | 2 +- qwt/point_mapper.py | 434 ------------------------------------------- qwt/scale_draw.py | 40 +--- qwt/symbol.py | 301 ++++++++---------------------- qwt/text.py | 2 +- 11 files changed, 120 insertions(+), 1250 deletions(-) delete mode 100644 qwt/clipper.py delete mode 100644 qwt/point_mapper.py diff --git a/qwt/clipper.py b/qwt/clipper.py deleted file mode 100644 index a32a69f..0000000 --- a/qwt/clipper.py +++ /dev/null @@ -1,123 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -#XXX: Unfinished (and not imported elsewhere) translation of QwtClipper class - -from qwt.qt.QtGui import QPolygon, QPolygonF -from qwt.qt.QtCore import QRect, QRectF - -import numpy as np - - -class LeftEdge(object): - def __init__(self, x1, x2, y1, y2): - self.__x1 = x1 - - def isInside(self, p): - return p.x() >= self.__x1 - - def intersection(self, p1, p2): - dy = (p1.y()-p2.y())/(p1.x()-p2.x()) - return Point(self.__x1, (p2.y() + (self.__x1 - p2.x())*dy)) - -class RightEdge(object): - def __init__(self, x1, x2, y1, y2): - self.__x2 = x2 - - def isInside(self, p): - return p.x() <= self.__x2 - - def intersection(self, p1, p2): - dy = (p1.y()-p2.y())/(p1.x()-p2.x()) - return Point(self.__x2, (p2.y() + (self.__x2 - p2.x())*dy)) - -class TopEdge(object): - def __init__(self, x1, x2, y1, y2): - self.__y1 = y1 - - def isInside(self, p): - return p.y() >= self.__y1 - - def intersection(self, p1, p2): - dx = (p1.x()-p2.x())/(p1.y()-p2.y()) - return Point((p2.x() + (self.__y1 - p2.y())*dx), self.__y1) - -class BottomEdge(object): - def __init__(self, x1, x2, y1, y2): - self.__y2 = y2 - - def isInside(self, p): - return p.y() <= self.__y2 - - def intersection(self, p1, p2): - dx = (p1.x()-p2.x())/(p1.y()-p2.y()) - return Point((p2.x() + (self.__y2 - p2.y())*dx), self.__y2) - -class PointBuffer(object): - def __init__(self, capacity=0): - self.m_capacity = capacity - self.m_size = 0 - self.m_buffer = None - if capacity > 0: - self.reserve(capacity) - - def setPoints(self, numPoints, points): - self.reserve(numPoints) - self.m_size = numPoints - - def reset(self): - self.m_size = 0 - - def size(self): - return self.m_size - - def data(self): - return self.m_buffer - - def operator(self, i): - return self.m_buffer[i] - - -class QwtPolygonClipper(object): - def __init__(self, clipRect): - self.__clipRect = clipRect - - def clipPolygon(self, polygon, closePolygon): - if self.__clipRect.contains(polygon.boundingRect()): - return polygon - - - -class QwtClipper(object): - def __init__(self): - pass - - def clipPolygon(self, clipRect, polygon, closePolygon): - raise NotImplementedError("Nearly impossible to implement in pure Python") - #XXX: the only viable option would be to use Qt's intersected method - # but unfortunately it's closing systematically the output polygon - # (how to test it: polygon.intersected(QPolygonF(clipRect))) - - if isinstance(clipRect, QRectF): - minX = np.ceil(clipRect.left()) - maxX = np.floor(clipRect.right()) - minY = np.ceil(clipRect.top()) - maxY = np.floor(clipRect.bottom()) - clipRect = QRect(minX, minY, maxX-minX, maxY-minY) - clipper = QwtPolygonClipper(clipRect) - return clipper.clipPolygon(polygon, closePolygon) - - def clipPolygonF(self, clipRect, polygon, closePolygon): - raise NotImplementedError("Nearly impossible to implement in pure Python") - #XXX: the only viable option would be to use Qt's intersected method - # but unfortunately it's closing systematically the output polygon - # (how to test it: polygon.intersected(QPolygonF(clipRect))) - - if isinstance(clipRect, QRect): - clipRect = QRectF(clipRect) - clipper = QwtPolygonClipper(clipRect) - return clipper.clipPolygon(polygon, closePolygon) diff --git a/qwt/column_symbol.py b/qwt/column_symbol.py index 586a24d..d863344 100644 --- a/qwt/column_symbol.py +++ b/qwt/column_symbol.py @@ -125,11 +125,6 @@ def draw(self, painter, rect): def drawBox(self, painter, rect): r = rect.toRect() - if QwtPainter().roundingAlignment(painter): - r.setLeft(round(r.left())) - r.setRight(round(r.right())) - r.setTop(round(r.top())) - r.setBottom(round(r.bottom())) if self.__data.frameStyle == QwtColumnSymbol.Raised: qwtDrawPanel(painter, r, self.__data.palette, self.__data.lineWidth) elif self.__data.frameStyle == QwtColumnSymbol.Plain: diff --git a/qwt/painter.py b/qwt/painter.py index d175c9a..05d027b 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -13,7 +13,6 @@ :members: """ -from qwt.clipper import QwtClipper from qwt.color_map import QwtColorMap from qwt.scale_map import QwtScaleMap @@ -21,7 +20,7 @@ QPixmap, QPainter, QPolygonF, QPalette, QStyle, QPen, QAbstractTextDocumentLayout, QStyleOptionFocusRect, QBrush, QLinearGradient, QPainterPath, QColor, - QStyleOption, QPolygon, QTransform) + QStyleOption, QTransform) from qwt.qt.QtCore import (QSize, QRectF, Qt, QPointF, QSizeF, QRect, QPoint, QT_VERSION) @@ -30,34 +29,6 @@ QWIDGETSIZE_MAX = (1<<24)-1 -def qwtIsClippingNeeded(painter): - doClipping = False - clipRect = QRectF() - #TODO: remove next line when QwtClipper will be implemented - return doClipping, clipRect - pe = painter.paintEngine() - if pe and pe.type() == QPaintEngine.SVG: - if painter.hasClipping(): - doClipping = True - clipRect = painter.clipRegion().boundingRect() - return doClipping, clipRect - - -def qwtDrawPolyline(painter, points, pointCount, polylineSplitting): - doSplit = False - if polylineSplitting: - pe = painter.paintEngine() - if pe and pe.type() == QPaintEngine.Raster: - doSplit = True - if False:#doSplit: #FIXME: uncomment "doSplit", and fix associated bug (or solve performance issue...) - splitSize = 6 - for i in range(0, pointCount, splitSize): - n = min([splitSize+1, pointCount-i]) - painter.drawPolyline(points+i, n) - else: - painter.drawPolyline(points) - - def qwtScreenResolution(): screenResolution = QSize() if not screenResolution.isValid(): @@ -91,134 +62,6 @@ def isX11GraphicsSystem(): class QwtPainterClass(object): """A collection of `QPainter` workarounds""" - def __init__(self): - self.__polylineSplitting = True - self.__roundingAlignment = True - - def isAligning(self, painter): - """ - Check if the painter is using a paint engine, that aligns - coordinates to integers. Today these are all paint engines - beside `QPaintEngine.Pdf` and `QPaintEngine.SVG`. - - If we have an integer based paint engine it is also - checked if the painter has a transformation matrix, - that rotates or scales. - - :param QPainter painter: Painter - :return: true, when the painter is aligning - - .. seealso:: - - :py:meth:`setRoundingAlignment()` - """ - if painter and painter.isActive(): - if painter.paintEngine().type() in (QPaintEngine.Pdf, - QPaintEngine.SVG): - return False - tr = painter.transform() - if tr.isRotating() or tr.isScaling(): - return False - return True - - def setRoundingAlignment(self, enable): - """ - Enable whether coordinates should be rounded, before they are - painted to a paint engine that floors to integer values. For other - paint engines this ( PDF, SVG ), this flag has no effect. - `QwtPainter` stores this flag only, the rounding itself is done in - the painting code ( f.e the plot items ). - - The default setting is true. - - :param bool enable: enable/disable - - .. seealso:: - - :py:meth:`roundingAlignment()`, :py:meth:`isAligning()` - """ - self.__roundingAlignment = enable - - def roundingAlignment(self, painter=None): - if painter is None: - return self.__roundingAlignment - else: - return self.__roundingAlignment and self.isAligning(painter) - - def setPolylineSplitting(self, enable): - """ - En/Disable line splitting for the raster paint engine - - In some Qt versions the raster paint engine paints polylines of - many points much faster when they are split in smaller chunks: - f.e all supported Qt versions >= Qt 5.0 when drawing an - antialiased polyline with a pen width >=2. - - :param bool enable: enable/disable - - .. seealso:: - - :py:meth:`polylineSplitting()` - """ - self.__polylineSplitting = enable - - def polylineSplitting(self): - return self.__polylineSplitting - - def drawPath(self, painter, path): - painter.drawPath(path) - - def drawRect(self, *args): - if len(args) == 5: - painter, x, y, w, h = args - self.drawRect(painter, QRectF(x, y, w, h)) - elif len(args) == 2: - painter, rect = args - r = rect - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - if deviceClipping: - if not clipRect.intersects(r): - return - if not clipRect.contains(r): - self.fillRect(painter, r & clipRect, painter.brush()) - painter.save() - painter.setBrush(Qt.NoBrush) - self.drawPolyline(painter, QPolygonF(r)) - painter.restore() - return - painter.drawRect(r) - else: - raise TypeError("QwtPainter.drawRect() takes 2 or 5 argument(s) "\ - "(%s given)" % len(args)) - - def fillRect(self, painter, rect, brush): - if not rect.isValid(): - return - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - if deviceClipping: - clipRect &= painter.window() - else: - clipRect = painter.window() - if painter.hasClipping(): - clipRect &= painter.clipRegion().boundingRect() - r = rect - if deviceClipping: - r = r.intersected(clipRect) - if r.isValid(): - painter.fillRect(r, brush) - - def drawPie(self, painter, rect, a, alen): - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - if deviceClipping and not clipRect.contains(rect): - return - painter.drawPie(rect, a, alen) - - def drawEllipse(self, painter, rect): - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - if deviceClipping and not clipRect.contains(rect): - return - painter.drawEllipse(rect) - def drawText(self, *args): if len(args) == 4: if isinstance(args[1], (QRectF, QRect)): @@ -232,9 +75,6 @@ def drawText(self, *args): self.drawText(painter, QPointF(x, y), text) elif len(args) == 3: painter, pos, text = args - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - if deviceClipping and not clipRect.contains(pos): - return painter.save() qwtUnscaleFont(painter) painter.drawText(pos, text) @@ -291,14 +131,6 @@ def drawLine(self, *args): p1 = p1.toPoint() if isinstance(p2, QPointF): p2 = p2.toPoint() - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - if deviceClipping and not clipRect.contains(p1)\ - and not clipRect.contains(p2): - polygon = QPolygonF() - polygon += p1 - polygon += p2 - self.drawPolyline(painter, polygon) - return painter.drawLine(p1, p2) elif len(args) == 5: painter, x1, y1, x2, y2 = args @@ -309,69 +141,6 @@ def drawLine(self, *args): else: raise TypeError("QwtPainter.drawLine() takes 2, 3 or 5 argument"\ "(s) (%s given)" % len(args)) - - def drawPolygon(self, painter, polygon): - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - cpa = polygon - if deviceClipping: - if isinstance(polygon, QPolygonF): - cpa = QwtClipper().clipPolygonF(clipRect, polygon) - else: - cpa = QwtClipper().clipPolygon(clipRect, polygon) - painter.drawPolygon(cpa) - - def drawPolyline(self, *args): - if len(args) == 2: - painter, polygon = args - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - cpa = polygon - if deviceClipping: - if isinstance(polygon, QPolygonF): - cpa = QwtClipper().clipPolygonF(clipRect, polygon) - else: - cpa = QwtClipper().clipPolygon(clipRect, polygon) - qwtDrawPolyline(painter, cpa, cpa.size(), - self.__polylineSplitting) - elif len(args) == 3: - painter, points, pointCount = args - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - if deviceClipping: - if isinstance(points[0], QPointF): - polygon = QPolygonF(points) - polygon = QwtClipper().clipPolygonF(clipRect, polygon) - else: - polygon = QPolygon(points) - polygon = QwtClipper().clipPolygon(clipRect, polygon) - qwtDrawPolyline(painter, polygon, - polygon.size(), self.__polylineSplitting) -# polygon = QPolygonF(pointCount) -# pointer = polygon.data() -# pointer.setsize(pointCount*2*np.finfo(float).dtype.itemsize) -# memory = np.frombuffer(pointer, float) -# memory[0::2] = xdata -# memory[1::2] = ydata - else: - qwtDrawPolyline(painter, points, pointCount, - self.__polylineSplitting) - else: - raise TypeError("QwtPainter.drawPolyline() takes 2 or 3 argument"\ - "(s) (%s given)" % len(args)) - - def drawPoint(self, painter, pos): - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - if isinstance(pos, QPointF): - if deviceClipping and not clipRect.contains(pos): - return - else: - if deviceClipping: - minX = np.ceil(clipRect.left()) - maxX = np.floor(clipRect.right()) - minY = np.ceil(clipRect.top()) - maxY = np.floor(clipRect.bottom()) - if pos.x() < minX or pos.x() > maxX or\ - pos.y() < minY or pos.y() > maxY: - return - painter.drawPoint(pos) def drawPoints(self, painter, *args): if len(args) == 2: @@ -383,18 +152,7 @@ def drawPoints(self, painter, *args): points.setsize(pointCount*np.finfo(float).dtype.itemsize) else: points.setsize(pointCount*np.iinfo(int).dtype.itemsize) - deviceClipping, clipRect = qwtIsClippingNeeded(painter) - if deviceClipping: - if isinstance(polygon, QPointF): - minX = np.ceil(clipRect.left()) - maxX = np.floor(clipRect.right()) - minY = np.ceil(clipRect.top()) - maxY = np.floor(clipRect.bottom()) - clipRect = QRect(minX, minY, maxX-minX, maxY-minY) - clippedPolygon = polygon.intersected(QPolygon(clipRect)) - painter.drawPoints(clippedPolygon) - else: - painter.drawPoints(polygon) + painter.drawPoints(polygon) def drawImage(self, painter, rect, image): alignedRect = rect.toAlignedRect() diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 8ac27ca..7001361 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -16,8 +16,6 @@ from qwt.text import QwtText from qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData from qwt.painter import QwtPainter -from qwt.point_mapper import QwtPointMapper -from qwt.clipper import QwtClipper from qwt.math import qwtSqr from qwt.graphic import QwtGraphic from qwt.series_data import QwtSeriesData, QwtPointArrayData @@ -26,9 +24,8 @@ from qwt.symbol import QwtSymbol from qwt.plot_directpainter import QwtPlotDirectPainter -from qwt.qt.QtGui import (QPen, QBrush, QPaintEngine, QPainter, QPolygonF, - QColor) -from qwt.qt.QtCore import QSize, Qt, QT_VERSION, QRectF, QPointF +from qwt.qt.QtGui import QPen, QBrush, QPainter, QPolygonF, QColor +from qwt.qt.QtCore import QSize, Qt, QRectF, QPointF import numpy as np @@ -55,6 +52,25 @@ def qwtVerifyRange(size, i1, i2): return i2-i1+1 +def series_to_polyline(xMap, yMap, series, from_, to, Polygon=None): + """ + Convert series data to QPolygon(F) polyline + """ + if Polygon is None: + Polygon = QPolygonF + polyline = Polygon(to-from_+1) + pointer = polyline.data() + if Polygon is QPolygonF: + dtype, tinfo = np.float, np.finfo + else: + dtype, tinfo = np.int, np.iinfo + pointer.setsize(2*polyline.size()*tinfo(dtype).dtype.itemsize) + memory = np.frombuffer(pointer, dtype) + memory[:(to-from_)*2+1:2] = xMap.transform(series.xData()[from_:to+1]) + memory[1:(to-from_)*2+2:2] = yMap.transform(series.yData()[from_:to+1]) + return polyline + + class QwtPlotCurve_PrivateData(QwtPlotItem_PrivateData): def __init__(self): QwtPlotItem_PrivateData.__init__(self) @@ -62,9 +78,6 @@ def __init__(self): self.baseline = 0. self.symbol = None self.attributes = 0 - self.paintAttributes = QwtPlotCurve.FilterPoints - #TODO: uncomment next line when QwtClipper will be implemented -# self.paintAttributes = QwtPlotCurve.ClipPolygons|QwtPlotCurve.FilterPoints self.legendAttributes = QwtPlotCurve.LegendShowLine self.pen = QPen(Qt.black) self.brush = QBrush() @@ -152,41 +165,6 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): If the curve has a brush a rectangle filled with the curve brush() is painted. - - Paint attributes: - - * `QwtPlotCurve.ClipPolygons`: - - Clip polygons before painting them. In situations, where points - are far outside the visible area (f.e when zooming deep) this - might be a substantial improvement for the painting performance - - .. warning:: - - This option is currently *not* supported in `PythonQwt`. - - * `QwtPlotCurve.FilterPoints`: - - Tries to reduce the data that has to be painted, by sorting out - duplicates, or paintings outside the visible area. Might have a - notable impact on curves with many close points. - Only a couple of very basic filtering algorithms are implemented. - - * `QwtPlotCurve.MinimizeMemory`: - - .. warning:: - - This option was removed as it has no sense in `PythonQwt` - (the polyline plotting is not taking more memory than the - array data that is already there). - - * `QwtPlotCurve.ImageBuffer`: - - Render the points to a temporary image and paint the image. - This is a very special optimization for Dots style, when - having a huge amount of points. - With a reasonable number of points QPainter.drawPoints() - will be faster. .. py:class:: QwtPlotCurve([title=None]) @@ -211,12 +189,6 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): LegendShowSymbol = 0x02 LegendShowBrush = 0x04 - # enum PaintAttribute - ClipPolygons = 0x01 - FilterPoints = 0x02 - # MinimizeMemory = 0x04 --> not necessary, see CHANGELOG - ImageBuffer = 0x08 - def __init__(self, title=None): if title is None: title = QwtText("") @@ -238,38 +210,6 @@ def init(self): def rtti(self): """:return: `QwtPlotItem.Rtti_PlotCurve`""" return QwtPlotItem.Rtti_PlotCurve - - def setPaintAttribute(self, attribute, on=True): - """ - Specify an attribute how to draw the curve - - Supported paint attributes: - - * `QwtPlotCurve.FilterPoints` - * `QwtPlotCurve.ImageBuffer` - - :param int attribute: Paint attribute - :param bool on: On/Off - - .. seealso:: - - :py:meth:`testPaintAttribute()` - """ - if on: - self.__data.paintAttributes |= attribute - else: - self.__data.paintAttributes &= ~attribute - - def testPaintAttribute(self, attribute): - """ - :param int attribute: Paint attribute - :return: True, when attribute is enabled - - .. seealso:: - - :py:meth:`setPaintAttribute()` - """ - return self.__data.paintAttributes & attribute def setLegendAttribute(self, attribute, on=True): """ @@ -561,47 +501,19 @@ def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): """ if from_ > to: return - doAlign = QwtPainter.roundingAlignment(painter) doFill = self.__data.brush.style() != Qt.NoBrush\ and self.__data.brush.color().alpha() > 0 - clipRect = QRectF() - if self.__data.paintAttributes & self.ClipPolygons: - pw = max([1., painter.pen().widthF()]) - clipRect = canvasRect.adjusted(-pw, -pw, pw, pw) - doIntegers = False - if QT_VERSION < 0x040800: - if painter.paintEngine().type() == QPaintEngine.Raster: - if not doFill: - doIntegers = True - noDuplicates = self.__data.paintAttributes & self.FilterPoints - mapper = QwtPointMapper() - mapper.setFlag(QwtPointMapper.RoundPoints, doAlign) - mapper.setFlag(QwtPointMapper.WeedOutPoints, noDuplicates) - mapper.setBoundingRect(canvasRect) - if doIntegers: - polyline = mapper.toPolygon(xMap, yMap, self.data(), from_, to) - if self.__data.paintAttributes & self.ClipPolygons: - polyline = QwtClipper().clipPolygon(clipRect.toAlignedRect(), - polyline, False) - QwtPainter.drawPolyline(painter, polyline) - else: - polyline = mapper.toPolygonF(xMap, yMap, self.data(), from_, to) - if doFill: - if painter.pen().style() != Qt.NoPen: - filled = QPolygonF(polyline) - self.fillCurve(painter, xMap, yMap, canvasRect, filled) - filled.clear() - if self.__data.paintAttributes & self.ClipPolygons: - polyline = QwtClipper().clipPolygonF(clipRect, - polyline, False) - QwtPainter.drawPolyline(painter, polyline) - else: - self.fillCurve(painter, xMap, yMap, canvasRect, polyline) + polyline = series_to_polyline(xMap, yMap, self.data(), from_, to) + if doFill: + if painter.pen().style() != Qt.NoPen: + filled = QPolygonF(polyline) + self.fillCurve(painter, xMap, yMap, canvasRect, filled) + filled.clear() + painter.drawPolyline(polyline) else: - if self.__data.paintAttributes & self.ClipPolygons: - polyline = QwtClipper().clipPolygonF(clipRect, polyline, - False) - QwtPainter.drawPolyline(painter, polyline) + self.fillCurve(painter, xMap, yMap, canvasRect, polyline) + else: + painter.drawPolyline(polyline) def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): """ @@ -621,21 +533,14 @@ def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): """ painter.save() painter.setRenderHint(QPainter.Antialiasing, False) - doAlign = QwtPainter.roundingAlignment(painter) x0 = xMap.transform(self.__data.baseline) y0 = yMap.transform(self.__data.baseline) - if doAlign: - x0 = round(x0) - y0 = round(y0) o = self.orientation() series = self.data() for i in range(from_, to+1): sample = series.sample(i) xi = xMap.transform(sample.x()) yi = yMap.transform(sample.y()) - if doAlign: - xi = round(xi) - yi = round(yi) if o == Qt.Horizontal: QwtPainter.drawLine(painter, xi, y0, xi, yi) else: @@ -663,31 +568,10 @@ def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): return doFill = self.__data.brush.style() != Qt.NoBrush\ and self.__data.brush.color().alpha() > 0 - doAlign = QwtPainter.roundingAlignment(painter) - mapper = QwtPointMapper() - mapper.setBoundingRect(canvasRect) - mapper.setFlag(QwtPointMapper.RoundPoints, doAlign) - if self.__data.paintAttributes & self.FilterPoints: - if color.alpha() == 255\ - and not (painter.renderHints() & QPainter.Antialiasing): - mapper.setFlag(QwtPointMapper.WeedOutPoints, True) + points = series_to_polyline(xMap, yMap, self.data(), from_, to) + QwtPainter.drawPoints(painter, points) if doFill: - mapper.setFlag(QwtPointMapper.WeedOutPoints, False) - points = mapper.toPointsF(xMap, yMap, self.data(), from_, to) - QwtPainter.drawPoints(painter, points) self.fillCurve(painter, xMap, yMap, canvasRect, points) - elif self.__data.paintAttributes & self.ImageBuffer: - image = mapper.toImage(xMap, yMap, self.data(), from_, to, - self.__data.pen, - painter.testRenderHint(QPainter.Antialiasing)) - painter.drawImage(canvasRect.toAlignedRect(), image) - else: - if doAlign: - points = mapper.toPoints(xMap, yMap, self.data(), from_, to) - QwtPainter.drawPoints(painter, points) - else: - points = mapper.toPointsF(xMap, yMap, self.data(), from_, to) - QwtPainter.drawPoints(painter, points) def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): """ @@ -705,7 +589,6 @@ def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): :py:meth:`draw()`, :py:meth:`drawSticks()`, :py:meth:`drawDots()`, :py:meth:`drawLines()` """ - doAlign = QwtPainter.roundingAlignment(painter) polygon = QPolygonF(2*(to-from_)+1) inverted = self.orientation() == Qt.Vertical if self.__data.attributes & self.Inverted: @@ -716,9 +599,6 @@ def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): sample = series.sample(i) xi = xMap.transform(sample.x()) yi = yMap.transform(sample.y()) - if doAlign: - xi = round(xi) - yi = round(yi) if ip > 0: p0 = polygon[ip-2] if inverted: @@ -727,11 +607,7 @@ def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): polygon[ip-1] = QPointF(xi, p0.y()) polygon[ip] = QPointF(xi, yi) ip += 2 - if self.__data.paintAttributes & self.ClipPolygons: - clipped = QwtClipper().clipPolygonF(canvasRect, polygon, False) - QwtPainter.drawPolyline(painter, clipped) - else: - QwtPainter.drawPolyline(painter, polygon) + painter.drawPolyline(polygon) if self.__data.brush.style() != Qt.NoBrush: self.fillCurve(painter, xMap, yMap, canvasRect, polygon) @@ -792,12 +668,10 @@ def fillCurve(self, painter, xMap, yMap, canvasRect, polygon): brush = self.__data.brush if not brush.color().isValid(): brush.setColor(self.__data.pen.color()) - if self.__data.paintAttributes & self.ClipPolygons: - polygon = QwtClipper().clipPolygonF(canvasRect, polygon, True) painter.save() painter.setPen(Qt.NoPen) painter.setBrush(brush) - QwtPainter.drawPolygon(painter, polygon) + painter.drawPolyline(polygon) painter.restore() def closePolyline(self, painter, xMap, yMap, polygon): @@ -812,22 +686,17 @@ def closePolyline(self, painter, xMap, yMap, polygon): """ if polygon.size() < 2: return - doAlign = QwtPainter.roundingAlignment(painter) baseline = self.__data.baseline if self.orientation() == Qt.Horizontal: if yMap.transformation(): baseline = yMap.transformation().bounded(baseline) refY = yMap.transform(baseline) - if doAlign: - refY = round(refY) polygon += QPointF(polygon.last().x(), refY) polygon += QPointF(polygon.first().x(), refY) else: if xMap.transformation(): baseline = xMap.transformation().bounded(baseline) refX = xMap.transform(baseline) - if doAlign: - refX = round(refX) polygon += QPointF(refX, polygon.last().y()) polygon += QPointF(refX, polygon.first().y()) @@ -848,16 +717,10 @@ def drawSymbols(self, painter, symbol, xMap, yMap, canvasRect, from_, to): :py:meth:`setSymbol()`, :py:meth:`drawSeries()`, :py:meth:`drawCurve()` """ - mapper = QwtPointMapper() - mapper.setFlag(QwtPointMapper.RoundPoints, - QwtPainter.roundingAlignment(painter)) - mapper.setFlag(QwtPointMapper.WeedOutPoints, - self.testPaintAttribute(QwtPlotCurve.FilterPoints)) - mapper.setBoundingRect(canvasRect) chunkSize = 500 for i in range(from_, to+1, chunkSize): n = min([chunkSize, to-i+1]) - points = mapper.toPointsF(xMap, yMap, self.data(), i, i+n-1) + points = series_to_polyline(xMap, yMap, self.data(), i, i+n-1) if points.size() > 0: symbol.drawSymbols(painter, points) diff --git a/qwt/plot_grid.py b/qwt/plot_grid.py index 6dd91b0..97e6400 100644 --- a/qwt/plot_grid.py +++ b/qwt/plot_grid.py @@ -302,11 +302,8 @@ def drawLines(self, painter, canvasRect, orientation, scaleMap, values): x2 = canvasRect.right()-1. y1 = canvasRect.top() y2 = canvasRect.bottom()-1. - doAlign = QwtPainter.roundingAlignment(painter) for val in values: value = scaleMap.transform(val) - if doAlign: - value = round(value) if orientation == Qt.Horizontal: if qwtFuzzyGreaterOrEqual(value, y1) and\ qwtFuzzyLessOrEqual(value, y2): diff --git a/qwt/plot_marker.py b/qwt/plot_marker.py index f8967fa..ebc70ba 100644 --- a/qwt/plot_marker.py +++ b/qwt/plot_marker.py @@ -170,18 +170,13 @@ def drawLines(self, painter, canvasRect, pos): """ if self.__data.style == self.NoLine: return - doAlign = QwtPainter.roundingAlignment(painter) painter.setPen(self.__data.pen) if self.__data.style in (QwtPlotMarker.HLine, QwtPlotMarker.Cross): y = pos.y() - if doAlign: - y = round(y) QwtPainter.drawLine(painter, canvasRect.left(), y, canvasRect.right()-1., y) if self.__data.style in (QwtPlotMarker.VLine, QwtPlotMarker.Cross): x = pos.x() - if doAlign: - x = round(x) QwtPainter.drawLine(painter, x, canvasRect.top(), x, canvasRect.bottom()-1.) diff --git a/qwt/plot_renderer.py b/qwt/plot_renderer.py index b409676..a84fa7d 100644 --- a/qwt/plot_renderer.py +++ b/qwt/plot_renderer.py @@ -541,7 +541,7 @@ def renderCanvas(self, plot, painter, canvasRect, maps): if not (self.__data.discardFlags & self.DiscardCanvasBackground): bgBrush = canvas.palette().brush(plot.backgroundRole()) painter.setBrush(bgBrush) - QwtPainter.drawRect(painter, r) + painter.drawRect(r) painter.restore() painter.save() painter.setClipRect(canvasRect) diff --git a/qwt/point_mapper.py b/qwt/point_mapper.py deleted file mode 100644 index 16eaba5..0000000 --- a/qwt/point_mapper.py +++ /dev/null @@ -1,434 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -""" -QwtPointMapper --------------- - -.. autoclass:: QwtPointMapper - :members: -""" - -from qwt.qt.QtGui import QPolygon, QPolygonF, QImage, QPainter -from qwt.qt.QtCore import Qt, QPoint, QPointF, QRectF - -#from qwt.pixel_matrix import QwtPixelMatrix - -import numpy as np - - -def qwtNoRoundF(data): - return data - -def qwtRoundF(data): - return np.rint(data) - -def qwtRoundI(data): - return np.array(np.rint(data), dtype=np.int) - - -def qwtToPoints(boundingRect, xMap, yMap, series, from_, to, round_, - Polygon): - """ - Mapping points without any filtering - - beside checking the bounding rectangle - """ - Point = QPointF if Polygon is QPolygonF else QPoint - polygon = qwtToPolylineFiltered(xMap, yMap, series, from_, to, round_, - Polygon, Point) - return polygon -# # Pure Python implementation (catastophic performance) -# Point = QPointF if Polygon is QPolygonF else QPoint -# points = [] -# if boundingRect.isValid(): -# for i in range(from_, to+1): -# sample = series.sample(i) -# x = xMap.transform(sample.x()) -# y = yMap.transform(sample.y()) -# if boundingRect.contains(x, y): -# points.append(Point(round_(x), round_(y))) -# else: -# for i in range(from_, to+1): -# sample = series.sample(i) -# x = xMap.transform(sample.x()) -# y = yMap.transform(sample.y()) -# points.append(Point(round_(x), round_(y))) -# return Polygon(list(set(points))) - -def qwtToPointsI(boundingRect, xMap, yMap, series, from_, to): - return qwtToPoints(boundingRect, xMap, yMap, series, from_, to, - qwtNoRoundF, QPolygon) - -def qwtToPointsF(boundingRect, xMap, yMap, series, from_, to, round_): - return qwtToPoints(boundingRect, xMap, yMap, series, from_, to, round_, - QPolygonF) - - -def qwtToPolylineFiltered(xMap, yMap, series, from_, to, round_, - Polygon, Point): - """ - Mapping points with filtering out consecutive - points mapped to the same position - - .. warning:: - - Filtering is currently not implemented - """ - polyline = Polygon(to-from_+1) - pointer = polyline.data() - if Polygon is QPolygonF: - dtype, tinfo = np.float, np.finfo - else: - dtype, tinfo = np.int, np.iinfo - pointer.setsize(2*polyline.size()*tinfo(dtype).dtype.itemsize) - memory = np.frombuffer(pointer, dtype) - memory[:(to-from_)*2+1:2] =\ - round_(xMap.transform(series.xData()[from_:to+1])) - memory[1:(to-from_)*2+2:2] =\ - round_(yMap.transform(series.yData()[from_:to+1])) - return polyline -# # Pure Python implementation (catastophic performance) -# points = polyline.data() -# sample0 = series.sample(from_) -# points[0].setX(round_(xMap.transform(sample0.x()))) -# points[0].setY(round_(yMap.transform(sample0.y()))) -# pos = 0 -# for i in range(from_, to+1): -# sample = series.sample(i) -# p = Point(round_(xMap.transform(sample.x())), -# round_(yMap.transform(sample.y()))) -# if points[pos] != p: -# pos += 1 -# points[pos] = p -# polyline.resize(pos+1) -# return polyline - -def qwtToPolylineFilteredI(xMap, yMap, series, from_, to): - return qwtToPolylineFiltered(xMap, yMap, series, from_, to, qwtRoundI, - QPolygon, QPoint) - -def qwtToPolylineFilteredF(xMap, yMap, series, from_, to, round_): - return qwtToPolylineFiltered(xMap, yMap, series, from_, to, round_, - QPolygonF, QPointF) - - -def qwtToPointsFiltered(boundingRect, xMap, yMap, series, from_, to, - Polygon): - Point = QPointF if isinstance(Polygon, QPolygonF) else QPoint - return qwtToPolylineFiltered(xMap, yMap, series, from_, to, qwtRoundI, - Polygon, Point) -# # Pure Python implementation (catastophic performance) -# Point = QPointF if Polygon is QPolygonF else QPoint -# if isinstance(boundingRect, QRectF): -# pixelMatrix = QwtPixelMatrix(boundingRect.toAlignedRect()) -# else: -# pixelMatrix = QwtPixelMatrix(boundingRect) -# points = [] -# for i in range(from_, to+1): -# sample = series.sample(i) -# x = int(round(xMap.transform(sample.x()))) -# y = int(round(yMap.transform(sample.y()))) -# if pixelMatrix.testAndSetPixel(x, y, True) == False: -# points.append(Point(x, y)) -# return Polygon(list(points)) - -def qwtToPointsFilteredI(boundingRect, xMap, yMap, series, from_, to): - return qwtToPointsFiltered(boundingRect, xMap, yMap, series, from_, to, - QPolygon) - -def qwtToPointsFilteredF(boundingRect, xMap, yMap, series, from_, to): - return qwtToPointsFiltered(boundingRect, xMap, yMap, series, from_, to, - QPolygonF) - - -class QwtPointMapper_PrivateData(object): - def __init__(self): - self.boundingRect = None - self.flags = 0 - - -class QwtPointMapper(object): - """ - A helper class for translating a series of points - - `QwtPointMapper` is a collection of methods and optimizations - for translating a series of points into paint device coordinates. - It is used by `QwtPlotCurve` but might also be useful for - similar plot items displaying a `QwtSeriesData`. - - Transformation flags: - - * `QwtPointMapper.RoundPoints`: Round points to integer values - * `QwtPointMapper.WeedOutPoints`: Try to remove points, that are translated to the same position - """ - - RoundPoints = 0x01 - WeedOutPoints = 0x02 - - def __init__(self): - self.__data = QwtPointMapper_PrivateData() - self.qwtInvalidRect = QRectF(0.0, 0.0, -1.0, -1.0) - self.setBoundingRect(self.qwtInvalidRect) - - def setFlags(self, flags): - """ - Set the flags affecting the transformation process - - :param flags: Flags - - .. seealso:: - - :py:meth:`flags()`, :py:meth:`setFlag()` - """ - self.__data.flags = flags - - def flags(self): - """ - :return: Flags affecting the transformation process - - .. seealso:: - - :py:meth:`setFlags()`, :py:meth:`setFlag()` - """ - return self.__data.flags - - def setFlag(self, flag, on=True): - """ - Modify a flag affecting the transformation process - - :param flag: Flag type - - .. seealso:: - - :py:meth:`flag()`, :py:meth:`setFlags()` - """ - if on: - self.__data.flags |= flag - else: - self.__data.flags &= ~flag - - def testFlag(self, flag): - """ - :param int flag: Flag type - :return: True, when the flag is set - - .. seealso:: - - :py:meth:`setFlags()`, :py:meth:`setFlag()` - """ - return self.__data.flags & flag - - def setBoundingRect(self, rect): - """ - Set a bounding rectangle for the point mapping algorithm - - A valid bounding rectangle can be used for optimizations - - :param QRectF rect: Bounding rectangle - - .. seealso:: - - :py:meth:`boundingRect()` - """ - self.__data.boundingRect = rect - - def boundingRect(self): - """ - :return: Bounding rectangle - - .. seealso:: - - :py:meth:`setBoundingRect()` - """ - return self.__data.boundingRect - - def toPolygonF(self, xMap, yMap, series, from_, to): - """ - Translate a series of points into a QPolygonF - - When the WeedOutPoints flag is enabled consecutive points, - that are mapped to the same position will be one point. - - When RoundPoints is set all points are rounded to integers - but returned as PolygonF - what only makes sense - when the further processing of the values need a QPolygonF. - - :param qwt.scale_map.QwtScaleMap xMap: x map - :param qwt.scale_map.QwtScaleMap yMap: y map - :param series: Series of points to be mapped - :param int from_: Index of the first point to be painted - :param int to: Index of the last point to be painted - :return: Translated polygon - """ - if self.__data.flags & QwtPointMapper.WeedOutPoints: - if self.__data.flags & QwtPointMapper.RoundPoints: - polyline = qwtToPolylineFilteredF(xMap, yMap, series, - from_, to, qwtRoundF) - else: - polyline = qwtToPolylineFilteredF(xMap, yMap, series, - from_, to, qwtNoRoundF) - else: - if self.__data.flags & QwtPointMapper.RoundPoints: - polyline = qwtToPointsF(self.qwtInvalidRect, xMap, yMap, - series, from_, to, qwtRoundF) - else: - polyline = qwtToPointsF(self.qwtInvalidRect, xMap, yMap, - series, from_, to, qwtNoRoundF) - return polyline - - def toPolygon(self, xMap, yMap, series, from_, to): - """ - Translate a series of points into a QPolygon - - When the WeedOutPoints flag is enabled consecutive points, - that are mapped to the same position will be one point. - - :param qwt.scale_map.QwtScaleMap xMap: x map - :param qwt.scale_map.QwtScaleMap yMap: y map - :param series: Series of points to be mapped - :param int from_: Index of the first point to be painted - :param int to: Index of the last point to be painted - :return: Translated polygon - """ - if self.__data.flags & QwtPointMapper.WeedOutPoints: - polyline = qwtToPolylineFilteredI(xMap, yMap, series, from_, to) - else: - polyline = qwtToPointsI(self.qwtInvalidRect, xMap, yMap, - series, from_, to) - return polyline - - def toPointsF(self, xMap, yMap, series, from_, to): - """ - Translate a series of points into a QPolygonF: - - - `WeedOutPoints and RoundPoints and boundingRect().isValid()`: - - All points that are mapped to the same position - will be one point. Points outside of the bounding - rectangle are ignored. - - - `WeedOutPoints and RoundPoints and not boundingRect().isValid()`: - - All consecutive points that are mapped to the same position - will one point - - - `WeedOutPoints and not RoundPoints`: - - All consecutive points that are mapped to the same position - will one point - - - `not WeedOutPoints and boundingRect().isValid()`: - - Points outside of the bounding rectangle are ignored. - - When RoundPoints is set all points are rounded to integers - but returned as PolygonF - what only makes sense - when the further processing of the values need a QPolygonF. - - :param qwt.scale_map.QwtScaleMap xMap: x map - :param qwt.scale_map.QwtScaleMap yMap: y map - :param series: Series of points to be mapped - :param int from_: Index of the first point to be painted - :param int to: Index of the last point to be painted - :return: Translated polygon - """ - if self.__data.flags & QwtPointMapper.WeedOutPoints: - if self.__data.flags & QwtPointMapper.RoundPoints: - if self.__data.boundingRect.isValid(): - points = qwtToPointsFilteredF(self.__data.boundingRect, - xMap, yMap, series, from_, to) - else: - points = qwtToPolylineFilteredF(xMap, yMap, series, - from_, to, qwtRoundF) - else: - points = qwtToPolylineFilteredF(xMap, yMap, series, - from_, to, qwtNoRoundF) - else: - if self.__data.flags & QwtPointMapper.RoundPoints: - points = qwtToPointsF(self.__data.boundingRect, - xMap, yMap, series, from_, to, qwtRoundF) - else: - points = qwtToPointsF(self.__data.boundingRect, - xMap, yMap, series, from_, to, qwtNoRoundF) - return points - - def toPoints(self, xMap, yMap, series, from_, to): - """ - Translate a series of points into a QPolygon: - - - `WeedOutPoints and boundingRect().isValid()`: - - All points that are mapped to the same position - will be one point. Points outside of the bounding - rectangle are ignored. - - - `WeedOutPoints and not boundingRect().isValid()`: - - All consecutive points that are mapped to the same position - will one point - - - `not WeedOutPoints and boundingRect().isValid()`: - - Points outside of the bounding rectangle are ignored. - - :param qwt.scale_map.QwtScaleMap xMap: x map - :param qwt.scale_map.QwtScaleMap yMap: y map - :param series: Series of points to be mapped - :param int from_: Index of the first point to be painted - :param int to: Index of the last point to be painted - :return: Translated polygon - """ - if self.__data.flags & QwtPointMapper.WeedOutPoints: - if self.__data.boundingRect.isValid(): - points = qwtToPointsFilteredI(self.__data.boundingRect, - xMap, yMap, series, from_, to) - else: - points = qwtToPolylineFilteredI(xMap, yMap, series, from_, to) - else: - points = qwtToPointsI(self.__data.boundingRect, xMap, yMap, - series, from_, to) - return points - - def toImage(self, xMap, yMap, series, from_, to, pen, antialiased): - """ - Translate a series into a QImage - - :param qwt.scale_map.QwtScaleMap xMap: x map - :param qwt.scale_map.QwtScaleMap yMap: y map - :param series: Series of points to be mapped - :param int from_: Index of the first point to be painted - :param int to: Index of the last point to be painted - :param QPen pen: Pen used for drawing a point of the image, where a point is mapped to - :param bool antialiased: True, when the dots should be displayed antialiased - :return: Image displaying the series - """ - #TODO: rewrite this method to fix performance issue (litteral translation from C++!) - rect = self.__data.boundingRect.toAlignedRect() - image = QImage(rect.size(), QImage.Format_ARGB32) - image.fill(Qt.transparent) - if pen.width() <= 1 and pen.color().alpha() == 255: - bits = image.bits() - w = image.width() - h = image.height() - x0 = rect.topLeft().x() - y0 = rect.topLeft().y() - for i in range(from_, to+1): - sample = series.sample(i) - x = int(xMap.transform(sample.x())+0.5)-x0 - y = int(yMap.transform(sample.y())+0.5)-y0 - if x >= 0 and x < w and y >= 0 and y < h: - bits[y*w+x] = pen.color().rgba() - else: - painter = QPainter(image) - painter.setPen(pen) - painter.setRenderHint(QPainter.Antialiasing, antialiased) - chunkSize = 1000 - for i in range(chunkSize): - indexTo = min([i+chunkSize-1, to]) - points = self.toPoints(xMap, yMap, series, i, indexTo) - painter.drawPoints(points) - return image diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index ea69a6d..8498ad4 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -762,45 +762,25 @@ def drawTick(self, painter, value, len_): """ if len_ <= 0: return - - roundingAlignment = QwtPainter.roundingAlignment(painter) pos = self.__data.pos tval = self.scaleMap().transform(value) - if roundingAlignment: - tval = round(tval) - pw = self.penWidth() a = 0 - if pw > 1 and roundingAlignment: - a = 1 - if self.alignment() == self.LeftScale: x1 = pos.x() + a x2 = pos.x() + a - pw - len_ - if roundingAlignment: - x1 = round(x1) - x2 = round(x2) QwtPainter.drawLine(painter, x1, tval, x2, tval) elif self.alignment() == self.RightScale: x1 = pos.x() x2 = pos.x() + pw + len_ - if roundingAlignment: - x1 = round(x1) - x2 = round(x2) QwtPainter.drawLine(painter, x1, tval, x2, tval) elif self.alignment() == self.BottomScale: y1 = pos.y() y2 = pos.y() + pw + len_ - if roundingAlignment: - y1 = round(y1) - y2 = round(y2) QwtPainter.drawLine(painter, tval, y1, tval, y2) elif self.alignment() == self.TopScale: y1 = pos.y() + a y2 = pos.y() - pw - len_ + a - if roundingAlignment: - y1 = round(y1) - y2 = round(y2) QwtPainter.drawLine(painter, tval, y1, tval, y2) def drawBackbone(self, painter): @@ -813,38 +793,20 @@ def drawBackbone(self, painter): :py:meth:`drawTick()`, :py:meth:`drawLabel()` """ - doAlign = QwtPainter.roundingAlignment(painter) pos = self.__data.pos len_ = self.__data.len - pw = max([self.penWidth(), 1]) - - if doAlign: - if self.alignment() in (self.LeftScale, self.TopScale): - off = (pw-1)/2 - else: - off = pw/2 - else: - off = .5*self.penWidth() - + off = .5*self.penWidth() if self.alignment() == self.LeftScale: x = pos.x() - off - if doAlign: - x = round(x) QwtPainter.drawLine(painter, x, pos.y(), x, pos.y()+len_) elif self.alignment() == self.RightScale: x = pos.x() + off - if doAlign: - x = round(x) QwtPainter.drawLine(painter, x, pos.y(), x, pos.y()+len_) elif self.alignment() == self.TopScale: y = pos.y() - off - if doAlign: - y = round(y) QwtPainter.drawLine(painter, pos.x(), y, pos.x()+len_, y) elif self.alignment() == self.BottomScale: y = pos.y() + off - if doAlign: - y = round(y) QwtPainter.drawLine(painter, pos.x(), y, pos.x()+len_, y) def move(self, *args): diff --git a/qwt/symbol.py b/qwt/symbol.py index f4ae1a1..74307f4 100644 --- a/qwt/symbol.py +++ b/qwt/symbol.py @@ -17,7 +17,7 @@ from qwt.painter import QwtPainter from qwt.qt.QtGui import (QPainter, QTransform, QPixmap, QPen, QPolygonF, - QPainterPath, QBrush, QPaintEngine) + QPainterPath, QBrush) from qwt.qt.QtCore import QSize, QRect, QPointF, QRectF, QSizeF, Qt, QPoint from qwt.qt.QtSvg import QSvgRenderer @@ -125,26 +125,15 @@ def qwtDrawEllipseSymbols(painter, points, numPoints, symbol): painter.setBrush(symbol.brush()) painter.setPen(symbol.pen()) size =symbol.size() - if QwtPainter.roundingAlignment(painter): - sw = size.width() - sh = size.height() - sw2 = size.width()//2 - sh2 = size.height()//2 - for pos in points: - x = round(pos.x()) - y = round(pos.y()) - r = QRectF(x-sw2, y-sh2, sw, sh) - QwtPainter.drawEllipse(painter, r) - else: - sw = size.width() - sh = size.height() - sw2 = .5*size.width() - sh2 = .5*size.height() - for pos in points: - x = pos.x() - y = pos.y() - r = QRectF(x-sw2, y-sh2, sw, sh) - QwtPainter.drawEllipse(painter, r) + sw = size.width() + sh = size.height() + sw2 = .5*size.width() + sh2 = .5*size.height() + for pos in points: + x = pos.x() + y = pos.y() + r = QRectF(x-sw2, y-sh2, sw, sh) + painter.drawEllipse(r) def qwtDrawRectSymbols(painter, points, numPoints, symbol): @@ -154,26 +143,15 @@ def qwtDrawRectSymbols(painter, points, numPoints, symbol): painter.setPen(pen) painter.setBrush(symbol.brush()) painter.setRenderHint(QPainter.Antialiasing, False) - if QwtPainter.roundingAlignment(painter): - sw = size.width() - sh = size.height() - sw2 = size.width()//2 - sh2 = size.height()//2 - for pos in points: - x = round(pos.x()) - y = round(pos.y()) - r = QRectF(x-sw2, y-sh2, sw, sh) - QwtPainter.drawRect(painter, r) - else: - sw = size.width() - sh = size.height() - sw2 = .5*size.width() - sh2 = .5*size.height() - for pos in points: - x = pos.x() - y = pos.y() - r = QRectF(x-sw2, y-sh2, sw, sh) - QwtPainter.drawRect(painter, r) + sw = size.width() + sh = size.height() + sw2 = .5*size.width() + sh2 = .5*size.height() + for pos in points: + x = pos.x() + y = pos.y() + r = QRectF(x-sw2, y-sh2, sw, sh) + painter.drawRect(r) def qwtDrawDiamondSymbols(painter, points, numPoints, symbol): @@ -182,32 +160,17 @@ def qwtDrawDiamondSymbols(painter, points, numPoints, symbol): pen.setJoinStyle(Qt.MiterJoin) painter.setPen(pen) painter.setBrush(symbol.brush()) - if QwtPainter.roundingAlignment(painter): - for pos in points: - x = round(pos.x()) - y = round(pos.y()) - x1 = x-size.width()//2 - y1 = y-size.height()//2 - x2 = x1+size.width() - y2 = y1+size.height() - polygon = QPolygonF() - polygon += QPointF(x, y1) - polygon += QPointF(x1, y) - polygon += QPointF(x, y2) - polygon += QPointF(x2, y) - QwtPainter.drawPolygon(painter, polygon) - else: - for pos in points: - x1 = pos.x()-.5*size.width() - y1 = pos.y()-.5*size.height() - x2 = x1+size.width() - y2 = y1+size.height() - polygon = QPolygonF() - polygon += QPointF(pos.x(), y1) - polygon += QPointF(x1, pos.y()) - polygon += QPointF(pos.x(), y2) - polygon += QPointF(x2, pos.y()) - QwtPainter.drawPolygon(painter, polygon) + for pos in points: + x1 = pos.x()-.5*size.width() + y1 = pos.y()-.5*size.height() + x2 = x1+size.width() + y2 = y1+size.height() + polygon = QPolygonF() + polygon += QPointF(pos.x(), y1) + polygon += QPointF(x1, pos.y()) + polygon += QPointF(pos.x(), y2) + polygon += QPointF(x2, pos.y()) + painter.drawPolyline(polygon) def qwtDrawTriangleSymbols(painter, type, points, numPoint, symbol): @@ -216,18 +179,11 @@ def qwtDrawTriangleSymbols(painter, type, points, numPoint, symbol): pen.setJoinStyle(Qt.MiterJoin) painter.setPen(pen) painter.setBrush(symbol.brush()) - doAlign = QwtPainter.roundingAlignment(painter) sw2 = .5*size.width() sh2 = .5*size.height() - if doAlign: - sw2 = np.floor(sw2) - sh2 = np.floor(sh2) for pos in points: x = pos.x() y = pos.y() - if doAlign: - x = round(x) - y = round(y) x1 = x-sw2 x2 = x1+size.width() y1 = y-sh2 @@ -240,114 +196,65 @@ def qwtDrawTriangleSymbols(painter, type, points, numPoint, symbol): triangle = [QPointF(x1, y2), QPointF(x, y1), QPointF(x2, y2)] elif type == QwtTriangle.Down: triangle = [QPointF(x1, y1), QPointF(x, y2), QPointF(x2, y1)] - QwtPainter.drawPolygon(painter, QPolygonF(triangle)) + painter.drawPolyline(QPolygonF(triangle)) def qwtDrawLineSymbols(painter, orientations, points, numPoints, symbol): size =symbol.size() - off = 0 pen = QPen(symbol.pen()) if pen.width() > 1: pen.setCapStyle(Qt.FlatCap) - off = 1 painter.setPen(pen) painter.setRenderHint(QPainter.Antialiasing, False) - if QwtPainter.roundingAlignment(painter): - sw = np.floor(size.width()) - sh = np.floor(size.height()) - sw2 = size.width()//2 - sh2 = size.height()//2 - for pos in points: - if orientations & Qt.Horizontal: - x = round(pos.x())-sw2 - y = round(pos.y()) - QwtPainter.drawLine(painter, x, y, x+sw+off, y) - if orientations & Qt.Vertical: - x = round(pos.x()) - y = round(pos.y())-sh2 - QwtPainter.drawLine(painter, x, y, x, y+sh+off) - else: - sw = size.width() - sh = size.height() - sw2 = .5*size.width() - sh2 = .5*size.height() - for pos in points: - if orientations & Qt.Horizontal: - x = round(pos.x())-sw2 - y = round(pos.y()) - QwtPainter.drawLine(painter, x, y, x+sw, y) - if orientations & Qt.Vertical: - x = round(pos.x()) - y = round(pos.y())-sh2 - QwtPainter.drawLine(painter, x, y, x, y+sh) + sw = size.width() + sh = size.height() + sw2 = .5*size.width() + sh2 = .5*size.height() + for pos in points: + if orientations & Qt.Horizontal: + x = round(pos.x())-sw2 + y = round(pos.y()) + QwtPainter.drawLine(painter, x, y, x+sw, y) + if orientations & Qt.Vertical: + x = round(pos.x()) + y = round(pos.y())-sh2 + QwtPainter.drawLine(painter, x, y, x, y+sh) def qwtDrawXCrossSymbols(painter, points, numPoints, symbol): size =symbol.size() - off = 0 pen = QPen(symbol.pen()) if pen.width() > 1: pen.setCapStyle(Qt.FlatCap) - off = 1 painter.setPen(pen) - if QwtPainter.roundingAlignment(painter): - sw = np.floor(size.width()) - sh = np.floor(size.height()) - sw2 = size.width()//2 - sh2 = size.height()//2 - for pos in points: - x = round(pos.x()) - y = round(pos.y()) - x1 = x-sw2 - x2 = x1+sw+off - y1 = y-sh2 - y2 = y1+sh+off - QwtPainter.drawLine(painter, x1, y1, x2, y2) - QwtPainter.drawLine(painter, x2, y1, x1, y2) - else: - sw = size.width() - sh = size.height() - sw2 = .5*size.width() - sh2 = .5*size.height() - for pos in points: - x1 = pos.x()-sw2 - x2 = x1+sw - y1 = pos.y()-sh2 - y2 = y1+sh - QwtPainter.drawLine(painter, x1, y1, x2, y2) - QwtPainter.drawLine(painter, x2, y1, x1, y2) + sw = size.width() + sh = size.height() + sw2 = .5*size.width() + sh2 = .5*size.height() + for pos in points: + x1 = pos.x()-sw2 + x2 = x1+sw + y1 = pos.y()-sh2 + y2 = y1+sh + QwtPainter.drawLine(painter, x1, y1, x2, y2) + QwtPainter.drawLine(painter, x2, y1, x1, y2) def qwtDrawStar1Symbols(painter, points, numPoints, symbol): size =symbol.size() painter.setPen(symbol.pen()) sqrt1_2 = np.sqrt(.5) - if QwtPainter.roundingAlignment(painter): - r = QRect(0, 0, size.width(), size.height()) - for pos in points: - r.moveCenter(pos.toPoint()) - d1 = r.width()/2.*(1.-sqrt1_2) - QwtPainter.drawLine(painter, - round(r.left()+d1), round(r.top()+d1), - round(r.right()-d1), round(r.bottom()-d1)) - QwtPainter.drawLine(painter, - round(r.left()+d1), round(r.bottom()-d1), - round(r.right()-d1), round(r.top()+d1)) - c = QPoint(r.center()) - QwtPainter.drawLine(painter, c.x(), r.top(), c.x(), r.bottom()) - QwtPainter.drawLine(painter, r.left(), c.y(), r.right(), c.y()) - else: - r = QRectF(0, 0, size.width(), size.height()) - for pos in points: - r.moveCenter(pos.toPoint()) - c = QPointF(r.center()) - d1 = r.width()/2.*(1.-sqrt1_2) - QwtPainter.drawLine(painter, r.left()+d1, r.top()+d1, - r.right()-d1, r.bottom()-d1) - QwtPainter.drawLine(painter, r.left()+d1, r.bottom()-d1, - r.right()-d1, r.top()+d1) - QwtPainter.drawLine(painter, c.x(), r.top(), c.x(), r.bottom()) - QwtPainter.drawLine(painter, r.left(), c.y(), r.right(), c.y()) + r = QRectF(0, 0, size.width(), size.height()) + for pos in points: + r.moveCenter(pos.toPoint()) + c = QPointF(r.center()) + d1 = r.width()/2.*(1.-sqrt1_2) + QwtPainter.drawLine(painter, r.left()+d1, r.top()+d1, + r.right()-d1, r.bottom()-d1) + QwtPainter.drawLine(painter, r.left()+d1, r.bottom()-d1, + r.right()-d1, r.top()+d1) + QwtPainter.drawLine(painter, c.x(), r.top(), c.x(), r.bottom()) + QwtPainter.drawLine(painter, r.left(), c.y(), r.right(), c.y()) def qwtDrawStar2Symbols(painter, points, numPoints, symbol): @@ -360,18 +267,11 @@ def qwtDrawStar2Symbols(painter, points, numPoints, symbol): cos30 = np.cos(30*np.pi/180.) dy = .25*symbol.size().height() dx = .5*symbol.size().width()*cos30/3. - doAlign = QwtPainter.roundingAlignment(painter) for pos in points: - if doAlign: - x = round(pos.x()) - y = round(pos.y()) - x1 = round(x-3*dx) - y1 = round(y-2*dy) - else: - x = pos.x() - y = pos.y() - x1 = x-3*dx - y1 = y-2*dy + x = pos.x() + y = pos.y() + x1 = x-3*dx + y1 = y-2*dy x2 = x1+1*dx x3 = x1+2*dx x4 = x1+3*dx @@ -386,7 +286,7 @@ def qwtDrawStar2Symbols(painter, points, numPoints, symbol): QPointF(x6, y3), QPointF(x7, y4), QPointF(x5, y4), QPointF(x4, y5), QPointF(x3, y4), QPointF(x1, y4), QPointF(x2, y3), QPointF(x1, y2), QPointF(x3, y2)] - QwtPainter.drawPolygon(painter, QPolygonF(star)) + painter.drawPolyline(QPolygonF(star)) def qwtDrawHexagonSymbols(painter, points, numPoints, symbol): @@ -395,18 +295,11 @@ def qwtDrawHexagonSymbols(painter, points, numPoints, symbol): cos30 = np.cos(30*np.pi/180.) dx = .5*(symbol.size().width()-cos30) dy = .25*symbol.size().height() - doAlign = QwtPainter.roundingAlignment(painter) for pos in points: - if doAlign: - x = round(pos.x()) - y = round(pos.y()) - x1 = np.ceil(x-dx) - y1 = np.ceil(y-2*dy) - else: - x = pos.x() - y = pos.y() - x1 = x-dx - y1 = y-2*dy + x = pos.x() + y = pos.y() + x1 = x-dx + y1 = y-2*dy x2 = x1+1*dx x3 = x1+2*dx y2 = y1+1*dy @@ -414,7 +307,7 @@ def qwtDrawHexagonSymbols(painter, points, numPoints, symbol): y4 = y1+4*dy hexa = [QPointF(x2, y1), QPointF(x3, y2), QPointF(x3, y3), QPointF(x2, y4), QPointF(x1, y3), QPointF(x1, y2)] - QwtPainter.drawPolygon(painter, QPolygonF(hexa)) + painter.drawPolyline(QPolygonF(hexa)) class QwtSymbol_PrivateData(object): @@ -1022,45 +915,9 @@ def drawSymbols(self, painter, points, numPoints=None): #TODO: remove argument numPoints (not necessary in `PythonQwt`) if numPoints is not None and numPoints <= 0: return - useCache = False - if QwtPainter.roundingAlignment(painter) and\ - not painter.transform().isScaling(): - if self.__data.cache.policy == QwtSymbol.Cache: - useCache = True - elif self.__data.cache.policy == QwtSymbol.AutoCache: - if painter.paintEngine().type() == QPaintEngine.Raster: - useCache = True - else: - if self.__data.style in (QwtSymbol.XCross, QwtSymbol.HLine, - QwtSymbol.VLine, QwtSymbol.Cross): - pass - elif self.__data.style == QwtSymbol.Pixmap: - if not self.__data.size.isEmpty() and\ - self.__data.size != self.__data.pixmap.pixmap.size(): - useCache = True - else: - useCache = True - if useCache: - br = QRect(self.boundingRect()) - rect = QRect(0, 0, br.width(), br.height()) - if self.__data.cache.pixmap.isNull(): - self.__data.cache.pixmap = QwtPainter.backingStore(None, br.size()) - self.__data.cache.pixmap.fill(Qt.transparent) - p = QPainter(self.__data.cache.pixmap) - p.setRenderHints(painter.renderHints()) - p.translate(-br.topLeft()) - pos = QPointF() - self.renderSymbols(p, pos, 1) - dx = br.left() - dy = br.top() - for point in points: - left = round(point.x())+dx - top = round(point.y())+dy - painter.drawPixmap(left, top, self.__data.cache.pixmap) - else: - painter.save() - self.renderSymbols(painter, points, numPoints) - painter.restore() + painter.save() + self.renderSymbols(painter, points, numPoints) + painter.restore() def drawSymbol(self, painter, point_or_rect): """ diff --git a/qwt/text.py b/qwt/text.py index 2958360..57c6116 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -547,7 +547,7 @@ def draw(self, painter, rect): painter.setPen(self.__data.borderPen) painter.setBrush(self.__data.backgroundBrush) if self.__data.borderRadius == 0: - QwtPainter.drawRect(painter, rect) + painter.drawRect(rect) else: painter.setRenderHint(QPainter.Antialiasing, True) painter.drawRoundedRect(rect, self.__data.borderRadius, From 87e1f90c9e3c4a8dcb33b846203252097bde39f0 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 29 Oct 2015 09:52:59 +0100 Subject: [PATCH 059/421] Major API simplification (bug fixes) --- qwt/plot_curve.py | 17 +++++------------ qwt/symbol.py | 8 ++++---- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 7001361..4a1c4b5 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -504,16 +504,9 @@ def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): doFill = self.__data.brush.style() != Qt.NoBrush\ and self.__data.brush.color().alpha() > 0 polyline = series_to_polyline(xMap, yMap, self.data(), from_, to) + painter.drawPolyline(polyline) if doFill: - if painter.pen().style() != Qt.NoPen: - filled = QPolygonF(polyline) - self.fillCurve(painter, xMap, yMap, canvasRect, filled) - filled.clear() - painter.drawPolyline(polyline) - else: - self.fillCurve(painter, xMap, yMap, canvasRect, polyline) - else: - painter.drawPolyline(polyline) + self.fillCurve(painter, xMap, yMap, canvasRect, polyline) def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): """ @@ -542,9 +535,9 @@ def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): xi = xMap.transform(sample.x()) yi = yMap.transform(sample.y()) if o == Qt.Horizontal: - QwtPainter.drawLine(painter, xi, y0, xi, yi) - else: QwtPainter.drawLine(painter, x0, yi, xi, yi) + else: + QwtPainter.drawLine(painter, xi, y0, xi, yi) painter.restore() def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): @@ -671,7 +664,7 @@ def fillCurve(self, painter, xMap, yMap, canvasRect, polygon): painter.save() painter.setPen(Qt.NoPen) painter.setBrush(brush) - painter.drawPolyline(polygon) + painter.drawPolygon(polygon) painter.restore() def closePolyline(self, painter, xMap, yMap, polygon): diff --git a/qwt/symbol.py b/qwt/symbol.py index 74307f4..0258163 100644 --- a/qwt/symbol.py +++ b/qwt/symbol.py @@ -170,7 +170,7 @@ def qwtDrawDiamondSymbols(painter, points, numPoints, symbol): polygon += QPointF(x1, pos.y()) polygon += QPointF(pos.x(), y2) polygon += QPointF(x2, pos.y()) - painter.drawPolyline(polygon) + painter.drawPolygon(polygon) def qwtDrawTriangleSymbols(painter, type, points, numPoint, symbol): @@ -196,7 +196,7 @@ def qwtDrawTriangleSymbols(painter, type, points, numPoint, symbol): triangle = [QPointF(x1, y2), QPointF(x, y1), QPointF(x2, y2)] elif type == QwtTriangle.Down: triangle = [QPointF(x1, y1), QPointF(x, y2), QPointF(x2, y1)] - painter.drawPolyline(QPolygonF(triangle)) + painter.drawPolygon(QPolygonF(triangle)) def qwtDrawLineSymbols(painter, orientations, points, numPoints, symbol): @@ -286,7 +286,7 @@ def qwtDrawStar2Symbols(painter, points, numPoints, symbol): QPointF(x6, y3), QPointF(x7, y4), QPointF(x5, y4), QPointF(x4, y5), QPointF(x3, y4), QPointF(x1, y4), QPointF(x2, y3), QPointF(x1, y2), QPointF(x3, y2)] - painter.drawPolyline(QPolygonF(star)) + painter.drawPolygon(QPolygonF(star)) def qwtDrawHexagonSymbols(painter, points, numPoints, symbol): @@ -307,7 +307,7 @@ def qwtDrawHexagonSymbols(painter, points, numPoints, symbol): y4 = y1+4*dy hexa = [QPointF(x2, y1), QPointF(x3, y2), QPointF(x3, y3), QPointF(x2, y4), QPointF(x1, y3), QPointF(x1, y2)] - painter.drawPolyline(QPolygonF(hexa)) + painter.drawPolygon(QPolygonF(hexa)) class QwtSymbol_PrivateData(object): From 80a5d9d2c0939b11f1696bf9ef578537b700cd1e Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 29 Oct 2015 10:53:45 +0100 Subject: [PATCH 060/421] Major API simplification (continued) --- doc/reference/index.rst | 6 +- doc/reference/legend_data.rst | 2 - doc/reference/legend_label.rst | 2 - doc/reference/plot_series.rst | 2 + doc/reference/plot_seriesitem.rst | 2 - doc/reference/series_data.rst | 2 - doc/reference/series_store.rst | 2 - doc/reference/text.rst | 3 - qwt/__init__.py | 8 +- qwt/column_symbol.py | 1 - qwt/legend.py | 442 +++++++++++++++++++++++++++++- qwt/legend_data.py | 134 --------- qwt/legend_label.py | 323 ---------------------- qwt/pixel_matrix.py | 103 ------- qwt/plot.py | 2 +- qwt/plot_curve.py | 20 +- qwt/plot_directpainter.py | 2 +- qwt/plot_series.py | 346 +++++++++++++++++++++++ qwt/plot_seriesitem.py | 85 ------ qwt/series_data.py | 172 ------------ qwt/series_store.py | 107 -------- qwt/spline.py | 114 -------- qwt/text.py | 365 +++++++++++++++++++++++- qwt/text_engine.py | 366 ------------------------- 24 files changed, 1151 insertions(+), 1460 deletions(-) delete mode 100644 doc/reference/legend_data.rst delete mode 100644 doc/reference/legend_label.rst create mode 100644 doc/reference/plot_series.rst delete mode 100644 doc/reference/plot_seriesitem.rst delete mode 100644 doc/reference/series_data.rst delete mode 100644 doc/reference/series_store.rst delete mode 100644 qwt/legend_data.py delete mode 100644 qwt/legend_label.py delete mode 100644 qwt/pixel_matrix.py create mode 100644 qwt/plot_series.py delete mode 100644 qwt/plot_seriesitem.py delete mode 100644 qwt/series_data.py delete mode 100644 qwt/series_store.py delete mode 100644 qwt/spline.py delete mode 100644 qwt/text_engine.py diff --git a/doc/reference/index.rst b/doc/reference/index.rst index dd7fdde..95d8ff3 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -19,11 +19,7 @@ Private API: graphic interval - legend_data - legend_label plot_directpainter plot_layout - plot_seriesitem - series_data - series_store + plot_series transform diff --git a/doc/reference/legend_data.rst b/doc/reference/legend_data.rst deleted file mode 100644 index 2f77f5b..0000000 --- a/doc/reference/legend_data.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.legend_data - :members: diff --git a/doc/reference/legend_label.rst b/doc/reference/legend_label.rst deleted file mode 100644 index d7830c6..0000000 --- a/doc/reference/legend_label.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.legend_label - :members: diff --git a/doc/reference/plot_series.rst b/doc/reference/plot_series.rst new file mode 100644 index 0000000..283e63b --- /dev/null +++ b/doc/reference/plot_series.rst @@ -0,0 +1,2 @@ +.. automodule:: qwt.plot_series + :members: diff --git a/doc/reference/plot_seriesitem.rst b/doc/reference/plot_seriesitem.rst deleted file mode 100644 index b91a6c6..0000000 --- a/doc/reference/plot_seriesitem.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.plot_seriesitem - :members: diff --git a/doc/reference/series_data.rst b/doc/reference/series_data.rst deleted file mode 100644 index af0940d..0000000 --- a/doc/reference/series_data.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.series_data - :members: diff --git a/doc/reference/series_store.rst b/doc/reference/series_store.rst deleted file mode 100644 index 65ae198..0000000 --- a/doc/reference/series_store.rst +++ /dev/null @@ -1,2 +0,0 @@ -.. automodule:: qwt.series_store - :members: diff --git a/doc/reference/text.rst b/doc/reference/text.rst index c06c3b0..0dbac9c 100644 --- a/doc/reference/text.rst +++ b/doc/reference/text.rst @@ -3,6 +3,3 @@ Text .. automodule:: qwt.text :members: - -.. automodule:: qwt.text_engine - :members: diff --git a/qwt/__init__.py b/qwt/__init__.py index ad99d4a..9eab578 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -21,7 +21,7 @@ .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.4.0' +__version__ = '0.5.0' QWT_VERSION_STR = '6.1.2' import warnings @@ -35,7 +35,7 @@ from qwt.plot_curve import QwtPlotItem from qwt.scale_map import QwtScaleMap from qwt.interval import QwtInterval -from qwt.legend import QwtLegend +from qwt.legend import QwtLegend, QwtLegendData, QwtLegendLabel from qwt.plot_marker import QwtPlotMarker from qwt.plot_grid import QwtPlotGrid as QPG # see deprecated section from qwt.color_map import QwtLinearColorMap @@ -46,9 +46,9 @@ from qwt.scale_draw import QwtScaleDraw from qwt.scale_draw import QwtAbstractScaleDraw from qwt.painter import QwtPainter -from qwt.legend_data import QwtLegendData -from qwt.series_data import QwtPointArrayData +from qwt.plot_series import (QwtSeriesData, QwtPointArrayData, QwtSeriesStore, + QwtPlotSeriesItem) from qwt.plot_renderer import QwtPlotRenderer diff --git a/qwt/column_symbol.py b/qwt/column_symbol.py index d863344..890df9a 100644 --- a/qwt/column_symbol.py +++ b/qwt/column_symbol.py @@ -6,7 +6,6 @@ # (see LICENSE file for more details) from qwt.interval import QwtInterval -from qwt.painter import QwtPainter from qwt.qt.QtGui import QPolygonF, QPalette from qwt.qt.QtCore import QRectF, Qt diff --git a/qwt/legend.py b/qwt/legend.py index f4d19cf..978761e 100644 --- a/qwt/legend.py +++ b/qwt/legend.py @@ -9,20 +9,448 @@ QwtLegend --------- +.. autoclass:: QwtLegendData + :members: + +.. autoclass:: QwtLegendLabel + :members: + .. autoclass:: QwtLegend :members: """ -from qwt.legend_data import QwtLegendData +import numpy as np + +from qwt.qt.QtGui import (QFrame, QScrollArea, QWidget, QVBoxLayout, QPalette, + QApplication, QStyleOption, QStyle, QPixmap, + QPainter, qDrawWinButton) +from qwt.qt.QtCore import Signal, QEvent, QSize, Qt, QRect, QRectF, QPoint + +from qwt.text import QwtText, QwtTextLabel from qwt.dyngrid_layout import QwtDynGridLayout from qwt.painter import QwtPainter -from qwt.legend_label import QwtLegendLabel -from qwt.qt.QtGui import (QFrame, QScrollArea, QWidget, QVBoxLayout, QPalette, - QApplication) -from qwt.qt.QtCore import Signal, QEvent, QSize, Qt, QRect, QRectF -import numpy as np +class QwtLegendData(object): + """ + Attributes of an entry on a legend + + `QwtLegendData` is an abstract container ( like `QAbstractModel` ) + to exchange attributes, that are only known between to + the plot item and the legend. + + By overloading `QwtPlotItem.legendData()` any other set of attributes + could be used, that can be handled by a modified ( or completely + different ) implementation of a legend. + + .. seealso:: + + :py:class:`qwt.legend.QwtLegend` + + .. note:: + + The stockchart example implements a legend as a tree + with checkable items + """ + + # enum Mode + ReadOnly, Clickable, Checkable = list(range(3)) + + # enum Role + ModeRole, TitleRole, IconRole = list(range(3)) + UserRole = 32 + + def __init__(self): + self.__map = {} + + def setValues(self, map_): + """ + Set the legend attributes + + :param dict map\_: Values + + .. seealso:: + + :py:meth:`values()` + """ + self.__map = map_ + + def values(self): + """ + :return: Legend attributes + + .. seealso:: + + :py:meth:`setValues()` + """ + return self.__map + + def hasRole(self, role): + """ + :param int role: Attribute role + :return: True, when the internal map has an entry for role + """ + return role in self.__map + + def setValue(self, role, data): + """ + Set an attribute value + + :param int role: Attribute role + :param QVariant data: Attribute value + + .. seealso:: + + :py:meth:`value()` + """ + self.__map[role] = data + + def value(self, role): + """ + :param int role: Attribute role + :return: Attribute value for a specific role + + .. seealso:: + + :py:meth:`setValue()` + """ + return self.__map.get(role) + + def isValid(self): + """ + :return: True, when the internal map is empty + """ + return len(self.__map) != 0 + + def title(self): + """ + :return: Value of the TitleRole attribute + """ + titleValue = self.value(QwtLegendData.TitleRole) + if isinstance(titleValue, QwtText): + text = titleValue + else: + text.setText(titleValue) + return text + + def icon(self): + """ + :return: Value of the IconRole attribute + """ + return self.value(QwtLegendData.IconRole) + + def mode(self): + """ + :return: Value of the ModeRole attribute + """ + modeValue = self.value(QwtLegendData.ModeRole) + if isinstance(modeValue, int): + return modeValue + return QwtLegendData.ReadOnly + + + +BUTTONFRAME = 2 +MARGIN = 2 + + +def buttonShift(w): + option = QStyleOption() + option.initFrom(w) + ph = w.style().pixelMetric(QStyle.PM_ButtonShiftHorizontal, option, w) + pv = w.style().pixelMetric(QStyle.PM_ButtonShiftVertical, option, w) + return QSize(ph, pv) + + +class QwtLegendLabel_PrivateData(object): + def __init__(self): + self.itemMode = QwtLegendData.ReadOnly + self.isDown = False + self.spacing = MARGIN + self.legendData = QwtLegendData() + self.icon = QPixmap() + + +class QwtLegendLabel(QwtTextLabel): + """A widget representing something on a QwtLegend.""" + + clicked = Signal() + pressed = Signal() + released = Signal() + checked = Signal(bool) + + def __init__(self, parent=None): + QwtTextLabel.__init__(self, parent) + self.__data = QwtLegendLabel_PrivateData() + self.setMargin(MARGIN) + self.setIndent(MARGIN) + + def setData(self, legendData): + """ + Set the attributes of the legend label + + :param QwtLegendData legendData: Attributes of the label + + .. seealso:: + + :py:meth:`data()` + """ + self.__data.legendData = legendData + doUpdate = self.updatesEnabled() + self.setUpdatesEnabled(False) + self.setText(legendData.title()) + icon = legendData.icon() + if icon is not None: + self.setIcon(icon.toPixmap()) + if legendData.hasRole(QwtLegendData.ModeRole): + self.setItemMode(legendData.mode()) + if doUpdate: + self.setUpdatesEnabled(True) + self.update() + + def data(self): + """ + :return: Attributes of the label + + .. seealso:: + + :py:meth:`setData()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()` + """ + return self.__data.legendData + + def setText(self, text): + """ + Set the text to the legend item + + :param qwt.text.QwtText text: Text label + + .. seealso:: + + :py:meth:`text()` + """ + flags = Qt.AlignLeft|Qt.AlignVCenter|Qt.TextExpandTabs|Qt.TextWordWrap + txt = text #TODO: WTF? + txt.setRenderFlags(flags) + QwtTextLabel.setText(self, text) + + def setItemMode(self, mode): + """ + Set the item mode. + The default is `QwtLegendData.ReadOnly`. + + :param int mode: Item mode + + .. seealso:: + + :py:meth:`itemMode()` + """ + if mode != self.__data.itemMode: + self.__data.itemMode = mode + self.__data.isDown = False + self.setFocusPolicy(Qt.TabFocus if mode != QwtLegendData.ReadOnly + else Qt.NoFocus) + self.setMargin(BUTTONFRAME+MARGIN) + self.updateGeometry() + + def itemMode(self): + """ + :return: Item mode + + .. seealso:: + + :py:meth:`setItemMode()` + """ + return self.__data.itemMode + + def setIcon(self, icon): + """ + Assign the icon + + :param QPixmap icon: Pixmap representing a plot item + + .. seealso:: + + :py:meth:`icon()`, :py:meth:`qwt.plot.QwtPlotItem.legendIcon()` + """ + self.__data.icon = icon + indent = self.margin()+self.__data.spacing + if icon.width() > 0: + indent += icon.width()+self.__data.spacing + self.setIndent(indent) + + def icon(self): + """ + :return: Pixmap representing a plot item + + .. seealso:: + + :py:meth:`setIcon()` + """ + return self.__data.icon + + def setSpacing(self, spacing): + """ + Change the spacing between icon and text + + :param int spacing: Spacing + + .. seealso:: + + :py:meth:`spacing()`, :py:meth:`qwt.text.QwtTextLabel.margin()` + """ + spacing = max([spacing, 0]) + if spacing != self.__data.spacing: + self.__data.spacing = spacing + indent = self.margin()+self.__data.spacing + if self.__data.icon.width() > 0: + indent += self.__data.icon.width()+self.__data.spacing + self.setIndent(indent) + + def spacing(self): + """ + :return: Spacing between icon and text + + .. seealso:: + + :py:meth:`setSpacing()` + """ + return self.__data.spacing + + def setChecked(self, on): + """ + Check/Uncheck a the item + + :param bool on: check/uncheck + + .. seealso:: + + :py:meth:`isChecked()`, :py:meth:`setItemMode()` + """ + if self.__data.itemMode == QwtLegendData.Checkable: + isBlocked = self.signalsBlocked() + self.blockSignals(True) + self.setDown(on) + self.blockSignals(isBlocked) + + def isChecked(self): + """ + :return: true, if the item is checked + + .. seealso:: + + :py:meth:`setChecked()` + """ + return self.__data.itemMode == QwtLegendData.Checkable and self.isDown() + + def setDown(self, down): + """ + Set the item being down + + :param bool on: true, if the item is down + + .. seealso:: + + :py:meth:`isDown()` + """ + if down == self.__data.isDown: + return + self.__data.isDown = down + self.update() + if self.__data.itemMode == QwtLegendData.Clickable: + if self.__data.isDown: + self.pressed.emit() + else: + self.released.emit() + self.clicked.emit() + if self.__data.itemMode == QwtLegendData.Checkable: + self.checked.emit(self.__data.isDown) + + def isDown(self): + """ + :return: true, if the item is down + + .. seealso:: + + :py:meth:`setDown()` + """ + return self.__data.isDown + + def sizeHint(self): + """ + :return: a size hint + """ + sz = QwtTextLabel.sizeHint(self) + sz.setHeight(max([sz.height(), self.__data.icon.height()+4])) + if self.__data.itemMode != QwtLegendData.ReadOnly: + sz += buttonShift(self) + sz = sz.expandedTo(QApplication.globalStrut()) + return sz + + def paintEvent(self, e): + cr = self.contentsRect() + painter = QPainter(self) + painter.setClipRegion(e.region()) + if self.__data.isDown: + qDrawWinButton(painter, 0, 0, self.width(), self.height(), + self.palette(), True) + painter.save() + if self.__data.isDown: + shiftSize = buttonShift(self) + painter.translate(shiftSize.width(), shiftSize.height()) + painter.setClipRect(cr) + self.drawContents(painter) + if not self.__data.icon.isNull(): + iconRect = QRect(cr) + iconRect.setX(iconRect.x()+self.margin()) + if self.__data.itemMode != QwtLegendData.ReadOnly: + iconRect.setX(iconRect.x()+BUTTONFRAME) + iconRect.setSize(self.__data.icon.size()) + iconRect.moveCenter(QPoint(iconRect.center().x(), + cr.center().y())) + painter.drawPixmap(iconRect, self.__data.icon) + painter.restore() + + def mousePressEvent(self, e): + if e.button() == Qt.LeftButton: + if self.__data.itemMode == QwtLegendData.Clickable: + self.setDown(True) + return + elif self.__data.itemMode == QwtLegendData.Checkable: + self.setDown(not self.isDown()) + return + QwtTextLabel.mousePressEvent(self, e) + + def mouseReleaseEvent(self, e): + if e.button() == Qt.LeftButton: + if self.__data.itemMode == QwtLegendData.Clickable: + self.setDown(False) + return + elif self.__data.itemMode == QwtLegendData.Checkable: + return + QwtTextLabel.mouseReleaseEvent(self, e) + + def keyPressEvent(self, e): + if e.key() == Qt.Key_Space: + if self.__data.itemMode == QwtLegendData.Clickable: + if not e.isAutoRepeat(): + self.setDown(True) + return + elif self.__data.itemMode == QwtLegendData.Checkable: + if not e.isAutoRepeat(): + self.setDown(not self.isDown()) + return + QwtTextLabel.keyPressEvent(self, e) + + def keyReleaseEvent(self, e): + if e.key() == Qt.Key_Space: + if self.__data.itemMode == QwtLegendData.Clickable: + if not e.isAutoRepeat(): + self.setDown(False) + return + elif self.__data.itemMode == QwtLegendData.Checkable: + return + QwtTextLabel.keyReleaseEvent(self, e) + class QwtAbstractLegend(QFrame): @@ -168,7 +596,7 @@ class QwtLegend(QwtAbstractLegend): .. seealso :: - :py:class`qwt.legend_label.QwtLegendLabel`, + :py:class`qwt.legend.QwtLegendLabel`, :py:class`qwt.plot.QwtPlotItem`, :py:class`qwt.plot.QwtPlot` diff --git a/qwt/legend_data.py b/qwt/legend_data.py deleted file mode 100644 index 983ab83..0000000 --- a/qwt/legend_data.py +++ /dev/null @@ -1,134 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -""" -QwtLegendData -------------- - -.. autoclass:: QwtLegendData - :members: -""" - -from qwt.text import QwtText - - -class QwtLegendData(object): - """ - Attributes of an entry on a legend - - `QwtLegendData` is an abstract container ( like `QAbstractModel` ) - to exchange attributes, that are only known between to - the plot item and the legend. - - By overloading `QwtPlotItem.legendData()` any other set of attributes - could be used, that can be handled by a modified ( or completely - different ) implementation of a legend. - - .. seealso:: - - :py:class:`qwt.legend.QwtLegend` - - .. note:: - - The stockchart example implements a legend as a tree - with checkable items - """ - - # enum Mode - ReadOnly, Clickable, Checkable = list(range(3)) - - # enum Role - ModeRole, TitleRole, IconRole = list(range(3)) - UserRole = 32 - - def __init__(self): - self.__map = {} - - def setValues(self, map_): - """ - Set the legend attributes - - :param dict map\_: Values - - .. seealso:: - - :py:meth:`values()` - """ - self.__map = map_ - - def values(self): - """ - :return: Legend attributes - - .. seealso:: - - :py:meth:`setValues()` - """ - return self.__map - - def hasRole(self, role): - """ - :param int role: Attribute role - :return: True, when the internal map has an entry for role - """ - return role in self.__map - - def setValue(self, role, data): - """ - Set an attribute value - - :param int role: Attribute role - :param QVariant data: Attribute value - - .. seealso:: - - :py:meth:`value()` - """ - self.__map[role] = data - - def value(self, role): - """ - :param int role: Attribute role - :return: Attribute value for a specific role - - .. seealso:: - - :py:meth:`setValue()` - """ - return self.__map.get(role) - - def isValid(self): - """ - :return: True, when the internal map is empty - """ - return len(self.__map) != 0 - - def title(self): - """ - :return: Value of the TitleRole attribute - """ - titleValue = self.value(QwtLegendData.TitleRole) - if isinstance(titleValue, QwtText): - text = titleValue - else: - text.setText(titleValue) - return text - - def icon(self): - """ - :return: Value of the IconRole attribute - """ - return self.value(QwtLegendData.IconRole) - - def mode(self): - """ - :return: Value of the ModeRole attribute - """ - modeValue = self.value(QwtLegendData.ModeRole) - if isinstance(modeValue, int): - return modeValue - return QwtLegendData.ReadOnly diff --git a/qwt/legend_label.py b/qwt/legend_label.py deleted file mode 100644 index 826635a..0000000 --- a/qwt/legend_label.py +++ /dev/null @@ -1,323 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -""" -QwtLegendLabel --------------- - -.. autoclass:: QwtLegendLabel - :members: -""" - -from qwt.text import QwtTextLabel -from qwt.legend_data import QwtLegendData - -from qwt.qt.QtGui import (QStyleOption, QStyle, QPixmap, QApplication, - QPainter, qDrawWinButton) -from qwt.qt.QtCore import Signal, Qt, QSize, QRect, QPoint - - -BUTTONFRAME = 2 -MARGIN = 2 - - -def buttonShift(w): - option = QStyleOption() - option.initFrom(w) - ph = w.style().pixelMetric(QStyle.PM_ButtonShiftHorizontal, option, w) - pv = w.style().pixelMetric(QStyle.PM_ButtonShiftVertical, option, w) - return QSize(ph, pv) - - -class QwtLegendLabel_PrivateData(object): - def __init__(self): - self.itemMode = QwtLegendData.ReadOnly - self.isDown = False - self.spacing = MARGIN - self.legendData = QwtLegendData() - self.icon = QPixmap() - - -class QwtLegendLabel(QwtTextLabel): - """A widget representing something on a QwtLegend.""" - - clicked = Signal() - pressed = Signal() - released = Signal() - checked = Signal(bool) - - def __init__(self, parent=None): - QwtTextLabel.__init__(self, parent) - self.__data = QwtLegendLabel_PrivateData() - self.setMargin(MARGIN) - self.setIndent(MARGIN) - - def setData(self, legendData): - """ - Set the attributes of the legend label - - :param QwtLegendData legendData: Attributes of the label - - .. seealso:: - - :py:meth:`data()` - """ - self.__data.legendData = legendData - doUpdate = self.updatesEnabled() - self.setUpdatesEnabled(False) - self.setText(legendData.title()) - icon = legendData.icon() - if icon is not None: - self.setIcon(icon.toPixmap()) - if legendData.hasRole(QwtLegendData.ModeRole): - self.setItemMode(legendData.mode()) - if doUpdate: - self.setUpdatesEnabled(True) - self.update() - - def data(self): - """ - :return: Attributes of the label - - .. seealso:: - - :py:meth:`setData()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()` - """ - return self.__data.legendData - - def setText(self, text): - """ - Set the text to the legend item - - :param qwt.text.QwtText text: Text label - - .. seealso:: - - :py:meth:`text()` - """ - flags = Qt.AlignLeft|Qt.AlignVCenter|Qt.TextExpandTabs|Qt.TextWordWrap - txt = text #TODO: WTF? - txt.setRenderFlags(flags) - QwtTextLabel.setText(self, text) - - def setItemMode(self, mode): - """ - Set the item mode. - The default is `QwtLegendData.ReadOnly`. - - :param int mode: Item mode - - .. seealso:: - - :py:meth:`itemMode()` - """ - if mode != self.__data.itemMode: - self.__data.itemMode = mode - self.__data.isDown = False - self.setFocusPolicy(Qt.TabFocus if mode != QwtLegendData.ReadOnly - else Qt.NoFocus) - self.setMargin(BUTTONFRAME+MARGIN) - self.updateGeometry() - - def itemMode(self): - """ - :return: Item mode - - .. seealso:: - - :py:meth:`setItemMode()` - """ - return self.__data.itemMode - - def setIcon(self, icon): - """ - Assign the icon - - :param QPixmap icon: Pixmap representing a plot item - - .. seealso:: - - :py:meth:`icon()`, :py:meth:`qwt.plot.QwtPlotItem.legendIcon()` - """ - self.__data.icon = icon - indent = self.margin()+self.__data.spacing - if icon.width() > 0: - indent += icon.width()+self.__data.spacing - self.setIndent(indent) - - def icon(self): - """ - :return: Pixmap representing a plot item - - .. seealso:: - - :py:meth:`setIcon()` - """ - return self.__data.icon - - def setSpacing(self, spacing): - """ - Change the spacing between icon and text - - :param int spacing: Spacing - - .. seealso:: - - :py:meth:`spacing()`, :py:meth:`qwt.text.QwtTextLabel.margin()` - """ - spacing = max([spacing, 0]) - if spacing != self.__data.spacing: - self.__data.spacing = spacing - indent = self.margin()+self.__data.spacing - if self.__data.icon.width() > 0: - indent += self.__data.icon.width()+self.__data.spacing - self.setIndent(indent) - - def spacing(self): - """ - :return: Spacing between icon and text - - .. seealso:: - - :py:meth:`setSpacing()` - """ - return self.__data.spacing - - def setChecked(self, on): - """ - Check/Uncheck a the item - - :param bool on: check/uncheck - - .. seealso:: - - :py:meth:`isChecked()`, :py:meth:`setItemMode()` - """ - if self.__data.itemMode == QwtLegendData.Checkable: - isBlocked = self.signalsBlocked() - self.blockSignals(True) - self.setDown(on) - self.blockSignals(isBlocked) - - def isChecked(self): - """ - :return: true, if the item is checked - - .. seealso:: - - :py:meth:`setChecked()` - """ - return self.__data.itemMode == QwtLegendData.Checkable and self.isDown() - - def setDown(self, down): - """ - Set the item being down - - :param bool on: true, if the item is down - - .. seealso:: - - :py:meth:`isDown()` - """ - if down == self.__data.isDown: - return - self.__data.isDown = down - self.update() - if self.__data.itemMode == QwtLegendData.Clickable: - if self.__data.isDown: - self.pressed.emit() - else: - self.released.emit() - self.clicked.emit() - if self.__data.itemMode == QwtLegendData.Checkable: - self.checked.emit(self.__data.isDown) - - def isDown(self): - """ - :return: true, if the item is down - - .. seealso:: - - :py:meth:`setDown()` - """ - return self.__data.isDown - - def sizeHint(self): - """ - :return: a size hint - """ - sz = QwtTextLabel.sizeHint(self) - sz.setHeight(max([sz.height(), self.__data.icon.height()+4])) - if self.__data.itemMode != QwtLegendData.ReadOnly: - sz += buttonShift(self) - sz = sz.expandedTo(QApplication.globalStrut()) - return sz - - def paintEvent(self, e): - cr = self.contentsRect() - painter = QPainter(self) - painter.setClipRegion(e.region()) - if self.__data.isDown: - qDrawWinButton(painter, 0, 0, self.width(), self.height(), - self.palette(), True) - painter.save() - if self.__data.isDown: - shiftSize = buttonShift(self) - painter.translate(shiftSize.width(), shiftSize.height()) - painter.setClipRect(cr) - self.drawContents(painter) - if not self.__data.icon.isNull(): - iconRect = QRect(cr) - iconRect.setX(iconRect.x()+self.margin()) - if self.__data.itemMode != QwtLegendData.ReadOnly: - iconRect.setX(iconRect.x()+BUTTONFRAME) - iconRect.setSize(self.__data.icon.size()) - iconRect.moveCenter(QPoint(iconRect.center().x(), - cr.center().y())) - painter.drawPixmap(iconRect, self.__data.icon) - painter.restore() - - def mousePressEvent(self, e): - if e.button() == Qt.LeftButton: - if self.__data.itemMode == QwtLegendData.Clickable: - self.setDown(True) - return - elif self.__data.itemMode == QwtLegendData.Checkable: - self.setDown(not self.isDown()) - return - QwtTextLabel.mousePressEvent(self, e) - - def mouseReleaseEvent(self, e): - if e.button() == Qt.LeftButton: - if self.__data.itemMode == QwtLegendData.Clickable: - self.setDown(False) - return - elif self.__data.itemMode == QwtLegendData.Checkable: - return - QwtTextLabel.mouseReleaseEvent(self, e) - - def keyPressEvent(self, e): - if e.key() == Qt.Key_Space: - if self.__data.itemMode == QwtLegendData.Clickable: - if not e.isAutoRepeat(): - self.setDown(True) - return - elif self.__data.itemMode == QwtLegendData.Checkable: - if not e.isAutoRepeat(): - self.setDown(not self.isDown()) - return - QwtTextLabel.keyPressEvent(self, e) - - def keyReleaseEvent(self, e): - if e.key() == Qt.Key_Space: - if self.__data.itemMode == QwtLegendData.Clickable: - if not e.isAutoRepeat(): - self.setDown(False) - return - elif self.__data.itemMode == QwtLegendData.Checkable: - return - QwtTextLabel.keyReleaseEvent(self, e) diff --git a/qwt/pixel_matrix.py b/qwt/pixel_matrix.py deleted file mode 100644 index b7dad1c..0000000 --- a/qwt/pixel_matrix.py +++ /dev/null @@ -1,103 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -""" -QwtPixelMatrix --------------- - -.. autoclass:: QwtPixelMatrix - :members: -""" - -from qwt.qt.QtCore import QBitArray - - -class QwtPixelMatrix(QBitArray): - """ - A bit field corresponding to the pixels of a rectangle - - `QwtPixelMatrix` is intended to filter out duplicates in an - unsorted array of points. - - .. py:class:: QwtGraphic(rect) - - Constructor - - :param QRect rect: Bounding rectangle for the matrix - """ - def __init__(self, rect): - QBitArray.__init__(self, max([rect.width()*rect.height(), 0])) - self.__rect = rect - - def setRect(self, rect): - """ - Set the bounding rectangle of the matrix - - :param QRect rect: Bounding rectangle - - .. note:: - - All bits are cleared - """ - if rect != self.__rect: - self.__rect = rect - sz = max([rect.width()*rect.height(), 0]) - self.resize(sz) - self.fill(False) - - def rect(self): - """ - :return: Bounding rectangle - """ - return self.__rect - - def testPixel(self, x, y): - """ - Test if a pixel has been set - - :param int x: X-coordinate - :param int y: Y-coordinate - :return: true, when pos is outside of rect(), or when the pixel has already been set. - """ - idx = self.index(x, y) - if idx >= 0: - return self.testBit(idx) - else: - return True - - def testAndSetPixel(self, x, y, on): - """ - Set a pixel and test if a pixel has been set before - - :param int x: X-coordinate - :param int y: Y-coordinate - :param bool on: Set/Clear the pixel - :return: true, when pos is outside of rect(), or when the pixel was set before. - """ - idx = self.index(x, y) - if idx < 0: - return True - onBefore = self.testBit(idx) - self.setBit(idx, on) - return onBefore - - def index(self, x, y): - """ - Calculate the index in the bit field corresponding to a position - - :param int x: X-coordinate - :param int y: Y-coordinate - :return: Index, when rect() contains pos - otherwise -1. - """ - dx = x - self.__rect.x() - if dx < 0 or dx >= self.__rect.width(): - return -1 - dy = y - self.__rect.y() - if dy < 0 or dy >= self.__rect.height(): - return -1 - return dy*self.__rect.width()+dx - \ No newline at end of file diff --git a/qwt/plot.py b/qwt/plot.py index 4891eb9..07c5690 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -31,7 +31,7 @@ from qwt.scale_div import QwtScaleDiv from qwt.scale_map import QwtScaleMap from qwt.graphic import QwtGraphic -from qwt.legend_data import QwtLegendData +from qwt.legend import QwtLegendData from qwt.interval import QwtInterval import numpy as np diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 4a1c4b5..3a9ce3e 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -18,9 +18,8 @@ from qwt.painter import QwtPainter from qwt.math import qwtSqr from qwt.graphic import QwtGraphic -from qwt.series_data import QwtSeriesData, QwtPointArrayData -from qwt.series_store import QwtSeriesStore -from qwt.plot_seriesitem import QwtPlotSeriesItem +from qwt.plot_series import (QwtPlotSeriesItem, QwtSeriesStore, + QwtSeriesData, QwtPointArrayData) from qwt.symbol import QwtSymbol from qwt.plot_directpainter import QwtPlotDirectPainter @@ -88,8 +87,7 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): A plot item, that represents a series of points A curve is the representation of a series of points in the x-y plane. - It supports different display styles, interpolation ( f.e. spline ) - and symbols. + It supports different display styles and symbols. .. seealso:: @@ -104,9 +102,7 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): * `QwtPlotCurve.Lines`: - Connect the points with straight lines. The lines might - be interpolated depending on the 'Fitted' attribute. Curve - fitting can be configured using setCurveFitter(). + Connect the points with straight lines. * `QwtPlotCurve.Sticks`: @@ -139,12 +135,6 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): For `QwtPlotCurve.Steps` only. Draws a step function from the right to the left. - * `QwtPlotCurve.Fitted`: - - .. warning :: - - This option is *not* supported in `PythonQwt`. - Legend attributes: * `QwtPlotCurve.LegendNoAttribute`: @@ -862,7 +852,7 @@ def setSamples(self, *args): .. seealso:: - :py:class:`qwt.point_data.QwtPointArrayData`, + :py:class:`qwt.plot_series.QwtPointArrayData`, """ if len(args) == 1: samples, = args diff --git a/qwt/plot_directpainter.py b/qwt/plot_directpainter.py index ef32194..8cecf5c 100644 --- a/qwt/plot_directpainter.py +++ b/qwt/plot_directpainter.py @@ -197,7 +197,7 @@ def drawSeries(self, seriesItem, from_, to): will result in faster painting, if the paint engine of the canvas widget supports this feature. - :param qwt.plot_seriesitem.QwtPlotSeriesItem seriesItem: Item to be painted + :param qwt.plot_series.QwtPlotSeriesItem seriesItem: Item to be painted :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the series will be painted to its last point. """ diff --git a/qwt/plot_series.py b/qwt/plot_series.py new file mode 100644 index 0000000..1dd1719 --- /dev/null +++ b/qwt/plot_series.py @@ -0,0 +1,346 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the terms of the Qwt License +# Copyright (c) 2002 Uwe Rathmann, for the original C++ code +# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization +# (see LICENSE file for more details) + +""" +Plotting series item +-------------------- + +QwtPlotSeriesItem +~~~~~~~~~~~~~~~~~ + +.. autoclass:: QwtPlotSeriesItem + :members: + +QwtSeriesData +~~~~~~~~~~~~~ + +.. autoclass:: QwtSeriesData + :members: + +QwtPointArrayData +~~~~~~~~~~~~~~~~~ + +.. autoclass:: QwtPointArrayData + :members: + +QwtSeriesStore +~~~~~~~~~~~~~~ + +.. autoclass:: QwtSeriesStore + :members: +""" + +import numpy as np + +from qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData +from qwt.text import QwtText + +from qwt.qt.QtCore import Qt, QRectF, QPointF + + +class QwtPlotSeriesItem_PrivateData(QwtPlotItem_PrivateData): + def __init__(self): + QwtPlotItem_PrivateData.__init__(self) + self.orientation = Qt.Vertical + + +class QwtPlotSeriesItem(QwtPlotItem): + """ + Base class for plot items representing a series of samples + """ + def __init__(self, title): + if not isinstance(title, QwtText): + title = QwtText(title) + QwtPlotItem.__init__(self, title) + self.__data = QwtPlotSeriesItem_PrivateData() + + def setOrientation(self, orientation): + """ + Set the orientation of the item. + + The `orientation()` might be used in specific way by a plot item. + F.e. a QwtPlotCurve uses it to identify how to display the curve + int `QwtPlotCurve.Steps` or `QwtPlotCurve.Sticks` style. + + .. seealso:: + + :py:meth`orientation()` + """ + if self.__data.orientation != orientation: + self.__data.orientation = orientation + self.legendChanged() + self.itemChanged() + + def orientation(self): + """ + :return: Orientation of the plot item + + .. seealso:: + + :py:meth`setOrientation()` + """ + return self.__data.orientation + + def draw(self, painter, xMap, yMap, canvasRect): + """ + Draw the complete series + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + """ + self.drawSeries(painter, xMap, yMap, canvasRect, 0, -1) + + def boundingRect(self): + return self.dataRect() + + def updateScaleDiv(self, xScaleDiv, yScaleDiv): + rect = QRectF(xScaleDiv.lowerBound(), yScaleDiv.lowerBound(), + xScaleDiv.range(), yScaleDiv.range()) + self.setRectOfInterest(rect) + + def dataChanged(self): + self.itemChanged() + + + +class QwtSeriesData(object): + """ + Abstract interface for iterating over samples + + `PythonQwt` offers several implementations of the QwtSeriesData API, + but in situations, where data of an application specific format + needs to be displayed, without having to copy it, it is recommended + to implement an individual data access. + + A subclass of `QwtSeriesData` must implement: + + - size(): + + Should return number of data points. + + - sample() + + Should return values x and y values of the sample at specific position + as QPointF object. + + - boundingRect() + + Should return the bounding rectangle of the data series. + It is used for autoscaling and might help certain algorithms for + displaying the data. + The member `_boundingRect` is intended for caching the calculated + rectangle. + """ + def __init__(self): + self._boundingRect = QRectF(0.0, 0.0, -1.0, -1.0) + + def setRectOfInterest(self, rect): + """ + Set a the "rect of interest" + + QwtPlotSeriesItem defines the current area of the plot canvas + as "rectangle of interest" ( QwtPlotSeriesItem::updateScaleDiv() ). + It can be used to implement different levels of details. + + The default implementation does nothing. + + :param QRectF rect: Rectangle of interest + """ + pass + + def size(self): + """ + :return: Number of samples + """ + pass + + def sample(self, i): + """ + Return a sample + + :param int i: Index + :return: Sample at position i + """ + pass + + def boundingRect(self): + """ + Calculate the bounding rect of all samples + + The bounding rect is necessary for autoscaling and can be used + for a couple of painting optimizations. + + :return: Bounding rectangle + """ + pass + + +class QwtPointArrayData(QwtSeriesData): + """ + Interface for iterating over two array objects + + .. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None]) + + :param x: Array of x values + :type x: list or tuple or numpy.array + :param y: Array of y values + :type y: list or tuple or numpy.array + :param int size: Size of the x and y arrays + """ + def __init__(self, x=None, y=None, size=None): + QwtSeriesData.__init__(self) + if x is None and y is not None: + x = np.arange(len(y)) + elif y is None and x is not None: + y = x + x = np.arange(len(y)) + elif x is None and y is None: + x = np.array([]) + y = np.array([]) + if isinstance(x, (tuple, list)): + x = np.array(x) + if isinstance(y, (tuple, list)): + y = np.array(y) + if size is not None: + x = np.resize(x, (size, )) + y = np.resize(y, (size, )) + self.__x = x + self.__y = y + + def boundingRect(self): + """ + Calculate the bounding rectangle + + The bounding rectangle is calculated once by iterating over all + points and is stored for all following requests. + + :return: Bounding rectangle + """ + xmin = self.__x.min() + xmax = self.__x.max() + ymin = self.__y.min() + ymax = self.__y.max() + return QRectF(xmin, ymin, xmax-xmin, ymax-ymin) + + def size(self): + """ + :return: Size of the data set + """ + return min([self.__x.size, self.__y.size]) + + def sample(self, index): + """ + :param int index: Index + :return: Sample at position `index` + """ + return QPointF(self.__x[index], self.__y[index]) + + def xData(self): + """ + :return: Array of the x-values + """ + return self.__x + + def yData(self): + """ + :return: Array of the y-values + """ + return self.__y + + + +class QwtSeriesStore(object): + """ + Class storing a `QwtSeriesData` object + + `QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for + all plot items iterating over a series of samples. + """ + def __init__(self): + self.__series = None + + def setData(self, series): + """ + Assign a series of samples + + :param qwt.plot_series.QwtSeriesData series: Data + + .. warning:: + + The item takes ownership of the data object, deleting it + when its not used anymore. + """ + if self.__series != series: + self.__series = series + self.dataChanged() + + def data(self): + """ + :return: the series data + """ + return self.__series + + def sample(self, index): + """ + :param int index: Index + :return: Sample at position index + """ + if self.__series: + return self.__series.sample(index) + else: + return + + def dataSize(self): + """ + :return: Number of samples of the series + + .. seealso:: + + :py:meth:`setData()`, + :py:meth:`qwt.plot_series.QwtSeriesData.size()` + """ + if self.__series is None: + return 0 + return self.__series.size() + + def dataRect(self): + """ + :return: Bounding rectangle of the series or an invalid rectangle, when no series is stored + + .. seealso:: + + :py:meth:`qwt.plot_series.QwtSeriesData.boundingRect()` + """ + if self.__series is None or self.dataSize() == 0: + return QRectF(1.0, 1.0, -2.0, -2.0) + return self.__series.boundingRect() + + def setRectOfInterest(self, rect): + """ + Set a the "rect of interest" for the series + + :param QRectF rect: Rectangle of interest + + .. seealso:: + + :py:meth:`qwt.plot_series.QwtSeriesData.setRectOfInterest()` + """ + if self.__series: + self.__series.setRectOfInterest(rect) + + def swapData(self, series): + """ + Replace a series without deleting the previous one + + :param qwt.plot_series.QwtSeriesData series: New series + :return: Previously assigned series + """ + swappedSeries = self.__series + self.__series = series + return swappedSeries \ No newline at end of file diff --git a/qwt/plot_seriesitem.py b/qwt/plot_seriesitem.py deleted file mode 100644 index f799460..0000000 --- a/qwt/plot_seriesitem.py +++ /dev/null @@ -1,85 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -""" -QwtPlotSeriesItem ------------------ - -.. autoclass:: QwtPlotSeriesItem - :members: -""" - -from qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData -from qwt.text import QwtText - -from qwt.qt.QtCore import Qt, QRectF - - -class QwtPlotSeriesItem_PrivateData(QwtPlotItem_PrivateData): - def __init__(self): - QwtPlotItem_PrivateData.__init__(self) - self.orientation = Qt.Vertical - - -class QwtPlotSeriesItem(QwtPlotItem): - """ - Base class for plot items representing a series of samples - """ - def __init__(self, title): - if not isinstance(title, QwtText): - title = QwtText(title) - QwtPlotItem.__init__(self, title) - self.__data = QwtPlotSeriesItem_PrivateData() - - def setOrientation(self, orientation): - """ - Set the orientation of the item. - - The `orientation()` might be used in specific way by a plot item. - F.e. a QwtPlotCurve uses it to identify how to display the curve - int `QwtPlotCurve.Steps` or `QwtPlotCurve.Sticks` style. - - .. seealso:: - - :py:meth`orientation()` - """ - if self.__data.orientation != orientation: - self.__data.orientation = orientation - self.legendChanged() - self.itemChanged() - - def orientation(self): - """ - :return: Orientation of the plot item - - .. seealso:: - - :py:meth`setOrientation()` - """ - return self.__data.orientation - - def draw(self, painter, xMap, yMap, canvasRect): - """ - Draw the complete series - - :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. - :param QRectF canvasRect: Contents rectangle of the canvas - """ - self.drawSeries(painter, xMap, yMap, canvasRect, 0, -1) - - def boundingRect(self): - return self.dataRect() - - def updateScaleDiv(self, xScaleDiv, yScaleDiv): - rect = QRectF(xScaleDiv.lowerBound(), yScaleDiv.lowerBound(), - xScaleDiv.range(), yScaleDiv.range()) - self.setRectOfInterest(rect) - - def dataChanged(self): - self.itemChanged() diff --git a/qwt/series_data.py b/qwt/series_data.py deleted file mode 100644 index 2f455e2..0000000 --- a/qwt/series_data.py +++ /dev/null @@ -1,172 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -""" -Series data ------------ - -QwtSeriesData -~~~~~~~~~~~~~ - -.. autoclass:: QwtSeriesData - :members: - -QwtPointArrayData -~~~~~~~~~~~~~~~~~ - -.. autoclass:: QwtPointArrayData - :members: -""" - -from qwt.qt.QtCore import QRectF, QPointF - -import numpy as np - - -class QwtSeriesData(object): - """ - Abstract interface for iterating over samples - - `PythonQwt` offers several implementations of the QwtSeriesData API, - but in situations, where data of an application specific format - needs to be displayed, without having to copy it, it is recommended - to implement an individual data access. - - A subclass of `QwtSeriesData` must implement: - - - size(): - - Should return number of data points. - - - sample() - - Should return values x and y values of the sample at specific position - as QPointF object. - - - boundingRect() - - Should return the bounding rectangle of the data series. - It is used for autoscaling and might help certain algorithms for - displaying the data. - The member `_boundingRect` is intended for caching the calculated - rectangle. - """ - def __init__(self): - self._boundingRect = QRectF(0.0, 0.0, -1.0, -1.0) - - def setRectOfInterest(self, rect): - """ - Set a the "rect of interest" - - QwtPlotSeriesItem defines the current area of the plot canvas - as "rectangle of interest" ( QwtPlotSeriesItem::updateScaleDiv() ). - It can be used to implement different levels of details. - - The default implementation does nothing. - - :param QRectF rect: Rectangle of interest - """ - pass - - def size(self): - """ - :return: Number of samples - """ - pass - - def sample(self, i): - """ - Return a sample - - :param int i: Index - :return: Sample at position i - """ - pass - - def boundingRect(self): - """ - Calculate the bounding rect of all samples - - The bounding rect is necessary for autoscaling and can be used - for a couple of painting optimizations. - - :return: Bounding rectangle - """ - pass - - -class QwtPointArrayData(QwtSeriesData): - """ - Interface for iterating over two array objects - - .. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None]) - - :param x: Array of x values - :type x: list or tuple or numpy.array - :param y: Array of y values - :type y: list or tuple or numpy.array - :param int size: Size of the x and y arrays - """ - def __init__(self, x=None, y=None, size=None): - QwtSeriesData.__init__(self) - if x is None and y is not None: - x = np.arange(len(y)) - elif y is None and x is not None: - y = x - x = np.arange(len(y)) - elif x is None and y is None: - x = np.array([]) - y = np.array([]) - if isinstance(x, (tuple, list)): - x = np.array(x) - if isinstance(y, (tuple, list)): - y = np.array(y) - if size is not None: - x = np.resize(x, (size, )) - y = np.resize(y, (size, )) - self.__x = x - self.__y = y - - def boundingRect(self): - """ - Calculate the bounding rectangle - - The bounding rectangle is calculated once by iterating over all - points and is stored for all following requests. - - :return: Bounding rectangle - """ - xmin = self.__x.min() - xmax = self.__x.max() - ymin = self.__y.min() - ymax = self.__y.max() - return QRectF(xmin, ymin, xmax-xmin, ymax-ymin) - - def size(self): - """ - :return: Size of the data set - """ - return min([self.__x.size, self.__y.size]) - - def sample(self, index): - """ - :param int index: Index - :return: Sample at position `index` - """ - return QPointF(self.__x[index], self.__y[index]) - - def xData(self): - """ - :return: Array of the x-values - """ - return self.__x - - def yData(self): - """ - :return: Array of the y-values - """ - return self.__y diff --git a/qwt/series_store.py b/qwt/series_store.py deleted file mode 100644 index d2700ca..0000000 --- a/qwt/series_store.py +++ /dev/null @@ -1,107 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -""" -QwtSeriesStore --------------- - -.. autoclass:: QwtSeriesStore - :members: -""" - -from qwt.qt.QtCore import QRectF - - -class QwtSeriesStore(object): - """ - Class storing a `QwtSeriesData` object - - `QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for - all plot items iterating over a series of samples. - """ - def __init__(self): - self.__series = None - - def setData(self, series): - """ - Assign a series of samples - - :param qwt.series_data.QwtSeriesData series: Data - - .. warning:: - - The item takes ownership of the data object, deleting it - when its not used anymore. - """ - if self.__series != series: - self.__series = series - self.dataChanged() - - def data(self): - """ - :return: the series data - """ - return self.__series - - def sample(self, index): - """ - :param int index: Index - :return: Sample at position index - """ - if self.__series: - return self.__series.sample(index) - else: - return - - def dataSize(self): - """ - :return: Number of samples of the series - - .. seealso:: - - :py:meth:`setData()`, - :py:meth:`qwt.series_data.QwtSeriesData.size()` - """ - if self.__series is None: - return 0 - return self.__series.size() - - def dataRect(self): - """ - :return: Bounding rectangle of the series or an invalid rectangle, when no series is stored - - .. seealso:: - - :py:meth:`qwt.series_data.QwtSeriesData.boundingRect()` - """ - if self.__series is None or self.dataSize() == 0: - return QRectF(1.0, 1.0, -2.0, -2.0) - return self.__series.boundingRect() - - def setRectOfInterest(self, rect): - """ - Set a the "rect of interest" for the series - - :param QRectF rect: Rectangle of interest - - .. seealso:: - - :py:meth:`qwt.series_data.QwtSeriesData.setRectOfInterest()` - """ - if self.__series: - self.__series.setRectOfInterest(rect) - - def swapData(self, series): - """ - Replace a series without deleting the previous one - - :param qwt.series_data.QwtSeriesData series: New series - :return: Previously assigned series - """ - swappedSeries = self.__series - self.__series = series - return swappedSeries diff --git a/qwt/spline.py b/qwt/spline.py deleted file mode 100644 index 386f39c..0000000 --- a/qwt/spline.py +++ /dev/null @@ -1,114 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -from qwt.qt.QtGui import QPolygonF - -import numpy as np - - -class QwtSpline_PrivateData(object): - def __init__(self): - self.splineType = QwtSpline.Natural - self.a = np.array([]) - self.b = np.array([]) - self.c = np.array([]) - self.points = QPolygonF() - - -def lookup(x, values): - size = values.size() - if x <= values[0].x(): - i1 = 0 - elif x >= values[size-2].x(): - i1 = size-2 - else: - i1 = 0 - i2 = size-2 - i3 = 0 - while i2-i1 > 1: - i3 = i1 + ((i2-i1) >> 1) - if values[i3].x() > x: - i2 = i3 - else: - i1 = i3 - return i1 - - -class QwtSpline(object): - - # enum SplineType - Natural, Periodic = list(range(2)) - - def __init__(self, other=None): - if other is not None: - self.__data = other.__data - else: - self.__data = QwtSpline_PrivateData() - - def setSplineType(self, splineType): - self.__data.splineType = splineType - - def splineType(self): - return self.__data.splineType - - def setPoints(self, points): - """points: QPolygonF""" - size = points.size() - if size <= 2: - self.reset() - return False - self.__data.points = points - self.__data.a.resize(size-1) - self.__data.b.resize(size-1) - self.__data.c.resize(size-1) - if self.__data.splineType == self.Periodic: - ok = self.buildPeriodicSpline(points) - else: - ok = self.buildNaturalSpline(points) - if not ok: - self.reset() - return ok - - def points(self): - return self.__data.points - - def coefficientsA(self): - return self.__data.a - - def coefficientsB(self): - return self.__data.b - - def coefficientsC(self): - return self.__data.c - - def reset(self): - self.__data.a = np.array([]) - self.__data.b = np.array([]) - self.__data.c = np.array([]) - self.__data.points.resize(0) - - def isValid(self): - return len(self.__data.a) > 0 - - def value(self, x): - if len(self.__data.a) == 0: - return 0. - i = lookup(x, self.__data.points) - delta = x - self.__data.points[i].x() - return ((self.__data.a[i]*delta + self.__data.b[i])\ - *delta + self.__data.c[i])*delta + self.__data.points[i].y() - - def buildNaturalSpline(self, points): - #TODO: to be implemented (!!! performance issue !!!)--> scipy ? - raise NotImplementedError - - def buildPeriodicSpline(self, points): - #TODO: to be implemented (!!! performance issue !!!)--> scipy ? - raise NotImplementedError - - - \ No newline at end of file diff --git a/qwt/text.py b/qwt/text.py index 57c6116..30f2dbf 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -6,27 +6,373 @@ # (see LICENSE file for more details) """ +Text widgets +------------ + QwtText -------- +~~~~~~~ .. autoclass:: QwtText :members: QwtTextLabel ------------- +~~~~~~~~~~~~ .. autoclass:: QwtTextLabel :members: + +Text engine +~~~~~~~~~~~ + +.. autoclass:: QwtTextEngine + :members: + +.. autoclass:: QwtPlainTextEngine + :members: + +.. autoclass:: QwtRichTextEngine + :members: """ -from qwt.painter import QwtPainter -from qwt.text_engine import QwtPlainTextEngine, QwtRichTextEngine +import numpy as np +import struct from qwt.qt.QtGui import (QPainter, QFrame, QSizePolicy, QPalette, QFont, - QFontMetrics, QApplication, QColor, QWidget) + QFontMetrics, QApplication, QColor, QWidget, + QTextDocument, QTextOption, QFontMetricsF, QPixmap) from qwt.qt.QtCore import Qt, QSizeF, QSize, QRectF -import numpy as np +from qwt.painter import QwtPainter + +QWIDGETSIZE_MAX = (1<<24)-1 + + +def taggedRichText(text, flags): + richText = text + if flags & Qt.AlignJustify: + richText = "

" + elif flags & Qt.AlignRight: + richText = "
" + richText + "
" + elif flags & Qt.AlignHCenter: + richText = "
" + richText + "
" + return richText + + +class QwtRichTextDocument(QTextDocument): + def __init__(self, text, flags, font): + super(QwtRichTextDocument, self).__init__(None) + self.setUndoRedoEnabled(False) + self.setDefaultFont(font) + self.setHtml(text) + + option = self.defaultTextOption() + if flags & Qt.TextWordWrap: + option.setWrapMode(QTextOption.WordWrap) + else: + option.setWrapMode(QTextOption.NoWrap) + + option.setAlignment(flags) + self.setDefaultTextOption(option) + + root = self.rootFrame() + fm = root.frameFormat() + fm.setBorder(0) + fm.setMargin(0) + fm.setPadding(0) + fm.setBottomMargin(0) + fm.setLeftMargin(0) + root.setFrameFormat(fm) + + self.adjustSize(); + + +class QwtTextEngine(object): + """ + Abstract base class for rendering text strings + + A text engine is responsible for rendering texts for a + specific text format. They are used by `QwtText` to render a text. + + `QwtPlainTextEngine` and `QwtRichTextEngine` are part of the + `PythonQwt` library. + The implementation of `QwtMathMLTextEngine` uses code from the + `Qt` solution package. Because of license implications it is built into + a separate library. + + .. seealso:: + + :py:meth:`qwt.text.QwtText.setTextEngine()` + """ + def __init__(self): + pass + + def heightForWidth(self, font, flags, text, width): + """ + Find the height for a given width + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags used like in QPainter::drawText + :param str text: Text to be rendered + :param float width: Width + :return: Calculated height + """ + pass + + def textSize(self, font, flags, text): + """ + Returns the size, that is needed to render text + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags like in for QPainter::drawText + :param str text: Text to be rendered + :return: Calculated size + """ + pass + + def mightRender(self, text): + """ + Test if a string can be rendered by this text engine + + :param str text: Text to be tested + :return: True, if it can be rendered + """ + pass + + def textMargins(self, font): + """ + Return margins around the texts + + The textSize might include margins around the + text, like QFontMetrics::descent(). In situations + where texts need to be aligned in detail, knowing + these margins might improve the layout calculations. + + :param QFont font: Font of the text + :return: tuple (left, right, top, bottom) representing margins + """ + pass + + def draw(self, painter, rect, flags, text): + """ + Draw the text in a clipping rectangle + + :param QPainter painter: Painter + :param QRectF rect: Clipping rectangle + :param int flags: Bitwise OR of the flags like in for QPainter::drawText() + :param str text: Text to be rendered + """ + pass + + +ASCENTCACHE = {} + +class QwtPlainTextEngine(QwtTextEngine): + """ + A text engine for plain texts + + `QwtPlainTextEngine` renders texts using the basic `Qt` classes + `QPainter` and `QFontMetrics`. + """ + def __init__(self): + self.qrectf_max = QRectF(0, 0, QWIDGETSIZE_MAX, QWIDGETSIZE_MAX) + self._fm_cache = {} + self._fm_cache_f = {} + + def fontmetrics(self, font): + fid = font.toString() + fm = self._fm_cache.get(fid) + if fm is None: + return self._fm_cache.setdefault(fid, QFontMetrics(font)) + else: + return fm + + def fontmetrics_f(self, font): + fid = font.toString() + fm = self._fm_cache_f.get(fid) + if fm is None: + return self._fm_cache_f.setdefault(fid, QFontMetricsF(font)) + else: + return fm + + def heightForWidth(self, font, flags, text, width): + """ + Find the height for a given width + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags used like in QPainter::drawText + :param str text: Text to be rendered + :param float width: Width + :return: Calculated height + """ + fm = self.fontmetrics_f(font) + rect = fm.boundingRect(QRectF(0, 0, width, QWIDGETSIZE_MAX), + flags, text) + return rect.height() + + def textSize(self, font, flags, text): + """ + Returns the size, that is needed to render text + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags like in for QPainter::drawText + :param str text: Text to be rendered + :return: Calculated size + """ + fm = self.fontmetrics_f(font) + rect = fm.boundingRect(self.qrectf_max, flags, text) + return rect.size() + + def effectiveAscent(self, font): + global ASCENTCACHE + fontKey = font.key() + ascent = ASCENTCACHE.get(fontKey) + if ascent is not None: + return ascent + return ASCENTCACHE.setdefault(fontKey, self.findAscent(font)) + + def findAscent(self, font): + dummy = "E" + white = QColor(Qt.white) + + fm = self.fontmetrics(font) + pm = QPixmap(fm.width(dummy), fm.height()) + pm.fill(white) + + p = QPainter(pm) + p.setFont(font) + p.drawText(0, 0, pm.width(), pm.height(), 0, dummy) + p.end() + + img = pm.toImage() + + w = pm.width() + linebytes = w*4 + for row in range(img.height()): + line = img.scanLine(row).asstring(linebytes) + for col in range(w): + color = struct.unpack('I', line[col*4:(col+1)*4])[0] + if color != white.rgb(): + return fm.ascent()-row+1 + return fm.ascent() + + def textMargins(self, font): + """ + Return margins around the texts + + The textSize might include margins around the + text, like QFontMetrics::descent(). In situations + where texts need to be aligned in detail, knowing + these margins might improve the layout calculations. + + :param QFont font: Font of the text + :return: tuple (left, right, top, bottom) representing margins + """ + left = right = top = 0 + fm = self.fontmetrics_f(font) + top = fm.ascent() - self.effectiveAscent(font) + bottom = fm.descent() + return left, right, top, bottom + + def draw(self, painter, rect, flags, text): + """ + Draw the text in a clipping rectangle + + :param QPainter painter: Painter + :param QRectF rect: Clipping rectangle + :param int flags: Bitwise OR of the flags like in for QPainter::drawText() + :param str text: Text to be rendered + """ + QwtPainter.drawText(painter, rect, flags, text) + + def mightRender(self, text): + """ + Test if a string can be rendered by this text engine + + :param str text: Text to be tested + :return: True, if it can be rendered + """ + return True + + +class QwtRichTextEngine(QwtTextEngine): + """ + A text engine for `Qt` rich texts + + `QwtRichTextEngine` renders `Qt` rich texts using the classes + of the Scribe framework of `Qt`. + """ + def __init__(self): + pass + + def heightForWidth(self, font, flags, text, width): + """ + Find the height for a given width + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags used like in QPainter::drawText + :param str text: Text to be rendered + :param float width: Width + :return: Calculated height + """ + doc = QwtRichTextDocument(text, flags, font) + doc.setPageSize(QSizeF(width, QWIDGETSIZE_MAX)) + return doc.documentLayout().documentSize().height() + + def textSize(self, font, flags, text): + """ + Returns the size, that is needed to render text + + :param QFont font: Font of the text + :param int flags: Bitwise OR of the flags like in for QPainter::drawText + :param str text: Text to be rendered + :return: Calculated size + """ + doc = QwtRichTextDocument(text, flags, font) + option = doc.defaultTextOption() + if option.wrapMode() != QTextOption.NoWrap: + option.setWrapMode(QTextOption.NoWrap) + doc.setDefaultTextOption(option) + doc.adjustSize() + return doc.size() + + def draw(self, painter, rect, flags, text): + """ + Draw the text in a clipping rectangle + + :param QPainter painter: Painter + :param QRectF rect: Clipping rectangle + :param int flags: Bitwise OR of the flags like in for QPainter::drawText() + :param str text: Text to be rendered + """ + doc = QwtRichTextDocument(text, flags, painter.font()) + QwtPainter.drawSimpleRichText(painter, rect, flags, doc) + + def taggedText(self, text, flags): + return self.taggedRichText(text,flags) + + def mightRender(self, text): + """ + Test if a string can be rendered by this text engine + + :param str text: Text to be tested + :return: True, if it can be rendered + """ + return Qt.mightBeRichText(text) + + def textMargins(self, font): + """ + Return margins around the texts + + The textSize might include margins around the + text, like QFontMetrics::descent(). In situations + where texts need to be aligned in detail, knowing + these margins might improve the layout calculations. + + :param QFont font: Font of the text + :return: tuple (left, right, top, bottom) representing margins + """ + return 0, 0, 0, 0 + class QwtText_PrivateData(object): @@ -85,7 +431,7 @@ class QwtText(object): ..seealso:: - :py:meth:`qwt.text_engine.QwtTextEngine`, + :py:meth:`qwt.text.QwtTextEngine`, :py:meth:`qwt.text.QwtTextLabel` Text formats: @@ -249,7 +595,7 @@ def setRenderFlags(self, renderFlags): .. seealso:: :py:meth:`renderFlags()`, - :py:meth:`qwt.text_engine.QwtTextEngine.draw()` + :py:meth:`qwt.text.QwtTextEngine.draw()` """ renderFlags = Qt.AlignmentFlag(renderFlags) if renderFlags != self.__data.renderFlags: @@ -614,7 +960,7 @@ def setTextEngine(self, format_, engine): For `QwtText.PlainText` it is not allowed to assign a engine to None. :param int format_: Text format - :param qwt.text_engine.QwtTextEngine engine: Text engine + :param qwt.text.QwtTextEngine engine: Text engine .. seealso:: @@ -631,6 +977,7 @@ def setTextEngine(self, format_, engine): self.__map.setdefault(format_, engine) + class QwtTextLabel_PrivateData(object): def __init__(self): self.indent = 4 diff --git a/qwt/text_engine.py b/qwt/text_engine.py deleted file mode 100644 index ddebed1..0000000 --- a/qwt/text_engine.py +++ /dev/null @@ -1,366 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -""" -Text engine ------------ - -QwtTextEngine -~~~~~~~~~~~~~ - -.. autoclass:: QwtTextEngine - :members: - -QwtPlainTextEngine -~~~~~~~~~~~~~~~~~~ - -.. autoclass:: QwtPlainTextEngine - :members: - -QwtRichTextEngine -~~~~~~~~~~~~~~~~~ - -.. autoclass:: QwtRichTextEngine - :members: -""" - -from qwt.painter import QwtPainter - -from qwt.qt.QtGui import (QTextDocument, QTextOption, QColor, QFontMetricsF, - QPixmap, QPainter, QFontMetrics) -from qwt.qt.QtCore import Qt, QRectF, QSizeF - -import struct - -QWIDGETSIZE_MAX = (1<<24)-1 - - -def taggedRichText(text, flags): - richText = text - if flags & Qt.AlignJustify: - richText = "
" + richText + "
" - elif flags & Qt.AlignRight: - richText = "
" + richText + "
" - elif flags & Qt.AlignHCenter: - richText = "
" + richText + "
" - return richText - - -class QwtRichTextDocument(QTextDocument): - def __init__(self, text, flags, font): - super(QwtRichTextDocument, self).__init__(None) - self.setUndoRedoEnabled(False) - self.setDefaultFont(font) - self.setHtml(text) - - option = self.defaultTextOption() - if flags & Qt.TextWordWrap: - option.setWrapMode(QTextOption.WordWrap) - else: - option.setWrapMode(QTextOption.NoWrap) - - option.setAlignment(flags) - self.setDefaultTextOption(option) - - root = self.rootFrame() - fm = root.frameFormat() - fm.setBorder(0) - fm.setMargin(0) - fm.setPadding(0) - fm.setBottomMargin(0) - fm.setLeftMargin(0) - root.setFrameFormat(fm) - - self.adjustSize(); - - -class QwtTextEngine(object): - """ - Abstract base class for rendering text strings - - A text engine is responsible for rendering texts for a - specific text format. They are used by `QwtText` to render a text. - - `QwtPlainTextEngine` and `QwtRichTextEngine` are part of the - `PythonQwt` library. - The implementation of `QwtMathMLTextEngine` uses code from the - `Qt` solution package. Because of license implications it is built into - a separate library. - - .. seealso:: - - :py:meth:`qwt.text.QwtText.setTextEngine()` - """ - def __init__(self): - pass - - def heightForWidth(self, font, flags, text, width): - """ - Find the height for a given width - - :param QFont font: Font of the text - :param int flags: Bitwise OR of the flags used like in QPainter::drawText - :param str text: Text to be rendered - :param float width: Width - :return: Calculated height - """ - pass - - def textSize(self, font, flags, text): - """ - Returns the size, that is needed to render text - - :param QFont font: Font of the text - :param int flags: Bitwise OR of the flags like in for QPainter::drawText - :param str text: Text to be rendered - :return: Calculated size - """ - pass - - def mightRender(self, text): - """ - Test if a string can be rendered by this text engine - - :param str text: Text to be tested - :return: True, if it can be rendered - """ - pass - - def textMargins(self, font): - """ - Return margins around the texts - - The textSize might include margins around the - text, like QFontMetrics::descent(). In situations - where texts need to be aligned in detail, knowing - these margins might improve the layout calculations. - - :param QFont font: Font of the text - :return: tuple (left, right, top, bottom) representing margins - """ - pass - - def draw(self, painter, rect, flags, text): - """ - Draw the text in a clipping rectangle - - :param QPainter painter: Painter - :param QRectF rect: Clipping rectangle - :param int flags: Bitwise OR of the flags like in for QPainter::drawText() - :param str text: Text to be rendered - """ - pass - - -ASCENTCACHE = {} - -class QwtPlainTextEngine(QwtTextEngine): - """ - A text engine for plain texts - - `QwtPlainTextEngine` renders texts using the basic `Qt` classes - `QPainter` and `QFontMetrics`. - """ - def __init__(self): - self.qrectf_max = QRectF(0, 0, QWIDGETSIZE_MAX, QWIDGETSIZE_MAX) - self._fm_cache = {} - self._fm_cache_f = {} - - def fontmetrics(self, font): - fid = font.toString() - fm = self._fm_cache.get(fid) - if fm is None: - return self._fm_cache.setdefault(fid, QFontMetrics(font)) - else: - return fm - - def fontmetrics_f(self, font): - fid = font.toString() - fm = self._fm_cache_f.get(fid) - if fm is None: - return self._fm_cache_f.setdefault(fid, QFontMetricsF(font)) - else: - return fm - - def heightForWidth(self, font, flags, text, width): - """ - Find the height for a given width - - :param QFont font: Font of the text - :param int flags: Bitwise OR of the flags used like in QPainter::drawText - :param str text: Text to be rendered - :param float width: Width - :return: Calculated height - """ - fm = self.fontmetrics_f(font) - rect = fm.boundingRect(QRectF(0, 0, width, QWIDGETSIZE_MAX), - flags, text) - return rect.height() - - def textSize(self, font, flags, text): - """ - Returns the size, that is needed to render text - - :param QFont font: Font of the text - :param int flags: Bitwise OR of the flags like in for QPainter::drawText - :param str text: Text to be rendered - :return: Calculated size - """ - fm = self.fontmetrics_f(font) - rect = fm.boundingRect(self.qrectf_max, flags, text) - return rect.size() - - def effectiveAscent(self, font): - global ASCENTCACHE - fontKey = font.key() - ascent = ASCENTCACHE.get(fontKey) - if ascent is not None: - return ascent - return ASCENTCACHE.setdefault(fontKey, self.findAscent(font)) - - def findAscent(self, font): - dummy = "E" - white = QColor(Qt.white) - - fm = self.fontmetrics(font) - pm = QPixmap(fm.width(dummy), fm.height()) - pm.fill(white) - - p = QPainter(pm) - p.setFont(font) - p.drawText(0, 0, pm.width(), pm.height(), 0, dummy) - p.end() - - img = pm.toImage() - - w = pm.width() - linebytes = w*4 - for row in range(img.height()): - line = img.scanLine(row).asstring(linebytes) - for col in range(w): - color = struct.unpack('I', line[col*4:(col+1)*4])[0] - if color != white.rgb(): - return fm.ascent()-row+1 - return fm.ascent() - - def textMargins(self, font): - """ - Return margins around the texts - - The textSize might include margins around the - text, like QFontMetrics::descent(). In situations - where texts need to be aligned in detail, knowing - these margins might improve the layout calculations. - - :param QFont font: Font of the text - :return: tuple (left, right, top, bottom) representing margins - """ - left = right = top = 0 - fm = self.fontmetrics_f(font) - top = fm.ascent() - self.effectiveAscent(font) - bottom = fm.descent() - return left, right, top, bottom - - def draw(self, painter, rect, flags, text): - """ - Draw the text in a clipping rectangle - - :param QPainter painter: Painter - :param QRectF rect: Clipping rectangle - :param int flags: Bitwise OR of the flags like in for QPainter::drawText() - :param str text: Text to be rendered - """ - QwtPainter.drawText(painter, rect, flags, text) - - def mightRender(self, text): - """ - Test if a string can be rendered by this text engine - - :param str text: Text to be tested - :return: True, if it can be rendered - """ - return True - - -class QwtRichTextEngine(QwtTextEngine): - """ - A text engine for `Qt` rich texts - - `QwtRichTextEngine` renders `Qt` rich texts using the classes - of the Scribe framework of `Qt`. - """ - def __init__(self): - pass - - def heightForWidth(self, font, flags, text, width): - """ - Find the height for a given width - - :param QFont font: Font of the text - :param int flags: Bitwise OR of the flags used like in QPainter::drawText - :param str text: Text to be rendered - :param float width: Width - :return: Calculated height - """ - doc = QwtRichTextDocument(text, flags, font) - doc.setPageSize(QSizeF(width, QWIDGETSIZE_MAX)) - return doc.documentLayout().documentSize().height() - - def textSize(self, font, flags, text): - """ - Returns the size, that is needed to render text - - :param QFont font: Font of the text - :param int flags: Bitwise OR of the flags like in for QPainter::drawText - :param str text: Text to be rendered - :return: Calculated size - """ - doc = QwtRichTextDocument(text, flags, font) - option = doc.defaultTextOption() - if option.wrapMode() != QTextOption.NoWrap: - option.setWrapMode(QTextOption.NoWrap) - doc.setDefaultTextOption(option) - doc.adjustSize() - return doc.size() - - def draw(self, painter, rect, flags, text): - """ - Draw the text in a clipping rectangle - - :param QPainter painter: Painter - :param QRectF rect: Clipping rectangle - :param int flags: Bitwise OR of the flags like in for QPainter::drawText() - :param str text: Text to be rendered - """ - doc = QwtRichTextDocument(text, flags, painter.font()) - QwtPainter.drawSimpleRichText(painter, rect, flags, doc) - - def taggedText(self, text, flags): - return self.taggedRichText(text,flags) - - def mightRender(self, text): - """ - Test if a string can be rendered by this text engine - - :param str text: Text to be tested - :return: True, if it can be rendered - """ - return Qt.mightBeRichText(text) - - def textMargins(self, font): - """ - Return margins around the texts - - The textSize might include margins around the - text, like QFontMetrics::descent(). In situations - where texts need to be aligned in detail, knowing - these margins might improve the layout calculations. - - :param QFont font: Font of the text - :return: tuple (left, right, top, bottom) representing margins - """ - return 0, 0, 0, 0 From 60e9fdf89ba280b26a27bee951959d07647a41de Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 29 Oct 2015 10:57:30 +0100 Subject: [PATCH 061/421] Updated changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e114b2..72d4607 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,8 @@ ## Version 0.5.0 Various optimizations -Added QwtScaleDraw.setFixedSize/fixedSize methods to set the new fixed size option (see documentation) +Major API simplification, taking into account the feature that won't be implemented (fitting, rounding, weeding out points, clipping, etc.) +Added QwtScaleDraw.setLabelAutoSize/labelAutoSize methods to set the new auto size option (see documentation) ## Version 0.4.0 From dfe71c54c13f705599800ab98823859d59af80f0 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 29 Oct 2015 11:37:17 +0100 Subject: [PATCH 062/421] Code cleaning/refactoring following recent major API change --- qwt/painter.py | 158 ++++++--------------------------------------- qwt/plot_curve.py | 26 +++----- qwt/plot_grid.py | 4 +- qwt/plot_marker.py | 10 ++- qwt/scale_draw.py | 16 ++--- qwt/symbol.py | 18 +++--- qwt/text.py | 58 +++++++++++++++-- 7 files changed, 104 insertions(+), 186 deletions(-) diff --git a/qwt/painter.py b/qwt/painter.py index 05d027b..b9e38bf 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -16,41 +16,14 @@ from qwt.color_map import QwtColorMap from qwt.scale_map import QwtScaleMap -from qwt.qt.QtGui import (QPaintEngine, QApplication, QFont, QFontInfo, QFrame, - QPixmap, QPainter, QPolygonF, QPalette, QStyle, QPen, - QAbstractTextDocumentLayout, QStyleOptionFocusRect, - QBrush, QLinearGradient, QPainterPath, QColor, - QStyleOption, QTransform) -from qwt.qt.QtCore import (QSize, QRectF, Qt, QPointF, QSizeF, QRect, QPoint, - QT_VERSION) - -import numpy as np +from qwt.qt.QtGui import (QPaintEngine, QFrame, QPixmap, QPainter, QPalette, + QStyle, QPen, QStyleOptionFocusRect, QBrush, + QLinearGradient, QPainterPath, QColor, QStyleOption) +from qwt.qt.QtCore import Qt, QRect, QPoint, QT_VERSION QWIDGETSIZE_MAX = (1<<24)-1 -def qwtScreenResolution(): - screenResolution = QSize() - if not screenResolution.isValid(): - desktop = QApplication.desktop() - if desktop is not None: - screenResolution.setWidth(desktop.logicalDpiX()) - screenResolution.setHeight(desktop.logicalDpiY()) - return screenResolution - - -def qwtUnscaleFont(painter): - if painter.font().pixelSize() >= 0: - return - screenResolution = qwtScreenResolution() - pd = painter.device() - if pd.logicalDpiX() != screenResolution.width() or\ - pd.logicalDpiY() != screenResolution.height(): - pixelFont = QFont(painter.font(), QApplication.desktop()) - pixelFont.setPixelSize(QFontInfo(pixelFont).pixelSize()) - painter.setFont(pixelFont) - - def isX11GraphicsSystem(): pm = QPixmap(1, 1) painter = QPainter(pm) @@ -58,101 +31,23 @@ def isX11GraphicsSystem(): del painter return isX11 - -class QwtPainterClass(object): - """A collection of `QPainter` workarounds""" - - def drawText(self, *args): - if len(args) == 4: - if isinstance(args[1], (QRectF, QRect)): - painter, rect, flags, text = args - painter.save() - qwtUnscaleFont(painter) - painter.drawText(rect, flags, text) - painter.restore() - else: - painter, x, y, text = args - self.drawText(painter, QPointF(x, y), text) - elif len(args) == 3: - painter, pos, text = args - painter.save() - qwtUnscaleFont(painter) - painter.drawText(pos, text) - painter.restore() - elif len(args) == 7: - painter, x, y, w, h, flags, text = args - self.drawText(painter, QRectF( x, y, w, h ), flags, text) - else: - raise TypeError("QwtPainter.drawText() takes 3, 4 or 7 argument"\ - "(s) (%s given)" % len(args)) - - def drawSimpleRichText(self, painter, rect, flags, text): - """ - Draw a text document into a rectangle - - :param QPainter painter: Painter - :param QRectF rect: Target rectangle - :param int flags: Alignments/Text flags, see `QPainter.drawText()` - :param QTextDocument text: Text document - """ - txt = text.clone() +def qwtFillRect(widget, painter, rect, brush): + if brush.style() == Qt.TexturePattern: painter.save() - unscaledRect = QRectF(rect) - if painter.font().pixelSize() < 0: - res = qwtScreenResolution() - pd = painter.device() - if pd.logicalDpiX() != res.width()\ - or pd.logicalDpiY() != res.height(): - transform = QTransform() - transform.scale(res.width()/float(pd.logicalDpiX()), - res.height()/float(pd.logicalDpiY())) - painter.setWorldTransform(transform, True) - invtrans, _ok = transform.inverted() - unscaledRect = invtrans.mapRect(rect) - txt.setDefaultFont(painter.font()) - txt.setPageSize(QSizeF(unscaledRect.width(), QWIDGETSIZE_MAX)) - layout = txt.documentLayout() - height = layout.documentSize().height() - y = unscaledRect.y() - if flags & Qt.AlignBottom: - y += unscaledRect.height()-height - elif flags & Qt.AlignVCenter: - y += (unscaledRect.height()-height)/2 - context = QAbstractTextDocumentLayout.PaintContext() - context.palette.setColor(QPalette.Text, painter.pen().color()) - painter.translate(unscaledRect.x(), y) - layout.draw(painter, context) + painter.setClipRect(rect) + painter.drawTiledPixmap(rect, brush.texture(), rect.topLeft()) painter.restore() - - def drawLine(self, *args): - if len(args) == 3: - painter, p1, p2 = args - if isinstance(p1, QPointF): - p1 = p1.toPoint() - if isinstance(p2, QPointF): - p2 = p2.toPoint() - painter.drawLine(p1, p2) - elif len(args) == 5: - painter, x1, y1, x2, y2 = args - self.drawLine(painter, QPointF(x1, y1), QPointF(x2, y2)) - elif len(args) == 2: - painter, line = args - self.drawLine(painter, line.p1(), line.p2()) - else: - raise TypeError("QwtPainter.drawLine() takes 2, 3 or 5 argument"\ - "(s) (%s given)" % len(args)) + elif brush.gradient(): + painter.save() + painter.setClipRect(rect) + painter.fillRect(0, 0, widget.width(), widget.height(), brush) + painter.restore() + else: + painter.fillRect(rect, brush) - def drawPoints(self, painter, *args): - if len(args) == 2: - points, pointCount = args - else: - polygon, = args - points, pointCount = polygon.data(), polygon.size() - if isinstance(polygon, QPolygonF): - points.setsize(pointCount*np.finfo(float).dtype.itemsize) - else: - points.setsize(pointCount*np.iinfo(int).dtype.itemsize) - painter.drawPoints(polygon) + +class QwtPainterClass(object): + """A collection of `QPainter` workarounds""" def drawImage(self, painter, rect, image): alignedRect = rect.toAlignedRect() @@ -548,19 +443,4 @@ def backingStore(self, widget, size): pm.x11SetScreen(widget.x11Info().screen()) return pm -QwtPainter = QwtPainterClass() - - -def qwtFillRect(widget, painter, rect, brush): - if brush.style() == Qt.TexturePattern: - painter.save() - painter.setClipRect(rect) - painter.drawTiledPixmap(rect, brush.texture(), rect.topLeft()) - painter.restore() - elif brush.gradient(): - painter.save() - painter.setClipRect(rect) - painter.fillRect(0, 0, widget.width(), widget.height(), brush) - painter.restore() - else: - painter.fillRect(rect, brush) +QwtPainter = QwtPainterClass() \ No newline at end of file diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 3a9ce3e..7140ffa 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -51,18 +51,13 @@ def qwtVerifyRange(size, i1, i2): return i2-i1+1 -def series_to_polyline(xMap, yMap, series, from_, to, Polygon=None): +def series_to_polyline(xMap, yMap, series, from_, to): """ Convert series data to QPolygon(F) polyline """ - if Polygon is None: - Polygon = QPolygonF - polyline = Polygon(to-from_+1) + polyline = QPolygonF(to-from_+1) pointer = polyline.data() - if Polygon is QPolygonF: - dtype, tinfo = np.float, np.finfo - else: - dtype, tinfo = np.int, np.iinfo + dtype, tinfo = np.float, np.finfo # integers: = np.int, np.iinfo pointer.setsize(2*polyline.size()*tinfo(dtype).dtype.itemsize) memory = np.frombuffer(pointer, dtype) memory[:(to-from_)*2+1:2] = xMap.transform(series.xData()[from_:to+1]) @@ -525,9 +520,9 @@ def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): xi = xMap.transform(sample.x()) yi = yMap.transform(sample.y()) if o == Qt.Horizontal: - QwtPainter.drawLine(painter, x0, yi, xi, yi) + painter.drawLine(x0, yi, xi, yi) else: - QwtPainter.drawLine(painter, xi, y0, xi, yi) + painter.drawLine(xi, y0, xi, yi) painter.restore() def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): @@ -546,15 +541,12 @@ def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): :py:meth:`draw()`, :py:meth:`drawSticks()`, :py:meth:`drawSteps()`, :py:meth:`drawLines()` """ - color = painter.pen().color() - if painter.pen().style() == Qt.NoPen or color.alpha() == 0: - return doFill = self.__data.brush.style() != Qt.NoBrush\ and self.__data.brush.color().alpha() > 0 - points = series_to_polyline(xMap, yMap, self.data(), from_, to) - QwtPainter.drawPoints(painter, points) + polyline = series_to_polyline(xMap, yMap, self.data(), from_, to) + painter.drawPoints(polyline) if doFill: - self.fillCurve(painter, xMap, yMap, canvasRect, points) + self.fillCurve(painter, xMap, yMap, canvasRect, polyline) def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): """ @@ -814,7 +806,7 @@ def legendIcon(self, index, size): # pn.setCapStyle(Qt.FlatCap) painter.setPen(pn) y = .5*size.height() - QwtPainter.drawLine(painter, 0., y, size.width(), y) + painter.drawLine(0., y, size.width(), y) if self.__data.legendAttributes & QwtPlotCurve.LegendShowSymbol: if self.__data.symbol: r = QRectF(0, 0, size.width(), size.height()) diff --git a/qwt/plot_grid.py b/qwt/plot_grid.py index 97e6400..1d8308b 100644 --- a/qwt/plot_grid.py +++ b/qwt/plot_grid.py @@ -307,11 +307,11 @@ def drawLines(self, painter, canvasRect, orientation, scaleMap, values): if orientation == Qt.Horizontal: if qwtFuzzyGreaterOrEqual(value, y1) and\ qwtFuzzyLessOrEqual(value, y2): - QwtPainter.drawLine(painter, x1, value, x2, value) + painter.drawLine(x1, value, x2, value) else: if qwtFuzzyGreaterOrEqual(value, x1) and\ qwtFuzzyLessOrEqual(value, x2): - QwtPainter.drawLine(painter, value, y1, value, y2) + painter.drawLine(value, y1, value, y2) def majorPen(self): """ diff --git a/qwt/plot_marker.py b/qwt/plot_marker.py index ebc70ba..6c10d79 100644 --- a/qwt/plot_marker.py +++ b/qwt/plot_marker.py @@ -173,12 +173,10 @@ def drawLines(self, painter, canvasRect, pos): painter.setPen(self.__data.pen) if self.__data.style in (QwtPlotMarker.HLine, QwtPlotMarker.Cross): y = pos.y() - QwtPainter.drawLine(painter, canvasRect.left(), - y, canvasRect.right()-1., y) + painter.drawLine(canvasRect.left(), y, canvasRect.right()-1., y) if self.__data.style in (QwtPlotMarker.VLine, QwtPlotMarker.Cross): x = pos.x() - QwtPainter.drawLine(painter, x, - canvasRect.top(), x, canvasRect.bottom()-1.) + painter.drawLine(x, canvasRect.top(), x, canvasRect.bottom()-1.) def drawLabel(self, painter, canvasRect, pos): """ @@ -522,10 +520,10 @@ def legendIcon(self, index, size): painter.setPen(self.__data.pen) if self.__data.style in (QwtPlotMarker.HLine, QwtPlotMarker.Cross): y = .5*size.height() - QwtPainter.drawLine(painter, 0., y, size.width(), y) + painter.drawLine(0., y, size.width(), y) if self.__data.style in (QwtPlotMarker.VLine, QwtPlotMarker.Cross): x = .5*size.width() - QwtPainter.drawLine(painter, x, 0., x, size.height()) + painter.drawLine(x, 0., x, size.height()) if self.__data.symbol: r = QRect(0, 0, size.width(), size.height()) self.__data.symbol.drawSymbol(painter, r) diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index 8498ad4..80d052a 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -769,19 +769,19 @@ def drawTick(self, painter, value, len_): if self.alignment() == self.LeftScale: x1 = pos.x() + a x2 = pos.x() + a - pw - len_ - QwtPainter.drawLine(painter, x1, tval, x2, tval) + painter.drawLine(x1, tval, x2, tval) elif self.alignment() == self.RightScale: x1 = pos.x() x2 = pos.x() + pw + len_ - QwtPainter.drawLine(painter, x1, tval, x2, tval) + painter.drawLine(x1, tval, x2, tval) elif self.alignment() == self.BottomScale: y1 = pos.y() y2 = pos.y() + pw + len_ - QwtPainter.drawLine(painter, tval, y1, tval, y2) + painter.drawLine(tval, y1, tval, y2) elif self.alignment() == self.TopScale: y1 = pos.y() + a y2 = pos.y() - pw - len_ + a - QwtPainter.drawLine(painter, tval, y1, tval, y2) + painter.drawLine(tval, y1, tval, y2) def drawBackbone(self, painter): """ @@ -798,16 +798,16 @@ def drawBackbone(self, painter): off = .5*self.penWidth() if self.alignment() == self.LeftScale: x = pos.x() - off - QwtPainter.drawLine(painter, x, pos.y(), x, pos.y()+len_) + painter.drawLine(x, pos.y(), x, pos.y()+len_) elif self.alignment() == self.RightScale: x = pos.x() + off - QwtPainter.drawLine(painter, x, pos.y(), x, pos.y()+len_) + painter.drawLine(x, pos.y(), x, pos.y()+len_) elif self.alignment() == self.TopScale: y = pos.y() - off - QwtPainter.drawLine(painter, pos.x(), y, pos.x()+len_, y) + painter.drawLine(pos.x(), y, pos.x()+len_, y) elif self.alignment() == self.BottomScale: y = pos.y() + off - QwtPainter.drawLine(painter, pos.x(), y, pos.x()+len_, y) + painter.drawLine(pos.x(), y, pos.x()+len_, y) def move(self, *args): """ diff --git a/qwt/symbol.py b/qwt/symbol.py index 0258163..d57e7ff 100644 --- a/qwt/symbol.py +++ b/qwt/symbol.py @@ -214,11 +214,11 @@ def qwtDrawLineSymbols(painter, orientations, points, numPoints, symbol): if orientations & Qt.Horizontal: x = round(pos.x())-sw2 y = round(pos.y()) - QwtPainter.drawLine(painter, x, y, x+sw, y) + painter.drawLine(x, y, x+sw, y) if orientations & Qt.Vertical: x = round(pos.x()) y = round(pos.y())-sh2 - QwtPainter.drawLine(painter, x, y, x, y+sh) + painter.drawLine(x, y, x, y+sh) def qwtDrawXCrossSymbols(painter, points, numPoints, symbol): @@ -236,8 +236,8 @@ def qwtDrawXCrossSymbols(painter, points, numPoints, symbol): x2 = x1+sw y1 = pos.y()-sh2 y2 = y1+sh - QwtPainter.drawLine(painter, x1, y1, x2, y2) - QwtPainter.drawLine(painter, x2, y1, x1, y2) + painter.drawLine(x1, y1, x2, y2) + painter.drawLine(x2, y1, x1, y2) def qwtDrawStar1Symbols(painter, points, numPoints, symbol): @@ -249,12 +249,10 @@ def qwtDrawStar1Symbols(painter, points, numPoints, symbol): r.moveCenter(pos.toPoint()) c = QPointF(r.center()) d1 = r.width()/2.*(1.-sqrt1_2) - QwtPainter.drawLine(painter, r.left()+d1, r.top()+d1, - r.right()-d1, r.bottom()-d1) - QwtPainter.drawLine(painter, r.left()+d1, r.bottom()-d1, - r.right()-d1, r.top()+d1) - QwtPainter.drawLine(painter, c.x(), r.top(), c.x(), r.bottom()) - QwtPainter.drawLine(painter, r.left(), c.y(), r.right(), c.y()) + painter.drawLine(r.left()+d1, r.top()+d1, r.right()-d1, r.bottom()-d1) + painter.drawLine(r.left()+d1, r.bottom()-d1, r.right()-d1, r.top()+d1) + painter.drawLine(c.x(), r.top(), c.x(), r.bottom()) + painter.drawLine(r.left(), c.y(), r.right(), c.y()) def qwtDrawStar2Symbols(painter, points, numPoints, symbol): diff --git a/qwt/text.py b/qwt/text.py index 30f2dbf..49f3d39 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -39,7 +39,8 @@ from qwt.qt.QtGui import (QPainter, QFrame, QSizePolicy, QPalette, QFont, QFontMetrics, QApplication, QColor, QWidget, - QTextDocument, QTextOption, QFontMetricsF, QPixmap) + QTextDocument, QTextOption, QFontMetricsF, QPixmap, + QFontInfo, QTransform, QAbstractTextDocumentLayout) from qwt.qt.QtCore import Qt, QSizeF, QSize, QRectF from qwt.painter import QwtPainter @@ -166,6 +167,26 @@ def draw(self, painter, rect, flags, text): ASCENTCACHE = {} +def qwtScreenResolution(): + screenResolution = QSize() + if not screenResolution.isValid(): + desktop = QApplication.desktop() + if desktop is not None: + screenResolution.setWidth(desktop.logicalDpiX()) + screenResolution.setHeight(desktop.logicalDpiY()) + return screenResolution + +def qwtUnscaleFont(painter): + if painter.font().pixelSize() >= 0: + return + screenResolution = qwtScreenResolution() + pd = painter.device() + if pd.logicalDpiX() != screenResolution.width() or\ + pd.logicalDpiY() != screenResolution.height(): + pixelFont = QFont(painter.font(), QApplication.desktop()) + pixelFont.setPixelSize(QFontInfo(pixelFont).pixelSize()) + painter.setFont(pixelFont) + class QwtPlainTextEngine(QwtTextEngine): """ A text engine for plain texts @@ -282,7 +303,10 @@ def draw(self, painter, rect, flags, text): :param int flags: Bitwise OR of the flags like in for QPainter::drawText() :param str text: Text to be rendered """ - QwtPainter.drawText(painter, rect, flags, text) + painter.save() + qwtUnscaleFont(painter) + painter.drawText(rect, flags, text) + painter.restore() def mightRender(self, text): """ @@ -344,8 +368,34 @@ def draw(self, painter, rect, flags, text): :param int flags: Bitwise OR of the flags like in for QPainter::drawText() :param str text: Text to be rendered """ - doc = QwtRichTextDocument(text, flags, painter.font()) - QwtPainter.drawSimpleRichText(painter, rect, flags, doc) + txt = QwtRichTextDocument(text, flags, painter.font()) + painter.save() + unscaledRect = QRectF(rect) + if painter.font().pixelSize() < 0: + res = qwtScreenResolution() + pd = painter.device() + if pd.logicalDpiX() != res.width()\ + or pd.logicalDpiY() != res.height(): + transform = QTransform() + transform.scale(res.width()/float(pd.logicalDpiX()), + res.height()/float(pd.logicalDpiY())) + painter.setWorldTransform(transform, True) + invtrans, _ok = transform.inverted() + unscaledRect = invtrans.mapRect(rect) + txt.setDefaultFont(painter.font()) + txt.setPageSize(QSizeF(unscaledRect.width(), QWIDGETSIZE_MAX)) + layout = txt.documentLayout() + height = layout.documentSize().height() + y = unscaledRect.y() + if flags & Qt.AlignBottom: + y += unscaledRect.height()-height + elif flags & Qt.AlignVCenter: + y += (unscaledRect.height()-height)/2 + context = QAbstractTextDocumentLayout.PaintContext() + context.palette.setColor(QPalette.Text, painter.pen().color()) + painter.translate(unscaledRect.x(), y) + layout.draw(painter, context) + painter.restore() def taggedText(self, text, flags): return self.taggedRichText(text,flags) From 98ded4b01c3d03e47912477ebeacd2f49bc8b196 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 29 Oct 2015 16:19:35 +0100 Subject: [PATCH 063/421] Minor documentation update --- qwt/text.py | 13 +++++++++++-- qwt/transform.py | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/qwt/text.py b/qwt/text.py index 49f3d39..04481ff 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -21,14 +21,23 @@ .. autoclass:: QwtTextLabel :members: -Text engine -~~~~~~~~~~~ +Text engines +------------ + +QwtTextEngine +~~~~~~~~~~~~~ .. autoclass:: QwtTextEngine :members: + +QwtPlainTextEngine +~~~~~~~~~~~~~~~~~~ .. autoclass:: QwtPlainTextEngine :members: + +QwtRichTextEngine +~~~~~~~~~~~~~~~~~ .. autoclass:: QwtRichTextEngine :members: diff --git a/qwt/transform.py b/qwt/transform.py index 6dd7dd3..0ab8b81 100644 --- a/qwt/transform.py +++ b/qwt/transform.py @@ -6,8 +6,8 @@ # (see LICENSE file for more details) """ -Coordinates tranformations --------------------------- +Coordinate tranformations +------------------------- QwtTransform ~~~~~~~~~~~~ From 5813e8288af7097085902e6a286132ddb58cfc07 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 1 Nov 2015 15:21:19 +0100 Subject: [PATCH 064/421] setup.py: requires --> install_requires + added extras_require --- setup.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 285dfd2..bf7da5c 100644 --- a/setup.py +++ b/setup.py @@ -113,7 +113,11 @@ def run(self): packages=get_subpackages(PACKAGE_NAME), package_data={PACKAGE_NAME: get_package_data(PACKAGE_NAME, ('.png', '.svg', '.mo'))}, - requires=["PyQt4 (>4.3)",], + install_requires=["PyQt4 (>4.3)", "NumPy (>=1.3)"], + extras_require = { + 'Doc': ["Sphinx>=1.1"], + 'Tests': ["guidata>=1.7.0"], + }, scripts=SCRIPTS, author = "Pierre Raybaut", author_email = 'pierre.raybaut@gmail.com', From 87d75250dd04232d65eb5ce285c4c37e414ce213 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 1 Nov 2015 15:46:20 +0100 Subject: [PATCH 065/421] Removed PyQt from install_requires + updated README, ... --- qwt/__init__.py | 5 ++++- setup.py | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/qwt/__init__.py b/qwt/__init__.py index 9eab578..b5040c5 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -9,7 +9,10 @@ ========= The ``PythonQwt`` package is a 2D-data plotting library using Qt graphical -user interfaces for the Python programming language. +user interfaces for the Python programming language. It is compatible with +both ``PyQt4`` and ``PyQt5`` (``PySide`` is currently not supported but it +could be in the near future as it would "only" requires testing to support +it as a stable alternative to PyQt). It consists of a single Python package named `qwt` which is a pure Python implementation of Qwt C++ library with some limitations. diff --git a/setup.py b/setup.py index bf7da5c..0fd7705 100644 --- a/setup.py +++ b/setup.py @@ -27,6 +27,12 @@ DESCRIPTION = 'Qt plotting widgets for Python' LONG_DESCRIPTION = """\ +The ``PythonQwt`` package is a 2D-data plotting library using Qt graphical +user interfaces for the Python programming language. It is compatible with +both ``PyQt4`` and ``PyQt5`` (``PySide`` is currently not supported but it +could be in the near future as it would "only" requires testing to support +it as a stable alternative to PyQt). + The ``PythonQwt`` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is no longer maintained. The idea was to translate the original Qwt C++ code to @@ -113,7 +119,7 @@ def run(self): packages=get_subpackages(PACKAGE_NAME), package_data={PACKAGE_NAME: get_package_data(PACKAGE_NAME, ('.png', '.svg', '.mo'))}, - install_requires=["PyQt4 (>4.3)", "NumPy (>=1.3)"], + install_requires=["NumPy (>=1.3)"], extras_require = { 'Doc': ["Sphinx>=1.1"], 'Tests': ["guidata>=1.7.0"], From 8546b37e9e3ecb42d78b63be4d3034ab9f0fda25 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Wed, 4 Nov 2015 23:03:42 +0100 Subject: [PATCH 066/421] Fixed setup.py's install_requires --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0fd7705..e29364d 100644 --- a/setup.py +++ b/setup.py @@ -119,7 +119,7 @@ def run(self): packages=get_subpackages(PACKAGE_NAME), package_data={PACKAGE_NAME: get_package_data(PACKAGE_NAME, ('.png', '.svg', '.mo'))}, - install_requires=["NumPy (>=1.3)"], + install_requires=["NumPy>=1.3"], extras_require = { 'Doc': ["Sphinx>=1.1"], 'Tests': ["guidata>=1.7.0"], From bc8052a792b7c1b84410bae3d9d4809d125b6aa2 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 5 Nov 2015 22:51:27 +0100 Subject: [PATCH 067/421] setup.py and build scripts: code cleaning/removed sphinx build from setup.py (use `python setup.py build_sphinx` to build doc instead) --- build.bat | 5 ++++- build_chm.bat => build_doc.bat | 0 build_doc_zip.bat | 6 ------ setup.py | 39 +--------------------------------- 4 files changed, 5 insertions(+), 45 deletions(-) rename build_chm.bat => build_doc.bat (100%) delete mode 100644 build_doc_zip.bat diff --git a/build.bat b/build.bat index 2b439cb..3bcfdcf 100644 --- a/build.bat +++ b/build.bat @@ -1,5 +1,8 @@ +del MANIFEST rmdir /S /Q build rmdir /S /Q dist -python setup.py build sdist +python setup.py build bdist_wininst --plat-name=win32 +python setup.py build bdist_wininst --plat-name=win-amd64 python setup.py sdist bdist_wheel --universal +python setup.py build sdist pause \ No newline at end of file diff --git a/build_chm.bat b/build_doc.bat similarity index 100% rename from build_chm.bat rename to build_doc.bat diff --git a/build_doc_zip.bat b/build_doc_zip.bat deleted file mode 100644 index 8602dfe..0000000 --- a/build_doc_zip.bat +++ /dev/null @@ -1,6 +0,0 @@ -del doc.zip -sphinx-build -b html doc doctmp -cd doctmp -7z a -r ..\doc.zip *.* -cd .. -rmdir /S /Q doctmp \ No newline at end of file diff --git a/setup.py b/setup.py index e29364d..efb5b1c 100644 --- a/setup.py +++ b/setup.py @@ -14,12 +14,10 @@ from __future__ import print_function import os -import sys import os.path as osp import setuptools # analysis:ignore from distutils.core import setup -from distutils.command.build import build LIBNAME = 'PythonQwt' PACKAGE_NAME = 'qwt' @@ -79,41 +77,6 @@ def get_subpackages(name): return splist -try: - import sphinx -except ImportError: - sphinx = None - -from distutils.command.build import build as dftbuild - -class build(dftbuild): - def has_doc(self): - if sphinx is None: - return False - setup_dir = os.path.dirname(os.path.abspath(__file__)) - return os.path.isdir(os.path.join(setup_dir, 'doc')) - sub_commands = dftbuild.sub_commands + [('build_doc', has_doc)] - -cmdclass = {'build' : build} - -if sphinx: - from sphinx.setup_command import BuildDoc - class build_doc(BuildDoc): - def run(self): - # make sure the python path is pointing to the newly built - # code so that the documentation is built on this and not a - # previously installed version - build = self.get_finalized_command('build') - sys.path.insert(0, os.path.abspath(build.build_lib)) - try: - sphinx.setup_command.BuildDoc.run(self) - except UnicodeDecodeError: - print("ERROR: unable to build documentation because Sphinx do not handle source path with non-ASCII characters. Please try to move the source package to another location (path with *only* ASCII characters).", file=sys.stderr) - sys.path.pop(0) - - cmdclass['build_doc'] = build_doc - - setup(name=LIBNAME, version=version, description=DESCRIPTION, long_description=LONG_DESCRIPTION, packages=get_subpackages(PACKAGE_NAME), @@ -143,4 +106,4 @@ def run(self): 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', ], - cmdclass=cmdclass) + ) From fd8ec232bce03f203579c560d35d764dfd2f1526 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 7 Nov 2015 09:40:44 +0100 Subject: [PATCH 068/421] Added Python2/Python3 scripts for running tests --- scripts/{PythonQwt-tests => PythonQwt-tests-py2} | 0 ...PythonQwt-tests.bat => PythonQwt-tests-py2.bat} | 0 scripts/PythonQwt-tests-py3 | 3 +++ scripts/PythonQwt-tests-py3.bat | 2 ++ setup.py | 14 +++++++++----- 5 files changed, 14 insertions(+), 5 deletions(-) rename scripts/{PythonQwt-tests => PythonQwt-tests-py2} (100%) rename scripts/{PythonQwt-tests.bat => PythonQwt-tests-py2.bat} (100%) create mode 100644 scripts/PythonQwt-tests-py3 create mode 100644 scripts/PythonQwt-tests-py3.bat diff --git a/scripts/PythonQwt-tests b/scripts/PythonQwt-tests-py2 similarity index 100% rename from scripts/PythonQwt-tests rename to scripts/PythonQwt-tests-py2 diff --git a/scripts/PythonQwt-tests.bat b/scripts/PythonQwt-tests-py2.bat similarity index 100% rename from scripts/PythonQwt-tests.bat rename to scripts/PythonQwt-tests-py2.bat diff --git a/scripts/PythonQwt-tests-py3 b/scripts/PythonQwt-tests-py3 new file mode 100644 index 0000000..460fb30 --- /dev/null +++ b/scripts/PythonQwt-tests-py3 @@ -0,0 +1,3 @@ +#!/usr/bin/env python3 +from qwt import tests +tests.run() \ No newline at end of file diff --git a/scripts/PythonQwt-tests-py3.bat b/scripts/PythonQwt-tests-py3.bat new file mode 100644 index 0000000..0aad2d4 --- /dev/null +++ b/scripts/PythonQwt-tests-py3.bat @@ -0,0 +1,2 @@ +@echo off +python "%~dpn0" %* \ No newline at end of file diff --git a/setup.py b/setup.py index efb5b1c..8a3060e 100644 --- a/setup.py +++ b/setup.py @@ -49,11 +49,15 @@ CLASSIFIERS += ['Development Status :: 3 - Alpha'] else: CLASSIFIERS += ['Development Status :: 5 - Production/Stable'] -if os.name == 'nt': - SCRIPTS = ['PythonQwt-tests', 'PythonQwt-tests.bat'] -else: - SCRIPTS = ['PythonQwt-tests'] -SCRIPTS = [osp.join('scripts', fname) for fname in SCRIPTS] + + +def _create_script_list(basename): + scripts = ['%s-py%d' % (basename, sys.version_info.major)] + if os.name == 'nt': + scripts.append('%s.bat' % scripts[0]) + return [osp.join('scripts', name) for name in scripts] + +SCRIPTS = _create_script_list('PythonQwt-tests') def get_package_data(name, extlist): From 766fb8db7ee1080d519339d5581e436e380d2400 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 7 Nov 2015 14:06:47 +0100 Subject: [PATCH 069/421] Showing curves/plots number in benchmarks to avoid any misinterpretation (see Issue #26) --- qwt/tests/CurveBenchmark.py | 21 +++++++++++++++------ qwt/tests/CurveStyles.py | 6 ++++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/qwt/tests/CurveBenchmark.py b/qwt/tests/CurveBenchmark.py index dc8cb68..a7f5b80 100644 --- a/qwt/tests/CurveBenchmark.py +++ b/qwt/tests/CurveBenchmark.py @@ -45,7 +45,9 @@ def __init__(self, title, xdata, ydata, style, symbol=None, *args): self.setTitle(title) self.setAxisTitle(QwtPlot.xBottom, 'x') self.setAxisTitle(QwtPlot.yLeft, 'y') + self.curve_nb = 0 for idx in range(1, 11): + self.curve_nb += 1 curve = QwtPlotCurve() curve.setPen(QPen(get_curve_color())) curve.setStyle(style) @@ -62,6 +64,8 @@ def __init__(self, title, xdata, ydata, style, symbol=None, *args): class BMWidget(QWidget): def __init__(self, points, *args, **kwargs): super(BMWidget, self).__init__() + self.plot_nb = 0 + self.curve_nb = 0 self.setup(points, *args, **kwargs) def params(self, *args, **kwargs): @@ -79,8 +83,11 @@ def setup(self, points, *args, **kwargs): layout = QGridLayout() nbcol, col, row = 2, 0, 0 for style, symbol in self.params(*args, **kwargs): - layout.addWidget(BMPlot(style, x, y, getattr(QwtPlotCurve, style), - symbol=symbol), row, col) + plot = BMPlot(style, x, y, getattr(QwtPlotCurve, style), + symbol=symbol) + layout.addWidget(plot, row, col) + self.plot_nb += 1 + self.curve_nb += plot.curve_nb col += 1 if col >= nbcol: row +=1 @@ -139,7 +146,7 @@ def __init__(self, max_n, parent=None, **kwargs): self.text.append("

Total elapsed time: %d ms" % (dt*1e3)) self.tabs.setCurrentIndex(0) - def process_iteration(self, title, widget, t0): + def process_iteration(self, title, description, widget, t0): self.tabs.addTab(widget, title) self.tabs.setCurrentWidget(widget) @@ -148,15 +155,17 @@ def process_iteration(self, title, widget, t0): time_str = "Elapsed time: %d ms" % ((time.time()-t0)*1000) widget.text.setText(time_str) - self.text.append("
%s:
%s" % (title, time_str)) + self.text.append("
%s:
%s" % (description, time_str)) def run_benchmark(self, max_n, **kwargs): for idx in range(4, -1, -1): points = max_n/10**idx - title = '%d points' % points t0 = time.time() widget = BMWidget(points, **kwargs) - self.process_iteration(title, widget, t0) + title = '%d points' % points + description = '%d plots with %d curves of %d points' % ( + widget.plot_nb, widget.curve_nb, points) + self.process_iteration(title, description, widget, t0) if __name__ == '__main__': diff --git a/qwt/tests/CurveStyles.py b/qwt/tests/CurveStyles.py index 5f0f038..4f42fd4 100644 --- a/qwt/tests/CurveStyles.py +++ b/qwt/tests/CurveStyles.py @@ -55,9 +55,11 @@ def run_benchmark(self, max_n, **kwargs): (True, False)*2): t0 = time.time() symtext = "with%s symbols" % ("" if symbols else "out") - title = '%d points, %s' % (points, symtext) widget = CSWidget(points, symbols, **kwargs) - self.process_iteration(title, widget, t0) + title = '%d points' % points + description = '%d plots with %d curves of %d points, %s' % ( + widget.plot_nb, widget.curve_nb, points, symtext) + self.process_iteration(title, description, widget, t0) if __name__ == '__main__': From d478a8dbc20c293f480c84fd15f6f29753504003 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 7 Nov 2015 15:10:14 +0100 Subject: [PATCH 070/421] setup.py: using setuptools "entry_points" instead of distutils "scripts" --- MANIFEST.in | 1 - scripts/PythonQwt-tests-py2 | 3 --- scripts/PythonQwt-tests-py2.bat | 2 -- scripts/PythonQwt-tests-py3 | 3 --- scripts/PythonQwt-tests-py3.bat | 2 -- setup.py | 14 ++++---------- 6 files changed, 4 insertions(+), 21 deletions(-) delete mode 100644 scripts/PythonQwt-tests-py2 delete mode 100644 scripts/PythonQwt-tests-py2.bat delete mode 100644 scripts/PythonQwt-tests-py3 delete mode 100644 scripts/PythonQwt-tests-py3.bat diff --git a/MANIFEST.in b/MANIFEST.in index 1c68899..343a96a 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,4 @@ recursive-include qwt *.png *.svg *.pot *.po *.mo *.dcm *.ui -recursive-include scripts *.* recursive-include src *.hpp *.cpp *.pyx recursive-include doc *.py *.rst *.png *.ico include MANIFEST.in diff --git a/scripts/PythonQwt-tests-py2 b/scripts/PythonQwt-tests-py2 deleted file mode 100644 index e5cff12..0000000 --- a/scripts/PythonQwt-tests-py2 +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env python -from qwt import tests -tests.run() \ No newline at end of file diff --git a/scripts/PythonQwt-tests-py2.bat b/scripts/PythonQwt-tests-py2.bat deleted file mode 100644 index 0aad2d4..0000000 --- a/scripts/PythonQwt-tests-py2.bat +++ /dev/null @@ -1,2 +0,0 @@ -@echo off -python "%~dpn0" %* \ No newline at end of file diff --git a/scripts/PythonQwt-tests-py3 b/scripts/PythonQwt-tests-py3 deleted file mode 100644 index 460fb30..0000000 --- a/scripts/PythonQwt-tests-py3 +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env python3 -from qwt import tests -tests.run() \ No newline at end of file diff --git a/scripts/PythonQwt-tests-py3.bat b/scripts/PythonQwt-tests-py3.bat deleted file mode 100644 index 0aad2d4..0000000 --- a/scripts/PythonQwt-tests-py3.bat +++ /dev/null @@ -1,2 +0,0 @@ -@echo off -python "%~dpn0" %* \ No newline at end of file diff --git a/setup.py b/setup.py index 8a3060e..288c1ea 100644 --- a/setup.py +++ b/setup.py @@ -14,6 +14,7 @@ from __future__ import print_function import os +import sys import os.path as osp import setuptools # analysis:ignore @@ -51,15 +52,6 @@ CLASSIFIERS += ['Development Status :: 5 - Production/Stable'] -def _create_script_list(basename): - scripts = ['%s-py%d' % (basename, sys.version_info.major)] - if os.name == 'nt': - scripts.append('%s.bat' % scripts[0]) - return [osp.join('scripts', name) for name in scripts] - -SCRIPTS = _create_script_list('PythonQwt-tests') - - def get_package_data(name, extlist): """Return data files for package *name* with extensions in *extlist*""" flist = [] @@ -91,7 +83,9 @@ def get_subpackages(name): 'Doc': ["Sphinx>=1.1"], 'Tests': ["guidata>=1.7.0"], }, - scripts=SCRIPTS, + entry_points={'gui_scripts': + ['PythonQwt-tests-py%d = qwt.tests:run [Tests]'\ + % sys.version_info.major,]}, author = "Pierre Raybaut", author_email = 'pierre.raybaut@gmail.com', url = 'https://github.com/PierreRaybaut/%s' % LIBNAME, From c9faeb3433a88272043ff1cafa45d76f7f0dc69e Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 7 Nov 2015 20:17:37 +0100 Subject: [PATCH 071/421] Fixed Issue #28: curve shading was broken since v0.5.0 This bug was introduced by commit 2d80fda3f0f3c4e5547e264fa204f8a401994226. --- qwt/plot_series.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qwt/plot_series.py b/qwt/plot_series.py index 1dd1719..9a257a6 100644 --- a/qwt/plot_series.py +++ b/qwt/plot_series.py @@ -45,7 +45,7 @@ class QwtPlotSeriesItem_PrivateData(QwtPlotItem_PrivateData): def __init__(self): QwtPlotItem_PrivateData.__init__(self) - self.orientation = Qt.Vertical + self.orientation = Qt.Horizontal class QwtPlotSeriesItem(QwtPlotItem): @@ -60,7 +60,7 @@ def __init__(self, title): def setOrientation(self, orientation): """ - Set the orientation of the item. + Set the orientation of the item. Default is `Qt.Horizontal`. The `orientation()` might be used in specific way by a plot item. F.e. a QwtPlotCurve uses it to identify how to display the curve From e726a4c38b07d01b4c628a936bed99fef52b721b Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 7 Nov 2015 23:42:44 +0100 Subject: [PATCH 072/421] QwtInterval: avoid overflows with NumPy scalars Related to https://github.com/PierreRaybaut/guiqwt/issues/49 --- qwt/interval.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/qwt/interval.py b/qwt/interval.py index fa9885d..4670815 100644 --- a/qwt/interval.py +++ b/qwt/interval.py @@ -38,8 +38,8 @@ class QwtInterval(object): def __init__(self, minValue=0., maxValue=-1., borderFlags=None): assert not isinstance(minValue, QwtInterval) assert not isinstance(maxValue, QwtInterval) - self.__minValue = minValue - self.__maxValue = maxValue + self.__minValue = float(minValue) # avoid overflows with NumPy scalars + self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars if borderFlags is None: self.__borderFlags = self.IncludeBorders else: @@ -53,8 +53,8 @@ def setInterval(self, minValue, maxValue, borderFlags): :param float maxValue: Maximum value :param int borderFlags: Include/Exclude borders """ - self.__minValue = minValue - self.__maxValue = maxValue + self.__minValue = float(minValue) # avoid overflows with NumPy scalars + self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars self.__borderFlags = borderFlags def setBorderFlags(self, borderFlags): @@ -85,7 +85,7 @@ def setMinValue(self, minValue): :param float minValue: Minimum value """ - self.__minValue = minValue + self.__minValue = float(minValue) # avoid overflows with NumPy scalars def setMaxValue(self, maxValue): """ @@ -93,7 +93,7 @@ def setMaxValue(self, maxValue): :param float maxValue: Maximum value """ - self.__maxValue = maxValue + self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars def minValue(self): """ From 9a3403d1b99397b13f65d887af117db2734aec2b Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 8 Nov 2015 11:19:24 +0100 Subject: [PATCH 073/421] QwtPlotCurve: sticks were not drawn correctly depending on orientation (following recent changes) --- qwt/plot_curve.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 7140ffa..3dfa2ce 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -520,9 +520,9 @@ def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): xi = xMap.transform(sample.x()) yi = yMap.transform(sample.y()) if o == Qt.Horizontal: - painter.drawLine(x0, yi, xi, yi) - else: painter.drawLine(xi, y0, xi, yi) + else: + painter.drawLine(x0, yi, xi, yi) painter.restore() def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): From 7de5426017f2fa4cd07dfbd03a604ce0debaae69 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 8 Nov 2015 11:40:17 +0100 Subject: [PATCH 074/421] Fixed Issue #22: fixed scale issues in CurveDemo2.py and ImagePlotDemo.py Fixed QwtScaleMap constructor (the PyQwt constructor variant was not implemented correctly). --- qwt/scale_map.py | 19 +++++++++++++++++-- qwt/tests/CurveDemo2.py | 2 -- qwt/tests/ImagePlotDemo.py | 2 -- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/qwt/scale_map.py b/qwt/scale_map.py index f9ecfdf..b3dbf3e 100644 --- a/qwt/scale_map.py +++ b/qwt/scale_map.py @@ -27,6 +27,21 @@ class QwtScaleMap(object): and vice versa. The scale and paint device intervals are both set to [0,1]. + + .. py:class:: QwtScaleMap([other=None]) + + Constructor (eventually, copy constructor) + + :param qwt.scale_map.QwtScaleMap other: Other scale map + + .. py:class:: QwtScaleMap(p1, p2, s1, s2) + + Constructor (was provided by `PyQwt` but not by `Qwt`) + + :param int p1: First border of the paint interval + :param int p2: Second border of the paint interval + :param float s1: First border of the scale interval + :param float s2: Second border of the scale interval """ def __init__(self, *args): self.__transform = None # QwtTransform @@ -38,13 +53,13 @@ def __init__(self, *args): if len(args) == 1: other, = args elif len(args) == 4: - s1, s2, p1, p2 = args + p1, p2, s1, s2 = args self.__s1 = s1 self.__s2 = s2 self.__p1 = p1 self.__p2 = p2 elif len(args) != 0: - raise TypeError("%s() takes 1, 3, or 4 argument(s) (%s given)"\ + raise TypeError("%s() takes 0, 1, or 4 argument(s) (%s given)"\ % (self.__class__.__name__, len(args))) if other is None: self.__cnv = 1. diff --git a/qwt/tests/CurveDemo2.py b/qwt/tests/CurveDemo2.py index 0366729..6c9d950 100644 --- a/qwt/tests/CurveDemo2.py +++ b/qwt/tests/CurveDemo2.py @@ -6,8 +6,6 @@ # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -#FIXME: scale issue! - SHOW = True # Show test in GUI-based test launcher import sys diff --git a/qwt/tests/ImagePlotDemo.py b/qwt/tests/ImagePlotDemo.py index f0513b7..ea09d65 100644 --- a/qwt/tests/ImagePlotDemo.py +++ b/qwt/tests/ImagePlotDemo.py @@ -6,8 +6,6 @@ # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -#FIXME: This example is still not working: image scaling issue (see PlotImage.draw) - SHOW = True # Show test in GUI-based test launcher import sys From 5314165d8c391c0945dff70091197d4eb32c245a Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 8 Nov 2015 20:58:50 +0100 Subject: [PATCH 075/421] version --- qwt/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/__init__.py b/qwt/__init__.py index b5040c5..e4b5532 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -24,7 +24,7 @@ .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.5.0' +__version__ = '0.5.1' QWT_VERSION_STR = '6.1.2' import warnings From fb2ba30885324e024a9893d2bc6422c6648cb174 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 14 Nov 2015 18:14:14 +0100 Subject: [PATCH 076/421] Updated build scripts --- build.bat => build_dist.bat | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) rename build.bat => build_dist.bat (86%) diff --git a/build.bat b/build_dist.bat similarity index 86% rename from build.bat rename to build_dist.bat index 3bcfdcf..32dc159 100644 --- a/build.bat +++ b/build_dist.bat @@ -4,5 +4,4 @@ rmdir /S /Q dist python setup.py build bdist_wininst --plat-name=win32 python setup.py build bdist_wininst --plat-name=win-amd64 python setup.py sdist bdist_wheel --universal -python setup.py build sdist -pause \ No newline at end of file +python setup.py build sdist \ No newline at end of file From fefcbc6c47c16cc4d57fe6bbc9d6bbe40283e53f Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 29 Nov 2015 15:51:28 +0100 Subject: [PATCH 077/421] Updated readme, doc links --- README.md | 2 +- doc/installation.rst | 5 +++-- qwt/__init__.py | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9c82802..eec4d27 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ for more details on API limitations when comparing to Qwt. ## Dependencies ### Requirements ### -- Python >=2.6 or Python >=3.0 +- Python >=2.6 or Python >=3.2 - PyQt4 >=4.4 or PyQt5 >= 5.5 - NumPy >= 1.5 - guidata >= 1.7 for the GUI-based test launcher diff --git a/doc/installation.rst b/doc/installation.rst index 4688e52..218b3ba 100644 --- a/doc/installation.rst +++ b/doc/installation.rst @@ -5,8 +5,9 @@ Dependencies ------------ Requirements: - * Python 2.x (x>=6) - * PyQt4 4.x (x>=4) or PyQt5 5.x (x>=5) + * Python 2.x (x>=6) or 3.x (x>=2) + * PyQt4 4.x (x>=3 ; recommended x>=4) or PyQt5 5.x (x>=5) + * spyderlib >=v2.0.10 for the test launcher * NumPy 1.x (x>=5) Installation diff --git a/qwt/__init__.py b/qwt/__init__.py index e4b5532..2001715 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -20,8 +20,12 @@ .. image:: images/panorama.png External resources: + * Python Package Index: `PyPI`_ + * Project page on GitHub: `GitHubPage`_ * Bug reports and feature requests: `GitHub`_ +.. _PyPI: https://pypi.python.org/pypi/PythonQwt +.. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ __version__ = '0.5.1' From 2c5ae62f30ead3c41771777c7f4f11587e8b59f3 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 30 Nov 2015 13:59:29 +0100 Subject: [PATCH 078/421] Fixed QwtPlot.setAxisAutoScale/setAutoReplot args Added missing default state argument (boolean=True) to QwtPlot's setAxisAutoScale and setAutoReplot methods, in order to fit Qwt C++ library original method signatures (see http://qwt.sourceforge.net/class_qwt_plot.html#ab1cbce6d43ff9772735a9df9104f882f) --- qwt/plot.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qwt/plot.py b/qwt/plot.py index 07c5690..340f10f 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -646,7 +646,7 @@ def setAxisFont(self, axisId, font): if self.axisValid(axisId): return self.axisWidget(axisId).setFont(font) - def setAxisAutoScale(self, axisId, on): + def setAxisAutoScale(self, axisId, on=True): """ Enable autoscaling for a specified axis @@ -947,7 +947,7 @@ def autoRefresh(self): if self.__data.autoReplot: self.replot() - def setAutoReplot(self, tf): + def setAutoReplot(self, tf=True): """ Set or reset the autoReplot option From 8fe97e919b027d6d0e895126d8fb898a0aab7416 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 30 Nov 2015 14:02:55 +0100 Subject: [PATCH 079/421] Fixed QwtPlotItem.setItemInterest args Added missing state default value (boolean=True) to fit the corresponding Qwt C++ method signature: http://qwt.sourceforge.net/class_qwt_plot_item.html#ab65cbfe489ff73e32a919a0633298fb7 --- qwt/plot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/plot.py b/qwt/plot.py index 340f10f..1301fe6 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -1834,7 +1834,7 @@ def testItemAttribute(self, attribute): """ return bool(self.__data.attributes & attribute) - def setItemInterest(self, interest, on): + def setItemInterest(self, interest, on=True): """ Toggle an item interest From 6f2e544b6df74db235e8c69e2b854d0b5560d791 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 30 Nov 2015 14:07:19 +0100 Subject: [PATCH 080/421] Fixed QwtPlotRenderer.setDiscardFlag/setLayoutFlag args Added missing default state argument (boolean=True) to fit the corresponding Qwt C++ method signatures: http://qwt.sourceforge.net/class_qwt_plot_renderer.html#a33439eb1407f3ba78fdd7b50461bbafc --- qwt/plot_renderer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qwt/plot_renderer.py b/qwt/plot_renderer.py index a84fa7d..83497fa 100644 --- a/qwt/plot_renderer.py +++ b/qwt/plot_renderer.py @@ -94,7 +94,7 @@ def __init__(self, parent=None): QObject.__init__(self, parent) self.__data = QwtPlotRenderer_PrivateData() - def setDiscardFlag(self, flag, on): + def setDiscardFlag(self, flag, on=True): """ Change a flag, indicating what to discard from rendering @@ -147,7 +147,7 @@ def discardFlags(self): """ return self.__data.discardFlags - def setLayoutFlag(self, flag, on): + def setLayoutFlag(self, flag, on=True): """ Change a layout flag From f679ccde2b68941491eb10f318477d6dbe0e5d46 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 30 Nov 2015 14:11:21 +0100 Subject: [PATCH 081/421] version --- qwt/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/__init__.py b/qwt/__init__.py index 2001715..109dca6 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -28,7 +28,7 @@ .. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.5.1' +__version__ = '0.5.2' QWT_VERSION_STR = '6.1.2' import warnings From cb1e7eba89db01003ab3d9c7968449e80365c70b Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 1 Dec 2015 11:59:41 +0100 Subject: [PATCH 082/421] Fixed MANIFEST.in --- MANIFEST.in | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index 343a96a..974c310 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,7 +1,5 @@ -recursive-include qwt *.png *.svg *.pot *.po *.mo *.dcm *.ui -recursive-include src *.hpp *.cpp *.pyx -recursive-include doc *.py *.rst *.png *.ico +recursive-include doc *.py *.rst *.png include MANIFEST.in include LICENSE -include README -include CHANGELOG \ No newline at end of file +include README.md +include CHANGELOG.md \ No newline at end of file From d1d96dd1f72641d295632a70fa22c7309c485cbb Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 1 Dec 2015 12:01:15 +0100 Subject: [PATCH 083/421] Added CHM documentation to wheel package --- setup.py | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 288c1ea..4aadfa0 100644 --- a/setup.py +++ b/setup.py @@ -16,6 +16,9 @@ import os import sys import os.path as osp +import subprocess +import shutil +import atexit import setuptools # analysis:ignore from distutils.core import setup @@ -63,7 +66,6 @@ def get_package_data(name, extlist): flist.append(osp.join(dirpath, fname)[offset:]) return flist - def get_subpackages(name): """Return subpackages of package *name*""" splist = [] @@ -72,12 +74,47 @@ def get_subpackages(name): splist.append(".".join(dirpath.split(os.sep))) return splist +def build_chm_doc(libname): + """Return CHM documentation file (on Windows only), which is copied under + {PythonInstallDir}\Doc, hence allowing Spyder to add an entry for opening + package documentation in "Help" menu. This has no effect on a source + distribution.""" + args = ''.join(sys.argv) + if os.name == 'nt' and ('bdist' in args or 'build' in args): + try: + import sphinx # analysis:ignore + except ImportError: + print('Warning: `sphinx` is required to build documentation', + file=sys.stderr) + return + hhc_base = r'C:\Program Files%s\HTML Help Workshop\hhc.exe' + for hhc_exe in (hhc_base % '', hhc_base % ' (x86)'): + if osp.isfile(hhc_exe): + break + else: + print('Warning: `HTML Help Workshop` is required to build CHM '\ + 'documentation file', file=sys.stderr) + return + doctmp_dir = 'doctmp' + subprocess.call('sphinx-build -b htmlhelp doc %s' % doctmp_dir, + shell=True) + atexit.register(shutil.rmtree, osp.abspath(doctmp_dir)) + fname = osp.abspath(osp.join(doctmp_dir, '%s.chm' % libname)) + subprocess.call('"%s" %s' % (hhc_exe, fname), shell=True) + if osp.isfile(fname): + return fname + else: + print('Warning: CHM building process failed', file=sys.stderr) + +CHM_DOC = build_chm_doc(LIBNAME) + setup(name=LIBNAME, version=version, description=DESCRIPTION, long_description=LONG_DESCRIPTION, packages=get_subpackages(PACKAGE_NAME), package_data={PACKAGE_NAME: get_package_data(PACKAGE_NAME, ('.png', '.svg', '.mo'))}, + data_files=[(r'Doc', [CHM_DOC])] if CHM_DOC else [], install_requires=["NumPy>=1.3"], extras_require = { 'Doc': ["Sphinx>=1.1"], From aa8542f3a5de10f863c87451b5775afe9f7c0260 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Wed, 2 Dec 2015 22:49:01 +0100 Subject: [PATCH 084/421] Updated changelog --- CHANGELOG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72d4607..010b08a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # History of changes +## Version 0.5.2 + +Added CHM documentation to wheel package +Fixed QwtPlotRenderer.setDiscardFlag/setLayoutFlag args +Fixed QwtPlotItem.setItemInterest args +Fixed QwtPlot.setAxisAutoScale/setAutoReplot args + +## Version 0.5.1 + +Fixed Issue #22: fixed scale issues in CurveDemo2.py and ImagePlotDemo.py +QwtPlotCurve: sticks were not drawn correctly depending on orientation +QwtInterval: avoid overflows with NumPy scalars +Fixed Issue #28: curve shading was broken since v0.5.0 +setup.py: using setuptools "entry_points" instead of distutils "scripts" +Showing curves/plots number in benchmarks to avoid any misinterpretation (see Issue #26) +Added Python2/Python3 scripts for running tests + ## Version 0.5.0 Various optimizations From d3e93d941df5c91cc604242e963961b59704ed5f Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 8 Dec 2015 16:47:41 +0100 Subject: [PATCH 085/421] Update CHANGELOG.md --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 010b08a..22c96a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # History of changes +## Version 0.5.3 + +Better handling of infinity and NaN values in scales (removed NumPy warnings) +Now handling infinity and NaN values in series data: removing points that can't be drawn +Fixed logarithmic scale engine: presence of values <= 0 was slowing down series data plotting + ## Version 0.5.2 Added CHM documentation to wheel package From 6684fbc88c0445f90a5433652bed007a945b4d47 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 8 Dec 2015 16:49:27 +0100 Subject: [PATCH 086/421] Update plot_curve.py --- qwt/plot_curve.py | 80 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 64 insertions(+), 16 deletions(-) diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 3dfa2ce..8d213dd 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -813,27 +813,58 @@ def legendIcon(self, index, size): self.__data.symbol.drawSymbol(painter, r) return graphic - def setData(self, *args): - """Compatibility with Qwt5""" - if len(args) == 1: + def setData(self, *args, **kwargs): + """ + Initialize data with a series data object or an array of points. + + .. py:method:: setData(data): + + :param data: Series data (e.g. `QwtPointArrayData` instance) + :type data: qwt.plot_series.QwtSeriesData + + .. py:method:: setData(xData, yData, [size=None], [finite=True]): + + Initialize data with `x` and `y` arrays. + + This signature was removed in Qwt6 and is temporarily maintained here to ensure compatibility with Qwt5. + + Same as `setSamples(x, y, [size=None], [finite=True])` + + :param x: List/array of x values + :param y: List/array of y values + :param size: size of xData and yData + :type size: int or None + :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements + + .. seealso:: + + :py:meth:`setSamples()` + """ + if len(args) == 1 and not kwargs: super(QwtPlotCurve, self).setData(*args) - elif len(args) == 2: - self.setSamples(*args) + elif len(args) in (2, 3, 4): + self.setSamples(*args, **kwargs) else: - raise TypeError("%s().setData() takes 1 or 2 argument(s) (%s given)"\ + raise TypeError("%s().setData() takes 1, 2, 3 or 4 argument(s) (%s given)"\ % (self.__class__.__name__, len(args))) - def setSamples(self, *args): + def setSamples(self, *args, **kwargs): """ Initialize data with an array of points. + .. py:method:: setSamples(data): + + :param data: Series data (e.g. `QwtPointArrayData` instance) + :type data: qwt.plot_series.QwtSeriesData + + .. py:method:: setSamples(samples): Same as `setData(QwtPointArrayData(samples))` :param samples: List/array of points - .. py:method:: setSamples(xData, yData, [size=None]): + .. py:method:: setSamples(xData, yData, [size=None], [finite=True]): Same as `setData(QwtPointArrayData(xData, yData, [size=None]))` @@ -841,23 +872,40 @@ def setSamples(self, *args): :param yData: List/array of y values :param size: size of xData and yData :type size: int or None + :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements .. seealso:: - :py:class:`qwt.plot_series.QwtPointArrayData`, + :py:class:`qwt.plot_series.QwtPointArrayData` """ - if len(args) == 1: + if len(args) == 1 and not kwargs: samples, = args if isinstance(samples, QwtSeriesData): self.setData(samples) else: self.setData(QwtPointArrayData(samples)) - elif len(args) == 3: - xData, yData, size = args - self.setData(QwtPointArrayData(xData, yData, size)) - elif len(args) == 2: - xData, yData = args - self.setData(QwtPointArrayData(xData, yData)) + elif len(args) >= 2: + xData, yData = args[:2] + try: + size = kwargs.pop('size') + except KeyError: + size = None + try: + finite = kwargs.pop('finite') + except KeyError: + finite = None + if kwargs: + raise TypeError("%s().setSamples(): unknown %s keyword "\ + "argument(s)"\ + % (self.__class__.__name__, + ", ".join(list(kwargs.keys())))) + for arg in args[2:]: + if isinstance(arg, bool): + finite = arg + elif isinstance(arg, int): + size = arg + self.setData(QwtPointArrayData(xData, yData, + size=size, finite=finite)) else: raise TypeError("%s().setSamples() takes 1, 2 or 3 argument(s) "\ "(%s given)" % (self.__class__.__name__, len(args))) From 26e08fe32ff956dc1b9159b8f62835412f65300d Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 8 Dec 2015 16:50:40 +0100 Subject: [PATCH 087/421] transform.py: avoid overflow errors with log scale --- qwt/transform.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qwt/transform.py b/qwt/transform.py index 0ab8b81..94c45f5 100644 --- a/qwt/transform.py +++ b/qwt/transform.py @@ -166,7 +166,7 @@ def bounded(self, value): Modify value to be a valid value for the transformation. :param float value: Value to be bounded - :return: Value unmodified + :return: Value modified """ return np.clip(value, self.LogMin, self.LogMax) @@ -181,7 +181,7 @@ def transform(self, value): :py:meth:`invTransform()` """ - return np.log(value) + return np.log(self.bounded(value)) def invTransform(self, value): """ From 1ea9f01bb7a8f72d1344f3c38fa6d079bb47eff7 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 8 Dec 2015 16:51:39 +0100 Subject: [PATCH 088/421] Fixed int conversion error when enabling log scale --- qwt/scale_engine.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qwt/scale_engine.py b/qwt/scale_engine.py index 65fbe7c..0ef8f39 100644 --- a/qwt/scale_engine.py +++ b/qwt/scale_engine.py @@ -652,6 +652,7 @@ def autoScale(self, maxNumSteps, x1, x2, stepSize): logBase = self.base() interval = QwtInterval(x1/np.power(logBase, self.lowerMargin()), x2*np.power(logBase, self.upperMargin())) + interval = interval.limited(LOG_MIN, LOG_MAX) if interval.maxValue()/interval.minValue() < logBase: linearScaler = QwtLinearScaleEngine() linearScaler.setAttributes(self.attributes()) @@ -887,4 +888,4 @@ def align(self, interval, stepSize): return qwtPowInterval(self.base(), QwtInterval(x1, x2)) - \ No newline at end of file + From 92aa144c165b5a5925f46f988bd7ea5f63608201 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 8 Dec 2015 16:52:06 +0100 Subject: [PATCH 089/421] Update scale_draw.py --- qwt/scale_draw.py | 1 - 1 file changed, 1 deletion(-) diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index 80d052a..217b5b2 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -23,7 +23,6 @@ from qwt.scale_map import QwtScaleMap from qwt.text import QwtText from qwt.math import qwtRadians -from qwt.painter import QwtPainter from qwt.qt.QtGui import QPalette, QFontMetrics, QTransform from qwt.qt.QtCore import (Qt, qFuzzyCompare, QLocale, QRectF, QPointF, QRect, From a443d53a02198b4c539d4dfb6e8dd6e1869cafdb Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 8 Dec 2015 16:53:04 +0100 Subject: [PATCH 090/421] QwtPointArrayData constructor: added 'finite' arg --- qwt/plot_series.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/qwt/plot_series.py b/qwt/plot_series.py index 9a257a6..8328ff9 100644 --- a/qwt/plot_series.py +++ b/qwt/plot_series.py @@ -185,15 +185,16 @@ class QwtPointArrayData(QwtSeriesData): """ Interface for iterating over two array objects - .. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None]) + .. py:class:: QwtPointArrayData(x, y, [size=None], [finite=True]) :param x: Array of x values :type x: list or tuple or numpy.array :param y: Array of y values :type y: list or tuple or numpy.array :param int size: Size of the x and y arrays + :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements """ - def __init__(self, x=None, y=None, size=None): + def __init__(self, x=None, y=None, size=None, finite=None): QwtSeriesData.__init__(self) if x is None and y is not None: x = np.arange(len(y)) @@ -210,8 +211,13 @@ def __init__(self, x=None, y=None, size=None): if size is not None: x = np.resize(x, (size, )) y = np.resize(y, (size, )) - self.__x = x - self.__y = y + if finite if finite is not None else True: + indexes = np.logical_and(np.isfinite(x), np.isfinite(y)) + self.__x = x[indexes] + self.__y = y[indexes] + else: + self.__x = x + self.__y = y def boundingRect(self): """ @@ -343,4 +349,4 @@ def swapData(self, series): """ swappedSeries = self.__series self.__series = series - return swappedSeries \ No newline at end of file + return swappedSeries From d5975de27dc729a5fcaaa68a1d3545640b423a7a Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 8 Dec 2015 16:54:04 +0100 Subject: [PATCH 091/421] Curvebenchmark: disabling new 'finite' option to keep representative results --- qwt/tests/CurveBenchmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/tests/CurveBenchmark.py b/qwt/tests/CurveBenchmark.py index a7f5b80..3f1e1e4 100644 --- a/qwt/tests/CurveBenchmark.py +++ b/qwt/tests/CurveBenchmark.py @@ -55,7 +55,7 @@ def __init__(self, title, xdata, ydata, style, symbol=None, *args): if symbol is not None: curve.setSymbol(symbol) curve.attach(self) - curve.setData(xdata, ydata*idx) + curve.setData(xdata, ydata*idx, finite=False) # self.setAxisScale(self.yLeft, -1.5, 1.5) # self.setAxisScale(self.xBottom, 9.9, 10.) self.replot() From bdf8d09f443f1046e909936c19a6375875bd15dd Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 8 Dec 2015 16:54:40 +0100 Subject: [PATCH 092/421] Create LogCurveDemo.py --- qwt/tests/LogCurveDemo.py | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 qwt/tests/LogCurveDemo.py diff --git a/qwt/tests/LogCurveDemo.py b/qwt/tests/LogCurveDemo.py new file mode 100644 index 0000000..390a472 --- /dev/null +++ b/qwt/tests/LogCurveDemo.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the terms of the PyQwt License +# Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# developments (e.g. ported to PythonQwt API) +# (see LICENSE file for more details) + +SHOW = True # Show test in GUI-based test launcher + +import numpy as np + +np.seterr(all='raise') + +from qwt.qt.QtGui import QApplication, QPen +from qwt.qt.QtCore import Qt +from qwt import QwtPlot, QwtPlotCurve, QwtLogScaleEngine + + +def create_log_plot(): + plot = QwtPlot('LogCurveDemo.py (or how to handle -inf values)') + plot.enableAxis(QwtPlot.xBottom) + plot.setAxisScaleEngine(QwtPlot.yLeft, QwtLogScaleEngine()) + curve = QwtPlotCurve() + curve.setRenderHint(QwtPlotCurve.RenderAntialiased) + pen = QPen(Qt.magenta) + pen.setWidth(1.5) + curve.setPen(pen) + curve.attach(plot) + x = np.arange(0.0, 10.0, 0.1) + y = 10*np.cos(x)**2-.1 + print("y<=0:", y<=0) + curve.setData(x, y) + plot.replot() + return plot + + +if __name__ == '__main__': + app = QApplication([]) + plot = create_log_plot() + plot.resize(800, 500) + plot.show() + app.exec_() From 74a23d71ab8a1bf83956fb0d2be3e316dd377df1 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 8 Dec 2015 16:55:50 +0100 Subject: [PATCH 093/421] version --- qwt/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/__init__.py b/qwt/__init__.py index 109dca6..8518285 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -28,7 +28,7 @@ .. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.5.2' +__version__ = '0.5.3' QWT_VERSION_STR = '6.1.2' import warnings From d6a28fe99ef2267b35cec5a99abca3ebc7abc02e Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 2 Jan 2016 19:19:52 +0100 Subject: [PATCH 094/421] Fixed #30: axis scale widget was sometimes not aligned with canvas grid --- qwt/plot.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/qwt/plot.py b/qwt/plot.py index 1301fe6..8ee6518 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -896,9 +896,14 @@ def updateAxes(self): scaleWidget = self.axisWidget(axisId) scaleWidget.setScaleDiv(d.scaleDiv) - #TODO: see when it is *really* necessary to update border dist -# startDist, endDist = scaleWidget.getBorderDistHint() -# scaleWidget.setBorderDist(startDist, endDist) + # It is *really* necessary to update border dist! + # Otherwise, when tick labels are large enough, the ticks + # may not be aligned with canvas grid. + # See the following issues for more details: + # https://github.com/PierreRaybaut/guiqwt/issues/57 + # https://github.com/PierreRaybaut/PythonQwt/issues/30 + startDist, endDist = scaleWidget.getBorderDistHint() + scaleWidget.setBorderDist(startDist, endDist) for item in itmList: if item.testItemInterest(QwtPlotItem.ScaleInterest): From ad0f56a084786c15ccded38ba61eceef0671371d Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 2 Jan 2016 19:23:15 +0100 Subject: [PATCH 095/421] version --- CHANGELOG.md | 4 ++++ qwt/__init__.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22c96a8..7bcccc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # History of changes +## Version 0.5.4 + +Fixed an annoying bug which caused scale widget (axis ticks in particular) to be misaligned with canvas grid: the user was forced to resize the plot widget as a workaround + ## Version 0.5.3 Better handling of infinity and NaN values in scales (removed NumPy warnings) diff --git a/qwt/__init__.py b/qwt/__init__.py index 8518285..3108341 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -28,7 +28,7 @@ .. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.5.3' +__version__ = '0.5.4' QWT_VERSION_STR = '6.1.2' import warnings From ccb2e04c641756547bafda073753dc5e54cd23bf Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 4 Jan 2016 15:13:21 +0100 Subject: [PATCH 096/421] Update README.md --- README.md | 67 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index eec4d27..ffd1029 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,57 @@ -# PythonQwt +# PythonQwt: Qt plotting widgets for Python + + ## Purpose and Motivation -The ``PythonQwt`` project was initiated to solve -at least temporarily- -the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) -which is no longer maintained. The idea was to translate the original -Qwt C++ code to Python and then to optimize some parts of the code by -writing new modules based on NumPy and other libraries. +The `PythonQwt` project was initiated to solve -at least temporarily- the +obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is +no longer maintained. The idea was to translate the original Qwt C++ code to +Python and then to optimize some parts of the code by writing new modules +based on NumPy and other libraries. -The ``PythonQwt`` package consists of a single Python package named -`qwt` and of a few other files (examples, doc, ...). +The `PythonQwt` package consists of a single Python package named `qwt` and +of a few other files (examples, doc, ...). ## Copyrights #### Main code base - - Copyright © 2002 Uwe Rathmann, for the original Qwt C++ code - - Copyright © 2015 Pierre Raybaut, for the Qwt C++ to Python -translation and optimization - - Copyright © 2015 Pierre Raybaut, for the PythonQwt specific and -exclusive Python material +- Copyright © 2002 Uwe Rathmann, for the original Qwt C++ code +- Copyright © 2015 Pierre Raybaut, for the Qwt C++ to Python translation and +optimization +- Copyright © 2015 Pierre Raybaut, for the PythonQwt specific and exclusive +Python material #### PyQt, PySide and Python2/Python3 compatibility modules - - Copyright © 2009-2013 Pierre Raybaut - - Copyright © 2013-2015 The Spyder Development Team +- Copyright © 2009-2013 Pierre Raybaut +- Copyright © 2013-2015 The Spyder Development Team #### Some examples - - Copyright © 2003-2009 Gerard Vermeulen, for the original PyQwt code - - Copyright © 2015 Pierre Raybaut, for the PyQt5/PySide port and -further developments (e.g. ported to PythonQwt API) +- Copyright © 2003-2009 Gerard Vermeulen, for the original PyQwt code +- Copyright © 2015 Pierre Raybaut, for the PyQt5/PySide port and further +developments (e.g. ported to PythonQwt API) ## License -The `qwt` Python package was partly (>95%) translated from Qwt C++ -library: the associated code is distributed under the terms of the LGPL -license. The rest of the code was either wrote from scratch or strongly -inspired from MIT licensed third-party software. -See included LICENSE file for more details about licensing terms. +The `qwt` Python package was partly (>95%) translated from Qwt C++ library: +the associated code is distributed under the terms of the LGPL license. The +rest of the code was either wrote from scratch or strongly inspired from MIT +licensed third-party software. + +See included [LICENSE](LICENSE) file for more details about licensing terms. ## Overview -The `qwt` package is a pure Python implementation of `Qwt` C++ library -with the following limitations. +The `qwt` package is a pure Python implementation of `Qwt` C++ library with +the following limitations. The following `Qwt` classes won't be reimplemented in `qwt` because more powerful features already exist in `guiqwt`: `QwtPlotZoomer`, `QwtCounter`, `QwtEventPattern`, `QwtPicker`, `QwtPlotPicker`. -Only the following plot items are currently implemented in `qwt` (the -only plot items needed by `guiqwt`): `QwtPlotItem` (base class), -`QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. +Only the following plot items are currently implemented in `qwt` (the only +plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotItem`, +`QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. See "Overview" section in [documentation](http://pythonhosted.org/PythonQwt/) for more details on API limitations when comparing to Qwt. @@ -65,7 +68,7 @@ for more details on API limitations when comparing to Qwt. From the source package: -```python +```bash python setup.py install ``` @@ -78,4 +81,8 @@ from qwt import tests tests.run() ``` -or from the command line: `PythonQwt-tests`. +or from the command line: + +```bash +PythonQwt-tests +``` From 52b1a5b4d638a17b0c6a20b9d79d8cf5c87293e7 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 4 Jan 2016 15:21:50 +0100 Subject: [PATCH 097/421] Update CHANGELOG.md --- CHANGELOG.md | 95 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bcccc1..2dc7f95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,63 +1,84 @@ -# History of changes +# PythonQwt Releases # -## Version 0.5.4 -Fixed an annoying bug which caused scale widget (axis ticks in particular) to be misaligned with canvas grid: the user was forced to resize the plot widget as a workaround +### Version 0.5.4 ### -## Version 0.5.3 +Fixed an annoying bug which caused scale widget (axis ticks in particular) +to be misaligned with canvas grid: the user was forced to resize the plot +widget as a workaround -Better handling of infinity and NaN values in scales (removed NumPy warnings) -Now handling infinity and NaN values in series data: removing points that can't be drawn -Fixed logarithmic scale engine: presence of values <= 0 was slowing down series data plotting -## Version 0.5.2 +### Version 0.5.3 ### -Added CHM documentation to wheel package -Fixed QwtPlotRenderer.setDiscardFlag/setLayoutFlag args -Fixed QwtPlotItem.setItemInterest args -Fixed QwtPlot.setAxisAutoScale/setAutoReplot args +- Better handling of infinity and `NaN` values in scales (removed `NumPy` +warnings) +- Now handling infinity and `NaN` values in series data: removing points that +can't be drawn +- Fixed logarithmic scale engine: presence of values <= 0 was slowing down +series data plotting -## Version 0.5.1 -Fixed Issue #22: fixed scale issues in CurveDemo2.py and ImagePlotDemo.py -QwtPlotCurve: sticks were not drawn correctly depending on orientation -QwtInterval: avoid overflows with NumPy scalars -Fixed Issue #28: curve shading was broken since v0.5.0 -setup.py: using setuptools "entry_points" instead of distutils "scripts" -Showing curves/plots number in benchmarks to avoid any misinterpretation (see Issue #26) -Added Python2/Python3 scripts for running tests +### Version 0.5.2 ### -## Version 0.5.0 +- Added CHM documentation to wheel package +- Fixed `QwtPlotRenderer.setDiscardFlag`/`setLayoutFlag` args +- Fixed `QwtPlotItem.setItemInterest` args +- Fixed `QwtPlot.setAxisAutoScale`/`setAutoReplot` args -Various optimizations -Major API simplification, taking into account the feature that won't be implemented (fitting, rounding, weeding out points, clipping, etc.) -Added QwtScaleDraw.setLabelAutoSize/labelAutoSize methods to set the new auto size option (see documentation) -## Version 0.4.0 +### Version 0.5.1 ### -Color bar: fixed axis ticks shaking when color bar is enabled -Fixed QwtPainter.drawColorBar for horizontal color bars (typo) -Restored compatibility with original Qwt signals (QwtPlot, ...) +- Fixed Issue #22: fixed scale issues in [CurveDemo2.py](qwt/tests/CurveDemo2.py) +and [ImagePlotDemo.py](qwt/tests/ImagePlotDemo.py) +- `QwtPlotCurve`: sticks were not drawn correctly depending on orientation +- `QwtInterval`: avoid overflows with `NumPy` scalars +- Fixed Issue #28: curve shading was broken since v0.5.0 +- setup.py: using setuptools "entry_points" instead of distutils "scripts" +- Showing curves/plots number in benchmarks to avoid any misinterpretation +(see Issue #26) +- Added Python2/Python3 scripts for running tests -## Version 0.3.0 + +### Version 0.5.0 ### + +- Various optimizations +- Major API simplification, taking into account the feature that won't be +implemented (fitting, rounding, weeding out points, clipping, etc.) +- Added `QwtScaleDraw.setLabelAutoSize`/`labelAutoSize` methods to set the new +auto size option (see [documentation](http://pythonhosted.org/PythonQwt/)) + + +### Version 0.4.0 ### + +- Color bar: fixed axis ticks shaking when color bar is enabled +- Fixed `QwtPainter.drawColorBar` for horizontal color bars (typo) +- Restored compatibility with original Qwt signals (`QwtPlot`, ...) + + +### Version 0.3.0 ### Renamed the project (python-qwt --> PythonQwt), for various reasons. -## Version 0.2.1 -Fixed Issue #23: "argument numPoints is not implemented" error was showing up -when calling QwtSymbol.drawSymbol(symbol, QPoint(x, y)). +### Version 0.2.1 ### + +Fixed Issue #23: "argument numPoints is not implemented" error was showing +up when calling `QwtSymbol.drawSymbol(symbol, QPoint(x, y))`. + -## Version 0.2.0 +### Version 0.2.0 ### Added docstrings in all Python modules and a complete documentation based on Sphinx. See the Overview section for API limitations when comparing to Qwt. -## Version 0.1.1 -Fixed Issue #21 (blocking issue *only* on non-Windows platforms when building -the package): typo in "PythonQwt-tests" script name (setup.py) +### Version 0.1.1 ### + +Fixed Issue #21 (blocking issue *only* on non-Windows platforms when +building the package): typo in "PythonQwt-tests" script name +(in [setup script](setup.py)) + -## Version 0.1.0 +### Version 0.1.0 ### First alpha public release. From ba8d794f6464b91cfbc2eca89f0f769b59dd2210 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 4 Jan 2016 15:24:20 +0100 Subject: [PATCH 098/421] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ffd1029..b5210a2 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,6 @@ -## Purpose and Motivation - The `PythonQwt` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is no longer maintained. The idea was to translate the original Qwt C++ code to @@ -13,6 +11,9 @@ based on NumPy and other libraries. The `PythonQwt` package consists of a single Python package named `qwt` and of a few other files (examples, doc, ...). +See [documentation](http://pythonhosted.org/PythonQwt/) for more details on +the library and [changelog](CHANGELOG.md) for recent history of changes. + ## Copyrights #### Main code base From a0430796e2f4897ce922332fa9ef5924b044a42d Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 11 Jan 2016 09:16:11 +0100 Subject: [PATCH 099/421] QwtScaleMap.invTransform_scalar: avoid divide by 0 --- qwt/scale_map.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/qwt/scale_map.py b/qwt/scale_map.py index b3dbf3e..6f99392 100644 --- a/qwt/scale_map.py +++ b/qwt/scale_map.py @@ -146,7 +146,10 @@ def invTransform_scalar(self, p): :py:meth:`transform_scalar()` """ - s = self.__ts1 + ( p - self.__p1 ) / self.__cnv + if self.__cnv == 0: + s = self.__ts1 # avoid divide by zero + else: + s = self.__ts1 + ( p - self.__p1 ) / self.__cnv if self.__transform: s = self.__transform.invTransform(s) return s From 2abf7301c31ac6c5f3486ebe2d8ac234f39415da Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 11 Jan 2016 09:19:30 +0100 Subject: [PATCH 100/421] Avoid error when computing ticks When the axis is so small that no tick can be drawn, an exception used to be raised --- qwt/scale_engine.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/qwt/scale_engine.py b/qwt/scale_engine.py index 0ef8f39..43f2ead 100644 --- a/qwt/scale_engine.py +++ b/qwt/scale_engine.py @@ -561,6 +561,8 @@ def buildMajorTicks(self, interval, stepSize): :return: Calculated ticks """ numTicks = min([round(interval.width()/stepSize)+1, 10000]) + if np.isnan(numTicks): + numTicks = 0 ticks = [interval.minValue()] for i in range(1, int(numTicks-1)): ticks += [interval.minValue()+i*stepSize] From 26b125ce9b940f8eee3fddd801531626df8ef648 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 17 Jan 2016 14:01:36 +0100 Subject: [PATCH 101/421] version --- CHANGELOG.md | 6 ++++++ qwt/__init__.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dc7f95..22b346a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # PythonQwt Releases # +### Version 0.5.5 ### + +- `QwtScaleMap.invTransform_scalar`: avoid divide by 0 +- Avoid error when computing ticks: when the axis was so small that no tick could be drawn, an exception used to be raised + + ### Version 0.5.4 ### Fixed an annoying bug which caused scale widget (axis ticks in particular) diff --git a/qwt/__init__.py b/qwt/__init__.py index 3108341..306d2eb 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -28,7 +28,7 @@ .. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.5.4' +__version__ = '0.5.5' QWT_VERSION_STR = '6.1.2' import warnings From 4901c4cad85010265d571da9cd43cfb617d84b3a Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 17 Jan 2016 17:53:47 +0100 Subject: [PATCH 102/421] setup.py: updated long description --- .gitignore | 2 ++ setup.py | 14 +++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f244cb5..b30b197 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,9 @@ qwt-6.1.2 qwt/tests/demo.png PythonQwt.chm +PythonQwt.chm.zip doc.zip +doctmp/ # Created by https://www.gitignore.io/api/python diff --git a/setup.py b/setup.py index 4aadfa0..b52ba5c 100644 --- a/setup.py +++ b/setup.py @@ -29,6 +29,11 @@ DESCRIPTION = 'Qt plotting widgets for Python' LONG_DESCRIPTION = """\ +PythonQwt: Qt plotting widgets for Python +========================================= + +.. image:: http://pythonhosted.org/PythonQwt/_images/panorama.png + The ``PythonQwt`` package is a 2D-data plotting library using Qt graphical user interfaces for the Python programming language. It is compatible with both ``PyQt4`` and ``PyQt5`` (``PySide`` is currently not supported but it @@ -44,7 +49,14 @@ The ``PythonQwt`` package consists of a single Python package named `qwt` which is a pure Python implementation of Qwt C++ library with some limitations: efforts were concentrated on basic plotting features, leaving -higher level features to the `guiqwt` library.""" +higher level features to the `guiqwt` library. + +See `README`_ and `documentation`_ for more details on the library and `changelog`_ for recent history of changes. + +.. _README: https://github.com/PierreRaybaut/PythonQwt/blob/master/README.md +.. _documentation: http://pythonhosted.org/PythonQwt/ +.. _changelog: https://github.com/PierreRaybaut/PythonQwt/blob/master/CHANGELOG.md +""" KEYWORDS = '' CLASSIFIERS = [] if 'beta' in version or 'b' in version: From 41a2064d466446d9c2dfcb4c2237d5eb04cab489 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 10 Mar 2016 13:36:15 +0100 Subject: [PATCH 103/421] Added "plot without margins" test for Issue #35 --- qwt/tests/no_margin.py | 105 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 qwt/tests/no_margin.py diff --git a/qwt/tests/no_margin.py b/qwt/tests/no_margin.py new file mode 100644 index 0000000..c878665 --- /dev/null +++ b/qwt/tests/no_margin.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the terms of the MIT License +# Copyright (c) 2015 Pierre Raybaut +# (see LICENSE file for more details) + +"""Simple plot without margins""" + +SHOW = True # Show test in GUI-based test launcher + +import numpy as np + +from qwt.qt.QtGui import QApplication, QFont, QPen, QPalette, QColor +from qwt.qt.QtCore import Qt + +import os +if os.environ.get('USE_PYQWT5', True): + USE_PYQWT5 = True + from PyQt4.Qwt5 import QwtPlot, QwtPlotCurve, QwtPlotMarker, QwtText +else: + USE_PYQWT5 = False + from qwt import QwtPlot, QwtPlotCurve, QwtPlotMarker, QwtText # analysis:ignore + + +class TestPlot(QwtPlot): + def __init__(self, parent=None): + super(TestPlot, self).__init__(parent) + self.setWindowTitle("PyQwt" if USE_PYQWT5 else "PythonQwt") + self.enableAxis(self.xTop, True) + self.enableAxis(self.yRight, True) + y = np.linspace(0, 10, 500) + curve1 = QwtPlotCurve('Test Curve 1') + curve1.setData(np.sin(y), y) + curve2 = QwtPlotCurve('Test Curve 2') + curve2.setData(y**3, y) + if USE_PYQWT5: + curve2.setAxis(self.xTop, self.yRight) + else: + # PythonQwt + curve2.setAxes(self.xTop, self.yRight) + + for item, col, xa, ya in ((curve1, Qt.green, self.xBottom, self.yLeft), + (curve2, Qt.red, self.xTop, self.yRight)): + if not USE_PYQWT5: + # PythonQwt + item.setOrientation(Qt.Vertical) + item.attach(self) + item.setPen(QPen(col)) + for axis_id in xa, ya: + palette = self.axisWidget(axis_id).palette() + palette.setColor(QPalette.WindowText, QColor(col)) + palette.setColor(QPalette.Text, QColor(col)) + self.axisWidget(axis_id).setPalette(palette) + ticks_font = self.axisFont(axis_id) + self.setAxisFont(axis_id, ticks_font) + + self.canvas().setFrameStyle(0)#QFrame.Panel|QFrame.Sunken) + self.plotLayout().setCanvasMargin(0) + self.axisWidget(QwtPlot.yLeft).setMargin(0) + self.axisWidget(QwtPlot.xTop).setMargin(0) + self.axisWidget(QwtPlot.yRight).setMargin(0) + self.axisWidget(QwtPlot.xBottom).setMargin(0) + + self.marker = QwtPlotMarker() + self.marker.setValue(0, 5) + self.marker.attach(self) + + def resizeEvent(self, event): + super(TestPlot, self).resizeEvent(event) + self.show_layout_details() + + def show_layout_details(self): + text = QwtText( + "plotLayout().canvasRect():\n%r\n\n" + "canvas().geometry():\n%r\n\n" + "plotLayout().scaleRect(QwtPlot.yLeft):\n%r\n\n" + "axisWidget(QwtPlot.yLeft).geometry():\n%r\n\n" + "plotLayout().scaleRect(QwtPlot.yRight):\n%r\n\n" + "axisWidget(QwtPlot.yRight).geometry():\n%r\n\n" + "plotLayout().scaleRect(QwtPlot.xBottom):\n%r\n\n" + "axisWidget(QwtPlot.xBottom).geometry():\n%r\n\n" + "plotLayout().scaleRect(QwtPlot.xTop):\n%r\n\n" + "axisWidget(QwtPlot.xTop).geometry():\n%r\n\n" + % (self.plotLayout().canvasRect().getCoords(), + self.canvas().geometry().getCoords(), + self.plotLayout().scaleRect(QwtPlot.yLeft).getCoords(), + self.axisWidget(QwtPlot.yLeft).geometry().getCoords(), + self.plotLayout().scaleRect(QwtPlot.yRight).getCoords(), + self.axisWidget(QwtPlot.yRight).geometry().getCoords(), + self.plotLayout().scaleRect(QwtPlot.xBottom).getCoords(), + self.axisWidget(QwtPlot.xBottom).geometry().getCoords(), + self.plotLayout().scaleRect(QwtPlot.xTop).getCoords(), + self.axisWidget(QwtPlot.xTop).geometry().getCoords(), + ) + ) + text.setFont(QFont('Courier New')) + text.setColor(Qt.blue) + self.marker.setLabel(text) + +if __name__ == '__main__': + app = QApplication([]) + plot = TestPlot() + plot.resize(300, 1000) + plot.show() + app.exec_() From 72fd6d07435dd5ba62f0ccd9de4bed187034c82a Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 8 Oct 2016 11:56:19 +0200 Subject: [PATCH 104/421] Using relative imports --- qwt/__init__.py | 44 +++++++------- qwt/color_map.py | 10 ++-- qwt/column_symbol.py | 6 +- qwt/dyngrid_layout.py | 6 +- qwt/graphic.py | 10 ++-- qwt/interval.py | 6 +- qwt/legend.py | 26 ++++---- qwt/math.py | 2 +- qwt/null_paintdevice.py | 2 +- qwt/painter.py | 16 ++--- qwt/painter_command.py | 6 +- qwt/plot.py | 122 +++++++++++++++++++------------------- qwt/plot_canvas.py | 22 +++---- qwt/plot_curve.py | 76 ++++++++++++------------ qwt/plot_directpainter.py | 10 ++-- qwt/plot_grid.py | 26 ++++---- qwt/plot_layout.py | 20 +++---- qwt/plot_marker.py | 30 +++++----- qwt/plot_renderer.py | 44 +++++++------- qwt/plot_series.py | 20 +++---- qwt/qt/compat.py | 4 +- qwt/scale_div.py | 10 ++-- qwt/scale_draw.py | 16 ++--- qwt/scale_engine.py | 32 +++++----- qwt/scale_map.py | 16 ++--- qwt/scale_widget.py | 48 +++++++-------- qwt/symbol.py | 16 ++--- qwt/text.py | 20 +++---- qwt/toqimage.py | 2 +- 29 files changed, 334 insertions(+), 334 deletions(-) diff --git a/qwt/__init__.py b/qwt/__init__.py index 306d2eb..85f09bb 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -33,33 +33,33 @@ import warnings -from qwt.plot import QwtPlot -from qwt.symbol import QwtSymbol as QSbl # see deprecated section -from qwt.scale_engine import QwtLinearScaleEngine, QwtLogScaleEngine -from qwt.text import QwtText -from qwt.plot_canvas import QwtPlotCanvas -from qwt.plot_curve import QwtPlotCurve as QPC # see deprecated section -from qwt.plot_curve import QwtPlotItem -from qwt.scale_map import QwtScaleMap -from qwt.interval import QwtInterval -from qwt.legend import QwtLegend, QwtLegendData, QwtLegendLabel -from qwt.plot_marker import QwtPlotMarker -from qwt.plot_grid import QwtPlotGrid as QPG # see deprecated section -from qwt.color_map import QwtLinearColorMap +from .plot import QwtPlot +from .symbol import QwtSymbol as QSbl # see deprecated section +from .scale_engine import QwtLinearScaleEngine, QwtLogScaleEngine +from .text import QwtText +from .plot_canvas import QwtPlotCanvas +from .plot_curve import QwtPlotCurve as QPC # see deprecated section +from .plot_curve import QwtPlotItem +from .scale_map import QwtScaleMap +from .interval import QwtInterval +from .legend import QwtLegend, QwtLegendData, QwtLegendLabel +from .plot_marker import QwtPlotMarker +from .plot_grid import QwtPlotGrid as QPG # see deprecated section +from .color_map import QwtLinearColorMap -from qwt.toqimage import array_to_qimage as toQImage +from .toqimage import array_to_qimage as toQImage -from qwt.scale_div import QwtScaleDiv -from qwt.scale_draw import QwtScaleDraw -from qwt.scale_draw import QwtAbstractScaleDraw -from qwt.painter import QwtPainter +from .scale_div import QwtScaleDiv +from .scale_draw import QwtScaleDraw +from .scale_draw import QwtAbstractScaleDraw +from .painter import QwtPainter -from qwt.plot_series import (QwtSeriesData, QwtPointArrayData, QwtSeriesStore, +from .plot_series import (QwtSeriesData, QwtPointArrayData, QwtSeriesStore, QwtPlotSeriesItem) -from qwt.plot_renderer import QwtPlotRenderer +from .plot_renderer import QwtPlotRenderer -from qwt.plot_directpainter import QwtPlotDirectPainter +from .plot_directpainter import QwtPlotDirectPainter ## ============================================================================ @@ -101,7 +101,7 @@ def draw(self, painter, *args): warnings.warn("`draw` has been removed in Qwt6: "\ "please rely on `drawSymbol` and `drawSymbols` instead", RuntimeWarning) - from qwt.qt.QtCore import QPointF + from .qt.QtCore import QPointF if len(args) == 2: self.drawSymbols(painter, [QPointF(*args)]) else: diff --git a/qwt/color_map.py b/qwt/color_map.py index ddd304c..53a2af4 100644 --- a/qwt/color_map.py +++ b/qwt/color_map.py @@ -28,8 +28,8 @@ :members: """ -from qwt.qt.QtGui import QColor, qRed, qGreen, qBlue, qRgb, qRgba, qAlpha -from qwt.qt.QtCore import Qt, qIsNaN +from .qt.QtGui import QColor, qRed, qGreen, qBlue, qRgb, qRgba, qAlpha +from .qt.QtCore import Qt, qIsNaN class ColorStop(object): @@ -153,7 +153,7 @@ class QwtColorMap(object): .. seealso :: - :py:data:`qwt.QwtScaleWidget` + :py:data:`.QwtScaleWidget` """ # enum Format @@ -168,7 +168,7 @@ def color(self, interval, value): """ Map a value into a color - :param qwt.interval.QwtInterval interval: valid interval for value + :param .interval.QwtInterval interval: valid interval for value :param float value: value :return: the color corresponding to value @@ -191,7 +191,7 @@ def colorTable(self, interval): """ Build and return a color map of 256 colors - :param qwt.interval.QwtInterval interval: range for the values + :param .interval.QwtInterval interval: range for the values :return: a color table, that can be used for a `QImage` The color table is needed for rendering indexed images in combination diff --git a/qwt/column_symbol.py b/qwt/column_symbol.py index 890df9a..f2386eb 100644 --- a/qwt/column_symbol.py +++ b/qwt/column_symbol.py @@ -5,10 +5,10 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) -from qwt.interval import QwtInterval +from .interval import QwtInterval -from qwt.qt.QtGui import QPolygonF, QPalette -from qwt.qt.QtCore import QRectF, Qt +from .qt.QtGui import QPolygonF, QPalette +from .qt.QtCore import QRectF, Qt def qwtDrawBox(p, rect, pal, lw): diff --git a/qwt/dyngrid_layout.py b/qwt/dyngrid_layout.py index eb96c5c..56593e4 100644 --- a/qwt/dyngrid_layout.py +++ b/qwt/dyngrid_layout.py @@ -6,7 +6,7 @@ # (see LICENSE file for more details) """ -qwt.dyngrid_layout +.dyngrid_layout ------------------ The `dyngrid_layout` module provides the `QwtDynGridLayout` class. @@ -15,8 +15,8 @@ :members: """ -from qwt.qt.QtGui import QLayout -from qwt.qt.QtCore import Qt, QRect, QSize +from .qt.QtGui import QLayout +from .qt.QtCore import Qt, QRect, QSize class QwtDynGridLayout_PrivateData(object): diff --git a/qwt/graphic.py b/qwt/graphic.py index c2cca8b..a9ea55b 100644 --- a/qwt/graphic.py +++ b/qwt/graphic.py @@ -13,12 +13,12 @@ :members: """ -from qwt.null_paintdevice import QwtNullPaintDevice -from qwt.painter_command import QwtPainterCommand +from .null_paintdevice import QwtNullPaintDevice +from .painter_command import QwtPainterCommand -from qwt.qt.QtGui import (QPainter, QPainterPathStroker, QPaintEngine, QPixmap, +from .qt.QtGui import (QPainter, QPainterPathStroker, QPaintEngine, QPixmap, QTransform, QImage) -from qwt.qt.QtCore import Qt, QRectF, QSizeF, QSize, QPointF, QRect +from .qt.QtCore import Qt, QRectF, QSizeF, QSize, QPointF, QRect import numpy as np @@ -250,7 +250,7 @@ class QwtGraphic(QwtNullPaintDevice): Copy constructor - :param qwt.graphic.QwtGraphic other: Source + :param .graphic.QwtGraphic other: Source """ # enum RenderHint diff --git a/qwt/interval.py b/qwt/interval.py index 4670815..2dfa8a2 100644 --- a/qwt/interval.py +++ b/qwt/interval.py @@ -235,7 +235,7 @@ def unite(self, other): """ Unite two intervals - :param qwt.interval.QwtInterval other: other interval to united with + :param .interval.QwtInterval other: other interval to united with :return: united interval """ if not self.isValid(): @@ -280,7 +280,7 @@ def intersect(self, other): """ Intersect two intervals - :param qwt.interval.QwtInterval other: other interval to intersect with + :param .interval.QwtInterval other: other interval to intersect with :return: intersected interval """ if not other.isValid() or not self.isValid(): @@ -326,7 +326,7 @@ def intersects(self, other): """ Test if two intervals overlap - :param qwt.interval.QwtInterval other: other interval + :param .interval.QwtInterval other: other interval :return: True, when the intervals are intersecting """ if not other.isValid() or not self.isValid(): diff --git a/qwt/legend.py b/qwt/legend.py index 978761e..667d7a3 100644 --- a/qwt/legend.py +++ b/qwt/legend.py @@ -21,14 +21,14 @@ import numpy as np -from qwt.qt.QtGui import (QFrame, QScrollArea, QWidget, QVBoxLayout, QPalette, +from .qt.QtGui import (QFrame, QScrollArea, QWidget, QVBoxLayout, QPalette, QApplication, QStyleOption, QStyle, QPixmap, QPainter, qDrawWinButton) -from qwt.qt.QtCore import Signal, QEvent, QSize, Qt, QRect, QRectF, QPoint +from .qt.QtCore import Signal, QEvent, QSize, Qt, QRect, QRectF, QPoint -from qwt.text import QwtText, QwtTextLabel -from qwt.dyngrid_layout import QwtDynGridLayout -from qwt.painter import QwtPainter +from .text import QwtText, QwtTextLabel +from .dyngrid_layout import QwtDynGridLayout +from .painter import QwtPainter class QwtLegendData(object): @@ -45,7 +45,7 @@ class QwtLegendData(object): .. seealso:: - :py:class:`qwt.legend.QwtLegend` + :py:class:`.legend.QwtLegend` .. note:: @@ -214,7 +214,7 @@ def data(self): .. seealso:: - :py:meth:`setData()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()` + :py:meth:`setData()`, :py:meth:`.plot.QwtPlotItem.legendData()` """ return self.__data.legendData @@ -222,7 +222,7 @@ def setText(self, text): """ Set the text to the legend item - :param qwt.text.QwtText text: Text label + :param .text.QwtText text: Text label .. seealso:: @@ -270,7 +270,7 @@ def setIcon(self, icon): .. seealso:: - :py:meth:`icon()`, :py:meth:`qwt.plot.QwtPlotItem.legendIcon()` + :py:meth:`icon()`, :py:meth:`.plot.QwtPlotItem.legendIcon()` """ self.__data.icon = icon indent = self.margin()+self.__data.spacing @@ -296,7 +296,7 @@ def setSpacing(self, spacing): .. seealso:: - :py:meth:`spacing()`, :py:meth:`qwt.text.QwtTextLabel.margin()` + :py:meth:`spacing()`, :py:meth:`.text.QwtTextLabel.margin()` """ spacing = max([spacing, 0]) if spacing != self.__data.spacing: @@ -596,9 +596,9 @@ class QwtLegend(QwtAbstractLegend): .. seealso :: - :py:class`qwt.legend.QwtLegendLabel`, - :py:class`qwt.plot.QwtPlotItem`, - :py:class`qwt.plot.QwtPlot` + :py:class`.legend.QwtLegendLabel`, + :py:class`.plot.QwtPlotItem`, + :py:class`.plot.QwtPlot` .. py:class:: QwtLegend([parent=None]) diff --git a/qwt/math.py b/qwt/math.py index d6eb818..f9c9ef4 100644 --- a/qwt/math.py +++ b/qwt/math.py @@ -5,7 +5,7 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) -from qwt.qt.QtCore import qFuzzyCompare +from .qt.QtCore import qFuzzyCompare import numpy as np diff --git a/qwt/null_paintdevice.py b/qwt/null_paintdevice.py index ad5e1d9..9fa0f54 100644 --- a/qwt/null_paintdevice.py +++ b/qwt/null_paintdevice.py @@ -13,7 +13,7 @@ :members: """ -from qwt.qt.QtGui import QPaintEngine, QPainterPath, QPaintDevice +from .qt.QtGui import QPaintEngine, QPainterPath, QPaintDevice class QwtNullPaintDevice_PrivateData(object): diff --git a/qwt/painter.py b/qwt/painter.py index b9e38bf..7e26274 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -13,13 +13,13 @@ :members: """ -from qwt.color_map import QwtColorMap -from qwt.scale_map import QwtScaleMap +from .color_map import QwtColorMap +from .scale_map import QwtScaleMap -from qwt.qt.QtGui import (QPaintEngine, QFrame, QPixmap, QPainter, QPalette, +from .qt.QtGui import (QPaintEngine, QFrame, QPixmap, QPainter, QPalette, QStyle, QPen, QStyleOptionFocusRect, QBrush, QLinearGradient, QPainterPath, QColor, QStyleOption) -from qwt.qt.QtCore import Qt, QRect, QPoint, QT_VERSION +from .qt.QtCore import Qt, QRect, QPoint, QT_VERSION QWIDGETSIZE_MAX = (1<<24)-1 @@ -321,9 +321,9 @@ def drawColorBar(self, painter, colorMap, interval, scaleMap, Draw a color bar into a rectangle :param QPainter painter: Painter - :param qwt.color_map.QwtColorMap colorMap: Color map - :param qwt.interval.QwtInterval interval: Value range - :param qwt.scalemap.QwtScaleMap scaleMap: Scale map + :param .color_map.QwtColorMap colorMap: Color map + :param .interval.QwtInterval interval: Value range + :param .scalemap.QwtScaleMap scaleMap: Scale map :param Qt.Orientation orientation: Orientation :param QRectF rect: Target rectangle """ @@ -428,7 +428,7 @@ def backingStore(self, widget, size): if widget and widget.windowHandle(): pixelRatio = widget.windowHandle().devicePixelRatio() else: - from qwt.qt.QtGui import qApp + from .qt.QtGui import qApp if qApp is not None: try: pixelRatio = qApp.devicePixelRatio() diff --git a/qwt/painter_command.py b/qwt/painter_command.py index a7d3996..05fbc89 100644 --- a/qwt/painter_command.py +++ b/qwt/painter_command.py @@ -13,7 +13,7 @@ :members: """ -from qwt.qt.QtGui import QPainterPath, QPaintEngine +from .qt.QtGui import QPainterPath, QPaintEngine class PixmapData(object): @@ -53,12 +53,12 @@ class QwtPainterCommand(object): `QwtPainterCommand` represents the attributes of a paint operation how it is used between `QPainter` and `QPaintDevice` - It is used by :py:class:`qwt.graphic.QwtGraphic` to record and replay + It is used by :py:class:`.graphic.QwtGraphic` to record and replay paint operations .. seealso:: - :py:meth:`qwt.graphic.QwtGraphic.commands()` + :py:meth:`.graphic.QwtGraphic.commands()` .. py:class:: QwtPainterCommand() diff --git a/qwt/plot.py b/qwt/plot.py index 8ee6518..fffbf78 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -19,20 +19,20 @@ :members: """ -from qwt.qt.QtGui import (QWidget, QFont, QSizePolicy, QFrame, QApplication, +from .qt.QtGui import (QWidget, QFont, QSizePolicy, QFrame, QApplication, QRegion, QPainter, QPalette) -from qwt.qt.QtCore import Qt, Signal, QEvent, QSize, QRectF - -from qwt.text import QwtText, QwtTextLabel -from qwt.scale_widget import QwtScaleWidget -from qwt.scale_draw import QwtScaleDraw -from qwt.scale_engine import QwtLinearScaleEngine -from qwt.plot_canvas import QwtPlotCanvas -from qwt.scale_div import QwtScaleDiv -from qwt.scale_map import QwtScaleMap -from qwt.graphic import QwtGraphic -from qwt.legend import QwtLegendData -from qwt.interval import QwtInterval +from .qt.QtCore import Qt, Signal, QEvent, QSize, QRectF + +from .text import QwtText, QwtTextLabel +from .scale_widget import QwtScaleWidget +from .scale_draw import QwtScaleDraw +from .scale_engine import QwtLinearScaleEngine +from .plot_canvas import QwtPlotCanvas +from .scale_div import QwtScaleDiv +from .scale_map import QwtScaleMap +from .graphic import QwtGraphic +from .legend import QwtLegendData +from .interval import QwtInterval import numpy as np @@ -133,7 +133,7 @@ def insertItem(self, item): """ Insert a plot item - :param qwt.plot.QwtPlotItem item: PlotItem + :param .plot.QwtPlotItem item: PlotItem .. seealso:: @@ -145,7 +145,7 @@ def removeItem(self, item): """ Remove a plot item - :param qwt.plot.QwtPlotItem item: PlotItem + :param .plot.QwtPlotItem item: PlotItem .. seealso:: @@ -215,9 +215,9 @@ class QwtPlot(QFrame, QwtPlotDict): QwtPlot is a widget for plotting two-dimensional graphs. An unlimited number of plot items can be displayed on its canvas. - Plot items might be curves (:py:class:`qwt.plot_curve.QwtPlotCurve`), - markers (:py:class:`qwt.plot_marker.QwtPlotMarker`), - the grid (:py:class:`qwt.plot_grid.QwtPlotGrid`), or anything else + Plot items might be curves (:py:class:`.plot_curve.QwtPlotCurve`), + markers (:py:class:`.plot_marker.QwtPlotMarker`), + the grid (:py:class:`.plot_grid.QwtPlotGrid`), or anything else derived from :py:class:`QwtPlotItem`. A plot can have up to four axes, with each plot item attached to an x- and @@ -228,7 +228,7 @@ class QwtPlot(QFrame, QwtPlotDict): The following example is a good starting point to see how to set up a plot widget:: - from qwt.qt.QtGui import QApplication + from .qt.QtGui import QApplication from qwt import QwtPlot, QwtPlotCurve import numpy as np @@ -304,7 +304,7 @@ def __init__(self, *args): self.__layout_state = None self.__data = QwtPlot_PrivateData() - from qwt.plot_layout import QwtPlotLayout + from .plot_layout import QwtPlotLayout self.__data.layout = QwtPlotLayout() self.__data.autoReplot = False @@ -432,7 +432,7 @@ def setAxisScaleEngine(self, axisId, scaleEngine): Change the scale engine for an axis :param int axisId: Axis index - :param qwt.scale_engine.QwtScaleEngine scaleEngine: Scale engine + :param .scale_engine.QwtScaleEngine scaleEngine: Scale engine .. seealso:: @@ -492,7 +492,7 @@ def axisMaxMajor(self, axisId): .. seealso:: :py:meth:`setAxisMaxMajor()`, - :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` + :py:meth:`.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): return self.axisWidget(axisId).maxMajor @@ -507,7 +507,7 @@ def axisMaxMinor(self, axisId): .. seealso:: :py:meth:`setAxisMaxMinor()`, - :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` + :py:meth:`.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): return self.axisWidget(axisId).maxMinor @@ -524,9 +524,9 @@ def axisScaleDiv(self, axisId): .. seealso:: - :py:class:`qwt.scale_div.QwtScaleDiv`, + :py:class:`.scale_div.QwtScaleDiv`, :py:meth:`setAxisScaleDiv()`, - :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` + :py:meth:`.scale_engine.QwtScaleEngine.divideScale()` """ return self.__axisData[axisId].scaleDiv @@ -548,7 +548,7 @@ def axisStepSize(self, axisId): .. seealso:: :py:meth:`setAxisScale()`, - :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` + :py:meth:`.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): return self.axisWidget(axisId).stepSize @@ -564,7 +564,7 @@ def axisInterval(self, axisId): .. seealso:: - :py:class:`qwt.scale_div.QwtScaleDiv`, + :py:class:`.scale_div.QwtScaleDiv`, :py:meth:`axisScaleDiv()` """ if self.axisValid(axisId): @@ -687,7 +687,7 @@ def setAxisScale(self, axisId, min_, max_, stepSize=0): :py:meth:`setAxisMaxMajor()`, :py:meth:`setAxisAutoScale()`, :py:meth:`axisStepSize()`, - :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` + :py:meth:`.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): d = self.__axisData[axisId] @@ -707,7 +707,7 @@ def setAxisScaleDiv(self, axisId, scaleDiv): the next replot. :param int axisId: Axis index - :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division + :param .scale_div.QwtScaleDiv scaleDiv: Scale division .. seealso:: @@ -725,7 +725,7 @@ def setAxisScaleDraw(self, axisId, scaleDraw): Set a scale draw :param int axisId: Axis index - :param qwt.scale_draw.QwtScaleDraw scaleDraw: Object responsible for drawing scales. + :param .scale_draw.QwtScaleDraw scaleDraw: Object responsible for drawing scales. By passing scaleDraw it is possible to extend QwtScaleDraw functionality and let it take place in QwtPlot. Please note @@ -734,8 +734,8 @@ def setAxisScaleDraw(self, axisId, scaleDraw): .. seealso:: - :py:class:`qwt.scale_draw.QwtScaleDraw`, - :py:class:`qwt.scale_widget.QwtScaleWigdet` + :py:class:`.scale_draw.QwtScaleDraw`, + :py:class:`.scale_widget.QwtScaleWigdet` .. warning:: @@ -755,7 +755,7 @@ def setAxisLabelAlignment(self, axisId, alignment): .. seealso:: - :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()` + :py:meth:`.scale_draw.QwtScaleDraw.setLabelAlignment()` """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelAlignment(alignment) @@ -783,7 +783,7 @@ def setAxisLabelAutoSize(self, axisId, state): .. seealso:: - :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()` + :py:meth:`.scale_draw.QwtScaleDraw.setLabelAutoSize()` """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelAutoSize(state) @@ -832,7 +832,7 @@ def setAxisTitle(self, axisId, title): :param int axisId: Axis index :param title: axis title - :type title: qwt.text.QwtText or str + :type title: .text.QwtText or str """ if self.axisValid(axisId): self.axisWidget(axisId).setTitle(title) @@ -989,7 +989,7 @@ def setTitle(self, title): Change the plot's title :param title: New title - :type title: str or qwt.text.QwtText + :type title: str or .text.QwtText .. seealso:: @@ -1024,7 +1024,7 @@ def setFooter(self, text): Change the text the footer :param text: New text of the footer - :type text: str or qwt.text.QwtText + :type text: str or .text.QwtText .. seealso:: @@ -1059,7 +1059,7 @@ def setPlotLayout(self, layout): Assign a new plot layout :param layout: Layout - :type layout: qwt.plot_layout.QwtPlotLayout + :type layout: .plot_layout.QwtPlotLayout .. seealso:: @@ -1340,7 +1340,7 @@ def canvasMap(self, axisId): .. seealso:: - :py:class:`qwt.scale_map.QwtScaleMap`, + :py:class:`.scale_map.QwtScaleMap`, :py:meth:`transform()`, :py:meth:`invTransform()` """ map_ = QwtScaleMap() @@ -1437,7 +1437,7 @@ def insertLegend(self, legend, pos=None, ratio=-1): wants to implement its own layout this also needs to be done for rendering plots to a document ( see QwtPlotRenderer ). - :param qwt.legend.QwtAbstractLegend legend: Legend + :param .legend.QwtAbstractLegend legend: Legend :param QwtPlot.LegendPosition pos: The legend's position. :param float ratio: Ratio between legend and the bounding rectangle of title, canvas and axes @@ -1456,8 +1456,8 @@ def insertLegend(self, legend, pos=None, ratio=-1): .. seealso:: :py:meth:`legend()`, - :py:meth:`qwt.plot_layout.QwtPlotLayout.legendPosition()`, - :py:meth:`qwt.plot_layout.QwtPlotLayout.setLegendPosition()` + :py:meth:`.plot_layout.QwtPlotLayout.legendPosition()`, + :py:meth:`.plot_layout.QwtPlotLayout.setLegendPosition()` """ if pos is None: pos = self.RightLegend @@ -1504,7 +1504,7 @@ def updateLegend(self, plotItem=None): If plotItem is None, emit QwtPlot.legendDataChanged for all plot item. Otherwise, emit the signal for passed plot item. - :param qwt.plot.QwtPlotItem plotItem: Plot item + :param .plot.QwtPlotItem plotItem: Plot item .. seealso:: @@ -1529,7 +1529,7 @@ def updateLegendItems(self, plotItem, legendData): Call `QwtPlotItem.updateLegend()`, when the `QwtPlotItem.LegendInterest` flag is set. - :param qwt.plot.QwtPlotItem plotItem: Plot item + :param .plot.QwtPlotItem plotItem: Plot item :param list legendData: Entries to be displayed for the plot item ( usually 1 ) .. seealso:: @@ -1546,7 +1546,7 @@ def attachItem(self, plotItem, on): """ Attach/Detach a plot item - :param qwt.plot.QwtPlotItem plotItem: Plot item + :param .plot.QwtPlotItem plotItem: Plot item :param bool on: When true attach the item, otherwise detach it """ if plotItem.testItemInterest(QwtPlotItem.LegendInterest): @@ -1578,7 +1578,7 @@ def print_(self, printer): :param printer: Printer :type printer: QPaintDevice or QPrinter or QSvgGenerator """ - from qwt.plot_renderer import QwtPlotRenderer + from .plot_renderer import QwtPlotRenderer renderer = QwtPlotRenderer(self) renderer.renderTo(self, printer) @@ -1595,7 +1595,7 @@ def exportTo(self, filename, size=(800, 600), size_mm=None, """ if size_mm is None: size_mm = tuple(25.4*np.array(size)/resolution) - from qwt.plot_renderer import QwtPlotRenderer + from .plot_renderer import QwtPlotRenderer renderer = QwtPlotRenderer(self) renderer.renderDocument(self, filename, size_mm, resolution, format_) @@ -1627,9 +1627,9 @@ class QwtPlotItem(object): on the plot canvas. The different representator classes are organized according to the characteristics of the data: - - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a + - :py:class:`.plot_marker.QwtPlotMarker`: Represents a point or a horizontal/vertical coordinate - - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of + - :py:class:`.plot_curve.QwtPlotCurve`: Represents a series of points - Decorators @@ -1637,7 +1637,7 @@ class QwtPlotItem(object): A "Decorator" is an item, that displays additional information, that is not related to any data: - - :py:class:`qwt.plot_grid.QwtPlotGrid` + - :py:class:`.plot_grid.QwtPlotGrid` Depending on the `QwtPlotItem.ItemAttribute` flags, an item is included into autoscaling or has an entry on the legend. @@ -1657,7 +1657,7 @@ class QwtPlotItem(object): Constructor :param title: Title of the item - :type title: qwt.text.QwtText or str + :type title: .text.QwtText or str """ # enum RttiValues @@ -1700,7 +1700,7 @@ def attach(self, plot): call to attach (if necessary). If a None argument is passed, it will detach from any `QwtPlot` it was attached to. - :param qwt.plot.QwtPlot plot: Plot widget + :param .plot.QwtPlot plot: Plot widget .. seealso:: @@ -1784,7 +1784,7 @@ def setTitle(self, title): Set a new title :param title: Title - :type title: qwt.text.QwtText or str + :type title: .text.QwtText or str .. seealso:: @@ -2116,8 +2116,8 @@ def getCanvasMarginHint(self, xMap, yMap, canvasRect): The margins are in target device coordinates ( pixels on screen ) - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates .. seealso:: @@ -2146,7 +2146,7 @@ def legendData(self): .. seealso:: :py:meth:`title()`, :py:meth:`legendIcon()`, - :py:class:`qwt.legend.QwtLegend` + :py:class:`.legend.QwtLegend` """ data = QwtLegendData() label = self.title() @@ -2167,7 +2167,7 @@ def updateLegend(self, item, data): updateLegend() is only called when the LegendInterest interest is enabled. The default implementation does nothing. - :param qwt.plot.QwtPlotItem item: Plot item to be displayed on a legend + :param .plot.QwtPlotItem item: Plot item to be displayed on a legend :param list data: Attributes how to display item on the legend .. note:: @@ -2182,8 +2182,8 @@ def scaleRect(self, xMap, yMap): """ Calculate the bounding scale rectangle of 2 maps - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :return: Bounding scale rect of the scale maps, not normalized """ return QRectF(xMap.s1(), yMap.s1(), xMap.sDist(), yMap.sDist()) @@ -2192,8 +2192,8 @@ def paintRect(self, xMap, yMap): """ Calculate the bounding paint rectangle of 2 maps - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :return: Bounding paint rectangle of the scale maps, not normalized """ return QRectF(xMap.p1(), yMap.p1(), xMap.pDist(), yMap.pDist()) diff --git a/qwt/plot_canvas.py b/qwt/plot_canvas.py index b98b27c..bef6ecd 100644 --- a/qwt/plot_canvas.py +++ b/qwt/plot_canvas.py @@ -13,14 +13,14 @@ :members: """ -from qwt.null_paintdevice import QwtNullPaintDevice -from qwt.painter import QwtPainter +from .null_paintdevice import QwtNullPaintDevice +from .painter import QwtPainter -from qwt.qt import PYQT5 -from qwt.qt.QtGui import (QFrame, QPaintEngine, QPen, QBrush, QRegion, QImage, +from .qt import PYQT5 +from .qt.QtGui import (QFrame, QPaintEngine, QPen, QBrush, QRegion, QImage, QPainterPath, QPixmap, QGradient, QPainter, qAlpha, QPolygonF, QStyleOption, QStyle, QStyleOptionFrame) -from qwt.qt.QtCore import Qt, QSizeF, QT_VERSION, QEvent, QPointF, QRectF +from .qt.QtCore import Qt, QSizeF, QT_VERSION, QEvent, QPointF, QRectF class Border(object): @@ -322,7 +322,7 @@ class QwtPlotCanvas(QFrame): .. seealso:: - :py:meth:`qwt.plot.QwtPlot.setCanvas()` + :py:meth:`.plot.QwtPlot.setCanvas()` Paint attributes: @@ -335,7 +335,7 @@ class QwtPlotCanvas(QFrame): when working with widget overlays (like rubber bands). Disabling the cache might improve the performance for incremental paints - (using :py:class:`qwt.plot_directpainter.QwtPlotDirectPainter`). + (using :py:class:`.plot_directpainter.QwtPlotDirectPainter`). * `QwtPlotCanvas.Opaque`: @@ -401,11 +401,11 @@ class QwtPlotCanvas(QFrame): Constructor - :param qwt.plot.QwtPlot plot: Parent plot widget + :param .plot.QwtPlot plot: Parent plot widget .. seealso:: - :py:meth:`qwt.plot.QwtPlot.setCanvas()` + :py:meth:`.plot.QwtPlot.setCanvas()` """ # enum PaintAttribute @@ -698,9 +698,9 @@ def drawBorder(self, painter): else: if QT_VERSION >= 0x040500: if PYQT5: - from qwt.qt.QtGui import QStyleOptionFrame + from .qt.QtGui import QStyleOptionFrame else: - from qwt.qt.QtGui import QStyleOptionFrameV3 as\ + from .qt.QtGui import QStyleOptionFrameV3 as\ QStyleOptionFrame opt = QStyleOptionFrame() opt.initFrom(self) diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 8d213dd..feb81dd 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -13,18 +13,18 @@ :members: """ -from qwt.text import QwtText -from qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData -from qwt.painter import QwtPainter -from qwt.math import qwtSqr -from qwt.graphic import QwtGraphic -from qwt.plot_series import (QwtPlotSeriesItem, QwtSeriesStore, +from .text import QwtText +from .plot import QwtPlotItem, QwtPlotItem_PrivateData +from .painter import QwtPainter +from .math import qwtSqr +from .graphic import QwtGraphic +from .plot_series import (QwtPlotSeriesItem, QwtSeriesStore, QwtSeriesData, QwtPointArrayData) -from qwt.symbol import QwtSymbol -from qwt.plot_directpainter import QwtPlotDirectPainter +from .symbol import QwtSymbol +from .plot_directpainter import QwtPlotDirectPainter -from qwt.qt.QtGui import QPen, QBrush, QPainter, QPolygonF, QColor -from qwt.qt.QtCore import QSize, Qt, QRectF, QPointF +from .qt.QtGui import QPen, QBrush, QPainter, QPolygonF, QColor +from .qt.QtCore import QSize, Qt, QRectF, QPointF import numpy as np @@ -86,8 +86,8 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): .. seealso:: - :py:class:`qwt.symbol.QwtSymbol()`, - :py:class:`qwt.scale_map.QwtScaleMap()` + :py:class:`.symbol.QwtSymbol()`, + :py:class:`.scale_map.QwtScaleMap()` Curve styles: @@ -157,7 +157,7 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): Constructor :param title: Curve title - :type title: qwt.text.QwtText or str or None + :type title: .text.QwtText or str or None """ # enum CurveStyle @@ -275,7 +275,7 @@ def setSymbol(self, symbol): set symbol will be delete by setting a new one. If symbol is None no symbol will be drawn. - :param qwt.symbol.QwtSymbol symbol: Symbol + :param .symbol.QwtSymbol symbol: Symbol .. seealso:: @@ -414,8 +414,8 @@ def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): Draw an interval of the curve :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -448,8 +448,8 @@ def drawCurve(self, painter, style, xMap, yMap, canvasRect, from_, to): :param QPainter painter: Painter :param int style: curve style, see `QwtPlotCurve.CurveStyle` - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -473,8 +473,8 @@ def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): Draw lines :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -498,8 +498,8 @@ def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): Draw sticks :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -530,8 +530,8 @@ def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): Draw dots :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -553,8 +553,8 @@ def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): Draw steps :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -625,8 +625,8 @@ def fillCurve(self, painter, xMap, yMap, canvasRect, polygon): the curve brush :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param QPolygonF polygon: Polygon - will be modified ! @@ -655,8 +655,8 @@ def closePolyline(self, painter, xMap, yMap, polygon): area between the original polygon and the baseline. :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QPolygonF polygon: Polygon to be completed """ if polygon.size() < 2: @@ -680,9 +680,9 @@ def drawSymbols(self, painter, symbol, xMap, yMap, canvasRect, from_, to): Draw symbols :param QPainter painter: Painter - :param qwt.symbol.QwtSymbol symbol: Curve symbol - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .symbol.QwtSymbol symbol: Curve symbol + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -777,8 +777,8 @@ def legendIcon(self, index, size): .. seealso:: - :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`, - :py:meth:`qwt.plot.QwtPlotItem.legendData()` + :py:meth:`.plot.QwtPlotItem.setLegendIconSize()`, + :py:meth:`.plot.QwtPlotItem.legendData()` """ if size.isEmpty(): return QwtGraphic() @@ -820,7 +820,7 @@ def setData(self, *args, **kwargs): .. py:method:: setData(data): :param data: Series data (e.g. `QwtPointArrayData` instance) - :type data: qwt.plot_series.QwtSeriesData + :type data: .plot_series.QwtSeriesData .. py:method:: setData(xData, yData, [size=None], [finite=True]): @@ -855,7 +855,7 @@ def setSamples(self, *args, **kwargs): .. py:method:: setSamples(data): :param data: Series data (e.g. `QwtPointArrayData` instance) - :type data: qwt.plot_series.QwtSeriesData + :type data: .plot_series.QwtSeriesData .. py:method:: setSamples(samples): @@ -876,7 +876,7 @@ def setSamples(self, *args, **kwargs): .. seealso:: - :py:class:`qwt.plot_series.QwtPointArrayData` + :py:class:`.plot_series.QwtPointArrayData` """ if len(args) == 1 and not kwargs: samples, = args diff --git a/qwt/plot_directpainter.py b/qwt/plot_directpainter.py index 8cecf5c..61e72c3 100644 --- a/qwt/plot_directpainter.py +++ b/qwt/plot_directpainter.py @@ -13,11 +13,11 @@ :members: """ -from qwt.qt.QtGui import QPainter, QRegion -from qwt.qt.QtCore import QObject, QT_VERSION, Qt, QEvent +from .qt.QtGui import QPainter, QRegion +from .qt.QtCore import QObject, QT_VERSION, Qt, QEvent -from qwt.plot import QwtPlotItem -from qwt.plot_canvas import QwtPlotCanvas +from .plot import QwtPlotItem +from .plot_canvas import QwtPlotCanvas def qwtRenderItem(painter, canvasRect, seriesItem, from_, to): @@ -197,7 +197,7 @@ def drawSeries(self, seriesItem, from_, to): will result in faster painting, if the paint engine of the canvas widget supports this feature. - :param qwt.plot_series.QwtPlotSeriesItem seriesItem: Item to be painted + :param .plot_series.QwtPlotSeriesItem seriesItem: Item to be painted :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the series will be painted to its last point. """ diff --git a/qwt/plot_grid.py b/qwt/plot_grid.py index 1d8308b..957b05e 100644 --- a/qwt/plot_grid.py +++ b/qwt/plot_grid.py @@ -13,14 +13,14 @@ :members: """ -from qwt.scale_div import QwtScaleDiv -from qwt.plot import QwtPlotItem -from qwt.text import QwtText -from qwt.painter import QwtPainter -from qwt.math import qwtFuzzyGreaterOrEqual, qwtFuzzyLessOrEqual +from .scale_div import QwtScaleDiv +from .plot import QwtPlotItem +from .text import QwtText +from .painter import QwtPainter +from .math import qwtFuzzyGreaterOrEqual, qwtFuzzyLessOrEqual -from qwt.qt.QtGui import QPen -from qwt.qt.QtCore import Qt +from .qt.QtGui import QPen +from .qt.QtCore import Qt class QwtPlotGrid_PrivateData(object): @@ -124,7 +124,7 @@ def setXDiv(self, scaleDiv): """ Assign an x axis scale division - :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division + :param .scale_div.QwtScaleDiv scaleDiv: Scale division """ if self.__data.xScaleDiv != scaleDiv: self.__data.xScaleDiv = scaleDiv @@ -134,7 +134,7 @@ def setYDiv(self, scaleDiv): """ Assign an y axis scale division - :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division + :param .scale_div.QwtScaleDiv scaleDiv: Scale division """ if self.__data.yScaleDiv != scaleDiv: self.__data.yScaleDiv = scaleDiv @@ -270,8 +270,8 @@ def draw(self, painter, xMap, yMap, canvasRect): screen. :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: X axis map - :param qwt.scale_map.QwtScaleMap yMap: Y axis + :param .scale_map.QwtScaleMap xMap: X axis map + :param .scale_map.QwtScaleMap yMap: Y axis :param QRectF canvasRect: Contents rectangle of the plot canvas """ minorPen = QPen(self.__data.minorPen) @@ -391,8 +391,8 @@ def updateScaleDiv(self, xScaleDiv, yScaleDiv): """ Update the grid to changes of the axes scale division - :param qwt.scale_map.QwtScaleMap xMap: Scale division of the x-axis - :param qwt.scale_map.QwtScaleMap yMap: Scale division of the y-axis + :param .scale_map.QwtScaleMap xMap: Scale division of the x-axis + :param .scale_map.QwtScaleMap yMap: Scale division of the y-axis .. seealso:: diff --git a/qwt/plot_layout.py b/qwt/plot_layout.py index c0c9661..467088f 100644 --- a/qwt/plot_layout.py +++ b/qwt/plot_layout.py @@ -13,13 +13,13 @@ :members: """ -from qwt.text import QwtText -from qwt.scale_widget import QwtScaleWidget -from qwt.plot import QwtPlot -from qwt.scale_draw import QwtAbstractScaleDraw +from .text import QwtText +from .scale_widget import QwtScaleWidget +from .plot import QwtPlot +from .scale_draw import QwtAbstractScaleDraw -from qwt.qt.QtGui import QFont, QRegion -from qwt.qt.QtCore import QSize, Qt, QRectF +from .qt.QtGui import QFont, QRegion +from .qt.QtCore import QSize, Qt, QRectF import numpy as np @@ -152,7 +152,7 @@ class QwtPlotLayout(object): .. seealso:: - :py:meth:`qwt.plot.QwtPlot.setPlotLayout()` + :py:meth:`.plot.QwtPlot.setPlotLayout()` Valid options: @@ -535,12 +535,12 @@ def invalidate(self): def minimumSizeHint(self, plot): """ - :param qwt.plot.QwtPlot plot: Plot widget + :param .plot.QwtPlot plot: Plot widget :return: Minimum size hint .. seealso:: - :py:meth:`qwt.plot.QwtPlot.minimumSizeHint()` + :py:meth:`.plot.QwtPlot.minimumSizeHint()` """ class _ScaleData(object): def __init__(self): @@ -922,7 +922,7 @@ def activate(self, plot, plotRect, options=0x00): """ Recalculate the geometry of all components. - :param qwt.plot.QwtPlot plot: Plot to be layout + :param .plot.QwtPlot plot: Plot to be layout :param QRectF plotRect: Rectangle where to place the components :param options: Layout options """ diff --git a/qwt/plot_marker.py b/qwt/plot_marker.py index 6c10d79..71a2f60 100644 --- a/qwt/plot_marker.py +++ b/qwt/plot_marker.py @@ -13,14 +13,14 @@ :members: """ -from qwt.plot import QwtPlotItem -from qwt.text import QwtText -from qwt.painter import QwtPainter -from qwt.graphic import QwtGraphic -from qwt.symbol import QwtSymbol +from .plot import QwtPlotItem +from .text import QwtText +from .painter import QwtPainter +from .graphic import QwtGraphic +from .symbol import QwtSymbol -from qwt.qt.QtGui import QPen, QPainter -from qwt.qt.QtCore import Qt, QPointF, QRectF, QSizeF, QRect +from .qt.QtGui import QPen, QPainter +from .qt.QtCore import Qt, QPointF, QRectF, QSizeF, QRect class QwtPlotMarker_PrivateData(object): @@ -139,8 +139,8 @@ def draw(self, painter, xMap, yMap, canvasRect): Draw the marker :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: x Scale Map - :param qwt.scale_map.QwtScaleMap yMap: y Scale Map + :param .scale_map.QwtScaleMap xMap: x Scale Map + :param .scale_map.QwtScaleMap yMap: y Scale Map :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates """ pos = QPointF(xMap.transform(self.__data.xValue), @@ -166,7 +166,7 @@ def drawLines(self, painter, canvasRect, pos): .. seealso:: :py:meth:`drawLabel()`, - :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()` + :py:meth:`.symbol.QwtSymbol.drawSymbol()` """ if self.__data.style == self.NoLine: return @@ -189,7 +189,7 @@ def drawLabel(self, painter, canvasRect, pos): .. seealso:: :py:meth:`drawLabel()`, - :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()` + :py:meth:`.symbol.QwtSymbol.drawSymbol()` """ if self.__data.label.isEmpty(): return @@ -302,7 +302,7 @@ def setSymbol(self, symbol): """ Assign a symbol - :param qwt.symbol.QwtSymbol symbol: New symbol + :param .symbol.QwtSymbol symbol: New symbol .. seealso:: @@ -330,7 +330,7 @@ def setLabel(self, label): Set the label :param label: Label text - :type label: qwt.text.QwtText or str + :type label: .text.QwtText or str .. seealso:: @@ -505,8 +505,8 @@ def legendIcon(self, index, size): .. seealso:: - :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`, - :py:meth:`qwt.plot.QwtPlotItem.legendData()` + :py:meth:`.plot.QwtPlotItem.setLegendIconSize()`, + :py:meth:`.plot.QwtPlotItem.legendData()` """ if size.isEmpty(): return QwtGraphic() diff --git a/qwt/plot_renderer.py b/qwt/plot_renderer.py index 83497fa..aeab39a 100644 --- a/qwt/plot_renderer.py +++ b/qwt/plot_renderer.py @@ -15,18 +15,18 @@ from __future__ import division -from qwt.painter import QwtPainter -from qwt.plot import QwtPlot -from qwt.plot_layout import QwtPlotLayout -from qwt.scale_draw import QwtScaleDraw -from qwt.scale_map import QwtScaleMap +from .painter import QwtPainter +from .plot import QwtPlot +from .plot_layout import QwtPlotLayout +from .scale_draw import QwtScaleDraw +from .scale_map import QwtScaleMap -from qwt.qt.QtGui import (QPrinter, QPainter, QImageWriter, QImage, QColor, +from .qt.QtGui import (QPrinter, QPainter, QImageWriter, QImage, QColor, QPaintDevice, QTransform, QPalette, QFileDialog, QPainterPath, QPen) -from qwt.qt.QtCore import Qt, QRect, QRectF, QObject, QSizeF -from qwt.qt.QtSvg import QSvgGenerator -from qwt.qt.compat import getsavefilename +from .qt.QtCore import Qt, QRect, QRectF, QObject, QSizeF +from .qt.QtSvg import QSvgGenerator +from .qt.compat import getsavefilename import numpy as np import os.path as osp @@ -207,7 +207,7 @@ def renderDocument(self, plot, filename, sizeMM=(300, 200), resolution=85, The format of the document will be auto-detected from the suffix of the file name. - :param qwt.plot.QwtPlot plot: Plot widget + :param .plot.QwtPlot plot: Plot widget :param str fileName: Path of the file, where the document will be stored :param QSizeF sizeMM: Size for the document in millimeters :param int resolution: Resolution in dots per Inch (dpi) @@ -280,7 +280,7 @@ def renderTo(self, plot, dest): Scalable vector graphic formats like PDF or SVG are superior to raster graphics formats. - :param qwt.plot.QwtPlot plot: Plot widget + :param .plot.QwtPlot plot: Plot widget :param str fileName: Path of the file, where the document will be stored :param str format: Format for the document :param QSizeF sizeMM: Size for the document in millimeters. @@ -289,7 +289,7 @@ def renderTo(self, plot, dest): .. seealso:: :py:meth:`renderTo()`, :py:meth:`render()`, - :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()` + :py:meth:`.painter.QwtPainter.setRoundingAlignment()` """ if isinstance(dest, QPaintDevice): w = dest.width() @@ -315,7 +315,7 @@ def render(self, plot, painter, plotRect): """ Paint the contents of a QwtPlot instance into a given rectangle. - :param qwt.plot.QwtPlot plot: Plot to be rendered + :param .plot.QwtPlot plot: Plot to be rendered :param QPainter painter: Painter :param str format: Format for the document :param QRectF plotRect: Bounding rectangle @@ -323,7 +323,7 @@ def render(self, plot, painter, plotRect): .. seealso:: :py:meth:`renderDocument()`, :py:meth:`renderTo()`, - :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()` + :py:meth:`.painter.QwtPainter.setRoundingAlignment()` """ if painter == 0 or not painter.isActive() or not plotRect.isValid()\ or plot.size().isNull(): @@ -433,7 +433,7 @@ def renderTitle(self, plot, painter, rect): """ Render the title into a given rectangle. - :param qwt.plot.QwtPlot plot: Plot widget + :param .plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param QRectF rect: Bounding rectangle """ @@ -446,7 +446,7 @@ def renderFooter(self, plot, painter, rect): """ Render the footer into a given rectangle. - :param qwt.plot.QwtPlot plot: Plot widget + :param .plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param QRectF rect: Bounding rectangle """ @@ -459,7 +459,7 @@ def renderLegend(self, plot, painter, rect): """ Render the legend into a given rectangle. - :param qwt.plot.QwtPlot plot: Plot widget + :param .plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param QRectF rect: Bounding rectangle """ @@ -473,7 +473,7 @@ def renderScale(self, plot, painter, axisId, startDist, endDist, Paint a scale into a given rectangle. Paint the scale into a given rectangle. - :param qwt.plot.QwtPlot plot: Plot widget + :param .plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param int axisId: Axis :param int startDist: Start border distance @@ -527,9 +527,9 @@ def renderCanvas(self, plot, painter, canvasRect, maps): """ Render the canvas into a given rectangle. - :param qwt.plot.QwtPlot plot: Plot widget + :param .plot.QwtPlot plot: Plot widget :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap maps: mapping between plot and paint device coordinates + :param .scale_map.QwtScaleMap maps: mapping between plot and paint device coordinates :param QRectF rect: Bounding rectangle """ canvas = plot.canvas() @@ -598,7 +598,7 @@ def buildCanvasMaps(self, plot, canvasRect): """ Calculated the scale maps for rendering the canvas - :param qwt.plot.QwtPlot plot: Plot widget + :param .plot.QwtPlot plot: Plot widget :param QRectF canvasRect: Target rectangle :return: Calculated scale maps """ @@ -646,7 +646,7 @@ def exportTo(self, plot, documentname, sizeMM=None, resolution=85): """ Execute a file dialog and render the plot to the selected file - :param qwt.plot.QwtPlot plot: Plot widget + :param .plot.QwtPlot plot: Plot widget :param str documentName: Default document name :param QSizeF sizeMM: Size for the document in millimeters :param int resolution: Resolution in dots per Inch (dpi) diff --git a/qwt/plot_series.py b/qwt/plot_series.py index 8328ff9..1b0b43e 100644 --- a/qwt/plot_series.py +++ b/qwt/plot_series.py @@ -36,10 +36,10 @@ import numpy as np -from qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData -from qwt.text import QwtText +from .plot import QwtPlotItem, QwtPlotItem_PrivateData +from .text import QwtText -from qwt.qt.QtCore import Qt, QRectF, QPointF +from .qt.QtCore import Qt, QRectF, QPointF class QwtPlotSeriesItem_PrivateData(QwtPlotItem_PrivateData): @@ -90,8 +90,8 @@ def draw(self, painter, xMap, yMap, canvasRect): Draw the complete series :param QPainter painter: Painter - :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas """ self.drawSeries(painter, xMap, yMap, canvasRect, 0, -1) @@ -275,7 +275,7 @@ def setData(self, series): """ Assign a series of samples - :param qwt.plot_series.QwtSeriesData series: Data + :param .plot_series.QwtSeriesData series: Data .. warning:: @@ -309,7 +309,7 @@ def dataSize(self): .. seealso:: :py:meth:`setData()`, - :py:meth:`qwt.plot_series.QwtSeriesData.size()` + :py:meth:`.plot_series.QwtSeriesData.size()` """ if self.__series is None: return 0 @@ -321,7 +321,7 @@ def dataRect(self): .. seealso:: - :py:meth:`qwt.plot_series.QwtSeriesData.boundingRect()` + :py:meth:`.plot_series.QwtSeriesData.boundingRect()` """ if self.__series is None or self.dataSize() == 0: return QRectF(1.0, 1.0, -2.0, -2.0) @@ -335,7 +335,7 @@ def setRectOfInterest(self, rect): .. seealso:: - :py:meth:`qwt.plot_series.QwtSeriesData.setRectOfInterest()` + :py:meth:`.plot_series.QwtSeriesData.setRectOfInterest()` """ if self.__series: self.__series.setRectOfInterest(rect) @@ -344,7 +344,7 @@ def swapData(self, series): """ Replace a series without deleting the previous one - :param qwt.plot_series.QwtSeriesData series: New series + :param .plot_series.QwtSeriesData series: New series :return: Previously assigned series """ swappedSeries = self.__series diff --git a/qwt/qt/compat.py b/qwt/qt/compat.py index 23ffcf3..3afcb72 100644 --- a/qwt/qt/compat.py +++ b/qwt/qt/compat.py @@ -23,8 +23,8 @@ import sys import collections -from qwt.qt.QtGui import QFileDialog -from qwt.py3compat import is_text_string, to_text_string, TEXT_TYPES +from .QtGui import QFileDialog +from ..py3compat import is_text_string, to_text_string, TEXT_TYPES #============================================================================== # QVariant conversion utilities diff --git a/qwt/scale_div.py b/qwt/scale_div.py index d0b28c1..c9c6de1 100644 --- a/qwt/scale_div.py +++ b/qwt/scale_div.py @@ -13,7 +13,7 @@ :members: """ -from qwt.interval import QwtInterval +from .interval import QwtInterval import copy @@ -32,8 +32,8 @@ class QwtScaleDiv(object): .. seealso:: - :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`, - :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()` + :py:meth:`.scale_engine.QwtScaleEngine.divideScale()`, + :py:meth:`.plot.QwtPlot.setAxisScaleDiv()` Scale tick types: @@ -49,7 +49,7 @@ class QwtScaleDiv(object): .. py:class:: QwtScaleDiv(interval, ticks) - :param qwt.interval.QwtInterval interval: Interval + :param .interval.QwtInterval interval: Interval :param list ticks: list of major, medium and minor ticks .. py:class:: QwtScaleDiv(lowerBound, upperBound) @@ -115,7 +115,7 @@ def setInterval(self, *args): .. py:method:: setInterval(interval) - :param qwt.interval.QwtInterval interval: Interval + :param .interval.QwtInterval interval: Interval .. note:: diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index 217b5b2..a6ef341 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -19,13 +19,13 @@ :members: """ -from qwt.scale_div import QwtScaleDiv -from qwt.scale_map import QwtScaleMap -from qwt.text import QwtText -from qwt.math import qwtRadians +from .scale_div import QwtScaleDiv +from .scale_map import QwtScaleMap +from .text import QwtText +from .math import qwtRadians -from qwt.qt.QtGui import QPalette, QFontMetrics, QTransform -from qwt.qt.QtCore import (Qt, qFuzzyCompare, QLocale, QRectF, QPointF, QRect, +from .qt.QtGui import QPalette, QFontMetrics, QTransform +from .qt.QtCore import (Qt, qFuzzyCompare, QLocale, QRectF, QPointF, QRect, QPoint) import numpy as np @@ -169,7 +169,7 @@ def setScaleDiv(self, scaleDiv): """ Change the scale division - :param qwt.scale_div.QwtScaleDiv scaleDiv: New scale division + :param .scale_div.QwtScaleDiv scaleDiv: New scale division """ self.__data.scaleDiv = scaleDiv self.__data.map.setScaleInterval(scaleDiv.lowerBound(), @@ -180,7 +180,7 @@ def setTransformation(self, transformation): """ Change the transformation of the scale - :param qwt.transform.QwtTransform transformation: New scale transformation + :param .transform.QwtTransform transformation: New scale transformation """ self.__data.map.setTransformation(transformation) diff --git a/qwt/scale_engine.py b/qwt/scale_engine.py index 43f2ead..edf204b 100644 --- a/qwt/scale_engine.py +++ b/qwt/scale_engine.py @@ -27,13 +27,13 @@ from __future__ import division -from qwt.interval import QwtInterval -from qwt.scale_div import QwtScaleDiv -from qwt.transform import QwtLogTransform -from qwt.math import qwtFuzzyCompare -from qwt.transform import QwtTransform +from .interval import QwtInterval +from .scale_div import QwtScaleDiv +from .transform import QwtLogTransform +from .math import qwtFuzzyCompare +from .transform import QwtTransform -from qwt.qt.QtCore import qFuzzyCompare +from .qt.QtCore import qFuzzyCompare import numpy as np @@ -78,7 +78,7 @@ def ceilEps(value, intervalSize): .. seealso:: - :py:func:`qwt.scale_engine.floorEps()` + :py:func:`.scale_engine.floorEps()` """ eps = EPS*intervalSize value = (value-eps)/intervalSize @@ -94,7 +94,7 @@ def floorEps(value, intervalSize): .. seealso:: - :py:func:`qwt.scale_engine.ceilEps()` + :py:func:`.scale_engine.ceilEps()` """ eps = EPS*intervalSize value = (value+eps)/intervalSize @@ -218,7 +218,7 @@ def setTransformation(self, transform): """ Assign a transformation - :param qwt.transform.QwtTransform transform: Transformation + :param .transform.QwtTransform transform: Transformation The transformation object is used as factory for clones that are returned by `transformation()` @@ -326,7 +326,7 @@ def strip(self, ticks, interval): Remove ticks from a list, that are not inside an interval :param list ticks: Tick list - :param qwt.interval.QwtInterval interval: Interval + :param .interval.QwtInterval interval: Interval :return: Stripped tick list """ if not interval.isValid() or not ticks: @@ -534,7 +534,7 @@ def buildTicks(self, interval, stepSize, maxMinorSteps): """ Calculate ticks for an interval - :param qwt.interval.QwtInterval interval: Interval + :param .interval.QwtInterval interval: Interval :param float stepSize: Step size :param int maxMinorSteps: Maximum number of minor steps :return: Calculated ticks @@ -556,7 +556,7 @@ def buildMajorTicks(self, interval, stepSize): """ Calculate major ticks for an interval - :param qwt.interval.QwtInterval interval: Interval + :param .interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Calculated ticks """ @@ -602,7 +602,7 @@ def align(self, interval, stepSize): The limits of an interval are aligned that both are integer multiples of the step size. - :param qwt.interval.QwtInterval interval: Interval + :param .interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Aligned interval """ @@ -765,7 +765,7 @@ def buildTicks(self, interval, stepSize, maxMinorSteps): """ Calculate ticks for an interval - :param qwt.interval.QwtInterval interval: Interval + :param .interval.QwtInterval interval: Interval :param float stepSize: Step size :param int maxMinorSteps: Maximum number of minor steps :return: Calculated ticks @@ -784,7 +784,7 @@ def buildMajorTicks(self, interval, stepSize): """ Calculate major ticks for an interval - :param qwt.interval.QwtInterval interval: Interval + :param .interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Calculated ticks """ @@ -874,7 +874,7 @@ def align(self, interval, stepSize): The limits of an interval are aligned that both are integer multiples of the step size. - :param qwt.interval.QwtInterval interval: Interval + :param .interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Aligned interval """ diff --git a/qwt/scale_map.py b/qwt/scale_map.py index 6f99392..ad2248d 100644 --- a/qwt/scale_map.py +++ b/qwt/scale_map.py @@ -13,9 +13,9 @@ :members: """ -from qwt.math import qwtFuzzyCompare +from .math import qwtFuzzyCompare -from qwt.qt.QtCore import QRectF, QPointF +from .qt.QtCore import QRectF, QPointF class QwtScaleMap(object): @@ -32,7 +32,7 @@ class QwtScaleMap(object): Constructor (eventually, copy constructor) - :param qwt.scale_map.QwtScaleMap other: Other scale map + :param .scale_map.QwtScaleMap other: Other scale map .. py:class:: QwtScaleMap(p1, p2, s1, s2) @@ -164,7 +164,7 @@ def setTransformation(self, transform): """ Initialize the map with a transformation - :param qwt.transform.QwtTransform transform: Transformation + :param .transform.QwtTransform transform: Transformation """ if self.__transform != transform: self.__transform = transform @@ -227,16 +227,16 @@ def transform(self, *args): Transform a rectangle from scale to paint coordinates - :param qwt.scale_map.QwtScaleMap xMap: X map - :param qwt.scale_map.QwtScaleMap yMap: Y map + :param .scale_map.QwtScaleMap xMap: X map + :param .scale_map.QwtScaleMap yMap: Y map :param QRectF rect: Rectangle in paint coordinates .. py:method:: transform(xMap, yMap, pos) Transform a point from scale to paint coordinates - :param qwt.scale_map.QwtScaleMap xMap: X map - :param qwt.scale_map.QwtScaleMap yMap: Y map + :param .scale_map.QwtScaleMap xMap: X map + :param .scale_map.QwtScaleMap yMap: Y map :param QPointF pos: Position in scale coordinates Scalar: scalemap.transform(scalar) diff --git a/qwt/scale_widget.py b/qwt/scale_widget.py index 197f3a7..19b1bef 100644 --- a/qwt/scale_widget.py +++ b/qwt/scale_widget.py @@ -13,17 +13,17 @@ :members: """ -from qwt.scale_draw import QwtScaleDraw -from qwt.scale_engine import QwtLinearScaleEngine -from qwt.color_map import QwtLinearColorMap -from qwt.text import QwtText -from qwt.painter import QwtPainter -from qwt.interval import QwtInterval -from qwt.color_map import QwtColorMap - -from qwt.qt.QtGui import (QWidget, QSizePolicy, QPainter, QStyleOption, QStyle, +from .scale_draw import QwtScaleDraw +from .scale_engine import QwtLinearScaleEngine +from .color_map import QwtLinearColorMap +from .text import QwtText +from .painter import QwtPainter +from .interval import QwtInterval +from .color_map import QwtColorMap + +from .qt.QtGui import (QWidget, QSizePolicy, QPainter, QStyleOption, QStyle, QPalette) -from qwt.qt.QtCore import Qt, QRectF, QSize, Signal +from .qt.QtCore import Qt, QRectF, QSize, Signal import numpy as np @@ -168,7 +168,7 @@ def setTitle(self, title): Give title new text contents :param title: New title - :type title: qwt.text.QwtText or str + :type title: .text.QwtText or str .. seealso:: @@ -191,7 +191,7 @@ def setAlignment(self, alignment): :param int alignment: New alignment - Valid alignment values: see :py:class:`qwt.scale_draw.QwtScaleDraw` + Valid alignment values: see :py:class:`.scale_draw.QwtScaleDraw` .. seealso:: @@ -276,7 +276,7 @@ def setLabelAlignment(self, alignment): .. seealso:: - :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`, + :py:meth:`.scale_draw.QwtScaleDraw.setLabelAlignment()`, :py:meth:`setLabelRotation()` """ self.__data.scaleDraw.setLabelAlignment(alignment) @@ -290,7 +290,7 @@ def setLabelRotation(self, rotation): .. seealso:: - :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelRotation()`, + :py:meth:`.scale_draw.QwtScaleDraw.setLabelRotation()`, :py:meth:`setLabelFlags()` """ self.__data.scaleDraw.setLabelRotation(rotation) @@ -304,7 +304,7 @@ def setLabelAutoSize(self, state): .. seealso:: - :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()` + :py:meth:`.scale_draw.QwtScaleDraw.setLabelAutoSize()` """ self.__data.scaleDraw.setLabelAutoSize(state) self.layoutScale() @@ -318,7 +318,7 @@ class destructor or the next call of `setScaleDraw()`. scaleDraw will be initialized with the attributes of the previous scaleDraw object. - :param qwt.scale_draw.QwtScaleDraw scaleDraw: ScaleDraw object + :param .scale_draw.QwtScaleDraw scaleDraw: ScaleDraw object .. seealso:: @@ -343,7 +343,7 @@ def scaleDraw(self): .. seealso:: - :py:meth:`qwt.scale_draw.QwtScaleDraw.setScaleDraw()` + :py:meth:`.scale_draw.QwtScaleDraw.setScaleDraw()` """ return self.__data.scaleDraw @@ -696,12 +696,12 @@ def setScaleDiv(self, scaleDiv): The scale division determines where to set the tick marks. - :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale Division + :param .scale_div.QwtScaleDiv scaleDiv: Scale Division .. seealso:: For more information about scale divisions, - see :py:class:`qwt.scale_div.QwtScaleDiv`. + see :py:class:`.scale_div.QwtScaleDiv`. """ sd = self.__data.scaleDraw if sd.scaleDiv() != scaleDiv: @@ -713,12 +713,12 @@ def setTransformation(self, transformation): """ Set the transformation - :param qwt.transform.Transform transformation: Transformation + :param .transform.Transform transformation: Transformation .. seealso:: - :py:meth:`qwt.scale_draw.QwtAbstractScaleDraw.scaleDraw()`, - :py:class:`qwt.scale_map.QwtScaleMap` + :py:meth:`.scale_draw.QwtAbstractScaleDraw.scaleDraw()`, + :py:class:`.scale_map.QwtScaleMap` """ self.__data.scaleDraw.setTransformation(transformation) self.layoutScale() @@ -787,8 +787,8 @@ def setColorMap(self, interval, colorMap): Set the color map and value interval, that are used for displaying the color bar. - :param qwt.interval.QwtInterval interval: Value interval - :param qwt.color_map.QwtColorMap colorMap: Color map + :param .interval.QwtInterval interval: Value interval + :param .color_map.QwtColorMap colorMap: Color map .. seealso:: diff --git a/qwt/symbol.py b/qwt/symbol.py index d57e7ff..c8eb964 100644 --- a/qwt/symbol.py +++ b/qwt/symbol.py @@ -13,13 +13,13 @@ :members: """ -from qwt.graphic import QwtGraphic -from qwt.painter import QwtPainter +from .graphic import QwtGraphic +from .painter import QwtPainter -from qwt.qt.QtGui import (QPainter, QTransform, QPixmap, QPen, QPolygonF, +from .qt.QtGui import (QPainter, QTransform, QPixmap, QPen, QPolygonF, QPainterPath, QBrush) -from qwt.qt.QtCore import QSize, QRect, QPointF, QRectF, QSizeF, Qt, QPoint -from qwt.qt.QtSvg import QSvgRenderer +from .qt.QtCore import QSize, QRect, QPointF, QRectF, QSizeF, Qt, QPoint +from .qt.QtSvg import QSvgRenderer import numpy as np @@ -528,8 +528,8 @@ def setPath(self, path): The following code defines a symbol drawing an arrow:: - from qwt.qt.QtGui import QApplication, QPen, QPainterPath, QTransform - from qwt.qt.QtCore import Qt, QPointF + from .qt.QtGui import QApplication, QPen, QPainterPath, QTransform + from .qt.QtCore import Qt, QPointF from qwt import QwtPlot, QwtPlotCurve, QwtSymbol import numpy as np @@ -634,7 +634,7 @@ def setGraphic(self, graphic): """ Set a graphic as symbol - :param qwt.graphic.QwtGraphic graphic: Graphic + :param .graphic.QwtGraphic graphic: Graphic .. seealso:: diff --git a/qwt/text.py b/qwt/text.py index 04481ff..b985bf9 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -46,13 +46,13 @@ import numpy as np import struct -from qwt.qt.QtGui import (QPainter, QFrame, QSizePolicy, QPalette, QFont, +from .qt.QtGui import (QPainter, QFrame, QSizePolicy, QPalette, QFont, QFontMetrics, QApplication, QColor, QWidget, QTextDocument, QTextOption, QFontMetricsF, QPixmap, QFontInfo, QTransform, QAbstractTextDocumentLayout) -from qwt.qt.QtCore import Qt, QSizeF, QSize, QRectF +from .qt.QtCore import Qt, QSizeF, QSize, QRectF -from qwt.painter import QwtPainter +from .painter import QwtPainter QWIDGETSIZE_MAX = (1<<24)-1 @@ -111,7 +111,7 @@ class QwtTextEngine(object): .. seealso:: - :py:meth:`qwt.text.QwtText.setTextEngine()` + :py:meth:`.text.QwtText.setTextEngine()` """ def __init__(self): pass @@ -490,8 +490,8 @@ class QwtText(object): ..seealso:: - :py:meth:`qwt.text.QwtTextEngine`, - :py:meth:`qwt.text.QwtTextLabel` + :py:meth:`.text.QwtTextEngine`, + :py:meth:`.text.QwtTextLabel` Text formats: @@ -549,7 +549,7 @@ class QwtText(object): :param str text: Text content :param int textFormat: Text format - :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored) + :param .text.QwtText other: Object to copy (text and textFormat arguments are ignored) """ # enum TextFormat @@ -654,7 +654,7 @@ def setRenderFlags(self, renderFlags): .. seealso:: :py:meth:`renderFlags()`, - :py:meth:`qwt.text.QwtTextEngine.draw()` + :py:meth:`.text.QwtTextEngine.draw()` """ renderFlags = Qt.AlignmentFlag(renderFlags) if renderFlags != self.__data.renderFlags: @@ -1019,7 +1019,7 @@ def setTextEngine(self, format_, engine): For `QwtText.PlainText` it is not allowed to assign a engine to None. :param int format_: Text format - :param qwt.text.QwtTextEngine engine: Text engine + :param .text.QwtTextEngine engine: Text engine .. seealso:: @@ -1110,7 +1110,7 @@ def setText(self, text, textFormat=QwtText.AutoText): Change the label's text, keeping all other QwtText attributes :param text: New text - :type text: qwt.text.QwtText or str + :type text: .text.QwtText or str :param int textFormat: Format of text .. seealso:: diff --git a/qwt/toqimage.py b/qwt/toqimage.py index 78eb1c8..0c28460 100644 --- a/qwt/toqimage.py +++ b/qwt/toqimage.py @@ -10,7 +10,7 @@ .. autofunction:: array_to_qimage """ -from qwt.qt.QtGui import QImage +from .qt.QtGui import QImage import numpy as np From a5462783387ca7fcbf392ed7836c3a56bb23330b Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 2 Aug 2020 11:44:08 +0200 Subject: [PATCH 105/421] no_margin.py test: reversing USE_PYQWT5 condition --- qwt/tests/no_margin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/tests/no_margin.py b/qwt/tests/no_margin.py index c878665..0ab767c 100644 --- a/qwt/tests/no_margin.py +++ b/qwt/tests/no_margin.py @@ -14,7 +14,7 @@ from qwt.qt.QtCore import Qt import os -if os.environ.get('USE_PYQWT5', True): +if os.environ.get('USE_PYQWT5', False): USE_PYQWT5 = True from PyQt4.Qwt5 import QwtPlot, QwtPlotCurve, QwtPlotMarker, QwtText else: From 4922c07484b1f236e242c804462d11a3548a0fdd Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 2 Aug 2020 11:48:44 +0200 Subject: [PATCH 106/421] Fixed obvious things in untested code from QwtStyleSheetRecorder class This closes #47, closes #48 and closes #52 --- qwt/plot_canvas.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/qwt/plot_canvas.py b/qwt/plot_canvas.py index bef6ecd..bb7bcdc 100644 --- a/qwt/plot_canvas.py +++ b/qwt/plot_canvas.py @@ -58,7 +58,7 @@ def updateState(self, state): def drawRects(self, rects, count): for i in range(count): - self.border.rectList += rects[i] + self.border.rectList += [rects[i]] def drawPath(self, path): rect = QRectF(QPointF(0., 0.), self.__size) @@ -765,10 +765,10 @@ def updateStyleSheetInfo(self): opt.initFrom(self) self.style().drawPrimitive(QStyle.PE_Widget, opt, painter, self) painter.end() - self.__data.styleSheet.hasBorder = not recorder.border.rectList.isEmpty() + self.__data.styleSheet.hasBorder = len(recorder.border.rectList) > 0 self.__data.styleSheet.cornerRects = recorder.clipRects if recorder.background.path.isEmpty(): - if not recorder.border.rectList.isEmpty(): + if self.__data.styleSheet.hasBorder: self.__data.styleSheet.borderPath =\ qwtCombinePathList(self.rect(), recorder.border.pathlist) else: @@ -796,7 +796,7 @@ def borderPath(self, rect): painter.end() if not recorder.background.path.isEmpty(): return recorder.background.path - if not recorder.border.rectList.isEmpty(): + if len(recorder.border.rectList) > 0: return qwtCombinePathList(rect, recorder.border.pathlist) elif self.__data.borderRadius > 0.: fw2 = self.frameWidth()*.5 From d1b26cfb4a6c6f79c9d9e32a1e92d48b931ba8d8 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 2 Aug 2020 11:53:55 +0200 Subject: [PATCH 107/421] Fixed obvious bug in untested code from QwtPainterClass.fillPixmap This closes #49 --- qwt/painter.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qwt/painter.py b/qwt/painter.py index 7e26274..8c515d0 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -17,8 +17,8 @@ from .scale_map import QwtScaleMap from .qt.QtGui import (QPaintEngine, QFrame, QPixmap, QPainter, QPalette, - QStyle, QPen, QStyleOptionFocusRect, QBrush, - QLinearGradient, QPainterPath, QColor, QStyleOption) + QStyle, QPen, QStyleOptionFocusRect, QBrush, QRegion, + QLinearGradient, QPainterPath, QColor, QStyleOption) from .qt.QtCore import Qt, QRect, QPoint, QT_VERSION QWIDGETSIZE_MAX = (1<<24)-1 @@ -389,7 +389,7 @@ def fillPixmap(self, widget, pixmap, offset=None): if widget.autoFillBackground(): qwtFillRect(widget, painter, rect, autoFillBrush) if widget.testAttribute(Qt.WA_StyledBackground): - painter.setClipRegion(rect) + painter.setClipRegion(QRegion(rect)) opt = QStyleOption() opt.initFrom(widget) widget.style().drawPrimitive(QStyle.PE_Widget, opt, From d2f77d538bee91186b75d570477de105341b0c78 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 2 Aug 2020 11:55:30 +0200 Subject: [PATCH 108/421] Fixed obvious bug in untested code from qwtFillBackground This closes #50 --- qwt/plot_canvas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/plot_canvas.py b/qwt/plot_canvas.py index bb7bcdc..05617dd 100644 --- a/qwt/plot_canvas.py +++ b/qwt/plot_canvas.py @@ -281,7 +281,7 @@ def qwtFillBackground(*args): clipRegion = widget.contentsRect() bgWidget = qwtBackgroundWidget(widget.parentWidget()) for fillRect in fillRects: - rect = fillRect.toAlignedRect() + rect = QRectF(fillRect).toAlignedRect() if clipRegion.intersects(rect): pm = QPixmap(rect.size()) QwtPainter.fillPixmap(bgWidget, pm, widget.mapTo(bgWidget, rect.topLeft())) From aabb8a0e5942c400ad8907d30e4e4017e3d91262 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 2 Aug 2020 11:55:58 +0200 Subject: [PATCH 109/421] Fixed obvious bug in untested code from QwtPainterClass.drawBackground This closes #51 --- qwt/painter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qwt/painter.py b/qwt/painter.py index 8c515d0..0e5f2ff 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -19,7 +19,7 @@ from .qt.QtGui import (QPaintEngine, QFrame, QPixmap, QPainter, QPalette, QStyle, QPen, QStyleOptionFocusRect, QBrush, QRegion, QLinearGradient, QPainterPath, QColor, QStyleOption) -from .qt.QtCore import Qt, QRect, QPoint, QT_VERSION +from .qt.QtCore import Qt, QRect, QPoint, QT_VERSION, QRectF QWIDGETSIZE_MAX = (1<<24)-1 @@ -410,7 +410,7 @@ def drawBackground(self, painter, rect, widget): if widget.testAttribute(Qt.WA_StyledBackground): opt = QStyleOption() opt.initFrom(widget) - opt.rect = rect.toAlignedRect() + opt.rect = QRectF(rect).toAlignedRect() widget.style().drawPrimitive(QStyle.PE_Widget, opt, painter, widget) else: From 0d9a900daa2ef5345198a755f7be20017eafd43d Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 2 Aug 2020 13:58:20 +0200 Subject: [PATCH 110/421] Fixed DataDemo.py test script (was crashing) This closes #41 --- qwt/tests/DataDemo.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qwt/tests/DataDemo.py b/qwt/tests/DataDemo.py index c02b6f3..879d7e1 100644 --- a/qwt/tests/DataDemo.py +++ b/qwt/tests/DataDemo.py @@ -77,12 +77,12 @@ def timerEvent(self, e): # y moves from left to right: # shift y array right and assign new value y[0] - self.y = np.concatenate((self.y[:1], self.y[:-1]), 1) + self.y = np.concatenate((self.y[:1], self.y[:-1])) self.y[0] = np.sin(self.phase) * (-1.0 + 2.0*random.random()) # z moves from right to left: # Shift z array left and assign new value to z[n-1]. - self.z = np.concatenate((self.z[1:], self.z[:1]), 1) + self.z = np.concatenate((self.z[1:], self.z[:1])) self.z[-1] = 0.8 - (2.0 * self.phase/np.pi) + 0.4*random.random() self.curveR.setData(self.x, self.y) From 769c14f23e89d7388cff9cb57f55e44c31b9d7f5 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 2 Aug 2020 16:43:47 +0200 Subject: [PATCH 111/421] Fixed docstrings following "recent" change from absolute to relative imports --- qwt/color_map.py | 6 +-- qwt/dyngrid_layout.py | 2 +- qwt/graphic.py | 2 +- qwt/interval.py | 6 +-- qwt/legend.py | 16 +++---- qwt/painter.py | 6 +-- qwt/painter_command.py | 4 +- qwt/plot.py | 88 +++++++++++++++++++-------------------- qwt/plot_canvas.py | 8 ++-- qwt/plot_curve.py | 50 +++++++++++----------- qwt/plot_directpainter.py | 2 +- qwt/plot_grid.py | 12 +++--- qwt/plot_layout.py | 8 ++-- qwt/plot_marker.py | 16 +++---- qwt/plot_renderer.py | 26 ++++++------ qwt/plot_series.py | 16 +++---- qwt/scale_div.py | 8 ++-- qwt/scale_draw.py | 4 +- qwt/scale_engine.py | 20 ++++----- qwt/scale_map.py | 12 +++--- qwt/scale_widget.py | 28 ++++++------- qwt/symbol.py | 2 +- qwt/text.py | 14 +++---- 23 files changed, 178 insertions(+), 178 deletions(-) diff --git a/qwt/color_map.py b/qwt/color_map.py index 53a2af4..bb0ea41 100644 --- a/qwt/color_map.py +++ b/qwt/color_map.py @@ -153,7 +153,7 @@ class QwtColorMap(object): .. seealso :: - :py:data:`.QwtScaleWidget` + :py:data:`qwt.QwtScaleWidget` """ # enum Format @@ -168,7 +168,7 @@ def color(self, interval, value): """ Map a value into a color - :param .interval.QwtInterval interval: valid interval for value + :param qwt.interval.QwtInterval interval: valid interval for value :param float value: value :return: the color corresponding to value @@ -191,7 +191,7 @@ def colorTable(self, interval): """ Build and return a color map of 256 colors - :param .interval.QwtInterval interval: range for the values + :param qwt.interval.QwtInterval interval: range for the values :return: a color table, that can be used for a `QImage` The color table is needed for rendering indexed images in combination diff --git a/qwt/dyngrid_layout.py b/qwt/dyngrid_layout.py index 56593e4..81b1f36 100644 --- a/qwt/dyngrid_layout.py +++ b/qwt/dyngrid_layout.py @@ -6,7 +6,7 @@ # (see LICENSE file for more details) """ -.dyngrid_layout +qwt.dyngrid_layout ------------------ The `dyngrid_layout` module provides the `QwtDynGridLayout` class. diff --git a/qwt/graphic.py b/qwt/graphic.py index a9ea55b..358a05e 100644 --- a/qwt/graphic.py +++ b/qwt/graphic.py @@ -250,7 +250,7 @@ class QwtGraphic(QwtNullPaintDevice): Copy constructor - :param .graphic.QwtGraphic other: Source + :param qwt.graphic.QwtGraphic other: Source """ # enum RenderHint diff --git a/qwt/interval.py b/qwt/interval.py index 2dfa8a2..4670815 100644 --- a/qwt/interval.py +++ b/qwt/interval.py @@ -235,7 +235,7 @@ def unite(self, other): """ Unite two intervals - :param .interval.QwtInterval other: other interval to united with + :param qwt.interval.QwtInterval other: other interval to united with :return: united interval """ if not self.isValid(): @@ -280,7 +280,7 @@ def intersect(self, other): """ Intersect two intervals - :param .interval.QwtInterval other: other interval to intersect with + :param qwt.interval.QwtInterval other: other interval to intersect with :return: intersected interval """ if not other.isValid() or not self.isValid(): @@ -326,7 +326,7 @@ def intersects(self, other): """ Test if two intervals overlap - :param .interval.QwtInterval other: other interval + :param qwt.interval.QwtInterval other: other interval :return: True, when the intervals are intersecting """ if not other.isValid() or not self.isValid(): diff --git a/qwt/legend.py b/qwt/legend.py index 667d7a3..5ccd567 100644 --- a/qwt/legend.py +++ b/qwt/legend.py @@ -45,7 +45,7 @@ class QwtLegendData(object): .. seealso:: - :py:class:`.legend.QwtLegend` + :py:class:`qwt.legend.QwtLegend` .. note:: @@ -214,7 +214,7 @@ def data(self): .. seealso:: - :py:meth:`setData()`, :py:meth:`.plot.QwtPlotItem.legendData()` + :py:meth:`setData()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()` """ return self.__data.legendData @@ -222,7 +222,7 @@ def setText(self, text): """ Set the text to the legend item - :param .text.QwtText text: Text label + :param qwt.text.QwtText text: Text label .. seealso:: @@ -270,7 +270,7 @@ def setIcon(self, icon): .. seealso:: - :py:meth:`icon()`, :py:meth:`.plot.QwtPlotItem.legendIcon()` + :py:meth:`icon()`, :py:meth:`qwt.plot.QwtPlotItem.legendIcon()` """ self.__data.icon = icon indent = self.margin()+self.__data.spacing @@ -296,7 +296,7 @@ def setSpacing(self, spacing): .. seealso:: - :py:meth:`spacing()`, :py:meth:`.text.QwtTextLabel.margin()` + :py:meth:`spacing()`, :py:meth:`qwt.text.QwtTextLabel.margin()` """ spacing = max([spacing, 0]) if spacing != self.__data.spacing: @@ -596,9 +596,9 @@ class QwtLegend(QwtAbstractLegend): .. seealso :: - :py:class`.legend.QwtLegendLabel`, - :py:class`.plot.QwtPlotItem`, - :py:class`.plot.QwtPlot` + :py:class`qwt.legend.QwtLegendLabel`, + :py:class`qwt.plot.QwtPlotItem`, + :py:class`qwt.plot.QwtPlot` .. py:class:: QwtLegend([parent=None]) diff --git a/qwt/painter.py b/qwt/painter.py index 0e5f2ff..f35dc8d 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -321,9 +321,9 @@ def drawColorBar(self, painter, colorMap, interval, scaleMap, Draw a color bar into a rectangle :param QPainter painter: Painter - :param .color_map.QwtColorMap colorMap: Color map - :param .interval.QwtInterval interval: Value range - :param .scalemap.QwtScaleMap scaleMap: Scale map + :param qwt.color_map.QwtColorMap colorMap: Color map + :param qwt.interval.QwtInterval interval: Value range + :param qwt.scalemap.QwtScaleMap scaleMap: Scale map :param Qt.Orientation orientation: Orientation :param QRectF rect: Target rectangle """ diff --git a/qwt/painter_command.py b/qwt/painter_command.py index 05fbc89..7d9c080 100644 --- a/qwt/painter_command.py +++ b/qwt/painter_command.py @@ -53,12 +53,12 @@ class QwtPainterCommand(object): `QwtPainterCommand` represents the attributes of a paint operation how it is used between `QPainter` and `QPaintDevice` - It is used by :py:class:`.graphic.QwtGraphic` to record and replay + It is used by :py:class:`qwt.graphic.QwtGraphic` to record and replay paint operations .. seealso:: - :py:meth:`.graphic.QwtGraphic.commands()` + :py:meth:`qwt.graphic.QwtGraphic.commands()` .. py:class:: QwtPainterCommand() diff --git a/qwt/plot.py b/qwt/plot.py index fffbf78..e142e53 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -133,7 +133,7 @@ def insertItem(self, item): """ Insert a plot item - :param .plot.QwtPlotItem item: PlotItem + :param qwt.plot.QwtPlotItem item: PlotItem .. seealso:: @@ -145,7 +145,7 @@ def removeItem(self, item): """ Remove a plot item - :param .plot.QwtPlotItem item: PlotItem + :param qwt.plot.QwtPlotItem item: PlotItem .. seealso:: @@ -215,9 +215,9 @@ class QwtPlot(QFrame, QwtPlotDict): QwtPlot is a widget for plotting two-dimensional graphs. An unlimited number of plot items can be displayed on its canvas. - Plot items might be curves (:py:class:`.plot_curve.QwtPlotCurve`), - markers (:py:class:`.plot_marker.QwtPlotMarker`), - the grid (:py:class:`.plot_grid.QwtPlotGrid`), or anything else + Plot items might be curves (:py:class:`qwt.plot_curve.QwtPlotCurve`), + markers (:py:class:`qwt.plot_marker.QwtPlotMarker`), + the grid (:py:class:`qwt.plot_grid.QwtPlotGrid`), or anything else derived from :py:class:`QwtPlotItem`. A plot can have up to four axes, with each plot item attached to an x- and @@ -432,7 +432,7 @@ def setAxisScaleEngine(self, axisId, scaleEngine): Change the scale engine for an axis :param int axisId: Axis index - :param .scale_engine.QwtScaleEngine scaleEngine: Scale engine + :param qwt.scale_engine.QwtScaleEngine scaleEngine: Scale engine .. seealso:: @@ -492,7 +492,7 @@ def axisMaxMajor(self, axisId): .. seealso:: :py:meth:`setAxisMaxMajor()`, - :py:meth:`.scale_engine.QwtScaleEngine.divideScale()` + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): return self.axisWidget(axisId).maxMajor @@ -507,7 +507,7 @@ def axisMaxMinor(self, axisId): .. seealso:: :py:meth:`setAxisMaxMinor()`, - :py:meth:`.scale_engine.QwtScaleEngine.divideScale()` + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): return self.axisWidget(axisId).maxMinor @@ -524,9 +524,9 @@ def axisScaleDiv(self, axisId): .. seealso:: - :py:class:`.scale_div.QwtScaleDiv`, + :py:class:`qwt.scale_div.QwtScaleDiv`, :py:meth:`setAxisScaleDiv()`, - :py:meth:`.scale_engine.QwtScaleEngine.divideScale()` + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` """ return self.__axisData[axisId].scaleDiv @@ -548,7 +548,7 @@ def axisStepSize(self, axisId): .. seealso:: :py:meth:`setAxisScale()`, - :py:meth:`.scale_engine.QwtScaleEngine.divideScale()` + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): return self.axisWidget(axisId).stepSize @@ -564,7 +564,7 @@ def axisInterval(self, axisId): .. seealso:: - :py:class:`.scale_div.QwtScaleDiv`, + :py:class:`qwt.scale_div.QwtScaleDiv`, :py:meth:`axisScaleDiv()` """ if self.axisValid(axisId): @@ -687,7 +687,7 @@ def setAxisScale(self, axisId, min_, max_, stepSize=0): :py:meth:`setAxisMaxMajor()`, :py:meth:`setAxisAutoScale()`, :py:meth:`axisStepSize()`, - :py:meth:`.scale_engine.QwtScaleEngine.divideScale()` + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` """ if self.axisValid(axisId): d = self.__axisData[axisId] @@ -707,7 +707,7 @@ def setAxisScaleDiv(self, axisId, scaleDiv): the next replot. :param int axisId: Axis index - :param .scale_div.QwtScaleDiv scaleDiv: Scale division + :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division .. seealso:: @@ -725,7 +725,7 @@ def setAxisScaleDraw(self, axisId, scaleDraw): Set a scale draw :param int axisId: Axis index - :param .scale_draw.QwtScaleDraw scaleDraw: Object responsible for drawing scales. + :param qwt.scale_draw.QwtScaleDraw scaleDraw: Object responsible for drawing scales. By passing scaleDraw it is possible to extend QwtScaleDraw functionality and let it take place in QwtPlot. Please note @@ -734,8 +734,8 @@ def setAxisScaleDraw(self, axisId, scaleDraw): .. seealso:: - :py:class:`.scale_draw.QwtScaleDraw`, - :py:class:`.scale_widget.QwtScaleWigdet` + :py:class:`qwt.scale_draw.QwtScaleDraw`, + :py:class:`qwt.scale_widget.QwtScaleWigdet` .. warning:: @@ -755,7 +755,7 @@ def setAxisLabelAlignment(self, axisId, alignment): .. seealso:: - :py:meth:`.scale_draw.QwtScaleDraw.setLabelAlignment()` + :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()` """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelAlignment(alignment) @@ -783,7 +783,7 @@ def setAxisLabelAutoSize(self, axisId, state): .. seealso:: - :py:meth:`.scale_draw.QwtScaleDraw.setLabelAutoSize()` + :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()` """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelAutoSize(state) @@ -832,7 +832,7 @@ def setAxisTitle(self, axisId, title): :param int axisId: Axis index :param title: axis title - :type title: .text.QwtText or str + :type title: qwt.text.QwtText or str """ if self.axisValid(axisId): self.axisWidget(axisId).setTitle(title) @@ -989,7 +989,7 @@ def setTitle(self, title): Change the plot's title :param title: New title - :type title: str or .text.QwtText + :type title: str or qwt.text.QwtText .. seealso:: @@ -1024,7 +1024,7 @@ def setFooter(self, text): Change the text the footer :param text: New text of the footer - :type text: str or .text.QwtText + :type text: str or qwt.text.QwtText .. seealso:: @@ -1059,7 +1059,7 @@ def setPlotLayout(self, layout): Assign a new plot layout :param layout: Layout - :type layout: .plot_layout.QwtPlotLayout + :type layout: qwt.plot_layout.QwtPlotLayout .. seealso:: @@ -1340,7 +1340,7 @@ def canvasMap(self, axisId): .. seealso:: - :py:class:`.scale_map.QwtScaleMap`, + :py:class:`qwt.scale_map.QwtScaleMap`, :py:meth:`transform()`, :py:meth:`invTransform()` """ map_ = QwtScaleMap() @@ -1437,7 +1437,7 @@ def insertLegend(self, legend, pos=None, ratio=-1): wants to implement its own layout this also needs to be done for rendering plots to a document ( see QwtPlotRenderer ). - :param .legend.QwtAbstractLegend legend: Legend + :param qwt.legend.QwtAbstractLegend legend: Legend :param QwtPlot.LegendPosition pos: The legend's position. :param float ratio: Ratio between legend and the bounding rectangle of title, canvas and axes @@ -1456,8 +1456,8 @@ def insertLegend(self, legend, pos=None, ratio=-1): .. seealso:: :py:meth:`legend()`, - :py:meth:`.plot_layout.QwtPlotLayout.legendPosition()`, - :py:meth:`.plot_layout.QwtPlotLayout.setLegendPosition()` + :py:meth:`qwt.plot_layout.QwtPlotLayout.legendPosition()`, + :py:meth:`qwt.plot_layout.QwtPlotLayout.setLegendPosition()` """ if pos is None: pos = self.RightLegend @@ -1504,7 +1504,7 @@ def updateLegend(self, plotItem=None): If plotItem is None, emit QwtPlot.legendDataChanged for all plot item. Otherwise, emit the signal for passed plot item. - :param .plot.QwtPlotItem plotItem: Plot item + :param qwt.plot.QwtPlotItem plotItem: Plot item .. seealso:: @@ -1529,7 +1529,7 @@ def updateLegendItems(self, plotItem, legendData): Call `QwtPlotItem.updateLegend()`, when the `QwtPlotItem.LegendInterest` flag is set. - :param .plot.QwtPlotItem plotItem: Plot item + :param qwt.plot.QwtPlotItem plotItem: Plot item :param list legendData: Entries to be displayed for the plot item ( usually 1 ) .. seealso:: @@ -1546,7 +1546,7 @@ def attachItem(self, plotItem, on): """ Attach/Detach a plot item - :param .plot.QwtPlotItem plotItem: Plot item + :param qwt.plot.QwtPlotItem plotItem: Plot item :param bool on: When true attach the item, otherwise detach it """ if plotItem.testItemInterest(QwtPlotItem.LegendInterest): @@ -1627,9 +1627,9 @@ class QwtPlotItem(object): on the plot canvas. The different representator classes are organized according to the characteristics of the data: - - :py:class:`.plot_marker.QwtPlotMarker`: Represents a point or a + - :py:class:`qwt.plot_marker.QwtPlotMarker`: Represents a point or a horizontal/vertical coordinate - - :py:class:`.plot_curve.QwtPlotCurve`: Represents a series of + - :py:class:`qwt.plot_curve.QwtPlotCurve`: Represents a series of points - Decorators @@ -1637,7 +1637,7 @@ class QwtPlotItem(object): A "Decorator" is an item, that displays additional information, that is not related to any data: - - :py:class:`.plot_grid.QwtPlotGrid` + - :py:class:`qwt.plot_grid.QwtPlotGrid` Depending on the `QwtPlotItem.ItemAttribute` flags, an item is included into autoscaling or has an entry on the legend. @@ -1657,7 +1657,7 @@ class QwtPlotItem(object): Constructor :param title: Title of the item - :type title: .text.QwtText or str + :type title: qwt.text.QwtText or str """ # enum RttiValues @@ -1700,7 +1700,7 @@ def attach(self, plot): call to attach (if necessary). If a None argument is passed, it will detach from any `QwtPlot` it was attached to. - :param .plot.QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget .. seealso:: @@ -1784,7 +1784,7 @@ def setTitle(self, title): Set a new title :param title: Title - :type title: .text.QwtText or str + :type title: qwt.text.QwtText or str .. seealso:: @@ -2116,8 +2116,8 @@ def getCanvasMarginHint(self, xMap, yMap, canvasRect): The margins are in target device coordinates ( pixels on screen ) - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates .. seealso:: @@ -2146,7 +2146,7 @@ def legendData(self): .. seealso:: :py:meth:`title()`, :py:meth:`legendIcon()`, - :py:class:`.legend.QwtLegend` + :py:class:`qwt.legend.QwtLegend` """ data = QwtLegendData() label = self.title() @@ -2167,7 +2167,7 @@ def updateLegend(self, item, data): updateLegend() is only called when the LegendInterest interest is enabled. The default implementation does nothing. - :param .plot.QwtPlotItem item: Plot item to be displayed on a legend + :param qwt.plot.QwtPlotItem item: Plot item to be displayed on a legend :param list data: Attributes how to display item on the legend .. note:: @@ -2182,8 +2182,8 @@ def scaleRect(self, xMap, yMap): """ Calculate the bounding scale rectangle of 2 maps - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :return: Bounding scale rect of the scale maps, not normalized """ return QRectF(xMap.s1(), yMap.s1(), xMap.sDist(), yMap.sDist()) @@ -2192,8 +2192,8 @@ def paintRect(self, xMap, yMap): """ Calculate the bounding paint rectangle of 2 maps - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :return: Bounding paint rectangle of the scale maps, not normalized """ return QRectF(xMap.p1(), yMap.p1(), xMap.pDist(), yMap.pDist()) diff --git a/qwt/plot_canvas.py b/qwt/plot_canvas.py index 05617dd..5a32b66 100644 --- a/qwt/plot_canvas.py +++ b/qwt/plot_canvas.py @@ -322,7 +322,7 @@ class QwtPlotCanvas(QFrame): .. seealso:: - :py:meth:`.plot.QwtPlot.setCanvas()` + :py:meth:`qwt.plot.QwtPlot.setCanvas()` Paint attributes: @@ -335,7 +335,7 @@ class QwtPlotCanvas(QFrame): when working with widget overlays (like rubber bands). Disabling the cache might improve the performance for incremental paints - (using :py:class:`.plot_directpainter.QwtPlotDirectPainter`). + (using :py:class:`qwt.plot_directpainter.QwtPlotDirectPainter`). * `QwtPlotCanvas.Opaque`: @@ -401,11 +401,11 @@ class QwtPlotCanvas(QFrame): Constructor - :param .plot.QwtPlot plot: Parent plot widget + :param qwt.plot.QwtPlot plot: Parent plot widget .. seealso:: - :py:meth:`.plot.QwtPlot.setCanvas()` + :py:meth:`qwt.plot.QwtPlot.setCanvas()` """ # enum PaintAttribute diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index feb81dd..f0b63d9 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -86,8 +86,8 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): .. seealso:: - :py:class:`.symbol.QwtSymbol()`, - :py:class:`.scale_map.QwtScaleMap()` + :py:class:`qwt.symbol.QwtSymbol()`, + :py:class:`qwt.scale_map.QwtScaleMap()` Curve styles: @@ -157,7 +157,7 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): Constructor :param title: Curve title - :type title: .text.QwtText or str or None + :type title: qwt.text.QwtText or str or None """ # enum CurveStyle @@ -275,7 +275,7 @@ def setSymbol(self, symbol): set symbol will be delete by setting a new one. If symbol is None no symbol will be drawn. - :param .symbol.QwtSymbol symbol: Symbol + :param qwt.symbol.QwtSymbol symbol: Symbol .. seealso:: @@ -414,8 +414,8 @@ def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): Draw an interval of the curve :param QPainter painter: Painter - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -448,8 +448,8 @@ def drawCurve(self, painter, style, xMap, yMap, canvasRect, from_, to): :param QPainter painter: Painter :param int style: curve style, see `QwtPlotCurve.CurveStyle` - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -473,8 +473,8 @@ def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): Draw lines :param QPainter painter: Painter - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -498,8 +498,8 @@ def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): Draw sticks :param QPainter painter: Painter - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -530,8 +530,8 @@ def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): Draw dots :param QPainter painter: Painter - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -553,8 +553,8 @@ def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): Draw steps :param QPainter painter: Painter - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -625,8 +625,8 @@ def fillCurve(self, painter, xMap, yMap, canvasRect, polygon): the curve brush :param QPainter painter: Painter - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param QPolygonF polygon: Polygon - will be modified ! @@ -655,8 +655,8 @@ def closePolyline(self, painter, xMap, yMap, polygon): area between the original polygon and the baseline. :param QPainter painter: Painter - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QPolygonF polygon: Polygon to be completed """ if polygon.size() < 2: @@ -680,9 +680,9 @@ def drawSymbols(self, painter, symbol, xMap, yMap, canvasRect, from_, to): Draw symbols :param QPainter painter: Painter - :param .symbol.QwtSymbol symbol: Curve symbol - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.symbol.QwtSymbol symbol: Curve symbol + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. @@ -777,8 +777,8 @@ def legendIcon(self, index, size): .. seealso:: - :py:meth:`.plot.QwtPlotItem.setLegendIconSize()`, - :py:meth:`.plot.QwtPlotItem.legendData()` + :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`, + :py:meth:`qwt.plot.QwtPlotItem.legendData()` """ if size.isEmpty(): return QwtGraphic() diff --git a/qwt/plot_directpainter.py b/qwt/plot_directpainter.py index 61e72c3..780e9b4 100644 --- a/qwt/plot_directpainter.py +++ b/qwt/plot_directpainter.py @@ -197,7 +197,7 @@ def drawSeries(self, seriesItem, from_, to): will result in faster painting, if the paint engine of the canvas widget supports this feature. - :param .plot_series.QwtPlotSeriesItem seriesItem: Item to be painted + :param qwt.plot_series.QwtPlotSeriesItem seriesItem: Item to be painted :param int from_: Index of the first point to be painted :param int to: Index of the last point to be painted. If to < 0 the series will be painted to its last point. """ diff --git a/qwt/plot_grid.py b/qwt/plot_grid.py index 957b05e..fba3854 100644 --- a/qwt/plot_grid.py +++ b/qwt/plot_grid.py @@ -124,7 +124,7 @@ def setXDiv(self, scaleDiv): """ Assign an x axis scale division - :param .scale_div.QwtScaleDiv scaleDiv: Scale division + :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division """ if self.__data.xScaleDiv != scaleDiv: self.__data.xScaleDiv = scaleDiv @@ -134,7 +134,7 @@ def setYDiv(self, scaleDiv): """ Assign an y axis scale division - :param .scale_div.QwtScaleDiv scaleDiv: Scale division + :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale division """ if self.__data.yScaleDiv != scaleDiv: self.__data.yScaleDiv = scaleDiv @@ -270,8 +270,8 @@ def draw(self, painter, xMap, yMap, canvasRect): screen. :param QPainter painter: Painter - :param .scale_map.QwtScaleMap xMap: X axis map - :param .scale_map.QwtScaleMap yMap: Y axis + :param qwt.scale_map.QwtScaleMap xMap: X axis map + :param qwt.scale_map.QwtScaleMap yMap: Y axis :param QRectF canvasRect: Contents rectangle of the plot canvas """ minorPen = QPen(self.__data.minorPen) @@ -391,8 +391,8 @@ def updateScaleDiv(self, xScaleDiv, yScaleDiv): """ Update the grid to changes of the axes scale division - :param .scale_map.QwtScaleMap xMap: Scale division of the x-axis - :param .scale_map.QwtScaleMap yMap: Scale division of the y-axis + :param qwt.scale_map.QwtScaleMap xMap: Scale division of the x-axis + :param qwt.scale_map.QwtScaleMap yMap: Scale division of the y-axis .. seealso:: diff --git a/qwt/plot_layout.py b/qwt/plot_layout.py index 467088f..4ea300e 100644 --- a/qwt/plot_layout.py +++ b/qwt/plot_layout.py @@ -152,7 +152,7 @@ class QwtPlotLayout(object): .. seealso:: - :py:meth:`.plot.QwtPlot.setPlotLayout()` + :py:meth:`qwt.plot.QwtPlot.setPlotLayout()` Valid options: @@ -535,12 +535,12 @@ def invalidate(self): def minimumSizeHint(self, plot): """ - :param .plot.QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget :return: Minimum size hint .. seealso:: - :py:meth:`.plot.QwtPlot.minimumSizeHint()` + :py:meth:`qwt.plot.QwtPlot.minimumSizeHint()` """ class _ScaleData(object): def __init__(self): @@ -922,7 +922,7 @@ def activate(self, plot, plotRect, options=0x00): """ Recalculate the geometry of all components. - :param .plot.QwtPlot plot: Plot to be layout + :param qwt.plot.QwtPlot plot: Plot to be layout :param QRectF plotRect: Rectangle where to place the components :param options: Layout options """ diff --git a/qwt/plot_marker.py b/qwt/plot_marker.py index 71a2f60..60c6ef1 100644 --- a/qwt/plot_marker.py +++ b/qwt/plot_marker.py @@ -139,8 +139,8 @@ def draw(self, painter, xMap, yMap, canvasRect): Draw the marker :param QPainter painter: Painter - :param .scale_map.QwtScaleMap xMap: x Scale Map - :param .scale_map.QwtScaleMap yMap: y Scale Map + :param qwt.scale_map.QwtScaleMap xMap: x Scale Map + :param qwt.scale_map.QwtScaleMap yMap: y Scale Map :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates """ pos = QPointF(xMap.transform(self.__data.xValue), @@ -166,7 +166,7 @@ def drawLines(self, painter, canvasRect, pos): .. seealso:: :py:meth:`drawLabel()`, - :py:meth:`.symbol.QwtSymbol.drawSymbol()` + :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()` """ if self.__data.style == self.NoLine: return @@ -189,7 +189,7 @@ def drawLabel(self, painter, canvasRect, pos): .. seealso:: :py:meth:`drawLabel()`, - :py:meth:`.symbol.QwtSymbol.drawSymbol()` + :py:meth:`qwt.symbol.QwtSymbol.drawSymbol()` """ if self.__data.label.isEmpty(): return @@ -302,7 +302,7 @@ def setSymbol(self, symbol): """ Assign a symbol - :param .symbol.QwtSymbol symbol: New symbol + :param qwt.symbol.QwtSymbol symbol: New symbol .. seealso:: @@ -330,7 +330,7 @@ def setLabel(self, label): Set the label :param label: Label text - :type label: .text.QwtText or str + :type label: qwt.text.QwtText or str .. seealso:: @@ -505,8 +505,8 @@ def legendIcon(self, index, size): .. seealso:: - :py:meth:`.plot.QwtPlotItem.setLegendIconSize()`, - :py:meth:`.plot.QwtPlotItem.legendData()` + :py:meth:`qwt.plot.QwtPlotItem.setLegendIconSize()`, + :py:meth:`qwt.plot.QwtPlotItem.legendData()` """ if size.isEmpty(): return QwtGraphic() diff --git a/qwt/plot_renderer.py b/qwt/plot_renderer.py index aeab39a..0f81d7c 100644 --- a/qwt/plot_renderer.py +++ b/qwt/plot_renderer.py @@ -207,7 +207,7 @@ def renderDocument(self, plot, filename, sizeMM=(300, 200), resolution=85, The format of the document will be auto-detected from the suffix of the file name. - :param .plot.QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget :param str fileName: Path of the file, where the document will be stored :param QSizeF sizeMM: Size for the document in millimeters :param int resolution: Resolution in dots per Inch (dpi) @@ -280,7 +280,7 @@ def renderTo(self, plot, dest): Scalable vector graphic formats like PDF or SVG are superior to raster graphics formats. - :param .plot.QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget :param str fileName: Path of the file, where the document will be stored :param str format: Format for the document :param QSizeF sizeMM: Size for the document in millimeters. @@ -289,7 +289,7 @@ def renderTo(self, plot, dest): .. seealso:: :py:meth:`renderTo()`, :py:meth:`render()`, - :py:meth:`.painter.QwtPainter.setRoundingAlignment()` + :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()` """ if isinstance(dest, QPaintDevice): w = dest.width() @@ -315,7 +315,7 @@ def render(self, plot, painter, plotRect): """ Paint the contents of a QwtPlot instance into a given rectangle. - :param .plot.QwtPlot plot: Plot to be rendered + :param qwt.plot.QwtPlot plot: Plot to be rendered :param QPainter painter: Painter :param str format: Format for the document :param QRectF plotRect: Bounding rectangle @@ -323,7 +323,7 @@ def render(self, plot, painter, plotRect): .. seealso:: :py:meth:`renderDocument()`, :py:meth:`renderTo()`, - :py:meth:`.painter.QwtPainter.setRoundingAlignment()` + :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()` """ if painter == 0 or not painter.isActive() or not plotRect.isValid()\ or plot.size().isNull(): @@ -433,7 +433,7 @@ def renderTitle(self, plot, painter, rect): """ Render the title into a given rectangle. - :param .plot.QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param QRectF rect: Bounding rectangle """ @@ -446,7 +446,7 @@ def renderFooter(self, plot, painter, rect): """ Render the footer into a given rectangle. - :param .plot.QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param QRectF rect: Bounding rectangle """ @@ -459,7 +459,7 @@ def renderLegend(self, plot, painter, rect): """ Render the legend into a given rectangle. - :param .plot.QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param QRectF rect: Bounding rectangle """ @@ -473,7 +473,7 @@ def renderScale(self, plot, painter, axisId, startDist, endDist, Paint a scale into a given rectangle. Paint the scale into a given rectangle. - :param .plot.QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget :param QPainter painter: Painter :param int axisId: Axis :param int startDist: Start border distance @@ -527,9 +527,9 @@ def renderCanvas(self, plot, painter, canvasRect, maps): """ Render the canvas into a given rectangle. - :param .plot.QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget :param QPainter painter: Painter - :param .scale_map.QwtScaleMap maps: mapping between plot and paint device coordinates + :param qwt.scale_map.QwtScaleMap maps: mapping between plot and paint device coordinates :param QRectF rect: Bounding rectangle """ canvas = plot.canvas() @@ -598,7 +598,7 @@ def buildCanvasMaps(self, plot, canvasRect): """ Calculated the scale maps for rendering the canvas - :param .plot.QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget :param QRectF canvasRect: Target rectangle :return: Calculated scale maps """ @@ -646,7 +646,7 @@ def exportTo(self, plot, documentname, sizeMM=None, resolution=85): """ Execute a file dialog and render the plot to the selected file - :param .plot.QwtPlot plot: Plot widget + :param qwt.plot.QwtPlot plot: Plot widget :param str documentName: Default document name :param QSizeF sizeMM: Size for the document in millimeters :param int resolution: Resolution in dots per Inch (dpi) diff --git a/qwt/plot_series.py b/qwt/plot_series.py index 1b0b43e..98c0eee 100644 --- a/qwt/plot_series.py +++ b/qwt/plot_series.py @@ -90,8 +90,8 @@ def draw(self, painter, xMap, yMap, canvasRect): Draw the complete series :param QPainter painter: Painter - :param .scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. - :param .scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. :param QRectF canvasRect: Contents rectangle of the canvas """ self.drawSeries(painter, xMap, yMap, canvasRect, 0, -1) @@ -185,7 +185,7 @@ class QwtPointArrayData(QwtSeriesData): """ Interface for iterating over two array objects - .. py:class:: QwtPointArrayData(x, y, [size=None], [finite=True]) + .. py:class:: QwtCQwtPointArrayDataolorMap(x, y, [size=None]) :param x: Array of x values :type x: list or tuple or numpy.array @@ -275,7 +275,7 @@ def setData(self, series): """ Assign a series of samples - :param .plot_series.QwtSeriesData series: Data + :param qwt.plot_series.QwtSeriesData series: Data .. warning:: @@ -309,7 +309,7 @@ def dataSize(self): .. seealso:: :py:meth:`setData()`, - :py:meth:`.plot_series.QwtSeriesData.size()` + :py:meth:`qwt.plot_series.QwtSeriesData.size()` """ if self.__series is None: return 0 @@ -321,7 +321,7 @@ def dataRect(self): .. seealso:: - :py:meth:`.plot_series.QwtSeriesData.boundingRect()` + :py:meth:`qwt.plot_series.QwtSeriesData.boundingRect()` """ if self.__series is None or self.dataSize() == 0: return QRectF(1.0, 1.0, -2.0, -2.0) @@ -335,7 +335,7 @@ def setRectOfInterest(self, rect): .. seealso:: - :py:meth:`.plot_series.QwtSeriesData.setRectOfInterest()` + :py:meth:`qwt.plot_series.QwtSeriesData.setRectOfInterest()` """ if self.__series: self.__series.setRectOfInterest(rect) @@ -344,7 +344,7 @@ def swapData(self, series): """ Replace a series without deleting the previous one - :param .plot_series.QwtSeriesData series: New series + :param qwt.plot_series.QwtSeriesData series: New series :return: Previously assigned series """ swappedSeries = self.__series diff --git a/qwt/scale_div.py b/qwt/scale_div.py index c9c6de1..a7ec03b 100644 --- a/qwt/scale_div.py +++ b/qwt/scale_div.py @@ -32,8 +32,8 @@ class QwtScaleDiv(object): .. seealso:: - :py:meth:`.scale_engine.QwtScaleEngine.divideScale()`, - :py:meth:`.plot.QwtPlot.setAxisScaleDiv()` + :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()`, + :py:meth:`qwt.plot.QwtPlot.setAxisScaleDiv()` Scale tick types: @@ -49,7 +49,7 @@ class QwtScaleDiv(object): .. py:class:: QwtScaleDiv(interval, ticks) - :param .interval.QwtInterval interval: Interval + :param qwt.interval.QwtInterval interval: Interval :param list ticks: list of major, medium and minor ticks .. py:class:: QwtScaleDiv(lowerBound, upperBound) @@ -115,7 +115,7 @@ def setInterval(self, *args): .. py:method:: setInterval(interval) - :param .interval.QwtInterval interval: Interval + :param qwt.interval.QwtInterval interval: Interval .. note:: diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index a6ef341..fe1fe02 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -169,7 +169,7 @@ def setScaleDiv(self, scaleDiv): """ Change the scale division - :param .scale_div.QwtScaleDiv scaleDiv: New scale division + :param qwt.scale_div.QwtScaleDiv scaleDiv: New scale division """ self.__data.scaleDiv = scaleDiv self.__data.map.setScaleInterval(scaleDiv.lowerBound(), @@ -180,7 +180,7 @@ def setTransformation(self, transformation): """ Change the transformation of the scale - :param .transform.QwtTransform transformation: New scale transformation + :param qwt.transform.QwtTransform transformation: New scale transformation """ self.__data.map.setTransformation(transformation) diff --git a/qwt/scale_engine.py b/qwt/scale_engine.py index edf204b..0da06d8 100644 --- a/qwt/scale_engine.py +++ b/qwt/scale_engine.py @@ -78,7 +78,7 @@ def ceilEps(value, intervalSize): .. seealso:: - :py:func:`.scale_engine.floorEps()` + :py:func:`qwt.scale_engine.floorEps()` """ eps = EPS*intervalSize value = (value-eps)/intervalSize @@ -94,7 +94,7 @@ def floorEps(value, intervalSize): .. seealso:: - :py:func:`.scale_engine.ceilEps()` + :py:func:`qwt.scale_engine.ceilEps()` """ eps = EPS*intervalSize value = (value+eps)/intervalSize @@ -218,7 +218,7 @@ def setTransformation(self, transform): """ Assign a transformation - :param .transform.QwtTransform transform: Transformation + :param qwt.transform.QwtTransform transform: Transformation The transformation object is used as factory for clones that are returned by `transformation()` @@ -326,7 +326,7 @@ def strip(self, ticks, interval): Remove ticks from a list, that are not inside an interval :param list ticks: Tick list - :param .interval.QwtInterval interval: Interval + :param qwt.interval.QwtInterval interval: Interval :return: Stripped tick list """ if not interval.isValid() or not ticks: @@ -534,7 +534,7 @@ def buildTicks(self, interval, stepSize, maxMinorSteps): """ Calculate ticks for an interval - :param .interval.QwtInterval interval: Interval + :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :param int maxMinorSteps: Maximum number of minor steps :return: Calculated ticks @@ -556,7 +556,7 @@ def buildMajorTicks(self, interval, stepSize): """ Calculate major ticks for an interval - :param .interval.QwtInterval interval: Interval + :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Calculated ticks """ @@ -602,7 +602,7 @@ def align(self, interval, stepSize): The limits of an interval are aligned that both are integer multiples of the step size. - :param .interval.QwtInterval interval: Interval + :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Aligned interval """ @@ -765,7 +765,7 @@ def buildTicks(self, interval, stepSize, maxMinorSteps): """ Calculate ticks for an interval - :param .interval.QwtInterval interval: Interval + :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :param int maxMinorSteps: Maximum number of minor steps :return: Calculated ticks @@ -784,7 +784,7 @@ def buildMajorTicks(self, interval, stepSize): """ Calculate major ticks for an interval - :param .interval.QwtInterval interval: Interval + :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Calculated ticks """ @@ -874,7 +874,7 @@ def align(self, interval, stepSize): The limits of an interval are aligned that both are integer multiples of the step size. - :param .interval.QwtInterval interval: Interval + :param qwt.interval.QwtInterval interval: Interval :param float stepSize: Step size :return: Aligned interval """ diff --git a/qwt/scale_map.py b/qwt/scale_map.py index ad2248d..f4bfae7 100644 --- a/qwt/scale_map.py +++ b/qwt/scale_map.py @@ -32,7 +32,7 @@ class QwtScaleMap(object): Constructor (eventually, copy constructor) - :param .scale_map.QwtScaleMap other: Other scale map + :param qwt.scale_map.QwtScaleMap other: Other scale map .. py:class:: QwtScaleMap(p1, p2, s1, s2) @@ -164,7 +164,7 @@ def setTransformation(self, transform): """ Initialize the map with a transformation - :param .transform.QwtTransform transform: Transformation + :param qwt.transform.QwtTransform transform: Transformation """ if self.__transform != transform: self.__transform = transform @@ -227,16 +227,16 @@ def transform(self, *args): Transform a rectangle from scale to paint coordinates - :param .scale_map.QwtScaleMap xMap: X map - :param .scale_map.QwtScaleMap yMap: Y map + :param qwt.scale_map.QwtScaleMap xMap: X map + :param qwt.scale_map.QwtScaleMap yMap: Y map :param QRectF rect: Rectangle in paint coordinates .. py:method:: transform(xMap, yMap, pos) Transform a point from scale to paint coordinates - :param .scale_map.QwtScaleMap xMap: X map - :param .scale_map.QwtScaleMap yMap: Y map + :param qwt.scale_map.QwtScaleMap xMap: X map + :param qwt.scale_map.QwtScaleMap yMap: Y map :param QPointF pos: Position in scale coordinates Scalar: scalemap.transform(scalar) diff --git a/qwt/scale_widget.py b/qwt/scale_widget.py index 19b1bef..cd77f31 100644 --- a/qwt/scale_widget.py +++ b/qwt/scale_widget.py @@ -168,7 +168,7 @@ def setTitle(self, title): Give title new text contents :param title: New title - :type title: .text.QwtText or str + :type title: qwt.text.QwtText or str .. seealso:: @@ -191,7 +191,7 @@ def setAlignment(self, alignment): :param int alignment: New alignment - Valid alignment values: see :py:class:`.scale_draw.QwtScaleDraw` + Valid alignment values: see :py:class:`qwt.scale_draw.QwtScaleDraw` .. seealso:: @@ -276,7 +276,7 @@ def setLabelAlignment(self, alignment): .. seealso:: - :py:meth:`.scale_draw.QwtScaleDraw.setLabelAlignment()`, + :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAlignment()`, :py:meth:`setLabelRotation()` """ self.__data.scaleDraw.setLabelAlignment(alignment) @@ -290,7 +290,7 @@ def setLabelRotation(self, rotation): .. seealso:: - :py:meth:`.scale_draw.QwtScaleDraw.setLabelRotation()`, + :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelRotation()`, :py:meth:`setLabelFlags()` """ self.__data.scaleDraw.setLabelRotation(rotation) @@ -304,7 +304,7 @@ def setLabelAutoSize(self, state): .. seealso:: - :py:meth:`.scale_draw.QwtScaleDraw.setLabelAutoSize()` + :py:meth:`qwt.scale_draw.QwtScaleDraw.setLabelAutoSize()` """ self.__data.scaleDraw.setLabelAutoSize(state) self.layoutScale() @@ -318,7 +318,7 @@ class destructor or the next call of `setScaleDraw()`. scaleDraw will be initialized with the attributes of the previous scaleDraw object. - :param .scale_draw.QwtScaleDraw scaleDraw: ScaleDraw object + :param qwt.scale_draw.QwtScaleDraw scaleDraw: ScaleDraw object .. seealso:: @@ -343,7 +343,7 @@ def scaleDraw(self): .. seealso:: - :py:meth:`.scale_draw.QwtScaleDraw.setScaleDraw()` + :py:meth:`qwt.scale_draw.QwtScaleDraw.setScaleDraw()` """ return self.__data.scaleDraw @@ -696,12 +696,12 @@ def setScaleDiv(self, scaleDiv): The scale division determines where to set the tick marks. - :param .scale_div.QwtScaleDiv scaleDiv: Scale Division + :param qwt.scale_div.QwtScaleDiv scaleDiv: Scale Division .. seealso:: For more information about scale divisions, - see :py:class:`.scale_div.QwtScaleDiv`. + see :py:class:`qwt.scale_div.QwtScaleDiv`. """ sd = self.__data.scaleDraw if sd.scaleDiv() != scaleDiv: @@ -713,12 +713,12 @@ def setTransformation(self, transformation): """ Set the transformation - :param .transform.Transform transformation: Transformation + :param qwt.transform.Transform transformation: Transformation .. seealso:: - :py:meth:`.scale_draw.QwtAbstractScaleDraw.scaleDraw()`, - :py:class:`.scale_map.QwtScaleMap` + :py:meth:`qwt.scale_draw.QwtAbstractScaleDraw.scaleDraw()`, + :py:class:`qwt.scale_map.QwtScaleMap` """ self.__data.scaleDraw.setTransformation(transformation) self.layoutScale() @@ -787,8 +787,8 @@ def setColorMap(self, interval, colorMap): Set the color map and value interval, that are used for displaying the color bar. - :param .interval.QwtInterval interval: Value interval - :param .color_map.QwtColorMap colorMap: Color map + :param qwt.interval.QwtInterval interval: Value interval + :param qwt.color_map.QwtColorMap colorMap: Color map .. seealso:: diff --git a/qwt/symbol.py b/qwt/symbol.py index c8eb964..2af971f 100644 --- a/qwt/symbol.py +++ b/qwt/symbol.py @@ -634,7 +634,7 @@ def setGraphic(self, graphic): """ Set a graphic as symbol - :param .graphic.QwtGraphic graphic: Graphic + :param qwt.graphic.QwtGraphic graphic: Graphic .. seealso:: diff --git a/qwt/text.py b/qwt/text.py index b985bf9..dc745ce 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -111,7 +111,7 @@ class QwtTextEngine(object): .. seealso:: - :py:meth:`.text.QwtText.setTextEngine()` + :py:meth:`qwt.text.QwtText.setTextEngine()` """ def __init__(self): pass @@ -490,8 +490,8 @@ class QwtText(object): ..seealso:: - :py:meth:`.text.QwtTextEngine`, - :py:meth:`.text.QwtTextLabel` + :py:meth:`qwt.text.QwtTextEngine`, + :py:meth:`qwt.text.QwtTextLabel` Text formats: @@ -549,7 +549,7 @@ class QwtText(object): :param str text: Text content :param int textFormat: Text format - :param .text.QwtText other: Object to copy (text and textFormat arguments are ignored) + :param qwt.text.QwtText other: Object to copy (text and textFormat arguments are ignored) """ # enum TextFormat @@ -654,7 +654,7 @@ def setRenderFlags(self, renderFlags): .. seealso:: :py:meth:`renderFlags()`, - :py:meth:`.text.QwtTextEngine.draw()` + :py:meth:`qwt.text.QwtTextEngine.draw()` """ renderFlags = Qt.AlignmentFlag(renderFlags) if renderFlags != self.__data.renderFlags: @@ -1019,7 +1019,7 @@ def setTextEngine(self, format_, engine): For `QwtText.PlainText` it is not allowed to assign a engine to None. :param int format_: Text format - :param .text.QwtTextEngine engine: Text engine + :param qwt.text.QwtTextEngine engine: Text engine .. seealso:: @@ -1110,7 +1110,7 @@ def setText(self, text, textFormat=QwtText.AutoText): Change the label's text, keeping all other QwtText attributes :param text: New text - :type text: .text.QwtText or str + :type text: qwt.text.QwtText or str :param int textFormat: Format of text .. seealso:: From 6893b4389787ac711c9fc7d68189bd83d668573e Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 4 Aug 2020 09:36:55 +0200 Subject: [PATCH 112/421] Ported changes from Qwt 6.1.2 to Qwt 6.1.5 --- .gitignore | 2 +- qwt/__init__.py | 4 ++-- qwt/column_symbol.py | 3 ++- qwt/graphic.py | 3 +-- qwt/legend.py | 1 + qwt/painter.py | 2 ++ qwt/plot.py | 17 ++++++++------ qwt/plot_canvas.py | 6 ++++- qwt/plot_curve.py | 5 ++-- qwt/plot_directpainter.py | 3 ++- qwt/plot_layout.py | 49 +++++++++++++++++++-------------------- qwt/plot_marker.py | 7 +++++- qwt/plot_renderer.py | 12 ++++------ qwt/plot_series.py | 1 + qwt/scale_engine.py | 12 +++------- qwt/scale_widget.py | 12 ++++++++-- 16 files changed, 77 insertions(+), 62 deletions(-) diff --git a/.gitignore b/.gitignore index b30b197..8bfa4a1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ .spyderproject -qwt-6.1.2 +qwt-6.* qwt/tests/demo.png PythonQwt.chm PythonQwt.chm.zip diff --git a/qwt/__init__.py b/qwt/__init__.py index 85f09bb..5246955 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -28,8 +28,8 @@ .. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.5.5' -QWT_VERSION_STR = '6.1.2' +__version__ = '0.6.0' +QWT_VERSION_STR = '6.1.5' import warnings diff --git a/qwt/column_symbol.py b/qwt/column_symbol.py index f2386eb..05376fd 100644 --- a/qwt/column_symbol.py +++ b/qwt/column_symbol.py @@ -129,7 +129,8 @@ def drawBox(self, painter, rect): elif self.__data.frameStyle == QwtColumnSymbol.Plain: qwtDrawBox(painter, r, self.__data.palette, self.__data.lineWidth) else: - painter.fillRect(r, self.__data.palette.window()) + painter.fillRect(r.adjusted(0, 0, 1, 1), + self.__data.palette.window()) class QwtColumnRect(object): diff --git a/qwt/graphic.py b/qwt/graphic.py index 358a05e..094427c 100644 --- a/qwt/graphic.py +++ b/qwt/graphic.py @@ -708,9 +708,8 @@ def updateBoundingRect(self, rect): br = QRectF(rect) painter = self.paintEngine().painter() if painter and painter.hasClipping(): - #XXX: there's something fishy about the following lines... cr = painter.clipRegion().boundingRect() - cr = painter.transform().mapRect(br) + cr = painter.transform().mapRect(cr) br &= cr if self.__data.boundingRect.width() < 0: self.__data.boundingRect = br diff --git a/qwt/legend.py b/qwt/legend.py index 5ccd567..c39de71 100644 --- a/qwt/legend.py +++ b/qwt/legend.py @@ -667,6 +667,7 @@ def setMaxColumns(self, numColumns): tl = self.__data.view.gridLayout if tl is not None: tl.setMaxColumns(numColumns) + self.updateGeometry() def maxColumns(self): """ diff --git a/qwt/painter.py b/qwt/painter.py index f35dc8d..8d9c2c4 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -81,6 +81,8 @@ def drawFocusRect(self, *args): opt.initFrom(widget) opt.rect = rect opt.state |= QStyle.State_HasFocus + palette = widget.palette() + opt.backgroundColor = palette.color(widget.backgroundRole()) widget.style().drawPrimitive(QStyle.PE_FrameFocusRect, opt, painter, widget) else: diff --git a/qwt/plot.py b/qwt/plot.py index e142e53..57cd778 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -20,7 +20,7 @@ """ from .qt.QtGui import (QWidget, QFont, QSizePolicy, QFrame, QApplication, - QRegion, QPainter, QPalette) + QRegion, QPainter, QPalette) from .qt.QtCore import Qt, Signal, QEvent, QSize, QRectF from .text import QwtText, QwtTextLabel @@ -1206,9 +1206,12 @@ def updateLayout(self): self.__data.footerLabel.hide() for axisId in self.validAxes: + scaleWidget = self.axisWidget(axisId) if self.axisEnabled(axisId): - self.axisWidget(axisId).setGeometry(scaleRect[axisId]) - + if scaleRect[axisId] != scaleWidget.geometry(): + scaleWidget.setGeometry(scaleRect[axisId]) + startDist, endDist = scaleWidget.getBorderDistHint() + scaleWidget.setBorderDist(startDist, endDist) if axisId in (self.xBottom, self.xTop): r = QRegion(scaleRect[axisId]) if self.axisEnabled(self.yLeft): @@ -1217,13 +1220,13 @@ def updateLayout(self): r = r.subtracted(QRegion(scaleRect[self.yRight])) r.translate(-scaleRect[axisId].x(), -scaleRect[axisId].y()) - self.axisWidget(axisId).setMask(r) + scaleWidget.setMask(r) - if not self.axisWidget(axisId).isVisibleTo(self): - self.axisWidget(axisId).show() + if not scaleWidget.isVisibleTo(self): + scaleWidget.show() else: - self.axisWidget(axisId).hide() + scaleWidget.hide() if self.__data.legend: if self.__data.legend.isEmpty(): diff --git a/qwt/plot_canvas.py b/qwt/plot_canvas.py index 5a32b66..6bbb475 100644 --- a/qwt/plot_canvas.py +++ b/qwt/plot_canvas.py @@ -568,7 +568,11 @@ def paintEvent(self, event): if self.testPaintAttribute(self.BackingStore) and\ self.__data.backingStore is not None: bs = self.__data.backingStore - if bs.size() != self.size(): + if QT_VERSION >= 0x050000: + pixelRatio = bs.devicePixelRatio() + else: + pixelRatio = 1. + if bs.size() != self.size()*pixelRatio: bs = QwtPainter.backingStore(self, self.size()) if self.testAttribute(Qt.WA_StyledBackground): p = QPainter(bs) diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index f0b63d9..b3358b8 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -15,11 +15,10 @@ from .text import QwtText from .plot import QwtPlotItem, QwtPlotItem_PrivateData -from .painter import QwtPainter from .math import qwtSqr from .graphic import QwtGraphic -from .plot_series import (QwtPlotSeriesItem, QwtSeriesStore, - QwtSeriesData, QwtPointArrayData) +from .plot_series import (QwtPlotSeriesItem, QwtSeriesStore, QwtSeriesData, + QwtPointArrayData) from .symbol import QwtSymbol from .plot_directpainter import QwtPlotDirectPainter diff --git a/qwt/plot_directpainter.py b/qwt/plot_directpainter.py index 780e9b4..25cd885 100644 --- a/qwt/plot_directpainter.py +++ b/qwt/plot_directpainter.py @@ -211,6 +211,7 @@ def drawSeries(self, seriesItem, from_, to): if self.__data.hasClipping: painter.setClipRegion(self.__data.clipRegion) qwtRenderItem(painter, canvasRect, seriesItem, from_, to) + painter.end() if self.testAttribute(self.FullRepaint): plotCanvas.repaint() return @@ -270,7 +271,7 @@ def eventFilter(self, obj_, event): if plotCanvas: doCopyCache = qwtHasBackingStore(plotCanvas) if doCopyCache: - painter.drawPixmap(plotCanvas.contentsRect().topLeft(), + painter.drawPixmap(plotCanvas.rect().topLeft(), plotCanvas.backingStore()) if not doCopyCache: qwtRenderItem(painter, canvas.contentsRect(), diff --git a/qwt/plot_layout.py b/qwt/plot_layout.py index 4ea300e..a345c30 100644 --- a/qwt/plot_layout.py +++ b/qwt/plot_layout.py @@ -69,17 +69,16 @@ def __init__(self): def init(self, plot, rect): """Extract all layout relevant data from the plot components""" # legend - if plot.legend(): - self.legend.frameWidth = plot.legend().frameWidth() - self.legend.hScrollExtent = plot.legend().scrollExtent(Qt.Horizontal) - self.legend.vScrollExtent = plot.legend().scrollExtent(Qt.Vertical) - hint = plot.legend().sizeHint() + legend = plot.legend() + if legend: + self.legend.frameWidth = legend.frameWidth() + self.legend.hScrollExtent = legend.scrollExtent(Qt.Horizontal) + self.legend.vScrollExtent = legend.scrollExtent(Qt.Vertical) + hint = legend.sizeHint() w = min([hint.width(), np.floor(rect.width())]) - h = plot.legend().heightForWidth(w) + h = legend.heightForWidth(w) if h <= 0: h = hint.height() - if h > rect.height(): - w += self.legend.hScrollExtent self.legend.hint = QSize(w, h) # title self.title.frameWidth = 0 @@ -698,16 +697,16 @@ def expandLineBreaks(self, options, rect): :param options: Options how to layout the legend :param QRectF rect: Bounding rectangle for title, footer, axes and canvas. - :return: tuple `(dimTitle, dimFooter, dimAxis)` + :return: tuple `(dimTitle, dimFooter, dimAxes)` Returns: * `dimTitle`: Expanded height of the title widget * `dimFooter`: Expanded height of the footer widget - * `dimAxis`: Expanded heights of the axis in axis orientation. + * `dimAxes`: Expanded heights of the axis in axis orientation. """ dimTitle = dimFooter = 0 - dimAxis = [0 for axis in QwtPlot.validAxes] + dimAxes = [0 for axis in QwtPlot.validAxes] backboneOffset = [0 for _i in QwtPlot.validAxes] for axis in QwtPlot.validAxes: if not (options & self.IgnoreFrames): @@ -729,7 +728,7 @@ def expandLineBreaks(self, options, rect): w = rect.width() if self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled !=\ self.__data.layoutData.scale[QwtPlot.yRight].isEnabled: - w -= dimAxis[QwtPlot.yLeft]+dimAxis[QwtPlot.yRight] + w -= dimAxes[QwtPlot.yLeft]+dimAxes[QwtPlot.yRight] d = np.ceil(self.__data.layoutData.title.text.heightForWidth(w)) if not (options & self.IgnoreFrames): d += 2*self.__data.layoutData.title.frameWidth @@ -741,7 +740,7 @@ def expandLineBreaks(self, options, rect): w = rect.width() if self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled !=\ self.__data.layoutData.scale[QwtPlot.yRight].isEnabled: - w -= dimAxis[QwtPlot.yLeft]+dimAxis[QwtPlot.yRight] + w -= dimAxes[QwtPlot.yLeft]+dimAxes[QwtPlot.yRight] d = np.ceil(self.__data.layoutData.footer.text.heightForWidth(w)) if not (options & self.IgnoreFrames): d += 2*self.__data.layoutData.footer.frameWidth @@ -752,26 +751,26 @@ def expandLineBreaks(self, options, rect): scaleData = self.__data.layoutData.scale[axis] if scaleData.isEnabled: if axis in (QwtPlot.xTop, QwtPlot.xBottom): - length = rect.width()-dimAxis[QwtPlot.yLeft]-dimAxis[QwtPlot.yRight] + length = rect.width()-dimAxes[QwtPlot.yLeft]-dimAxes[QwtPlot.yRight] length -= scaleData.start + scaleData.end - if dimAxis[QwtPlot.yRight] > 0: + if dimAxes[QwtPlot.yRight] > 0: length -= 1 - length += min([dimAxis[QwtPlot.yLeft], + length += min([dimAxes[QwtPlot.yLeft], scaleData.start-backboneOffset[QwtPlot.yLeft]]) - length += min([dimAxis[QwtPlot.yRight], + length += min([dimAxes[QwtPlot.yRight], scaleData.end-backboneOffset[QwtPlot.yRight]]) else: - length = rect.height()-dimAxis[QwtPlot.xTop]-dimAxis[QwtPlot.xBottom] + length = rect.height()-dimAxes[QwtPlot.xTop]-dimAxes[QwtPlot.xBottom] length -= scaleData.start + scaleData.end length -= 1 - if dimAxis[QwtPlot.xBottom] <= 0: + if dimAxes[QwtPlot.xBottom] <= 0: length -= 1 - if dimAxis[QwtPlot.xTop] <= 0: + if dimAxes[QwtPlot.xTop] <= 0: length -= 1 - if dimAxis[QwtPlot.xBottom] > 0: + if dimAxes[QwtPlot.xBottom] > 0: length += min([self.__data.layoutData.scale[QwtPlot.xBottom].tickOffset, float(scaleData.start-backboneOffset[QwtPlot.xBottom])]) - if dimAxis[QwtPlot.xTop] > 0: + if dimAxes[QwtPlot.xTop] > 0: length += min([self.__data.layoutData.scale[QwtPlot.xTop].tickOffset, float(scaleData.end-backboneOffset[QwtPlot.xTop])]) if dimTitle > 0: @@ -779,10 +778,10 @@ def expandLineBreaks(self, options, rect): d = scaleData.dimWithoutTitle if not scaleData.scaleWidget.title().isEmpty(): d += scaleData.scaleWidget.titleHeightForWidth(np.floor(length)) - if d > dimAxis[axis]: - dimAxis[axis] = d + if d > dimAxes[axis]: + dimAxes[axis] = d done = False - return dimTitle, dimFooter, dimAxis + return dimTitle, dimFooter, dimAxes def alignScales(self, options, canvasRect, scaleRect): """ diff --git a/qwt/plot_marker.py b/qwt/plot_marker.py index 60c6ef1..49c8d47 100644 --- a/qwt/plot_marker.py +++ b/qwt/plot_marker.py @@ -495,7 +495,12 @@ def linePen(self): return self.__data.pen def boundingRect(self): - return QRectF(self.__data.xValue, self.__data.yValue, 0., 0.) + if self.__data.style == QwtPlotMarker.HLine: + return QRectF(self.__data.xValue, self.__data.yValue, -1., 0.) + elif self.__data.style == QwtPlotMarker.VLine: + return QRectF(self.__data.xValue, self.__data.yValue, 0., -1.) + else: + return QRectF(self.__data.xValue, self.__data.yValue, 0., 0.) def legendIcon(self, index, size): """ diff --git a/qwt/plot_renderer.py b/qwt/plot_renderer.py index 0f81d7c..21e3699 100644 --- a/qwt/plot_renderer.py +++ b/qwt/plot_renderer.py @@ -356,7 +356,6 @@ def render(self, plot, painter, plotRect): baseLineDists[axisId] = scaleWidget.margin() scaleWidget.setMargin(0) if not plot.axisEnabled(axisId): - left, right, top, bottom = 0, 0, 0, 0 # When we have a scale the frame is painted on # the position of the backbone - otherwise we # need to introduce a margin around the canvas @@ -368,8 +367,7 @@ def render(self, plot, painter, plotRect): layoutRect.adjust(0, 1, 0, 0) elif axisId == QwtPlot.xBottom: layoutRect.adjust(0, 0, 0, -1) - layoutRect.adjust(left, top, right, bottom) - + # Calculate the layout for the document. layoutOptions = QwtPlotLayout.IgnoreScrollbars @@ -581,10 +579,10 @@ def renderCanvas(self, plot, painter, canvasRect, maps): if frameWidth > 0: painter.save() frameStyle = canvas.frameShadow() | canvas.frameShape() - frameWidth = canvas.frameWidth() - borderRadius = canvas.borderRadius() - if borderRadius > 0.: - QwtPainter.drawRoundedFrame(painter, canvasRect, r, r, + radius = canvas.borderRadius() + if radius > 0.: + QwtPainter.drawRoundedFrame(painter, canvasRect, + radius, radius, canvas.palette(), frameWidth, frameStyle) else: diff --git a/qwt/plot_series.py b/qwt/plot_series.py index 98c0eee..a307da6 100644 --- a/qwt/plot_series.py +++ b/qwt/plot_series.py @@ -57,6 +57,7 @@ def __init__(self, title): title = QwtText(title) QwtPlotItem.__init__(self, title) self.__data = QwtPlotSeriesItem_PrivateData() + self.setItemInterest(QwtPlotItem.ScaleInterest, True) def setOrientation(self, orientation): """ diff --git a/qwt/scale_engine.py b/qwt/scale_engine.py index 0da06d8..cbeac55 100644 --- a/qwt/scale_engine.py +++ b/qwt/scale_engine.py @@ -608,13 +608,14 @@ def align(self, interval, stepSize): """ x1 = interval.minValue() x2 = interval.maxValue() + eps = .000000000001 if -DBL_MAX+stepSize <= x1: x = floorEps(x1, stepSize) - if qwtFuzzyCompare(x1, x, stepSize) != 0: + if abs(x) <= eps or not qFuzzyCompare(x1, x): x1 = x if DBL_MAX-stepSize >= x2: x = ceilEps(x2, stepSize) - if qwtFuzzyCompare(x2, x, stepSize) != 0: + if abs(x) <= eps or not qFuzzyCompare(x2, x): x2 = x return QwtInterval(x1, x2) @@ -732,13 +733,6 @@ def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): linearScaler.setAttributes(self.attributes()) linearScaler.setReference(self.reference()) linearScaler.setMargins(self.lowerMargin(), self.upperMargin()) - - if stepSize != 0.: - if stepSize < 0.: - stepSize = -np.power(logBase, -stepSize) - else: - stepSize = np.power(logBase, stepSize) - return linearScaler.divideScale(x1, x2, maxMajorSteps, maxMinorSteps, stepSize) diff --git a/qwt/scale_widget.py b/qwt/scale_widget.py index cd77f31..43cd474 100644 --- a/qwt/scale_widget.py +++ b/qwt/scale_widget.py @@ -22,8 +22,8 @@ from .color_map import QwtColorMap from .qt.QtGui import (QWidget, QSizePolicy, QPainter, QStyleOption, QStyle, - QPalette) -from .qt.QtCore import Qt, QRectF, QSize, Signal + QPalette, QApplication) +from .qt.QtCore import Qt, QRectF, QSize, Signal, QEvent import numpy as np @@ -149,6 +149,7 @@ def setLayoutFlag(self, flag, on=True): self.__data.layoutFlags |= flag else: self.__data.layoutFlags &= ~flag + self.update() def testLayoutFlag(self, flag): """ @@ -503,6 +504,13 @@ def layoutScale(self, update_geometry=True): if update_geometry: self.updateGeometry() + # for some reason updateGeometry does not send a LayoutRequest + # event when the parent is not visible and has no layout + widget = self.parentWidget() + if widget and not widget.isVisible() and widget.layout() is None: + if widget.testAttribute(Qt.WA_WState_Polished): + QApplication.postEvent(self.parentWidget(), + QEvent(QEvent.LayoutRequest)) self.update() def drawColorBar(self, painter, rect): From 06baddc17e383040688484c946a0952a6e2ca391 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 4 Aug 2020 09:39:09 +0200 Subject: [PATCH 113/421] QwtPlotCanvas.setPaintAttribute: fixed PyQt4 compatibility issue for BackingStore paint attribute --- qwt/plot_canvas.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/qwt/plot_canvas.py b/qwt/plot_canvas.py index 6bbb475..ede9ffb 100644 --- a/qwt/plot_canvas.py +++ b/qwt/plot_canvas.py @@ -467,11 +467,8 @@ def setPaintAttribute(self, attribute, on=True): if QT_VERSION >= 0x050000: self.__data.backingStore = self.grab(self.rect()) else: - if PYQT5: - pm = QPixmap.grabWidget(self, self.rect()) - else: - pm = self.grab(self.rect()) - self.__data.backingStore = pm + self.__data.backingStore = QPixmap.grabWidget(self, + self.rect()) else: self.__data.backingStore = None elif attribute == self.Opaque: From 3992e4b0fef6854f0a4c96651f7bb07a6cffe0ee Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 4 Aug 2020 09:49:12 +0200 Subject: [PATCH 114/421] Updated changelog for v0.6.0 --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22b346a..dc568db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,17 @@ # PythonQwt Releases # +### Version 0.6.0 ### +- Ported changes from Qwt 6.1.2 to Qwt 6.1.5 +- `QwtPlotCanvas.setPaintAttribute`: fixed PyQt4 compatibility issue for BackingStore paint attribute +- Fixed DataDemo.py test script (was crashing ; this closes #41) +- `QwtPainterClass.drawBackground`: fixed obvious bug in untested code (this closes #51) +- `qwtFillBackground`: fixed obvious bug in untested code (this closes #50) +- `QwtPainterClass.fillPixmap`: fixed obvious bug in untested code (this closes #49) +- `QwtStyleSheetRecorder`: fixed obvious bug in untested code (this closes #47, closes #48 and closes #52) +- Added "plot without margins" test for Issue #35 + + ### Version 0.5.5 ### - `QwtScaleMap.invTransform_scalar`: avoid divide by 0 From 304b94f10a33db9cb0af11ca8df108eadee188b7 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 4 Aug 2020 11:48:05 +0200 Subject: [PATCH 115/421] Minor documentation update (+ fixed requirements) --- build_dist.bat | 3 +-- build_doc.bat | 6 ++++-- doc/conf.py | 2 +- doc/installation.rst | 3 ++- qwt/py3compat.py | 4 ++-- qwt/qt/compat.py | 10 +++++----- setup.py | 2 +- 7 files changed, 16 insertions(+), 14 deletions(-) diff --git a/build_dist.bat b/build_dist.bat index 32dc159..2bc532c 100644 --- a/build_dist.bat +++ b/build_dist.bat @@ -1,7 +1,6 @@ del MANIFEST rmdir /S /Q build rmdir /S /Q dist -python setup.py build bdist_wininst --plat-name=win32 -python setup.py build bdist_wininst --plat-name=win-amd64 +set PYTHONPATH=%cd% python setup.py sdist bdist_wheel --universal python setup.py build sdist \ No newline at end of file diff --git a/build_doc.bat b/build_doc.bat index 825cada..16be552 100644 --- a/build_doc.bat +++ b/build_doc.bat @@ -1,6 +1,8 @@ +@echo off +set PATH=C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip;C:\Program Files\HTML Help Workshop;C:\Program Files (x86)\HTML Help Workshop;%PATH% +set PYTHONPATH=%cd% sphinx-build -b htmlhelp doc doctmp -"C:\Program Files\HTML Help Workshop\hhc.exe" doctmp\PythonQwt.hhp -"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" doctmp\PythonQwt.hhp +hhc doctmp\PythonQwt.hhp copy doctmp\PythonQwt.chm . 7z a PythonQwt.chm.zip PythonQwt.chm del doctmp\PythonQwt.chm diff --git a/doc/conf.py b/doc/conf.py index 6cbd824..1c9413a 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -116,7 +116,7 @@ html_title = '%s %s Manual' % (project, version) # A shorter title for the navigation bar. Default is the same as html_title. -html_short_title = '%s Manual' % project +#html_short_title = '%s Manual' % project # The name of an image file (relative to this directory) to place at the top # of the sidebar. diff --git a/doc/installation.rst b/doc/installation.rst index 218b3ba..ade7c33 100644 --- a/doc/installation.rst +++ b/doc/installation.rst @@ -7,8 +7,9 @@ Dependencies Requirements: * Python 2.x (x>=6) or 3.x (x>=2) * PyQt4 4.x (x>=3 ; recommended x>=4) or PyQt5 5.x (x>=5) - * spyderlib >=v2.0.10 for the test launcher * NumPy 1.x (x>=5) + * guidata >=v1.7 for the test launcher + * Sphinx 1.x (x>=1) for documentation generation Installation ------------ diff --git a/qwt/py3compat.py b/qwt/py3compat.py index a1929a0..0e089ba 100644 --- a/qwt/py3compat.py +++ b/qwt/py3compat.py @@ -5,8 +5,8 @@ # (see LICENSE file for details) """ -guidata.py3compat (exact copy of spyderlib.py3compat) ------------------------------------------------------ +qwt.py3compat (exact copy of spyderlib.py3compat) +------------------------------------------------- Transitional module providing compatibility functions intended to help migrating from Python 2 to Python 3. diff --git a/qwt/qt/compat.py b/qwt/qt/compat.py index 3afcb72..5c7f9f3 100644 --- a/qwt/qt/compat.py +++ b/qwt/qt/compat.py @@ -5,8 +5,8 @@ # (see LICENSE file for details) """ -spyderlib.qt.compat -------------------- +qwt.qt.compat (exact copy of spyderlib.qt.compat) +------------------------------------------------- Transitional module providing compatibility functions intended to help migrating from PyQt to PySide. @@ -112,7 +112,7 @@ def _qfiledialog_wrapper(attr, parent=None, caption='', basedir='', options = QFileDialog.Options(0) try: # PyQt =v4.6 QString = None # analysis:ignore @@ -200,8 +200,8 @@ def getsavefilename(parent=None, caption='', basedir='', filters='', options=options) if __name__ == '__main__': - from spyderlib.utils.qthelpers import qapplication - _app = qapplication() + from qwt.qt.QtGui import QApplication + _app = QApplication([]) print(repr(getexistingdirectory())) print(repr(getopenfilename(filters='*.py;;*.txt'))) print(repr(getopenfilenames(filters='*.py;;*.txt'))) diff --git a/setup.py b/setup.py index b52ba5c..7e4c94b 100644 --- a/setup.py +++ b/setup.py @@ -127,7 +127,7 @@ def build_chm_doc(libname): package_data={PACKAGE_NAME: get_package_data(PACKAGE_NAME, ('.png', '.svg', '.mo'))}, data_files=[(r'Doc', [CHM_DOC])] if CHM_DOC else [], - install_requires=["NumPy>=1.3"], + install_requires=["NumPy>=1.5"], extras_require = { 'Doc': ["Sphinx>=1.1"], 'Tests': ["guidata>=1.7.0"], From 6530062bd72bd4cc2ec67f695d2b980e4568fc3b Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 7 Aug 2020 14:48:02 +0200 Subject: [PATCH 116/421] CurveBenchmark.py: fixed TypeError with numpy.linspace (NumPy=1.18) --- qwt/tests/CurveBenchmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qwt/tests/CurveBenchmark.py b/qwt/tests/CurveBenchmark.py index 3f1e1e4..a999216 100644 --- a/qwt/tests/CurveBenchmark.py +++ b/qwt/tests/CurveBenchmark.py @@ -159,7 +159,7 @@ def process_iteration(self, title, description, widget, t0): def run_benchmark(self, max_n, **kwargs): for idx in range(4, -1, -1): - points = max_n/10**idx + points = int(max_n/10**idx) t0 = time.time() widget = BMWidget(points, **kwargs) title = '%d points' % points From 233b50769a2b240c8da0fe452b5818277ec7a121 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 7 Aug 2020 14:50:55 +0200 Subject: [PATCH 117/421] Removed unnecessary mask on scaleWidget This closes #35 --- qwt/plot.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/qwt/plot.py b/qwt/plot.py index 57cd778..0fdb953 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -1212,19 +1212,24 @@ def updateLayout(self): scaleWidget.setGeometry(scaleRect[axisId]) startDist, endDist = scaleWidget.getBorderDistHint() scaleWidget.setBorderDist(startDist, endDist) - if axisId in (self.xBottom, self.xTop): - r = QRegion(scaleRect[axisId]) - if self.axisEnabled(self.yLeft): - r = r.subtracted(QRegion(scaleRect[self.yLeft])) - if self.axisEnabled(self.yRight): - r = r.subtracted(QRegion(scaleRect[self.yRight])) - r.translate(-scaleRect[axisId].x(), -scaleRect[axisId].y()) - - scaleWidget.setMask(r) - + + #------------------------------------------------------------- + #XXX: The following was commented to fix issue #35 + # Note: the same code part in Qwt's original source code is + # annotated with the mention "do we need this code any + # longer ???"... I guess not :) + # if axisId in (self.xBottom, self.xTop): + # r = QRegion(scaleRect[axisId]) + # if self.axisEnabled(self.yLeft): + # r = r.subtracted(QRegion(scaleRect[self.yLeft])) + # if self.axisEnabled(self.yRight): + # r = r.subtracted(QRegion(scaleRect[self.yRight])) + # r.translate(-scaleRect[axisId].x(), -scaleRect[axisId].y()) + # scaleWidget.setMask(r) + #------------------------------------------------------------- + if not scaleWidget.isVisibleTo(self): scaleWidget.show() - else: scaleWidget.hide() From 1adb337502b9edf6dab126cf779404b7780d48e8 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 7 Aug 2020 16:54:24 +0200 Subject: [PATCH 118/421] Renamed qwt.math to qwt._math (+ some simplifications) --- qwt/{math.py => _math.py} | 136 +++++++++++++++++++------------------- qwt/plot_curve.py | 2 +- qwt/plot_grid.py | 3 +- qwt/scale_draw.py | 2 +- qwt/scale_engine.py | 50 +++++++------- qwt/scale_map.py | 2 +- qwt/tests/no_margin.py | 2 +- 7 files changed, 98 insertions(+), 99 deletions(-) rename qwt/{math.py => _math.py} (95%) diff --git a/qwt/math.py b/qwt/_math.py similarity index 95% rename from qwt/math.py rename to qwt/_math.py index f9c9ef4..b6659e2 100644 --- a/qwt/math.py +++ b/qwt/_math.py @@ -1,68 +1,68 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the Qwt License -# Copyright (c) 2002 Uwe Rathmann, for the original C++ code -# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization -# (see LICENSE file for more details) - -from .qt.QtCore import qFuzzyCompare - -import numpy as np - - -def qwtFuzzyCompare(value1, value2, intervalSize): - eps = abs(1.e-6*intervalSize) - if value2 - value1 > eps: - return -1 - elif value1 - value2 > eps: - return 1 - else: - return 0 - -def qwtFuzzyGreaterOrEqual(d1, d2): - return (d1 >= d2) or qFuzzyCompare(d1, d2) - -def qwtFuzzyLessOrEqual(d1, d2): - return (d1 <= d2) or qFuzzyCompare(d1, d2) - -def qwtSign(x): - if x > 0.: - return 1 - elif x < 0.: - return -1 - else: - return 0 - -def qwtSqr(x): - return x**2 - -def qwtFastAtan(x): - if x < -1.: - return -.5*np.pi - x/(x**2 + .28) - elif x > 1.: - return .5*np.pi - x/(x**2 + .28) - else: - return x/(1. + x**2*.28) - -def qwtFastAtan2(y, x): - if x > 0: - return qwtFastAtan(y/x) - elif x < 0: - d = qwtFastAtan(y/x) - if y >= 0: - return d + np.pi - else: - return d - np.pi - elif y < 0.: - return -.5*np.pi - elif y > 0.: - return .5*np.pi - else: - return 0. - -def qwtRadians(degrees): - return degrees * np.pi/180. - -def qwtDegrees(radians): - return radians * 180./np.pi - +# -*- coding: utf-8 -*- +# +# Licensed under the terms of the Qwt License +# Copyright (c) 2002 Uwe Rathmann, for the original C++ code +# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization +# (see LICENSE file for more details) + +from .qt.QtCore import qFuzzyCompare + +import numpy as np + + +def qwtFuzzyCompare(value1, value2, intervalSize): + eps = abs(1.e-6*intervalSize) + if value2 - value1 > eps: + return -1 + elif value1 - value2 > eps: + return 1 + else: + return 0 + +def qwtFuzzyGreaterOrEqual(d1, d2): + return (d1 >= d2) or qFuzzyCompare(d1, d2) + +def qwtFuzzyLessOrEqual(d1, d2): + return (d1 <= d2) or qFuzzyCompare(d1, d2) + +def qwtSign(x): + if x > 0.: + return 1 + elif x < 0.: + return -1 + else: + return 0 + +def qwtSqr(x): + return x**2 + +def qwtFastAtan(x): + if x < -1.: + return -.5*np.pi - x/(x**2 + .28) + elif x > 1.: + return .5*np.pi - x/(x**2 + .28) + else: + return x/(1. + x**2*.28) + +def qwtFastAtan2(y, x): + if x > 0: + return qwtFastAtan(y/x) + elif x < 0: + d = qwtFastAtan(y/x) + if y >= 0: + return d + np.pi + else: + return d - np.pi + elif y < 0.: + return -.5*np.pi + elif y > 0.: + return .5*np.pi + else: + return 0. + +def qwtRadians(degrees): + return degrees * np.pi/180. + +def qwtDegrees(radians): + return radians * 180./np.pi + diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index b3358b8..a6e6fed 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -15,7 +15,7 @@ from .text import QwtText from .plot import QwtPlotItem, QwtPlotItem_PrivateData -from .math import qwtSqr +from ._math import qwtSqr from .graphic import QwtGraphic from .plot_series import (QwtPlotSeriesItem, QwtSeriesStore, QwtSeriesData, QwtPointArrayData) diff --git a/qwt/plot_grid.py b/qwt/plot_grid.py index fba3854..29e169d 100644 --- a/qwt/plot_grid.py +++ b/qwt/plot_grid.py @@ -16,8 +16,7 @@ from .scale_div import QwtScaleDiv from .plot import QwtPlotItem from .text import QwtText -from .painter import QwtPainter -from .math import qwtFuzzyGreaterOrEqual, qwtFuzzyLessOrEqual +from ._math import qwtFuzzyGreaterOrEqual, qwtFuzzyLessOrEqual from .qt.QtGui import QPen from .qt.QtCore import Qt diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index fe1fe02..b6d50f7 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -22,7 +22,7 @@ from .scale_div import QwtScaleDiv from .scale_map import QwtScaleMap from .text import QwtText -from .math import qwtRadians +from ._math import qwtRadians from .qt.QtGui import QPalette, QFontMetrics, QTransform from .qt.QtCore import (Qt, qFuzzyCompare, QLocale, QRectF, QPointF, QRect, diff --git a/qwt/scale_engine.py b/qwt/scale_engine.py index cbeac55..1598b31 100644 --- a/qwt/scale_engine.py +++ b/qwt/scale_engine.py @@ -30,35 +30,34 @@ from .interval import QwtInterval from .scale_div import QwtScaleDiv from .transform import QwtLogTransform -from .math import qwtFuzzyCompare +from ._math import qwtFuzzyCompare from .transform import QwtTransform from .qt.QtCore import qFuzzyCompare +import sys +import math import numpy as np -DBL_MAX = np.finfo(float).max +DBL_MAX = sys.float_info.max LOG_MIN = 1.0e-100 LOG_MAX = 1.0e100 -def qwtLog(base, value): - return np.log(value)/np.log(base) - def qwtLogInterval(base, interval): - return QwtInterval(qwtLog(base, interval.minValue()), - qwtLog(base, interval.maxValue())) + return QwtInterval(math.log(interval.minValue(), base), + math.log(interval.maxValue(), base)) def qwtPowInterval(base, interval): - return QwtInterval(np.power(base, interval.minValue()), - np.power(base, interval.maxValue())) + return QwtInterval(math.pow(base, interval.minValue()), + math.pow(base, interval.maxValue())) def qwtStepSize(intervalSize, maxSteps, base): """this version often doesn't find the best ticks: f.e for 15: 5, 10""" minStep = divideInterval(intervalSize, maxSteps, base) if minStep != 0.: # # ticks per interval - numTicks = np.ceil(abs(intervalSize/minStep))-1 + numTicks = math.ceil(abs(intervalSize/minStep))-1 # Do the minor steps fit into the interval? if qwtFuzzyCompare((numTicks+1)*abs(minStep), abs(intervalSize), intervalSize) > 0: @@ -82,7 +81,7 @@ def ceilEps(value, intervalSize): """ eps = EPS*intervalSize value = (value-eps)/intervalSize - return np.ceil(value)*intervalSize + return math.ceil(value)*intervalSize def floorEps(value, intervalSize): """ @@ -98,7 +97,7 @@ def floorEps(value, intervalSize): """ eps = EPS*intervalSize value = (value+eps)/intervalSize - return np.floor(value)*intervalSize + return math.floor(value)*intervalSize def divideEps(intervalSize, numSteps): """ @@ -129,14 +128,15 @@ def divideInterval(intervalSize, numSteps, base): if v == 0.: return 0. - lx = qwtLog(base, abs(v)) - p = np.floor(lx) - fraction = np.power(base, lx-p) + lx = math.log(abs(v), base) + p = math.floor(lx) + print("p:", p) + fraction = math.pow(base, lx-p) n = base while n > 1 and fraction <= n/2: n /= 2 - stepSize = n*np.power(base, p) + stepSize = n*math.pow(base, p) if v < 0: stepSize = -stepSize @@ -580,7 +580,7 @@ def buildMinorTicks(self, ticks, maxMinorSteps, stepSize): minStep = qwtStepSize(stepSize, maxMinorSteps, self.base()) if minStep == 0.: return - numTicks = int(np.ceil(abs(stepSize/minStep))-1) + numTicks = int(math.ceil(abs(stepSize/minStep))-1) medIndex = -1 if numTicks % 2: medIndex = numTicks/2 @@ -653,8 +653,8 @@ def autoScale(self, maxNumSteps, x1, x2, stepSize): if x1 > x2: x1, x2 = x2, x1 logBase = self.base() - interval = QwtInterval(x1/np.power(logBase, self.lowerMargin()), - x2*np.power(logBase, self.upperMargin())) + interval = QwtInterval(x1/math.pow(logBase, self.lowerMargin()), + x2*math.pow(logBase, self.upperMargin())) interval = interval.limited(LOG_MIN, LOG_MAX) if interval.maxValue()/interval.minValue() < logBase: linearScaler = QwtLinearScaleEngine() @@ -670,9 +670,9 @@ def autoScale(self, maxNumSteps, x1, x2, stepSize): if linearInterval.maxValue()/linearInterval.minValue() < logBase: if stepSize < 0.: - stepSize = -qwtLog(logBase, abs(stepSize)) + stepSize = -math.log(abs(stepSize), logBase) else: - stepSize = qwtLog(logBase, stepSize) + stepSize = math.log(stepSize, logBase) return x1, x2, stepSize logRef = 1. @@ -785,13 +785,13 @@ def buildMajorTicks(self, interval, stepSize): width = qwtLogInterval(self.base(), interval).width() numTicks = min([int(round(width/stepSize))+1, 10000]) - lxmin = np.log(interval.minValue()) - lxmax = np.log(interval.maxValue()) + lxmin = math.log(interval.minValue()) + lxmax = math.log(interval.maxValue()) lstep = (lxmax-lxmin)/float(numTicks-1) ticks = [interval.minValue()] for i in range(1, numTicks-1): - ticks += [np.exp(lxmin+float(i)*lstep)] + ticks += [math.exp(lxmin+float(i)*lstep)] ticks += [interval.maxValue()] return ticks @@ -851,7 +851,7 @@ def buildMinorTicks(self, ticks, maxMinorSteps, stepSize): if numTicks > 2 and numTicks % 2: mediumTickIndex = numTicks/2 - minFactor = max([np.power(logBase, minStep), float(logBase)]) + minFactor = max([math.pow(logBase, minStep), float(logBase)]) for tick in ticks[QwtScaleDiv.MajorTick]: for j in range(numTicks): diff --git a/qwt/scale_map.py b/qwt/scale_map.py index f4bfae7..41d6b14 100644 --- a/qwt/scale_map.py +++ b/qwt/scale_map.py @@ -13,7 +13,7 @@ :members: """ -from .math import qwtFuzzyCompare +from ._math import qwtFuzzyCompare from .qt.QtCore import QRectF, QPointF diff --git a/qwt/tests/no_margin.py b/qwt/tests/no_margin.py index 0ab767c..8bc8d2e 100644 --- a/qwt/tests/no_margin.py +++ b/qwt/tests/no_margin.py @@ -100,6 +100,6 @@ def show_layout_details(self): if __name__ == '__main__': app = QApplication([]) plot = TestPlot() - plot.resize(300, 1000) + plot.resize(300, 650) plot.show() app.exec_() From 651fb24042a9db7732de9bb49abcc54533f78351 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 7 Aug 2020 16:55:54 +0200 Subject: [PATCH 119/421] Fixed PythonQwt scale engine (0...1000 is now divided in 200-size steps) (rounding issue) --- qwt/scale_engine.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/qwt/scale_engine.py b/qwt/scale_engine.py index 1598b31..d723f62 100644 --- a/qwt/scale_engine.py +++ b/qwt/scale_engine.py @@ -130,11 +130,10 @@ def divideInterval(intervalSize, numSteps, base): lx = math.log(abs(v), base) p = math.floor(lx) - print("p:", p) fraction = math.pow(base, lx-p) n = base - while n > 1 and fraction <= n/2: - n /= 2 + while n > 1 and fraction <= n//2: + n //= 2 stepSize = n*math.pow(base, p) if v < 0: From 382f74888fe752f33a1250fa7f218378e81c8122 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 7 Aug 2020 17:01:38 +0200 Subject: [PATCH 120/421] Updated changelog --- CHANGELOG.md | 9 +++++++++ qwt/__init__.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc568db..7e93178 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,16 @@ # PythonQwt Releases # +### Version 0.6.1 ### + +- Fixed rounding issue with PythonQwt scale engine (0...1000 is now divided + in 200-size steps, as in both Qwt and PyQwt) +- Removed unnecessary mask on scaleWidget (this closes #35) +- CurveBenchmark.py: fixed TypeError with numpy.linspace (NumPy=1.18) + + ### Version 0.6.0 ### + - Ported changes from Qwt 6.1.2 to Qwt 6.1.5 - `QwtPlotCanvas.setPaintAttribute`: fixed PyQt4 compatibility issue for BackingStore paint attribute - Fixed DataDemo.py test script (was crashing ; this closes #41) diff --git a/qwt/__init__.py b/qwt/__init__.py index 5246955..73a8f66 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -28,7 +28,7 @@ .. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.6.0' +__version__ = '0.6.1' QWT_VERSION_STR = '6.1.5' import warnings From 040661a93a446122aa09e477c5c95a1f35681737 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 9 Aug 2020 11:57:39 +0200 Subject: [PATCH 121/421] Added requirements.txt file for documentation --- doc/requirements.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 doc/requirements.txt diff --git a/doc/requirements.txt b/doc/requirements.txt new file mode 100644 index 0000000..99f2ce2 --- /dev/null +++ b/doc/requirements.txt @@ -0,0 +1,3 @@ +numpy==1.19.1 +PyQt5==5.15.0 +PyQt5-sip==12.8.0 \ No newline at end of file From 3007e62953a977de6258bdea2e86c0cd4afcffeb Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 9 Aug 2020 12:15:21 +0200 Subject: [PATCH 122/421] Added PyQt4/PyQt5/PySide automatic switch depending on installed libraries --- qwt/qt/__init__.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/qwt/qt/__init__.py b/qwt/qt/__init__.py index 70b7239..592ddbb 100644 --- a/qwt/qt/__init__.py +++ b/qwt/qt/__init__.py @@ -9,10 +9,18 @@ import os -os.environ.setdefault('QT_API', 'pyqt') -assert os.environ['QT_API'] in ('pyqt5', 'pyqt', 'pyside') - -API = os.environ['QT_API'] +API = os.environ.get('QT_API') +if API is None: + try: + import PyQt5 # analysis:ignore + API = 'pyqt5' + except ImportError: + try: + import PyQt4 # analysis:ignore + API = 'pyqt' + except ImportError: + API = 'pyside' +os.environ['QT_API'] = API API_NAME = {'pyqt5': 'PyQt5', 'pyqt': 'PyQt4', 'pyside': 'PySide'}[API] if API == 'pyqt': From 1b6b436774de9d2545e82728e4ceb7d327cd25a6 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 9 Aug 2020 13:44:05 +0200 Subject: [PATCH 123/421] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b5210a2..2c31485 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PythonQwt: Qt plotting widgets for Python - + The `PythonQwt` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is @@ -11,7 +11,7 @@ based on NumPy and other libraries. The `PythonQwt` package consists of a single Python package named `qwt` and of a few other files (examples, doc, ...). -See [documentation](http://pythonhosted.org/PythonQwt/) for more details on +See [documentation](https://pythonqwt.readthedocs.io/en/latest/) for more details on the library and [changelog](CHANGELOG.md) for recent history of changes. ## Copyrights @@ -54,7 +54,7 @@ Only the following plot items are currently implemented in `qwt` (the only plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. -See "Overview" section in [documentation](http://pythonhosted.org/PythonQwt/) +See "Overview" section in [documentation](https://pythonqwt.readthedocs.io/en/latest/) for more details on API limitations when comparing to Qwt. ## Dependencies From 3d48a66cc3188fdf2d6852a89e211484c3e86f10 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 9 Aug 2020 16:17:37 +0200 Subject: [PATCH 124/421] Added unattended tests with multiple versions of WinPython Tested with: WinPython-32bit-2.7.6.4 WinPython-64bit-2.7.6.4 WinPython-64bit-3.4.4.3 WinPython-64bit-3.4.4.3Qt5 WPy64-3680 WPy64-3771 WPy64-3830 --- basic_test.bat | 19 +++++++++ qwt/tests/BodeDemo.py | 28 +++---------- qwt/tests/CPUplot.py | 76 +++++++++++++++-------------------- qwt/tests/CartesianDemo.py | 15 ++----- qwt/tests/CurveBenchmark.py | 24 ++++------- qwt/tests/CurveDemo1.py | 18 ++------- qwt/tests/CurveDemo2.py | 19 ++------- qwt/tests/CurveStyles.py | 22 ++++------ qwt/tests/DataDemo.py | 19 ++------- qwt/tests/ErrorBarDemo.py | 72 +++++++++++++-------------------- qwt/tests/EventFilterDemo.py | 48 ++++++++++------------ qwt/tests/ImagePlotDemo.py | 15 ++----- qwt/tests/LogCurveDemo.py | 41 +++++++++---------- qwt/tests/MapDemo.py | 18 ++------- qwt/tests/MultiDemo.py | 15 ++----- qwt/tests/ReallySimpleDemo.py | 16 ++------ qwt/tests/__init__.py | 71 +++++++++++++++++++++++++++++--- qwt/tests/no_margin.py | 10 ++--- 18 files changed, 239 insertions(+), 307 deletions(-) create mode 100644 basic_test.bat diff --git a/basic_test.bat b/basic_test.bat new file mode 100644 index 0000000..c939113 --- /dev/null +++ b/basic_test.bat @@ -0,0 +1,19 @@ +@echo off + +setlocal +set PYTHONPATH=%cd% +set TEST_UNATTENDED=1 + +for /f %%f in ('dir /b c:\w*') do (call :test %%f) +pause + +exit /B %ERRORLEVEL% + +:test +set ENV=C:\%~1\scripts\env.bat +if exist %ENV% ( + echo ************************** Testing with %~1 ************************** + call %ENV% + python -m qwt.tests.__init__ + ) +exit /B 0 \ No newline at end of file diff --git a/qwt/tests/BodeDemo.py b/qwt/tests/BodeDemo.py index 8d3d640..7f86594 100644 --- a/qwt/tests/BodeDemo.py +++ b/qwt/tests/BodeDemo.py @@ -10,15 +10,12 @@ SHOW = True # Show test in GUI-based test launcher -import sys import numpy as np -from qwt.qt.QtGui import (QApplication, QPen, QBrush, QFrame, QFont, QWidget, - QMainWindow, QToolButton, QIcon, QPixmap, QToolBar, - QHBoxLayout, QLabel, QPrinter, QPrintDialog, - QFontDatabase) -from qwt.qt.QtCore import QSize -from qwt.qt.QtCore import Qt +from qwt.qt.QtGui import (QPen, QBrush, QFrame, QFont, QWidget, QMainWindow, + QToolButton, QIcon, QPixmap, QToolBar, QHBoxLayout, + QLabel, QPrinter, QPrintDialog) +from qwt.qt.QtCore import QSize, Qt from qwt import (QwtPlot, QwtPlotMarker, QwtSymbol, QwtLegend, QwtPlotGrid, QwtPlotCurve, QwtPlotItem, QwtLogScaleEngine, QwtText, QwtPlotRenderer) @@ -281,19 +278,6 @@ def selected(self, _): self.showInfo() -def make(): - demo = BodeDemo() - demo.resize(540, 400) - demo.show() - return demo - - if __name__ == '__main__': - app = QApplication(sys.argv) - fonts = QFontDatabase() - for name in ('Verdana', 'STIXGeneral'): - if name in fonts.families(): - app.setFont(QFont(name)) - break - demo = make() - sys.exit(app.exec_()) + from qwt.tests import test_widget + app = test_widget(BodeDemo, (540, 400)) diff --git a/qwt/tests/CPUplot.py b/qwt/tests/CPUplot.py index c58836d..d271b0f 100644 --- a/qwt/tests/CPUplot.py +++ b/qwt/tests/CPUplot.py @@ -9,13 +9,10 @@ SHOW = True # Show test in GUI-based test launcher import os -import sys import numpy as np -from qwt.qt.QtGui import (QApplication, QColor, QBrush, QWidget, QVBoxLayout, - QLabel) -from qwt.qt.QtCore import QRect, QTime -from qwt.qt.QtCore import Qt +from qwt.qt.QtGui import QColor, QBrush, QWidget, QVBoxLayout, QLabel +from qwt.qt.QtCore import QRect, QTime, Qt from qwt import (QwtPlot, QwtPlotMarker, QwtScaleDraw, QwtLegend, QwtPlotCurve, QwtPlotItem, QwtLegendData, QwtText) @@ -176,20 +173,20 @@ def __init__(self): def statistic(self): values = self.__lookup() - userDelta = 0.0 + userDelta = 0. for i in [CpuStat.User, CpuStat.Nice]: userDelta += (values[i] - self.procValues[i]) systemDelta = values[CpuStat.System] - self.procValues[CpuStat.System] - totalDelta = 0.0 + totalDelta = 0. for i in range(len(self.procValues)): totalDelta += (values[i] - self.procValues[i]) self.procValues = values - return 100.0*userDelta/totalDelta, 100.0*systemDelta/totalDelta + return 100.*userDelta/totalDelta, 100.*systemDelta/totalDelta def upTime(self): result = QTime() for item in self.procValues: - result = result.addSecs(item/100) + result = result.addSecs(int(.01*item)) return result def __lookup(self): @@ -208,7 +205,7 @@ def __lookup(self): class CpuPieMarker(QwtPlotMarker): def __init__(self, *args): QwtPlotMarker.__init__(self, *args) - self.setZ(1000.0) + self.setZ(1000.) self.setRenderHint(QwtPlotItem.RenderAntialiased, True) def rtti(self): @@ -219,18 +216,18 @@ def draw(self, painter, xMap, yMap, rect): pieRect = QRect() pieRect.setX(rect.x() + margin) pieRect.setY(rect.y() + margin) - pieRect.setHeight(yMap.transform(80.0)) + pieRect.setHeight(int(yMap.transform(80.))) pieRect.setWidth(pieRect.height()) angle = 3*5760/4 for key in ["User", "System", "Idle"]: curve = self.plot().cpuPlotCurve(key) if curve.dataSize(): - value = int(5760*curve.sample(0).y()/100.0) + value = int(5760*curve.sample(0).y()/100.) painter.save() painter.setBrush(QBrush(curve.pen().color(), Qt.SolidPattern)) - painter.drawPie(pieRect, -angle, -value) + painter.drawPie(pieRect, int(-angle), int(-value)) painter.restore() angle += value @@ -248,7 +245,7 @@ def label(self, value): class Background(QwtPlotItem): def __init__(self): QwtPlotItem.__init__(self) - self.setZ(0.0) + self.setZ(0.) def rtti(self): return QwtPlotItem.Rtti_PlotUserItem @@ -258,8 +255,8 @@ def draw(self, painter, xMap, yMap, rect): r = QRect(rect) for i in range(100, 0, -10): - r.setBottom(yMap.transform(i - 10)) - r.setTop(yMap.transform(i)) + r.setBottom(int(yMap.transform(i - 10))) + r.setTop(int(yMap.transform(i))) painter.fillRect(r, c) c = c.darker(110) @@ -285,7 +282,7 @@ def __init__(self, *args): self.curves = {} self.data = {} - self.timeData = 1.0 * np.arange(HISTORY-1, -1, -1) + self.timeData = 1. * np.arange(HISTORY-1, -1, -1) self.cpuStat = CpuStat() self.setAutoReplot(False) @@ -300,7 +297,7 @@ def __init__(self, *args): self.setAxisScaleDraw( QwtPlot.xBottom, TimeScaleDraw(self.cpuStat.upTime())) self.setAxisScale(QwtPlot.xBottom, 0, HISTORY) - self.setAxisLabelRotation(QwtPlot.xBottom, -50.0) + self.setAxisLabelRotation(QwtPlot.xBottom, -50.) self.setAxisLabelAlignment( QwtPlot.xBottom, Qt.AlignLeft | Qt.AlignBottom) @@ -321,21 +318,21 @@ def __init__(self, *args): curve = CpuCurve('User') curve.setColor(Qt.blue) - curve.setZ(curve.z() - 1.0) + curve.setZ(curve.z() - 1.) curve.attach(self) self.curves['User'] = curve self.data['User'] = np.zeros(HISTORY, np.float) curve = CpuCurve('Total') curve.setColor(Qt.black) - curve.setZ(curve.z() - 2.0) + curve.setZ(curve.z() - 2.) curve.attach(self) self.curves['Total'] = curve self.data['Total'] = np.zeros(HISTORY, np.float) curve = CpuCurve('Idle') curve.setColor(Qt.darkCyan) - curve.setZ(curve.z() - 3.0) + curve.setZ(curve.z() - 3.) curve.attach(self) self.curves['Idle'] = curve self.data['Idle'] = np.zeros(HISTORY, np.float) @@ -355,9 +352,9 @@ def timerEvent(self, e): data[1:] = data[0:-1] self.data["User"][0], self.data["System"][0] = self.cpuStat.statistic() self.data["Total"][0] = self.data["User"][0] + self.data["System"][0] - self.data["Idle"][0] = 100.0 - self.data["Total"][0] + self.data["Idle"][0] = 100. - self.data["Total"][0] - self.timeData += 1.0 + self.timeData += 1. self.setAxisScale( QwtPlot.xBottom, self.timeData[-1], self.timeData[0]) @@ -375,25 +372,18 @@ def cpuPlotCurve(self, key): return self.curves[key] -def make(): - demo = QWidget() - demo.setWindowTitle('Cpu Plot') - - plot = CpuPlot(demo) - plot.setTitle("History") - - label = QLabel("Press the legend to en/disable a curve", demo) - - layout = QVBoxLayout(demo) - layout.addWidget(plot) - layout.addWidget(label) - - demo.resize(600, 400) - demo.show() - return demo - +class CpuWidget(QWidget): + def __init__(self, parent=None): + super(CpuWidget, self).__init__(parent) + layout = QVBoxLayout() + self.setLayout(layout) + plot = CpuPlot() + plot.setTitle("History") + layout.addWidget(plot) + label = QLabel("Press the legend to en/disable a curve") + layout.addWidget(label) + if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - sys.exit(app.exec_()) + from qwt.tests import test_widget + app = test_widget(CpuWidget, (600, 400)) diff --git a/qwt/tests/CartesianDemo.py b/qwt/tests/CartesianDemo.py index 2271e6a..3749d8d 100644 --- a/qwt/tests/CartesianDemo.py +++ b/qwt/tests/CartesianDemo.py @@ -8,10 +8,9 @@ SHOW = True # Show test in GUI-based test launcher -import sys import numpy as np -from qwt.qt.QtGui import QApplication, QPen +from qwt.qt.QtGui import QPen from qwt.qt.QtCore import Qt from qwt import QwtPlot, QwtScaleDraw, QwtPlotGrid, QwtPlotCurve, QwtPlotItem @@ -89,14 +88,6 @@ def __init__(self, *args): self.replot() -def make(): - demo = CartesianPlot() - demo.resize(400, 300) - demo.show() - return demo - - if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - sys.exit(app.exec_()) + from qwt.tests import test_widget + test_widget(CartesianPlot, (400, 300)) diff --git a/qwt/tests/CurveBenchmark.py b/qwt/tests/CurveBenchmark.py index a999216..af48d20 100644 --- a/qwt/tests/CurveBenchmark.py +++ b/qwt/tests/CurveBenchmark.py @@ -10,11 +10,9 @@ import time import numpy as np -import sys from qwt.qt.QtGui import (QApplication, QPen, QMainWindow, QGridLayout, - QTabWidget, QWidget, QTextEdit, QLineEdit, QFont, - QFontDatabase) + QTabWidget, QWidget, QTextEdit, QLineEdit) from qwt.qt.QtCore import Qt import os @@ -78,7 +76,7 @@ def params(self, *args, **kwargs): ) def setup(self, points, *args, **kwargs): - x = np.linspace(.001, 20., points) + x = np.linspace(.001, 20., int(points)) y = (np.sin(x)/x)*np.cos(20*x) layout = QGridLayout() nbcol, col, row = 2, 0, 0 @@ -121,11 +119,11 @@ def __init__(self, parent=None, title=None): """ % (title, library)) -class BMDemo(QMainWindow): +class BMDemo1(QMainWindow): TITLE = 'Curve benchmark' SIZE = (1000, 800) - def __init__(self, max_n, parent=None, **kwargs): - super(BMDemo, self).__init__(parent=parent) + def __init__(self, max_n=1000000, parent=None, **kwargs): + super(BMDemo1, self).__init__(parent=parent) title = self.TITLE if kwargs.get('only_lines', False): title = '%s (%s)' % (title, 'only lines') @@ -169,13 +167,5 @@ def run_benchmark(self, max_n, **kwargs): if __name__ == '__main__': - app = QApplication([]) - for name in ('Calibri', 'Verdana', 'Arial'): - if name in QFontDatabase().families(): - app.setFont(QFont(name)) - break - kwargs = {} - for arg in sys.argv[1:]: - kwargs[arg] = True - demo = BMDemo(1000000, **kwargs) - app.exec_() + from qwt.tests import test_widget + app = test_widget(BMDemo1) diff --git a/qwt/tests/CurveDemo1.py b/qwt/tests/CurveDemo1.py index f7192f3..aa03a86 100644 --- a/qwt/tests/CurveDemo1.py +++ b/qwt/tests/CurveDemo1.py @@ -8,17 +8,15 @@ SHOW = True # Show test in GUI-based test launcher -import sys import numpy as np -from qwt.qt.QtGui import (QApplication, QPen, QBrush, QFrame, QFont, QPainter, - QPaintEngine) +from qwt.qt.QtGui import QPen, QBrush, QFrame, QFont, QPainter, QPaintEngine from qwt.qt.QtCore import QSize from qwt.qt.QtCore import Qt from qwt import QwtSymbol, QwtPlotCurve, QwtPlotItem, QwtScaleMap -class CurveDemo(QFrame): +class CurveDemo1(QFrame): def __init__(self, *args): QFrame.__init__(self, *args) @@ -118,14 +116,6 @@ def drawContents(self, painter): self.shiftDown(r, dy) -def make(): - demo = CurveDemo() - demo.resize(300, 600) - demo.show() - return demo - - if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - sys.exit(app.exec_()) + from qwt.tests import test_widget + app = test_widget(CurveDemo1, size=(300, 600)) diff --git a/qwt/tests/CurveDemo2.py b/qwt/tests/CurveDemo2.py index 6c9d950..aae4232 100644 --- a/qwt/tests/CurveDemo2.py +++ b/qwt/tests/CurveDemo2.py @@ -8,11 +8,9 @@ SHOW = True # Show test in GUI-based test launcher -import sys import numpy as np -from qwt.qt.QtGui import (QApplication, QPen, QBrush, QFrame, QColor, QPainter, - QPalette) +from qwt.qt.QtGui import QPen, QBrush, QFrame, QColor, QPainter, QPalette from qwt.qt.QtCore import QSize from qwt.qt.QtCore import Qt from qwt import QwtScaleMap, QwtSymbol, QwtPlotCurve @@ -20,8 +18,7 @@ Size = 15 USize = 13 -class CurveDemo(QFrame): - +class CurveDemo2(QFrame): def __init__(self, *args): QFrame.__init__(self, *args) @@ -123,14 +120,6 @@ def newValues(self): self.phase = 0.0 -def make(): - demo = CurveDemo() - demo.resize(600, 600) - demo.show() - return demo - - if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - sys.exit(app.exec_()) \ No newline at end of file + from qwt.tests import test_widget + app = test_widget(CurveDemo2) diff --git a/qwt/tests/CurveStyles.py b/qwt/tests/CurveStyles.py index 4f42fd4..8694818 100644 --- a/qwt/tests/CurveStyles.py +++ b/qwt/tests/CurveStyles.py @@ -9,11 +9,9 @@ SHOW = True # Show test in GUI-based test launcher import time -import sys -from qwt.qt.QtGui import QApplication, QPen, QBrush, QFont, QFontDatabase -from qwt.qt.QtCore import QSize -from qwt.qt.QtCore import Qt +from qwt.qt.QtGui import QPen, QBrush +from qwt.qt.QtCore import QSize, Qt from qwt.tests import CurveBenchmark as cb @@ -46,9 +44,11 @@ def params(self, *args, **kwargs): ('Dots', None),) -class BMDemo(cb.BMDemo): +class BMDemo2(cb.BMDemo1): TITLE = 'Curve styles' SIZE = (1000, 800) + def __init__(self, max_n=1000, parent=None, **kwargs): + super(BMDemo2, self).__init__(max_n=max_n, parent=parent, **kwargs) def run_benchmark(self, max_n, **kwargs): for points, symbols in zip((max_n/10, max_n/10, max_n, max_n), @@ -63,13 +63,5 @@ def run_benchmark(self, max_n, **kwargs): if __name__ == '__main__': - app = QApplication([]) - for name in ('Calibri', 'Verdana', 'Arial'): - if name in QFontDatabase().families(): - app.setFont(QFont(name)) - break - kwargs = {} - for arg in sys.argv[1:]: - kwargs[arg] = True - demo = BMDemo(1000, **kwargs) - app.exec_() + from qwt.tests import test_widget + app = test_widget(BMDemo2) diff --git a/qwt/tests/DataDemo.py b/qwt/tests/DataDemo.py index 879d7e1..ea1c49e 100644 --- a/qwt/tests/DataDemo.py +++ b/qwt/tests/DataDemo.py @@ -9,18 +9,15 @@ SHOW = True # Show test in GUI-based test launcher import random -import sys import numpy as np -from qwt.qt.QtGui import QApplication, QPen, QBrush, QFrame -from qwt.qt.QtCore import QSize -from qwt.qt.QtCore import Qt +from qwt.qt.QtGui import QPen, QBrush, QFrame +from qwt.qt.QtCore import QSize, Qt from qwt import (QwtPlot, QwtPlotMarker, QwtSymbol, QwtLegend, QwtPlotCurve, QwtAbstractScaleDraw) class DataPlot(QwtPlot): - def __init__(self, *args): QwtPlot.__init__(self, *args) @@ -92,14 +89,6 @@ def timerEvent(self, e): self.phase += np.pi*0.02 -def make(): - demo = DataPlot() - demo.resize(500, 300) - demo.show() - return demo - - if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - sys.exit(app.exec_()) + from qwt.tests import test_widget + app = test_widget(DataPlot, size=(500, 300)) diff --git a/qwt/tests/ErrorBarDemo.py b/qwt/tests/ErrorBarDemo.py index e04269c..6af03cc 100644 --- a/qwt/tests/ErrorBarDemo.py +++ b/qwt/tests/ErrorBarDemo.py @@ -8,12 +8,10 @@ SHOW = True # Show test in GUI-based test launcher -import sys import numpy as np -from qwt.qt.QtGui import QApplication, QPen, QBrush -from qwt.qt.QtCore import QSize, QRectF, QLineF -from qwt.qt.QtCore import Qt +from qwt.qt.QtGui import QPen, QBrush +from qwt.qt.QtCore import QSize, QRectF, QLineF, Qt from qwt import QwtPlot, QwtSymbol, QwtPlotGrid, QwtPlotCurve, QwtText @@ -245,45 +243,33 @@ def drawSeries(self, painter, xMap, yMap, canvasRect, first, last = -1): canvasRect, first, last) -def make(): - # create a plot with a white canvas - demo = QwtPlot(QwtText("Errorbar Demonstation")) - demo.setCanvasBackground(Qt.white) - demo.plotLayout().setAlignCanvasToScales(True) - - grid = QwtPlotGrid() - grid.attach(demo) - grid.setPen(QPen(Qt.black, 0, Qt.DotLine)) - - # calculate data and errors for a curve with error bars - x = np.arange(0, 10.1, 0.5, np.float) - y = np.sin(x) - dy = 0.2 * abs(y) - # dy = (0.15 * abs(y), 0.25 * abs(y)) # uncomment for asymmetric error bars - dx = 0.2 # all error bars the same size - errorOnTop = False # uncomment to draw the curve on top of the error bars - # errorOnTop = True # uncomment to draw the error bars on top of the curve - curve = ErrorBarPlotCurve( - x = x, - y = y, - dx = dx, - dy = dy, - curvePen = QPen(Qt.black, 2), - curveSymbol = QwtSymbol(QwtSymbol.Ellipse, - QBrush(Qt.red), - QPen(Qt.black, 2), - QSize(9, 9)), - errorPen = QPen(Qt.blue, 2), - errorCap = 10, - errorOnTop = errorOnTop, - ) - curve.attach(demo) - demo.resize(640, 480) - demo.show() - return demo +class ErrorBarPlot(QwtPlot): + def __init__(self, parent=None, title=None): + super(ErrorBarPlot, self).__init__(QwtText("Errorbar Demonstation")) + self.setCanvasBackground(Qt.white) + self.plotLayout().setAlignCanvasToScales(True) + grid = QwtPlotGrid() + grid.attach(self) + grid.setPen(QPen(Qt.black, 0, Qt.DotLine)) + + # calculate data and errors for a curve with error bars + x = np.arange(0, 10.1, 0.5, np.float) + y = np.sin(x) + dy = 0.2 * abs(y) + # dy = (0.15 * abs(y), 0.25 * abs(y)) # uncomment for asymmetric error bars + dx = 0.2 # all error bars the same size + errorOnTop = False # uncomment to draw the curve on top of the error bars + # errorOnTop = True # uncomment to draw the error bars on top of the curve + symbol = QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.red), + QPen(Qt.black, 2), QSize(9, 9)) + curve = ErrorBarPlotCurve(x=x, y=y, dx=dx, dy=dy, + curvePen=QPen(Qt.black, 2), + curveSymbol=symbol, + errorPen=QPen(Qt.blue, 2), + errorCap=10, errorOnTop=errorOnTop) + curve.attach(self) if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - sys.exit(app.exec_()) + from qwt.tests import test_widget + app = test_widget(ErrorBarPlot, size=(640, 480)) diff --git a/qwt/tests/EventFilterDemo.py b/qwt/tests/EventFilterDemo.py index dbda4f1..dc95237 100644 --- a/qwt/tests/EventFilterDemo.py +++ b/qwt/tests/EventFilterDemo.py @@ -8,7 +8,6 @@ SHOW = True # Show test in GUI-based test launcher -import sys import numpy as np from qwt.qt.QtGui import (QApplication, QPen, QBrush, QColor, QWidget, @@ -166,9 +165,9 @@ def eventFilter(self, object, event): margin = 2 x = size.width() - object.margin() + margin w = object.margin() - 2 * margin - y = object.startBorderDist() - h = (size.height() - - object.startBorderDist() - object.endBorderDist()) + y = int(object.startBorderDist()) + h = int(size.height() + - object.startBorderDist() - object.endBorderDist()) self.__colorBar.setGeometry(x, y, w, h) return QwtPlot.eventFilter(self, object, event) @@ -277,7 +276,7 @@ def eventFilter(self, object, event): self.__moveBy(0, -delta) elif key == Qt.Key_9: self.__moveBy(delta, -delta) - return QwtPlot.eventFilter(self.__plot, object, event) + return False def __select(self, pos): found, distance, point = None, 1e100, -1 @@ -433,27 +432,24 @@ def __scaleRect(self, scale): return QRect() -def make(): - demo = QMainWindow() - toolBar = QToolBar(demo) - toolBar.addAction(QWhatsThis.createAction(toolBar)) - demo.addToolBar(toolBar) - plot = Plot(demo) - demo.setCentralWidget(plot) - plot.setWhatsThis( - 'An useless plot to demonstrate how to use event filtering.\n\n' - 'You can click on the color bar, the scales or move the slider.\n' - 'All points can be moved using the mouse or the keyboard.' - ) - CanvasPicker(plot) - scalePicker = ScalePicker(plot) - scalePicker.clicked.connect(plot.insertCurve) - demo.resize(540, 400) - demo.show() - return demo +class EventFilterWindow(QMainWindow): + def __init__(self, parent=None): + super(EventFilterWindow, self).__init__(parent=parent) + toolBar = QToolBar(self) + toolBar.addAction(QWhatsThis.createAction(toolBar)) + self.addToolBar(toolBar) + plot = Plot() + self.setCentralWidget(plot) + plot.setWhatsThis( + 'An useless plot to demonstrate how to use event filtering.\n\n' + 'You can click on the color bar, the scales or move the slider.\n' + 'All points can be moved using the mouse or the keyboard.' + ) + CanvasPicker(plot) + scalePicker = ScalePicker(plot) + scalePicker.clicked.connect(plot.insertCurve) if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - sys.exit(app.exec_()) + from qwt.tests import test_widget + app = test_widget(EventFilterWindow, size=(540, 400)) diff --git a/qwt/tests/ImagePlotDemo.py b/qwt/tests/ImagePlotDemo.py index ea09d65..8444361 100644 --- a/qwt/tests/ImagePlotDemo.py +++ b/qwt/tests/ImagePlotDemo.py @@ -8,10 +8,9 @@ SHOW = True # Show test in GUI-based test launcher -import sys import numpy as np -from qwt.qt.QtGui import QApplication, QPen, qRgb +from qwt.qt.QtGui import QPen, qRgb from qwt.qt.QtCore import Qt from qwt import (QwtPlot, QwtPlotMarker, QwtLegend, QwtPlotGrid, QwtPlotCurve, QwtPlotItem, QwtText, QwtLegendData, QwtLinearColorMap, @@ -177,14 +176,6 @@ def toggleVisibility(self, plotItem, idx): self.replot() -def make(): - demo = ImagePlot() - demo.resize(600, 400) - demo.show() - return demo - - if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - sys.exit(app.exec_()) + from qwt.tests import test_widget + app = test_widget(ImagePlot, size=(600, 400)) diff --git a/qwt/tests/LogCurveDemo.py b/qwt/tests/LogCurveDemo.py index 390a472..862e678 100644 --- a/qwt/tests/LogCurveDemo.py +++ b/qwt/tests/LogCurveDemo.py @@ -12,32 +12,29 @@ np.seterr(all='raise') -from qwt.qt.QtGui import QApplication, QPen +from qwt.qt.QtGui import QPen from qwt.qt.QtCore import Qt from qwt import QwtPlot, QwtPlotCurve, QwtLogScaleEngine -def create_log_plot(): - plot = QwtPlot('LogCurveDemo.py (or how to handle -inf values)') - plot.enableAxis(QwtPlot.xBottom) - plot.setAxisScaleEngine(QwtPlot.yLeft, QwtLogScaleEngine()) - curve = QwtPlotCurve() - curve.setRenderHint(QwtPlotCurve.RenderAntialiased) - pen = QPen(Qt.magenta) - pen.setWidth(1.5) - curve.setPen(pen) - curve.attach(plot) - x = np.arange(0.0, 10.0, 0.1) - y = 10*np.cos(x)**2-.1 - print("y<=0:", y<=0) - curve.setData(x, y) - plot.replot() - return plot +class LogPlot(QwtPlot): + def __init__(self): + super(LogPlot, self).__init__( + 'LogCurveDemo.py (or how to handle -inf values)') + self.enableAxis(QwtPlot.xBottom) + self.setAxisScaleEngine(QwtPlot.yLeft, QwtLogScaleEngine()) + curve = QwtPlotCurve() + curve.setRenderHint(QwtPlotCurve.RenderAntialiased) + pen = QPen(Qt.magenta) + pen.setWidth(1) + curve.setPen(pen) + curve.attach(self) + x = np.arange(0.0, 10.0, 0.1) + y = 10*np.cos(x)**2-.1 + curve.setData(x, y) + self.replot() if __name__ == '__main__': - app = QApplication([]) - plot = create_log_plot() - plot.resize(800, 500) - plot.show() - app.exec_() + from qwt.tests import test_widget + app = test_widget(LogPlot, size=(800, 500)) diff --git a/qwt/tests/MapDemo.py b/qwt/tests/MapDemo.py index 5d5c644..1cca95b 100644 --- a/qwt/tests/MapDemo.py +++ b/qwt/tests/MapDemo.py @@ -9,13 +9,11 @@ SHOW = True # Show test in GUI-based test launcher import random -import sys import time import numpy as np -from qwt.qt.QtGui import QApplication, QPen, QBrush, QMainWindow, QToolBar -from qwt.qt.QtCore import QSize -from qwt.qt.QtCore import Qt +from qwt.qt.QtGui import QPen, QBrush, QMainWindow, QToolBar +from qwt.qt.QtCore import QSize, Qt from qwt import QwtPlot, QwtSymbol, QwtPlotCurve @@ -101,14 +99,6 @@ def timerEvent(self, e): self.plot.replot() -def make(): - demo = MapDemo() - demo.resize(600, 600) - demo.show() - return demo - - if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - sys.exit(app.exec_()) + from qwt.tests import test_widget + app = test_widget(MapDemo, size=(600, 600)) diff --git a/qwt/tests/MultiDemo.py b/qwt/tests/MultiDemo.py index 995efd4..74845d6 100644 --- a/qwt/tests/MultiDemo.py +++ b/qwt/tests/MultiDemo.py @@ -8,10 +8,9 @@ SHOW = True # Show test in GUI-based test launcher -import sys import numpy as np -from qwt.qt.QtGui import QApplication, QPen, QGridLayout, QWidget +from qwt.qt.QtGui import QPen, QGridLayout, QWidget from qwt.qt.QtCore import Qt from qwt import QwtPlot, QwtPlotCurve @@ -68,14 +67,6 @@ def __init__(self, *args): list_plot.replot() -def make(): - demo = MultiDemo() - demo.resize(400, 300) - demo.show() - return demo - - if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - sys.exit(app.exec_()) + from qwt.tests import test_widget + app = test_widget(MultiDemo, size=(400, 300)) diff --git a/qwt/tests/ReallySimpleDemo.py b/qwt/tests/ReallySimpleDemo.py index f02ce20..bdf4415 100644 --- a/qwt/tests/ReallySimpleDemo.py +++ b/qwt/tests/ReallySimpleDemo.py @@ -8,10 +8,9 @@ SHOW = True # Show test in GUI-based test launcher -import sys import numpy as np -from qwt.qt.QtGui import QApplication, QPen +from qwt.qt.QtGui import QPen from qwt.qt.QtCore import Qt from qwt import QwtPlot, QwtPlotMarker, QwtLegend, QwtPlotCurve, QwtText @@ -60,15 +59,6 @@ def __init__(self, *args): self.replot() -def make(): - demo = SimplePlot() - demo.resize(800, 500) - demo.show() - return demo - - if __name__ == '__main__': - app = QApplication(sys.argv) - demo = make() - demo.exportTo("demo.png", size=(1600, 900), resolution=200) - sys.exit(app.exec_()) + from qwt.tests import test_widget + app = test_widget(SimplePlot, size=(800, 500)) diff --git a/qwt/tests/__init__.py b/qwt/tests/__init__.py index 8525580..a066b42 100644 --- a/qwt/tests/__init__.py +++ b/qwt/tests/__init__.py @@ -9,14 +9,73 @@ ====================== """ +import os +import os.path as osp +import sys +import subprocess + + +def run_test(fname, wait=False): + """Run test""" + os.environ['PYTHONPATH'] = os.pathsep.join(sys.path) + args = " ".join([sys.executable, '"'+fname+'"']) + print(args) + if wait: + subprocess.call(args, shell=True) + else: + subprocess.Popen(args, shell=True) + + +def get_tests(package): + """Return list of test filenames""" + test_package_name = '%s.tests' % package.__name__ + _temp = __import__(test_package_name) + test_package = sys.modules[test_package_name] + tests = [] + test_path = osp.dirname(osp.realpath(test_package.__file__)) + for fname in sorted([name for name in os.listdir(test_path) + if name.endswith(('.py', '.pyw')) and\ + not name.startswith('_')]): + module_name = osp.splitext(fname)[0] + _temp = __import__(test_package.__name__, fromlist=[module_name]) + module = getattr(_temp, module_name) + if hasattr(module, 'SHOW') and module.SHOW: + tests.append(osp.abspath(osp.join(test_path, fname))) + return tests + + def run(): - """Run PythonQwt test launcher (requires `guidata`)""" + """Run PythonQwt tests or test launcher (requires `guidata`)""" import qwt - try: - from guidata.guitest import run_testlauncher - except ImportError: - raise ImportError("This feature requires `guidata` 1.7+.") - run_testlauncher(qwt) + if os.environ.get("TEST_UNATTENDED") is None: + try: + from guidata.guitest import run_testlauncher + run_testlauncher(qwt) + return + except ImportError: + pass + for fname in get_tests(qwt): + run_test(fname, wait=True) + + +def test_widget(widget_class, size=None, title=None): + """Test widget""" + from qwt.qt.QtGui import QApplication + app = QApplication([]) + widget = widget_class() + if title is None: + from qwt import __version__ + title = 'Test "%s" - PythonQwt %s' % (widget_class.__name__, + __version__) + widget.setWindowTitle(title) + if size is not None: + width, height = size + widget.resize(width, height) + widget.show() + if os.environ.get("TEST_UNATTENDED") is None: + app.exec_() + return app + if __name__ == '__main__': run() diff --git a/qwt/tests/no_margin.py b/qwt/tests/no_margin.py index 8bc8d2e..e18755d 100644 --- a/qwt/tests/no_margin.py +++ b/qwt/tests/no_margin.py @@ -10,7 +10,7 @@ import numpy as np -from qwt.qt.QtGui import QApplication, QFont, QPen, QPalette, QColor +from qwt.qt.QtGui import QFont, QPen, QPalette, QColor from qwt.qt.QtCore import Qt import os @@ -97,9 +97,7 @@ def show_layout_details(self): text.setColor(Qt.blue) self.marker.setLabel(text) + if __name__ == '__main__': - app = QApplication([]) - plot = TestPlot() - plot.resize(300, 650) - plot.show() - app.exec_() + from qwt.tests import test_widget + app = test_widget(TestPlot, size=(300, 650)) From 1b3e1544f0656f4d226dbe2b7d216624f2044ba2 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 9 Aug 2020 16:17:53 +0200 Subject: [PATCH 125/421] Updated documentation location --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2c31485..b5210a2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PythonQwt: Qt plotting widgets for Python - + The `PythonQwt` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is @@ -11,7 +11,7 @@ based on NumPy and other libraries. The `PythonQwt` package consists of a single Python package named `qwt` and of a few other files (examples, doc, ...). -See [documentation](https://pythonqwt.readthedocs.io/en/latest/) for more details on +See [documentation](http://pythonhosted.org/PythonQwt/) for more details on the library and [changelog](CHANGELOG.md) for recent history of changes. ## Copyrights @@ -54,7 +54,7 @@ Only the following plot items are currently implemented in `qwt` (the only plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. -See "Overview" section in [documentation](https://pythonqwt.readthedocs.io/en/latest/) +See "Overview" section in [documentation](http://pythonhosted.org/PythonQwt/) for more details on API limitations when comparing to Qwt. ## Dependencies From 21bc6b291aaa414ec89c3a7993a91c7e83d02f44 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 9 Aug 2020 16:18:49 +0200 Subject: [PATCH 126/421] Fixed Python crash occuring at exit when deleting objects (Python 3 only) --- qwt/plot.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/qwt/plot.py b/qwt/plot.py index 0fdb953..31300f8 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -20,7 +20,7 @@ """ from .qt.QtGui import (QWidget, QFont, QSizePolicy, QFrame, QApplication, - QRegion, QPainter, QPalette) + QPainter, QPalette) from .qt.QtCore import Qt, Signal, QEvent, QSize, QRectF from .text import QwtText, QwtTextLabel @@ -355,12 +355,14 @@ def __init__(self, *args): qwtEnableLegendItems(self, True) def __del__(self): - #XXX Is is really necessary in Python? (pure transcription of C++) self.setAutoReplot(False) - self.detachItems(QwtPlotItem.Rtti_PlotItem, self.autoDelete()) - self.__data.layout = None - self.deleteAxesData() - self.__data = None + #XXX Is is really necessary in Python? (pure transcription of C++) + # The following line have been commented to avoid crashing Python + # when exiting interpreter (Python 3 only) +# self.detachItems(QwtPlotItem.Rtti_PlotItem, self.autoDelete()) +# self.__data.layout = None +# self.deleteAxesData() +# self.__data = None def initAxesData(self): """Initialize axes""" From 455b8fb949bd3f5d07860c1dbd4b398d6dbe249c Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sun, 9 Aug 2020 16:22:34 +0200 Subject: [PATCH 127/421] Updated changelog --- .gitignore | 1 + CHANGELOG.md | 17 +++++++++++++++++ qwt/__init__.py | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8bfa4a1..6266974 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .spyderproject +.spyproject qwt-6.* qwt/tests/demo.png PythonQwt.chm diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e93178..fb8d62c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,23 @@ # PythonQwt Releases # +### Version 0.6.2 ### + +- Fixed Python crash occuring at exit when deleting objects (Python 3 only) +- Moved documentation to https://docs.readthedocs.io/ +- Added unattended tests with multiple versions of WinPython: + + - WinPython-32bit-2.7.6.4 + - WinPython-64bit-2.7.6.4 + - WinPython-64bit-3.4.4.3 + - WinPython-64bit-3.4.4.3Qt5 + - WPy64-3680 + - WPy64-3771 + - WPy64-3830 + +- Added PyQt4/PyQt5/PySide automatic switch depending on installed libraries + + ### Version 0.6.1 ### - Fixed rounding issue with PythonQwt scale engine (0...1000 is now divided diff --git a/qwt/__init__.py b/qwt/__init__.py index 73a8f66..c4e2560 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -28,7 +28,7 @@ .. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.6.1' +__version__ = '0.6.2' QWT_VERSION_STR = '6.1.5' import warnings From 4b8cdd7c8bbd25f3b95c78911920f6a5de50290d Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 10 Aug 2020 10:55:13 +0200 Subject: [PATCH 128/421] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index b5210a2..38461d7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # PythonQwt: Qt plotting widgets for Python +[![pypi version](https://img.shields.io/pypi/v/PythonQwt.svg)](https://pypi.org/project/PythonQwt/) +[![PyPI status](https://img.shields.io/pypi/status/PythonQwt.svg)](https://github.com/PierreRaybaut/PythonQwt) +[![download count](https://img.shields.io/conda/dn/conda-forge/PythonQwt.svg)](https://www.anaconda.com/download/) + The `PythonQwt` project was initiated to solve -at least temporarily- the From a723e9989e73342c5ed3da2115ffa61b47cc4e13 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 10 Aug 2020 11:10:43 +0200 Subject: [PATCH 129/421] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 38461d7..e46fef6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ # PythonQwt: Qt plotting widgets for Python +[![license](https://img.shields.io/pypi/l/PythonQwt.svg)](./LICENSE) [![pypi version](https://img.shields.io/pypi/v/PythonQwt.svg)](https://pypi.org/project/PythonQwt/) [![PyPI status](https://img.shields.io/pypi/status/PythonQwt.svg)](https://github.com/PierreRaybaut/PythonQwt) +[![PyPI pyversions](https://img.shields.io/pypi/pyversions/PythonQwt.svg)](https://pypi.python.org/pypi/PythonQwt/) [![download count](https://img.shields.io/conda/dn/conda-forge/PythonQwt.svg)](https://www.anaconda.com/download/) From 88535fdcb164dd1b14d2e0736c14ba61c4fa551f Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 10 Aug 2020 11:37:06 +0200 Subject: [PATCH 130/421] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e46fef6..f8921f2 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,9 @@ [![PyPI status](https://img.shields.io/pypi/status/PythonQwt.svg)](https://github.com/PierreRaybaut/PythonQwt) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/PythonQwt.svg)](https://pypi.python.org/pypi/PythonQwt/) [![download count](https://img.shields.io/conda/dn/conda-forge/PythonQwt.svg)](https://www.anaconda.com/download/) +[![Documentation Status](https://readthedocs.org/projects/pythonqwt/badge/?version=latest)](https://pythonqwt.readthedocs.io/en/latest/?badge=latest) - + The `PythonQwt` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is @@ -17,7 +18,7 @@ based on NumPy and other libraries. The `PythonQwt` package consists of a single Python package named `qwt` and of a few other files (examples, doc, ...). -See [documentation](http://pythonhosted.org/PythonQwt/) for more details on +See documentation [online](https://pythonqwt.readthedocs.io/en/latest/) or [PDF](https://pythonqwt.readthedocs.io/_/downloads/en/latest/pdf/) for more details on the library and [changelog](CHANGELOG.md) for recent history of changes. ## Copyrights @@ -60,7 +61,7 @@ Only the following plot items are currently implemented in `qwt` (the only plot items needed by `guiqwt`): `QwtPlotItem` (base class), `QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. -See "Overview" section in [documentation](http://pythonhosted.org/PythonQwt/) +See "Overview" section in [documentation](https://pythonqwt.readthedocs.io/en/latest/) for more details on API limitations when comparing to Qwt. ## Dependencies From 47692fc6e14f7149579ed607f0a2a1ffb03396d3 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 10 Aug 2020 11:45:04 +0200 Subject: [PATCH 131/421] Updated links in setup.py (moved to readthedocs.io) --- setup.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 7e4c94b..144d5af 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,7 @@ PythonQwt: Qt plotting widgets for Python ========================================= -.. image:: http://pythonhosted.org/PythonQwt/_images/panorama.png +.. image:: https://raw.githubusercontent.com/PierreRaybaut/PythonQwt/master/doc/images/panorama.png The ``PythonQwt`` package is a 2D-data plotting library using Qt graphical user interfaces for the Python programming language. It is compatible with @@ -51,17 +51,18 @@ limitations: efforts were concentrated on basic plotting features, leaving higher level features to the `guiqwt` library. -See `README`_ and `documentation`_ for more details on the library and `changelog`_ for recent history of changes. +See `README`_ and documentation (`online`_ or `PDF`_) for more details on the library and `changelog`_ for recent history of changes. .. _README: https://github.com/PierreRaybaut/PythonQwt/blob/master/README.md -.. _documentation: http://pythonhosted.org/PythonQwt/ +.. _online: https://pythonqwt.readthedocs.io/en/latest/ +.. _PDF: https://pythonqwt.readthedocs.io/_/downloads/en/latest/pdf/ .. _changelog: https://github.com/PierreRaybaut/PythonQwt/blob/master/CHANGELOG.md """ KEYWORDS = '' CLASSIFIERS = [] if 'beta' in version or 'b' in version: CLASSIFIERS += ['Development Status :: 4 - Beta'] -elif 'alpha' in version or 'a' in version or version.startswith('0.'): +elif 'alpha' in version or 'a' in version: CLASSIFIERS += ['Development Status :: 3 - Alpha'] else: CLASSIFIERS += ['Development Status :: 5 - Production/Stable'] From c4182d29865022ae003c696083fd6986d027ba92 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 11 Aug 2020 19:08:38 +0200 Subject: [PATCH 132/421] Fixed obvious errors(/poor implementations) in untested code parts --- qwt/legend.py | 2 +- qwt/plot.py | 4 ++-- qwt/plot_curve.py | 1 + qwt/plot_layout.py | 2 +- qwt/plot_marker.py | 3 ++- qwt/plot_renderer.py | 11 +++++------ qwt/symbol.py | 2 ++ qwt/tests/CurveDemo1.py | 10 ++++------ qwt/tests/ImagePlotDemo.py | 5 +++-- 9 files changed, 21 insertions(+), 19 deletions(-) diff --git a/qwt/legend.py b/qwt/legend.py index c39de71..0524d6c 100644 --- a/qwt/legend.py +++ b/qwt/legend.py @@ -130,7 +130,7 @@ def title(self): if isinstance(titleValue, QwtText): text = titleValue else: - text.setText(titleValue) + text = QwtText(titleValue) return text def icon(self): diff --git a/qwt/plot.py b/qwt/plot.py index 31300f8..82ca1cd 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -1504,8 +1504,8 @@ def insertLegend(self, legend, pos=None, ratio=-1): elif lpos == self.BottomLegend: previousInChain = self.footerLabel() - if previousInChain: - qwtSetTabOrder(previousInChain, legend, True) + if previousInChain is not None: + qwtSetTabOrder(previousInChain, legend, True) self.updateLayout() diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index a6e6fed..fd6ee6c 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -324,6 +324,7 @@ def setPen(self, *args): """ if len(args) == 3: color, width, style = args + pen = QPen(color, width, style) elif len(args) == 1: pen, = args else: diff --git a/qwt/plot_layout.py b/qwt/plot_layout.py index a345c30..c653971 100644 --- a/qwt/plot_layout.py +++ b/qwt/plot_layout.py @@ -253,7 +253,7 @@ def setAlignCanvasToScales(self, *args): self.__data.alignCanvasToScales[axis] = on elif len(args) == 2: axisId, on = args - if axis in QwtPlot.validAxes: + if axisId in QwtPlot.validAxes: self.__data.alignCanvasToScales[axisId] = on else: raise TypeError("%s().setAlignCanvasToScales() takes 1 or 2 "\ diff --git a/qwt/plot_marker.py b/qwt/plot_marker.py index 49c8d47..e49e596 100644 --- a/qwt/plot_marker.py +++ b/qwt/plot_marker.py @@ -475,7 +475,8 @@ def setLinePen(self, *args): width = args[1] if len(args) > 2: style = args[2] - self.setLinePen(QPen(color, width, style)) + pen = QPen(color, width, style) + self.setLinePen(pen) else: raise TypeError("%s().setLinePen() takes 1, 2 or 3 argument(s) "\ "(%s given)" % (self.__class__.__name__, len(args))) diff --git a/qwt/plot_renderer.py b/qwt/plot_renderer.py index 21e3699..f87a502 100644 --- a/qwt/plot_renderer.py +++ b/qwt/plot_renderer.py @@ -281,14 +281,11 @@ def renderTo(self, plot, dest): raster graphics formats. :param qwt.plot.QwtPlot plot: Plot widget - :param str fileName: Path of the file, where the document will be stored - :param str format: Format for the document - :param QSizeF sizeMM: Size for the document in millimeters. - :param int resolution: Resolution in dots per Inch (dpi) + :param dest: QPaintDevice, QPrinter or QSvgGenerator instance .. seealso:: - :py:meth:`renderTo()`, :py:meth:`render()`, + :py:meth:`render()`, :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()` """ if isinstance(dest, QPaintDevice): @@ -308,6 +305,8 @@ def renderTo(self, plot, dest): rect.setRect(0, 0, dest.width(), dest.height()) if rect.isEmpty(): rect.setRect(0, 0, 800, 600) + else: + raise TypeError("Unsupported destination type %s" % type(dest)) p = QPainter(dest) self.render(plot, p, rect) @@ -501,7 +500,7 @@ def renderScale(self, plot, painter, axisId, startDist, endDist, y = rect.bottom() - 1.0 - baseDist w = rect.width() - startDist - endDist align = QwtScaleDraw.TopScale - elif axisId == QwtPlot.xBottom: + else: # QwtPlot.xBottom x = rect.left() + startDist y = rect.top() + baseDist w = rect.width() - startDist - endDist diff --git a/qwt/symbol.py b/qwt/symbol.py index 2af971f..e5d685b 100644 --- a/qwt/symbol.py +++ b/qwt/symbol.py @@ -196,6 +196,8 @@ def qwtDrawTriangleSymbols(painter, type, points, numPoint, symbol): triangle = [QPointF(x1, y2), QPointF(x, y1), QPointF(x2, y2)] elif type == QwtTriangle.Down: triangle = [QPointF(x1, y1), QPointF(x, y2), QPointF(x2, y1)] + else: + raise TypeError("Unknown triangle type %s" % type) painter.drawPolygon(QPolygonF(triangle)) diff --git a/qwt/tests/CurveDemo1.py b/qwt/tests/CurveDemo1.py index aa03a86..14d198f 100644 --- a/qwt/tests/CurveDemo1.py +++ b/qwt/tests/CurveDemo1.py @@ -92,16 +92,14 @@ def paintEvent(self, event): def drawContents(self, painter): # draw curves r = self.contentsRect() - dy = r.height()/len(self.curves) + dy = int(r.height()/len(self.curves)) r.setHeight(dy) for curve in self.curves: self.xMap.setPaintInterval(r.left(), r.right()) self.yMap.setPaintInterval(r.top(), r.bottom()) - engine = painter.device().paintEngine() - if engine is not None and engine.hasFeature(QPaintEngine.Antialiasing): - painter.setRenderHint( - QPainter.Antialiasing, - curve.testRenderHint(QwtPlotItem.RenderAntialiased)) + painter.setRenderHint( + QPainter.Antialiasing, + curve.testRenderHint(QwtPlotItem.RenderAntialiased)) curve.draw(painter, self.xMap, self.yMap, r) self.shiftDown(r, dy) # draw titles diff --git a/qwt/tests/ImagePlotDemo.py b/qwt/tests/ImagePlotDemo.py index 8444361..0acf00c 100644 --- a/qwt/tests/ImagePlotDemo.py +++ b/qwt/tests/ImagePlotDemo.py @@ -98,9 +98,10 @@ def draw(self, painter, xMap, yMap, rect): # copy image = self.image.copy(x1, y1, x2-x1, y2-y1) # zoom - image = image.scaled(xMap.p2()-xMap.p1()+1, yMap.p1()-yMap.p2()+1) + image = image.scaled(int(xMap.p2()-xMap.p1()+1), + int(yMap.p1()-yMap.p2()+1)) # draw - painter.drawImage(xMap.p1(), yMap.p2(), image) + painter.drawImage(int(xMap.p1()), int(yMap.p2()), image) class ImagePlot(QwtPlot): From 5c101bfcf6f690e5c92c169e4cd9c299e39ad7d3 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Tue, 11 Aug 2020 19:11:38 +0200 Subject: [PATCH 133/421] Updated changelog --- CHANGELOG.md | 5 +++++ qwt/__init__.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb8d62c..fd831ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # PythonQwt Releases # +### Version 0.6.3 ### + +- Fixed obvious errors (+ poor implementations) in untested code parts + + ### Version 0.6.2 ### - Fixed Python crash occuring at exit when deleting objects (Python 3 only) diff --git a/qwt/__init__.py b/qwt/__init__.py index c4e2560..a10eba7 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -28,7 +28,7 @@ .. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.6.2' +__version__ = '0.6.3' QWT_VERSION_STR = '6.1.5' import warnings From d69322500589ab81864863663a95ae5c05ff6d21 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Wed, 12 Aug 2020 19:21:08 +0200 Subject: [PATCH 134/421] QwtPlot: added "flatStyle" option This is a PythonQwt-exclusive feature improving default plot style (without margin, more compact and flat look) -- option is enabled by default --- CHANGELOG.md | 5 +++- qwt/__init__.py | 2 +- qwt/plot.py | 61 ++++++++++++++++++++++++++++++++++++-- qwt/tests/CartesianDemo.py | 7 +++-- qwt/tests/no_margin.py | 2 +- 5 files changed, 68 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd831ce..68f7d84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,11 @@ # PythonQwt Releases # -### Version 0.6.3 ### +### Version 0.7.0 ### +- QwtPlot: added "flatStyle" option, a PythonQwt-exclusive feature improving + default plot style (without margin, more compact and flat look) -- option is + enabled by default - Fixed obvious errors (+ poor implementations) in untested code parts diff --git a/qwt/__init__.py b/qwt/__init__.py index a10eba7..81f07f3 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -28,7 +28,7 @@ .. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.6.3' +__version__ = '0.7.0' QWT_VERSION_STR = '6.1.5' import warnings diff --git a/qwt/plot.py b/qwt/plot.py index 82ca1cd..65c03f6 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -20,7 +20,7 @@ """ from .qt.QtGui import (QWidget, QFont, QSizePolicy, QFrame, QApplication, - QPainter, QPalette) + QPainter, QPalette, QColor) from .qt.QtCore import Qt, Signal, QEvent, QSize, QRectF from .text import QwtText, QwtTextLabel @@ -192,6 +192,7 @@ def __init__(self): self.legend = None self.layout = None self.autoReplot = None + self.flatStyle = None class AxisData(object): @@ -309,7 +310,7 @@ def __init__(self, *args): self.__data.autoReplot = False self.setAutoReplot(True) -# self.setPlotLayout(self.__data.layout) + self.setPlotLayout(self.__data.layout) # title self.__data.titleLabel = QwtTextLabel(self) @@ -338,6 +339,8 @@ def __init__(self, *args): self.__data.canvas = QwtPlotCanvas(self) self.__data.canvas.setObjectName("QwtPlotCanvas") self.__data.canvas.installEventFilter(self) + + self.setFlatStyle(True) self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) @@ -972,7 +975,7 @@ def setAutoReplot(self, tf=True): .. seealso:: - :py:meth:`canvas()` + :py:meth:`autoReplot()` """ self.__data.autoReplot = tf @@ -986,6 +989,58 @@ def autoReplot(self): """ return self.__data.autoReplot + def setFlatStyle(self, state): + """ + Set or reset the flatStyle option + + If the flatStyle option is set, the plot will be + rendered without any margin (scales, canvas, layout). + + Enabling this option makes the plot look flat and compact. + + The flatStyle option is set to True by default. + + :param bool state: True or False. + + .. seealso:: + + :py:meth:`flatStyle()` + """ + if state: + self.canvas().setFrameStyle(QFrame.NoFrame) + self.plotLayout().setCanvasMargin(0) + self.plotLayout().setSpacing(0) + palette = self.palette() + palette.setColor(QPalette.WindowText, QColor(Qt.darkGray)) + palette.setColor(QPalette.Text, QColor("#444444")) + self.setPalette(palette) + for axis_id in self.validAxes: + self.axisWidget(axis_id).setMargin(0) + self.axisWidget(axis_id).setSpacing(0) + # self.axisWidget(axis_id).setBorderDist(0, 0) + else: + self.canvas().setFrameStyle(QFrame.Panel|QFrame.Sunken) + self.plotLayout().setCanvasMargin(4) + self.plotLayout().setSpacing(5) + palette = self.palette() + palette.setColor(QPalette.WindowText, QColor(Qt.black)) + palette.setColor(QPalette.Text, QColor(Qt.black)) + self.setPalette(palette) + for axis_id in self.validAxes: + self.axisWidget(axis_id).setMargin(2) + self.axisWidget(axis_id).setSpacing(2) + self.__data.flatStyle = state + + def flatStyle(self): + """ + :return: True if the flatStyle option is set. + + .. seealso:: + + :py:meth:`setFlatStyle()` + """ + return self.__data.flatStyle + def setTitle(self, title): """ Change the plot's title diff --git a/qwt/tests/CartesianDemo.py b/qwt/tests/CartesianDemo.py index 3749d8d..1cbe960 100644 --- a/qwt/tests/CartesianDemo.py +++ b/qwt/tests/CartesianDemo.py @@ -62,7 +62,8 @@ def __init__(self, *args): # attach a grid grid = QwtPlotGrid() grid.attach(self) - grid.setPen(QPen(Qt.black, 0, Qt.DotLine)) + grid.setPen(QPen(Qt.lightGray, 0, Qt.DotLine)) + grid.setZ(-1) # attach a x-axis xaxis = CartesianAxis(QwtPlot.xBottom, QwtPlot.yLeft) xaxis.attach(self) @@ -83,11 +84,11 @@ def __init__(self, *args): # attach another curve curve = QwtPlotCurve('y = 4*pi*sin(x)*cos(x)**2') curve.attach(self) - curve.setPen(QPen(Qt.black, 2)) + curve.setPen(QPen(Qt.blue, 2)) curve.setData(x, z) self.replot() if __name__ == '__main__': from qwt.tests import test_widget - test_widget(CartesianPlot, (400, 300)) + test_widget(CartesianPlot, (800, 480)) diff --git a/qwt/tests/no_margin.py b/qwt/tests/no_margin.py index e18755d..cbf3c8e 100644 --- a/qwt/tests/no_margin.py +++ b/qwt/tests/no_margin.py @@ -54,7 +54,7 @@ def __init__(self, parent=None): ticks_font = self.axisFont(axis_id) self.setAxisFont(axis_id, ticks_font) - self.canvas().setFrameStyle(0)#QFrame.Panel|QFrame.Sunken) + self.canvas().setFrameStyle(0) self.plotLayout().setCanvasMargin(0) self.axisWidget(QwtPlot.yLeft).setMargin(0) self.axisWidget(QwtPlot.xTop).setMargin(0) From b19fcede7bd6cb759cef61e89f4297257e3af334 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Wed, 12 Aug 2020 19:35:05 +0200 Subject: [PATCH 135/421] QwtAbstractScaleDraw: added option to set the tick color lighter factor for each tick type (minor, medium, major) This feature is used with the new flatStyle option --- CHANGELOG.md | 3 ++ qwt/plot.py | 9 +++++ qwt/scale_draw.py | 73 ++++++++++++++++++++++------------- qwt/tests/ReallySimpleDemo.py | 1 + 4 files changed, 59 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68f7d84..02b8c02 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ - QwtPlot: added "flatStyle" option, a PythonQwt-exclusive feature improving default plot style (without margin, more compact and flat look) -- option is enabled by default +- QwtAbstractScaleDraw: added option to set the tick color lighter factor for + each tick type (minor, medium, major) -- this feature is used with the new + flatStyle option - Fixed obvious errors (+ poor implementations) in untested code parts diff --git a/qwt/plot.py b/qwt/plot.py index 65c03f6..5c9889d 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -1017,6 +1017,11 @@ def setFlatStyle(self, state): for axis_id in self.validAxes: self.axisWidget(axis_id).setMargin(0) self.axisWidget(axis_id).setSpacing(0) + for tick_type, factor in ((QwtScaleDiv.MajorTick, 100), + (QwtScaleDiv.MediumTick, 125), + (QwtScaleDiv.MinorTick, 150)): + self.axisScaleDraw(axis_id).setTickLighterFactor(tick_type, + factor) # self.axisWidget(axis_id).setBorderDist(0, 0) else: self.canvas().setFrameStyle(QFrame.Panel|QFrame.Sunken) @@ -1029,6 +1034,10 @@ def setFlatStyle(self, state): for axis_id in self.validAxes: self.axisWidget(axis_id).setMargin(2) self.axisWidget(axis_id).setSpacing(2) + for tick_type in (QwtScaleDiv.MajorTick, QwtScaleDiv.MediumTick, + QwtScaleDiv.MinorTick): + self.axisScaleDraw(axis_id).setTickLighterFactor(tick_type, + 100) self.__data.flatStyle = state def flatStyle(self): diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index b6d50f7..df19b3f 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -40,10 +40,12 @@ def __init__(self): self.components = QwtAbstractScaleDraw.Backbone|\ QwtAbstractScaleDraw.Ticks|\ QwtAbstractScaleDraw.Labels - self.tickLength = [None] * 3 - self.tickLength[QwtScaleDiv.MinorTick] = 4.0 - self.tickLength[QwtScaleDiv.MediumTick] = 6.0 - self.tickLength[QwtScaleDiv.MajorTick] = 8.0 + self.tick_length = {QwtScaleDiv.MinorTick: 4., + QwtScaleDiv.MediumTick: 6., + QwtScaleDiv.MajorTick: 8.} + self.tick_lighter_factor = {QwtScaleDiv.MinorTick: 100, + QwtScaleDiv.MediumTick: 100, + QwtScaleDiv.MajorTick: 100} self.map = QwtScaleMap() self.scaleDiv = QwtScaleDiv() @@ -247,13 +249,15 @@ def draw(self, painter, palette): if self.hasComponent(QwtAbstractScaleDraw.Ticks): painter.save() pen = painter.pen() - pen.setColor(palette.color(QPalette.WindowText)) pen.setCapStyle(Qt.FlatCap) - painter.setPen(pen) + default_color = palette.color(QPalette.WindowText) for tickType in range(QwtScaleDiv.NTickTypes): - tickLen = self.__data.tickLength[tickType] + tickLen = self.__data.tick_length[tickType] if tickLen <= 0.: continue + factor = self.__data.tick_lighter_factor[tickType] + pen.setColor(default_color.lighter(factor)) + painter.setPen(pen) ticks = self.__data.scaleDiv.ticks(tickType) for v in ticks: if self.__data.scaleDiv.contains(v): @@ -335,39 +339,33 @@ def minimumExtent(self): """ return self.__data.minExtent - def setTickLength(self, tickType, length): + def setTickLength(self, tick_type, length): """ Set the length of the ticks - :param int tickType: Tick type + :param int tick_type: Tick type :param float length: New length .. warning:: the length is limited to [0..1000] """ - if tickType < QwtScaleDiv.MinorTick or\ - tickType > QwtScaleDiv.MajorTick: - return - if length < 0.: - length = 0. - maxTickLen = 1000. - if length > maxTickLen: - length = maxTickLen - self.__data.tickLength[tickType] = length + if tick_type not in self.__data.tick_length: + raise ValueError("Invalid tick type: %r" % tick_type) + self.__data.tick_length[tick_type] = min([1000., max([0., length])]) - def tickLength(self, tickType): + def tickLength(self, tick_type): """ + :param int tick_type: Tick type :return: Length of the ticks .. seealso:: :py:meth:`setTickLength()`, :py:meth:`maxTickLength()` """ - if tickType < QwtScaleDiv.MinorTick or\ - tickType > QwtScaleDiv.MajorTick: - return 0 - return self.__data.tickLength[tickType] + if tick_type not in self.__data.tick_length: + raise ValueError("Invalid tick type: %r" % tick_type) + return self.__data.tick_length[tick_type] def maxTickLength(self): """ @@ -379,10 +377,31 @@ def maxTickLength(self): :py:meth:`tickLength()`, :py:meth:`setTickLength()` """ - length = 0. - for tickType in range(QwtScaleDiv.NTickTypes): - length = max([length, self.__data.tickLength[tickType]]) - return length + return max([0.] + list(self.__data.tick_length.values())) + + def setTickLighterFactor(self, tick_type, factor): + """ + Set the color lighter factor of the ticks + + :param int tick_type: Tick type + :param int factor: New factor + """ + if tick_type not in self.__data.tick_length: + raise ValueError("Invalid tick type: %r" % tick_type) + self.__data.tick_lighter_factor[tick_type] = min([0, factor]) + + def tickLighterFactor(self, tick_type): + """ + :param int tick_type: Tick type + :return: Color lighter factor of the ticks + + .. seealso:: + + :py:meth:`setTickLighterFactor()` + """ + if tick_type not in self.__data.tick_length: + raise ValueError("Invalid tick type: %r" % tick_type) + return self.__data.tick_lighter_factor[tick_type] def label(self, value): """ diff --git a/qwt/tests/ReallySimpleDemo.py b/qwt/tests/ReallySimpleDemo.py index bdf4415..d8a3de2 100644 --- a/qwt/tests/ReallySimpleDemo.py +++ b/qwt/tests/ReallySimpleDemo.py @@ -23,6 +23,7 @@ def __init__(self, *args): self.setAxisTitle(QwtPlot.xBottom, 'x -->') self.setAxisTitle(QwtPlot.yLeft, 'y -->') self.enableAxis(self.xBottom) + self.setFlatStyle(False) # insert a few curves cSin = QwtPlotCurve('y = sin(x)') From 211bf8f23845ad4314345cba4c80d597edb4100d Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Thu, 13 Aug 2020 19:22:52 +0200 Subject: [PATCH 136/421] Improved new flat-style for QwtPlot widgets --- qwt/plot.py | 183 +++++++++++++++++++---------------- qwt/plot_layout.py | 56 +++++------ qwt/plot_renderer.py | 13 ++- qwt/tests/CurveBenchmark.py | 2 +- qwt/tests/DataDemo.py | 6 +- qwt/tests/EventFilterDemo.py | 4 +- 6 files changed, 138 insertions(+), 126 deletions(-) diff --git a/qwt/plot.py b/qwt/plot.py index 5c9889d..fe00884 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -278,8 +278,8 @@ class QwtPlot(QFrame, QwtPlotDict): legendDataChanged = Signal("PyQt_PyObject", "PyQt_PyObject") # enum Axis - validAxes = yLeft, yRight, xBottom, xTop = list(range(4)) - axisCnt = len(validAxes) + AXES = yLeft, yRight, xBottom, xTop = list(range(4)) + axisCnt = len(AXES) # Not necessary but ensure compatibility with PyQwt # enum LegendPosition LeftLegend, RightLegend, BottomLegend, TopLegend = list(range(4)) @@ -315,8 +315,6 @@ def __init__(self, *args): # title self.__data.titleLabel = QwtTextLabel(self) self.__data.titleLabel.setObjectName("QwtPlotTitle") - self.__data.titleLabel.setFont(QFont(self.fontInfo().family(), 14, - QFont.Bold)) text = QwtText(title) text.setRenderFlags(Qt.AlignCenter|Qt.TextWordWrap) self.__data.titleLabel.setText(text) @@ -340,6 +338,7 @@ def __init__(self, *args): self.__data.canvas.setObjectName("QwtPlotCanvas") self.__data.canvas.installEventFilter(self) + # plot style self.setFlatStyle(True) self.setSizePolicy(QSizePolicy.MinimumExpanding, @@ -366,10 +365,90 @@ def __del__(self): # self.__data.layout = None # self.deleteAxesData() # self.__data = None + + def setFlatStyle(self, state): + """ + Set or reset the flatStyle option + + If the flatStyle option is set, the plot will be + rendered without any margin (scales, canvas, layout). + + Enabling this option makes the plot look flat and compact. + + The flatStyle option is set to True by default. + + :param bool state: True or False. + + .. seealso:: + + :py:meth:`flatStyle()` + """ + def make_font(family=None, size=None, delta_size=None, weight=None): + finfo = self.fontInfo() + family = finfo.family() if family is None else family + weight = -1 if weight is None else weight + size = size if delta_size is None else finfo.pointSize()+delta_size + return QFont(family, size, weight) + if state: + # New PythonQwt-exclusive flat style + plot_title_font = make_font(family="Helvetica", delta_size=4, + weight=QFont.Bold) + axis_title_font = make_font(family="Helvetica", delta_size=2, + weight=QFont.Bold) + axis_label_font = make_font(family="Helvetica", delta_size=0) + tick_lighter_factors = (150, 125, 100) + scale_margin = scale_spacing = 0 + canvas_frame_style = QFrame.NoFrame + plot_layout_canvas_margin = plot_layout_spacing = 0 + ticks_color = Qt.darkGray + labels_color = "#444444" + else: + # Old PyQwt / Qwt style + plot_title_font = make_font(size=14, weight=QFont.Bold) + axis_title_font = make_font(size=12, weight=QFont.Bold) + axis_label_font = make_font(size=10) + tick_lighter_factors = (100, 100, 100) + scale_margin = scale_spacing = 2 + canvas_frame_style = QFrame.Panel|QFrame.Sunken + plot_layout_canvas_margin = 4 + plot_layout_spacing = 5 + ticks_color = labels_color = Qt.black + self.canvas().setFrameStyle(canvas_frame_style) + self.plotLayout().setCanvasMargin(plot_layout_canvas_margin) + self.plotLayout().setSpacing(plot_layout_spacing) + palette = self.palette() + palette.setColor(QPalette.WindowText, QColor(ticks_color)) + palette.setColor(QPalette.Text, QColor(labels_color)) + self.setPalette(palette) + for axis_id in self.AXES: + scale_widget = self.axisWidget(axis_id) + scale_draw = self.axisScaleDraw(axis_id) + scale_widget.setFont(axis_label_font) + scale_widget.setMargin(scale_margin) + scale_widget.setSpacing(scale_spacing) + scale_title = scale_widget.title() + scale_title.setFont(axis_title_font) + scale_widget.setTitle(scale_title) + for tick_type, factor in enumerate(tick_lighter_factors): + scale_draw.setTickLighterFactor(tick_type, factor) + plot_title = self.title() + plot_title.setFont(plot_title_font) + self.setTitle(plot_title) + self.__data.flatStyle = state + + def flatStyle(self): + """ + :return: True if the flatStyle option is set. + + .. seealso:: + :py:meth:`setFlatStyle()` + """ + return self.__data.flatStyle + def initAxesData(self): """Initialize axes""" - self.__axisData = [AxisData() for axisId in self.validAxes] + self.__axisData = [AxisData() for axisId in self.AXES] self.__axisData[self.yLeft].scaleWidget = \ QwtScaleWidget(QwtScaleDraw.LeftScale, self) @@ -388,21 +467,16 @@ def initAxesData(self): ].scaleWidget.setObjectName("QwtPlotAxisXTop") self.__axisData[self.xBottom ].scaleWidget.setObjectName("QwtPlotAxisXBottom") - - fscl = QFont(self.fontInfo().family(), 10) - fttl = QFont(self.fontInfo().family(), 12, QFont.Bold) - for axisId in self.validAxes: + for axisId in self.AXES: d = self.__axisData[axisId] d.scaleEngine = QwtLinearScaleEngine() d.scaleWidget.setTransformation(d.scaleEngine.transformation()) - d.scaleWidget.setFont(fscl) d.scaleWidget.setMargin(2) text = d.scaleWidget.title() - text.setFont(fttl) d.scaleWidget.setTitle(text) d.doAutoScale = True @@ -420,7 +494,7 @@ def initAxesData(self): def deleteAxesData(self): #XXX Is is really necessary in Python? (pure transcription of C++) - for axisId in self.validAxes: + for axisId in self.AXES: self.__axisData[axisId].scaleEngine = None self.__axisData[axisId] = None @@ -871,7 +945,7 @@ def updateAxes(self): :py:meth:`setAxisScaleDiv()`, :py:meth:`replot()`, :py:meth:`QwtPlotItem.boundingRect()` """ - intv = [QwtInterval() for _i in self.validAxes] + intv = [QwtInterval() for _i in self.AXES] itmList = self.itemList() for item in itmList: if not item.testItemAttribute(QwtPlotItem.AutoScale): @@ -884,7 +958,7 @@ def updateAxes(self): intv[item.xAxis()] |= QwtInterval(rect.left(), rect.right()) if rect.height() >= 0.: intv[item.yAxis()] |= QwtInterval(rect.top(), rect.bottom()) - for axisId in self.validAxes: + for axisId in self.AXES: d = self.__axisData[axisId] minValue = d.minValue maxValue = d.maxValue @@ -989,67 +1063,6 @@ def autoReplot(self): """ return self.__data.autoReplot - def setFlatStyle(self, state): - """ - Set or reset the flatStyle option - - If the flatStyle option is set, the plot will be - rendered without any margin (scales, canvas, layout). - - Enabling this option makes the plot look flat and compact. - - The flatStyle option is set to True by default. - - :param bool state: True or False. - - .. seealso:: - - :py:meth:`flatStyle()` - """ - if state: - self.canvas().setFrameStyle(QFrame.NoFrame) - self.plotLayout().setCanvasMargin(0) - self.plotLayout().setSpacing(0) - palette = self.palette() - palette.setColor(QPalette.WindowText, QColor(Qt.darkGray)) - palette.setColor(QPalette.Text, QColor("#444444")) - self.setPalette(palette) - for axis_id in self.validAxes: - self.axisWidget(axis_id).setMargin(0) - self.axisWidget(axis_id).setSpacing(0) - for tick_type, factor in ((QwtScaleDiv.MajorTick, 100), - (QwtScaleDiv.MediumTick, 125), - (QwtScaleDiv.MinorTick, 150)): - self.axisScaleDraw(axis_id).setTickLighterFactor(tick_type, - factor) - # self.axisWidget(axis_id).setBorderDist(0, 0) - else: - self.canvas().setFrameStyle(QFrame.Panel|QFrame.Sunken) - self.plotLayout().setCanvasMargin(4) - self.plotLayout().setSpacing(5) - palette = self.palette() - palette.setColor(QPalette.WindowText, QColor(Qt.black)) - palette.setColor(QPalette.Text, QColor(Qt.black)) - self.setPalette(palette) - for axis_id in self.validAxes: - self.axisWidget(axis_id).setMargin(2) - self.axisWidget(axis_id).setSpacing(2) - for tick_type in (QwtScaleDiv.MajorTick, QwtScaleDiv.MediumTick, - QwtScaleDiv.MinorTick): - self.axisScaleDraw(axis_id).setTickLighterFactor(tick_type, - 100) - self.__data.flatStyle = state - - def flatStyle(self): - """ - :return: True if the flatStyle option is set. - - .. seealso:: - - :py:meth:`setFlatStyle()` - """ - return self.__data.flatStyle - def setTitle(self, title): """ Change the plot's title @@ -1170,7 +1183,7 @@ def sizeHint(self): :py:meth:`minimumSizeHint()` """ dw = dh = 0 - for axisId in self.validAxes: + for axisId in self.AXES: if self.axisEnabled(axisId): niceDist = 40 scaleWidget = self.axisWidget(axisId) @@ -1231,7 +1244,7 @@ def get_layout_state(self): return (self.contentsRect(), self.__data.titleLabel.text(), self.__data.footerLabel.text(), [(self.axisEnabled(axisId), self.axisTitle(axisId).text()) - for axisId in self.validAxes], + for axisId in self.AXES], self.__data.legend) def updateLayout(self): @@ -1253,7 +1266,7 @@ def updateLayout(self): titleRect = self.__data.layout.titleRect().toRect() footerRect = self.__data.layout.footerRect().toRect() scaleRect = [self.__data.layout.scaleRect(axisId).toRect() - for axisId in self.validAxes] + for axisId in self.AXES] legendRect = self.__data.layout.legendRect().toRect() canvasRect = self.__data.layout.canvasRect().toRect() @@ -1271,7 +1284,7 @@ def updateLayout(self): else: self.__data.footerLabel.hide() - for axisId in self.validAxes: + for axisId in self.AXES: scaleWidget = self.axisWidget(axisId) if self.axisEnabled(axisId): if scaleRect[axisId] != scaleWidget.geometry(): @@ -1347,12 +1360,12 @@ def updateCanvasMargins(self): :py:meth:`getCanvasMarginsHint()`, :py:meth:`QwtPlotItem.getCanvasMarginHint()` """ - maps = [self.canvasMap(axisId) for axisId in self.validAxes] + maps = [self.canvasMap(axisId) for axisId in self.AXES] margins = self.getCanvasMarginsHint(maps, self.canvas().contentsRect()) doUpdate = False - for axisId in self.validAxes: + for axisId in self.AXES: if margins[axisId] >= 0.: m = np.ceil(margins[axisId]) self.plotLayout().setCanvasMargin(m, axisId) @@ -1378,7 +1391,7 @@ def drawCanvas(self, painter): :py:meth:`getCanvasMarginsHint()`, :py:meth:`QwtPlotItem.getCanvasMarginHint()` """ - maps = [self.canvasMap(axisId) for axisId in self.validAxes] + maps = [self.canvasMap(axisId) for axisId in self.AXES] self.drawItems(painter, self.__data.canvas.contentsRect(), maps) def drawItems(self, painter, canvasRect, maps): @@ -1485,12 +1498,12 @@ def canvasBackground(self): """ return self.canvas().palette().brush(QPalette.Normal, QPalette.Window) - def axisValid(self, axisId): + def axisValid(self, axis_id): """ - :param int axisId: Axis + :param int axis_id: Axis :return: True if the specified axis exists, otherwise False """ - return axisId in QwtPlot.validAxes + return axis_id in QwtPlot.AXES def insertLegend(self, legend, pos=None, ratio=-1): """ diff --git a/qwt/plot_layout.py b/qwt/plot_layout.py index c653971..6a32ef2 100644 --- a/qwt/plot_layout.py +++ b/qwt/plot_layout.py @@ -56,14 +56,14 @@ def __init__(self): class CanvasData(object): def __init__(self): - self.contentsMargins = [0 for _i in QwtPlot.validAxes] + self.contentsMargins = [0 for _i in QwtPlot.AXES] class QwtPlotLayout_LayoutData(object): def __init__(self): self.legend = LegendData() self.title = TitleData() self.footer = FooterData() - self.scale = [ScaleData() for _i in QwtPlot.validAxes] + self.scale = [ScaleData() for _i in QwtPlot.AXES] self.canvas = CanvasData() def init(self, plot, rect): @@ -99,7 +99,7 @@ def init(self, plot, rect): self.footer.text.setFont(label.font()) self.footer.frameWidth = plot.footerLabel().frameWidth() # scales - for axis in QwtPlot.validAxes: + for axis in QwtPlot.AXES: if plot.axisEnabled(axis): scaleWidget = plot.axisWidget(axis) self.scale[axis].isEnabled = True @@ -132,13 +132,13 @@ def __init__(self): self.titleRect = QRectF() self.footerRect = QRectF() self.legendRect = QRectF() - self.scaleRect = [QRectF() for _i in QwtPlot.validAxes] + self.scaleRect = [QRectF() for _i in QwtPlot.AXES] self.canvasRect = QRectF() self.layoutData = QwtPlotLayout_LayoutData() self.legendPos = None self.legendRatio = None - self.canvasMargin = [0] * QwtPlot.axisCnt - self.alignCanvasToScales = [False] * QwtPlot.axisCnt + self.canvasMargin = [0] * len(QwtPlot.AXES) + self.alignCanvasToScales = [False] * len(QwtPlot.AXES) class QwtPlotLayout(object): @@ -198,9 +198,9 @@ def setCanvasMargin(self, margin, axis=-1): if margin < 1: margin = -1 if axis == -1: - for axis in QwtPlot.validAxes: + for axis in QwtPlot.AXES: self.__data.canvasMargin[axis] = margin - elif axis in QwtPlot.validAxes: + elif axis in QwtPlot.AXES: self.__data.canvasMargin[axis] = margin def canvasMargin(self, axisId): @@ -212,7 +212,7 @@ def canvasMargin(self, axisId): :py:meth:`setCanvasMargin()` """ - if axisId not in QwtPlot.validAxes: + if axisId not in QwtPlot.AXES: return 0 return self.__data.canvasMargin[axisId] @@ -249,11 +249,11 @@ def setAlignCanvasToScales(self, *args): """ if len(args) == 1: on, = args - for axis in QwtPlot.validAxes: + for axis in QwtPlot.AXES: self.__data.alignCanvasToScales[axis] = on elif len(args) == 2: axisId, on = args - if axisId in QwtPlot.validAxes: + if axisId in QwtPlot.AXES: self.__data.alignCanvasToScales[axisId] = on else: raise TypeError("%s().setAlignCanvasToScales() takes 1 or 2 "\ @@ -275,7 +275,7 @@ def alignCanvasToScale(self, axisId): :py:meth:`setAlignCanvasToScale()`, :py:meth:`setCanvasMargin()` """ - if axisId not in QwtPlot.validAxes: + if axisId not in QwtPlot.AXES: return False return self.__data.alignCanvasToScales[axisId] @@ -476,7 +476,7 @@ def setScaleRect(self, axis, rect): :py:meth:`scaleRect()`, :py:meth:`activate()` """ - if axis in QwtPlot.validAxes: + if axis in QwtPlot.AXES: self.__data.scaleRect[axis] = rect def scaleRect(self, axis): @@ -488,7 +488,7 @@ def scaleRect(self, axis): :py:meth:`invalidate()`, :py:meth:`activate()` """ - if axis not in QwtPlot.validAxes: + if axis not in QwtPlot.AXES: return QRectF() return self.__data.scaleRect[axis] @@ -529,7 +529,7 @@ def invalidate(self): self.__data.footerRect = QRectF() self.__data.legendRect = QRectF() self.__data.canvasRect = QRectF() - for axis in QwtPlot.validAxes: + for axis in QwtPlot.AXES: self.__data.scaleRect[axis] = QRectF() def minimumSizeHint(self, plot): @@ -548,10 +548,10 @@ def __init__(self): self.minLeft = 0 self.minRight = 0 self.tickOffset = 0 - scaleData = [_ScaleData() for _i in QwtPlot.validAxes] - canvasBorder = [0 for _i in QwtPlot.validAxes] + scaleData = [_ScaleData() for _i in QwtPlot.AXES] + canvasBorder = [0 for _i in QwtPlot.AXES] fw, _, _, _ = plot.canvas().getContentsMargins() - for axis in QwtPlot.validAxes: + for axis in QwtPlot.AXES: if plot.axisEnabled(axis): scl = plot.axisWidget(axis) sd = scaleData[axis] @@ -563,7 +563,7 @@ def __init__(self): if scl.scaleDraw().hasComponent(QwtAbstractScaleDraw.Ticks): sd.tickOffset += np.ceil(scl.scaleDraw().maxTickLength()) canvasBorder[axis] = fw + self.__data.canvasMargin[axis] + 1 - for axis in QwtPlot.validAxes: + for axis in QwtPlot.AXES: sd = scaleData[axis] if sd.w and axis in (QwtPlot.xBottom, QwtPlot.xTop): if sd.minLeft > canvasBorder[QwtPlot.yLeft]\ @@ -706,9 +706,9 @@ def expandLineBreaks(self, options, rect): * `dimAxes`: Expanded heights of the axis in axis orientation. """ dimTitle = dimFooter = 0 - dimAxes = [0 for axis in QwtPlot.validAxes] - backboneOffset = [0 for _i in QwtPlot.validAxes] - for axis in QwtPlot.validAxes: + dimAxes = [0 for axis in QwtPlot.AXES] + backboneOffset = [0 for _i in QwtPlot.AXES] + for axis in QwtPlot.AXES: if not (options & self.IgnoreFrames): backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[axis] if not self.__data.alignCanvasToScales[axis]: @@ -747,7 +747,7 @@ def expandLineBreaks(self, options, rect): if d > dimFooter: dimFooter = d done = False - for axis in QwtPlot.validAxes: + for axis in QwtPlot.AXES: scaleData = self.__data.layoutData.scale[axis] if scaleData.isEnabled: if axis in (QwtPlot.xTop, QwtPlot.xBottom): @@ -792,14 +792,14 @@ def alignScales(self, options, canvasRect, scaleRect): :param QRectF canvasRect: Geometry of the canvas ( IN/OUT ) :param QRectF scaleRect: Geometry of the scales ( IN/OUT ) """ - backboneOffset = [0 for _i in QwtPlot.validAxes] - for axis in QwtPlot.validAxes: + backboneOffset = [0 for _i in QwtPlot.AXES] + for axis in QwtPlot.AXES: backboneOffset[axis] = 0 if not self.__data.alignCanvasToScales[axis]: backboneOffset[axis] += self.__data.canvasMargin[axis] if not options & self.IgnoreFrames: backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[axis] - for axis in QwtPlot.validAxes: + for axis in QwtPlot.AXES: if not scaleRect[axis].isValid(): continue startDist = self.__data.layoutData.scale[axis].start @@ -880,7 +880,7 @@ def alignScales(self, options, canvasRect, scaleRect): else: if topOffset > 0: axisRect.setTop(axisRect.top()+topOffset) - for axis in QwtPlot.validAxes: + for axis in QwtPlot.AXES: sRect = scaleRect[axis] if not sRect.isValid(): continue @@ -989,7 +989,7 @@ def activate(self, plot, plotRect, options=0x00): rect.y()+dimAxes[QwtPlot.xTop], rect.width()-dimAxes[QwtPlot.yRight]-dimAxes[QwtPlot.yLeft], rect.height()-dimAxes[QwtPlot.xBottom]-dimAxes[QwtPlot.xTop]) - for axis in QwtPlot.validAxes: + for axis in QwtPlot.AXES: if dimAxes[axis]: dim = dimAxes[axis] scaleRect = self.__data.scaleRect[axis] diff --git a/qwt/plot_renderer.py b/qwt/plot_renderer.py index f87a502..ab33643 100644 --- a/qwt/plot_renderer.py +++ b/qwt/plot_renderer.py @@ -344,10 +344,9 @@ def render(self, plot, painter, plotRect): layoutRect.adjust(left, top, -right, -bottom) layout = plot.plotLayout() - baseLineDists = [None]*QwtPlot.axisCnt - canvasMargins = [None]*QwtPlot.axisCnt + baseLineDists = canvasMargins = [None] * len(QwtPlot.AXES) - for axisId in QwtPlot.validAxes: + for axisId in QwtPlot.AXES: canvasMargins[axisId] = layout.canvasMargin(axisId) if self.__data.layoutFlags & self.FrameWithScales: scaleWidget = plot.axisWidget(axisId) @@ -407,7 +406,7 @@ def render(self, plot, painter, plotRect): plot.titleLabel().text(): self.renderLegend(plot, painter, layout.legendRect()) - for axisId in QwtPlot.validAxes: + for axisId in QwtPlot.AXES: scaleWidget = plot.axisWidget(axisId) if scaleWidget: baseDist = scaleWidget.margin() @@ -417,7 +416,7 @@ def render(self, plot, painter, plotRect): painter.restore() - for axisId in QwtPlot.validAxes: + for axisId in QwtPlot.AXES: if self.__data.layoutFlags & self.FrameWithScales: scaleWidget = plot.axisWidget(axisId) if scaleWidget: @@ -600,7 +599,7 @@ def buildCanvasMaps(self, plot, canvasRect): :return: Calculated scale maps """ maps = [] - for axisId in QwtPlot.validAxes: + for axisId in QwtPlot.AXES: map_ = QwtScaleMap() map_.setTransformation( plot.axisScaleEngine(axisId).transformation()) @@ -632,7 +631,7 @@ def buildCanvasMaps(self, plot, canvasRect): def updateCanvasMargins(self, plot, canvasRect, maps): margins = plot.getCanvasMarginsHint(maps, canvasRect) marginsChanged = False - for axisId in QwtPlot.validAxes: + for axisId in QwtPlot.AXES: if margins[axisId] >= 0.: m = np.ceil(margins[axisId]) plot.plotLayout().setCanvasMargin(m, axisId) diff --git a/qwt/tests/CurveBenchmark.py b/qwt/tests/CurveBenchmark.py index af48d20..e309ef7 100644 --- a/qwt/tests/CurveBenchmark.py +++ b/qwt/tests/CurveBenchmark.py @@ -53,7 +53,7 @@ def __init__(self, title, xdata, ydata, style, symbol=None, *args): if symbol is not None: curve.setSymbol(symbol) curve.attach(self) - curve.setData(xdata, ydata*idx, finite=False) + curve.setData(xdata, ydata*idx)#, finite=False) # self.setAxisScale(self.yLeft, -1.5, 1.5) # self.setAxisScale(self.xBottom, 9.9, 10.) self.replot() diff --git a/qwt/tests/DataDemo.py b/qwt/tests/DataDemo.py index ea1c49e..2210a16 100644 --- a/qwt/tests/DataDemo.py +++ b/qwt/tests/DataDemo.py @@ -60,11 +60,11 @@ def __init__(self, *args): def alignScales(self): self.canvas().setFrameStyle(QFrame.Box | QFrame.Plain) self.canvas().setLineWidth(1) - for i in range(QwtPlot.axisCnt): - scaleWidget = self.axisWidget(i) + for axis_id in QwtPlot.AXES: + scaleWidget = self.axisWidget(axis_id) if scaleWidget: scaleWidget.setMargin(0) - scaleDraw = self.axisScaleDraw(i) + scaleDraw = self.axisScaleDraw(axis_id) if scaleDraw: scaleDraw.enableComponent(QwtAbstractScaleDraw.Backbone, False) diff --git a/qwt/tests/EventFilterDemo.py b/qwt/tests/EventFilterDemo.py index dc95237..d868cdd 100644 --- a/qwt/tests/EventFilterDemo.py +++ b/qwt/tests/EventFilterDemo.py @@ -379,8 +379,8 @@ class ScalePicker(QObject): def __init__(self, plot): QObject.__init__(self, plot) - for i in range(QwtPlot.axisCnt): - scaleWidget = plot.axisWidget(i) + for axis_id in QwtPlot.AXES: + scaleWidget = plot.axisWidget(axis_id) if scaleWidget: scaleWidget.installEventFilter(self) From 34591079ba442aeb05500cb09a8d150d1ee70a27 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Fri, 14 Aug 2020 14:42:26 +0200 Subject: [PATCH 137/421] Added new test launcher --- CHANGELOG.md | 1 + README.md | 2 +- doc/images/test_launcher.png | Bin 0 -> 112341 bytes qwt/__init__.py | 2 +- qwt/tests/__init__.py | 188 ++++++++++++++++-- qwt/tests/{BodeDemo.py => bode.py} | 20 +- qwt/tests/{CartesianDemo.py => cartesian.py} | 0 qwt/tests/{CPUplot.py => cpu_plot.py} | 0 ...{CurveBenchmark.py => curve_benchmark1.py} | 2 +- .../{CurveStyles.py => curve_benchmark2.py} | 4 +- qwt/tests/{CurveDemo1.py => curves1.py} | 2 +- qwt/tests/{CurveDemo2.py => curves2.py} | 2 +- qwt/tests/{DataDemo.py => data.py} | 0 qwt/tests/data/bode.png | Bin 0 -> 25403 bytes qwt/tests/data/cartesian.png | Bin 0 -> 19646 bytes qwt/tests/data/cpu_plot.png | Bin 0 -> 37139 bytes qwt/tests/data/curve_benchmark1.png | Bin 0 -> 70237 bytes qwt/tests/data/curve_benchmark2.png | Bin 0 -> 129327 bytes qwt/tests/data/curves1.png | Bin 0 -> 17760 bytes qwt/tests/data/curves2.png | Bin 0 -> 15297 bytes qwt/tests/data/data.png | Bin 0 -> 22914 bytes qwt/tests/data/errorbar.png | Bin 0 -> 15322 bytes qwt/tests/data/eventfilter.png | Bin 0 -> 8283 bytes qwt/tests/data/imageplot.png | Bin 0 -> 104815 bytes qwt/tests/data/logcurve.png | Bin 0 -> 18212 bytes qwt/tests/data/map.png | Bin 0 -> 23508 bytes qwt/tests/data/multi.png | Bin 0 -> 6012 bytes qwt/tests/data/simpleplot.png | Bin 0 -> 7671 bytes qwt/tests/data/vertical.png | Bin 0 -> 19913 bytes qwt/tests/{ErrorBarDemo.py => errorbar.py} | 0 .../{EventFilterDemo.py => eventfilter.py} | 0 qwt/tests/{ImagePlotDemo.py => imageplot.py} | 0 qwt/tests/{LogCurveDemo.py => logcurve.py} | 0 qwt/tests/{MapDemo.py => map.py} | 0 qwt/tests/{MultiDemo.py => multi.py} | 0 .../{ReallySimpleDemo.py => simpleplot.py} | 0 qwt/tests/{no_margin.py => vertical.py} | 22 +- 37 files changed, 201 insertions(+), 44 deletions(-) create mode 100644 doc/images/test_launcher.png rename qwt/tests/{BodeDemo.py => bode.py} (95%) rename qwt/tests/{CartesianDemo.py => cartesian.py} (100%) rename qwt/tests/{CPUplot.py => cpu_plot.py} (100%) rename qwt/tests/{CurveBenchmark.py => curve_benchmark1.py} (99%) rename qwt/tests/{CurveStyles.py => curve_benchmark2.py} (96%) rename qwt/tests/{CurveDemo1.py => curves1.py} (98%) rename qwt/tests/{CurveDemo2.py => curves2.py} (98%) rename qwt/tests/{DataDemo.py => data.py} (100%) create mode 100644 qwt/tests/data/bode.png create mode 100644 qwt/tests/data/cartesian.png create mode 100644 qwt/tests/data/cpu_plot.png create mode 100644 qwt/tests/data/curve_benchmark1.png create mode 100644 qwt/tests/data/curve_benchmark2.png create mode 100644 qwt/tests/data/curves1.png create mode 100644 qwt/tests/data/curves2.png create mode 100644 qwt/tests/data/data.png create mode 100644 qwt/tests/data/errorbar.png create mode 100644 qwt/tests/data/eventfilter.png create mode 100644 qwt/tests/data/imageplot.png create mode 100644 qwt/tests/data/logcurve.png create mode 100644 qwt/tests/data/map.png create mode 100644 qwt/tests/data/multi.png create mode 100644 qwt/tests/data/simpleplot.png create mode 100644 qwt/tests/data/vertical.png rename qwt/tests/{ErrorBarDemo.py => errorbar.py} (100%) rename qwt/tests/{EventFilterDemo.py => eventfilter.py} (100%) rename qwt/tests/{ImagePlotDemo.py => imageplot.py} (100%) rename qwt/tests/{LogCurveDemo.py => logcurve.py} (100%) rename qwt/tests/{MapDemo.py => map.py} (100%) rename qwt/tests/{MultiDemo.py => multi.py} (100%) rename qwt/tests/{ReallySimpleDemo.py => simpleplot.py} (100%) rename qwt/tests/{no_margin.py => vertical.py} (87%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02b8c02..9948fa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### Version 0.7.0 ### +- Added new test launcher - QwtPlot: added "flatStyle" option, a PythonQwt-exclusive feature improving default plot style (without margin, more compact and flat look) -- option is enabled by default diff --git a/README.md b/README.md index f8921f2..e3e12c3 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![download count](https://img.shields.io/conda/dn/conda-forge/PythonQwt.svg)](https://www.anaconda.com/download/) [![Documentation Status](https://readthedocs.org/projects/pythonqwt/badge/?version=latest)](https://pythonqwt.readthedocs.io/en/latest/?badge=latest) - + The `PythonQwt` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is diff --git a/doc/images/test_launcher.png b/doc/images/test_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..44f7cb59299cdc1e25e99034be066f475399b514 GIT binary patch literal 112341 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 literal 0 HcmV?d00001 diff --git a/qwt/__init__.py b/qwt/__init__.py index 81f07f3..24c3b81 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -17,7 +17,7 @@ It consists of a single Python package named `qwt` which is a pure Python implementation of Qwt C++ library with some limitations. -.. image:: images/panorama.png +.. image:: images/test_launcher.png External resources: * Python Package Index: `PyPI`_ diff --git a/qwt/tests/__init__.py b/qwt/tests/__init__.py index a066b42..30f6240 100644 --- a/qwt/tests/__init__.py +++ b/qwt/tests/__init__.py @@ -9,17 +9,29 @@ ====================== """ +from __future__ import print_function + import os import os.path as osp import sys import subprocess +import platform +from qwt.qt.QtGui import (QWidget, QMainWindow, QVBoxLayout, QFormLayout, + QCheckBox, QGroupBox, QGridLayout, QToolButton, + QStyle, QToolBar, QAction, QIcon, QMessageBox) +from qwt.qt.QtCore import Qt, QSize +from qwt import QwtPlot + + +TEST_PATH = osp.abspath(osp.dirname(__file__)) def run_test(fname, wait=False): """Run test""" os.environ['PYTHONPATH'] = os.pathsep.join(sys.path) args = " ".join([sys.executable, '"'+fname+'"']) - print(args) + if os.environ.get("TEST_UNATTENDED") is not None: + print(args) if wait: subprocess.call(args, shell=True) else: @@ -44,34 +56,177 @@ def get_tests(package): return tests -def run(): - """Run PythonQwt tests or test launcher (requires `guidata`)""" +def run_all_tests(wait): + """Run all PythonQwt tests""" import qwt - if os.environ.get("TEST_UNATTENDED") is None: - try: - from guidata.guitest import run_testlauncher - run_testlauncher(qwt) - return - except ImportError: - pass for fname in get_tests(qwt): - run_test(fname, wait=True) + run_test(fname, wait=wait) + + +class TestLauncher(QMainWindow): + """PythonQwt Test Launcher main window""" + ROWS = 5 + def __init__(self, parent=None): + super(TestLauncher, self).__init__(parent) + from qwt import __version__ + self.setWindowIcon(self.get_std_icon("FileDialogListView")) + self.setWindowTitle("PythonQwt %s - Test Launcher" % __version__) + self.setCentralWidget(QWidget()) + self.grid_layout = QGridLayout() + self.centralWidget().setLayout(self.grid_layout) + self.test_nb = None + self.fill_layout() + self.statusBar().show() + self.setStatusTip("Click on any button to run a test") + + def get_std_icon(self, name): + """Return Qt standard icon""" + return self.style().standardIcon(getattr(QStyle, "SP_" + name)) + + def fill_layout(self): + """Fill grid layout""" + import qwt + for fname in get_tests(qwt): + self.add_test(fname) + toolbar = QToolBar(self) + all_act = QAction(self.get_std_icon("DialogYesButton"), "", self) + all_act.setIconText("Run all tests") + all_act.triggered.connect(lambda checked: run_all_tests(wait=False)) + folder_act = QAction(self.get_std_icon("DirOpenIcon"), "", self) + folder_act.setIconText("Open tests folder") + open_test_folder = lambda checked: os.startfile(TEST_PATH) + folder_act.triggered.connect(open_test_folder) + about_act = QAction(self.get_std_icon("FileDialogInfoView"), "", self) + about_act.setIconText("About") + about_act.triggered.connect(self.about) + for action in (all_act, folder_act, None, about_act): + if action is None: + toolbar.addSeparator() + else: + toolbar.addAction(action) + toolbar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) + self.addToolBar(toolbar) + + def add_test(self, fname): + """Add new test""" + if self.test_nb is None: + self.test_nb = 0 + self.test_nb += 1 + row = (self.test_nb-1) % self.ROWS + column = (self.test_nb-1) // self.ROWS + bname = osp.basename(fname) + button = QToolButton(self) + button.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) + shot = osp.join(TEST_PATH, "data", bname.replace(".py", ".png")) + if osp.isfile(shot): + button.setIcon(QIcon(shot)) + else: + button.setIcon(self.get_std_icon("DialogYesButton")) + button.setText(bname) + button.setToolTip(fname) + button.setIconSize(QSize(130, 80)) + button.clicked.connect(lambda checked, fname=fname: run_test(fname)) + self.grid_layout.addWidget(button, row, column) + + def about(self): + """About test launcher""" + from qwt.qt.QtCore import __version__ as qt_version + QMessageBox.about( self, "About "+self.windowTitle(), + """%s

Developped by Pierre Raybaut +
Copyright © 2020 Pierre Raybaut +

Python %s, Qt %s on %s""" % \ + (self.windowTitle(), platform.python_version(), + qt_version, platform.system()) ) -def test_widget(widget_class, size=None, title=None): +def run(wait=True): + """Run PythonQwt tests or test launcher (requires `guidata`)""" + if os.environ.get("TEST_UNATTENDED") is None: + from qwt.qt.QtGui import QApplication + app = QApplication([]) + launcher = TestLauncher() + launcher.show() + app.exec_() + else: + run_all_tests(wait=wait) + + +class TestOptions(QGroupBox): + """Test options groupbox""" + def __init__(self, parent=None): + super(TestOptions, self).__init__("Test options", parent) + self.setLayout(QFormLayout()) + self.hide() + + def add_checkbox(self, title, label, slot): + """Add new checkbox to option panel""" + widget = QCheckBox(label, self) + widget.stateChanged.connect(slot) + self.layout().addRow(title, widget) + self.show() + return widget + + +class TestCentralWidget(QWidget): + """Test central widget""" + def __init__(self, parent=None): + super(TestCentralWidget, self).__init__(parent) + self.setLayout(QVBoxLayout()) + self.options = TestOptions(self) + self.add_widget(self.options) + + def add_widget(self, widget): + """Add new sub-widget""" + self.layout().addWidget(widget) + if isinstance(widget, QwtPlot): + plots = [widget] + else: + plots = widget.findChildren(QwtPlot) + for index, plot in enumerate(plots): + plot_name = plot.objectName() + if not plot_name: + plot_name = "Plot #%d" % (index + 1) + widget = self.options.add_checkbox(plot_name, + "Enable new flat style option", plot.setFlatStyle) + widget.setChecked(plot.flatStyle()) + + +class TestWindow(QMainWindow): + """Test main window""" + def __init__(self): + super(TestWindow, self).__init__() + self.setCentralWidget(TestCentralWidget()) + + def add_widget(self, widget): + """Add new sub-widget to central widget""" + self.centralWidget().add_widget(widget) + + +def test_widget(widget_class, size=None, title=None, options=True): """Test widget""" from qwt.qt.QtGui import QApplication app = QApplication([]) - widget = widget_class() + window = widget = widget_class() + if options: + if isinstance(widget, QMainWindow): + original_central_widget = window.centralWidget() + original_central_widget.setParent(None) + new_central_widget = TestCentralWidget() + window.setCentralWidget(new_central_widget) + new_central_widget.add_widget(original_central_widget) + else: + window = TestWindow() + window.add_widget(widget) if title is None: from qwt import __version__ title = 'Test "%s" - PythonQwt %s' % (widget_class.__name__, __version__) - widget.setWindowTitle(title) + window.setWindowTitle(title) if size is not None: width, height = size - widget.resize(width, height) - widget.show() + window.resize(width, height) + + window.show() if os.environ.get("TEST_UNATTENDED") is None: app.exec_() return app @@ -79,4 +234,3 @@ def test_widget(widget_class, size=None, title=None): if __name__ == '__main__': run() - \ No newline at end of file diff --git a/qwt/tests/BodeDemo.py b/qwt/tests/bode.py similarity index 95% rename from qwt/tests/BodeDemo.py rename to qwt/tests/bode.py index 7f86594..30ab1ba 100644 --- a/qwt/tests/BodeDemo.py +++ b/qwt/tests/bode.py @@ -85,6 +85,7 @@ def __init__(self, *args): self.grid = QwtPlotGrid() self.grid.enableXMin(True) self.grid.attach(self) + self.grid.setPen(QPen(Qt.darkGray, 1, Qt.DotLine)) # axes self.enableAxis(QwtPlot.yRight) @@ -110,7 +111,7 @@ def __init__(self, *args): self.curve2.attach(self) # alias - fn = self.fontInfo().family() + fn = "Helvetica" # marker self.dB3Marker = m = QwtPlotMarker() @@ -119,9 +120,9 @@ def __init__(self, *args): m.setLabelAlignment(Qt.AlignRight | Qt.AlignBottom) m.setLinePen(QPen(Qt.green, 2, Qt.DashDotLine)) text = QwtText('') - text.setColor(Qt.green) + text.setColor(Qt.white) text.setBackgroundBrush(Qt.red) - text.setFont(QFont(fn, 12, QFont.Bold)) + text.setFont(QFont(fn, 10, QFont.Light)) m.setLabel(text) m.attach(self) @@ -132,7 +133,7 @@ def __init__(self, *args): text = QwtText('') text.setColor(Qt.red) text.setBackgroundBrush(QBrush(self.canvasBackground())) - text.setFont(QFont(fn, 12, QFont.Bold)) + text.setFont(QFont(fn, 10, QFont.Bold)) m.setLabel(text) m.setSymbol(QwtSymbol(QwtSymbol.Diamond, @@ -149,10 +150,11 @@ def __init__(self, *args): '[1-(\u03c9/\u03c90)2+2j\u03c9/Q]' '-1' ) - text.setFont(QFont(fn, 12, QFont.Bold)) - text.setColor(Qt.blue) - text.setBackgroundBrush(QBrush(Qt.yellow)) - text.setBorderPen(QPen(Qt.red, 2)) + text.setFont(QFont(fn, 10, QFont.Bold)) + text.setColor(Qt.white) + text.setBackgroundBrush(QBrush(Qt.lightGray)) + text.setBorderPen(QPen(Qt.lightGray, 5)) + text.setBorderRadius(2) m.setLabel(text) m.attach(self) @@ -280,4 +282,4 @@ def selected(self, _): if __name__ == '__main__': from qwt.tests import test_widget - app = test_widget(BodeDemo, (540, 400)) + app = test_widget(BodeDemo, (640, 480)) diff --git a/qwt/tests/CartesianDemo.py b/qwt/tests/cartesian.py similarity index 100% rename from qwt/tests/CartesianDemo.py rename to qwt/tests/cartesian.py diff --git a/qwt/tests/CPUplot.py b/qwt/tests/cpu_plot.py similarity index 100% rename from qwt/tests/CPUplot.py rename to qwt/tests/cpu_plot.py diff --git a/qwt/tests/CurveBenchmark.py b/qwt/tests/curve_benchmark1.py similarity index 99% rename from qwt/tests/CurveBenchmark.py rename to qwt/tests/curve_benchmark1.py index e309ef7..abf3f74 100644 --- a/qwt/tests/CurveBenchmark.py +++ b/qwt/tests/curve_benchmark1.py @@ -168,4 +168,4 @@ def run_benchmark(self, max_n, **kwargs): if __name__ == '__main__': from qwt.tests import test_widget - app = test_widget(BMDemo1) + app = test_widget(BMDemo1, options=False) diff --git a/qwt/tests/CurveStyles.py b/qwt/tests/curve_benchmark2.py similarity index 96% rename from qwt/tests/CurveStyles.py rename to qwt/tests/curve_benchmark2.py index 8694818..3e939c0 100644 --- a/qwt/tests/CurveStyles.py +++ b/qwt/tests/curve_benchmark2.py @@ -13,7 +13,7 @@ from qwt.qt.QtGui import QPen, QBrush from qwt.qt.QtCore import QSize, Qt -from qwt.tests import CurveBenchmark as cb +from qwt.tests import curve_benchmark1 as cb if cb.USE_PYQWT5: from PyQt4.Qwt5 import QwtSymbol @@ -64,4 +64,4 @@ def run_benchmark(self, max_n, **kwargs): if __name__ == '__main__': from qwt.tests import test_widget - app = test_widget(BMDemo2) + app = test_widget(BMDemo2, options=False) diff --git a/qwt/tests/CurveDemo1.py b/qwt/tests/curves1.py similarity index 98% rename from qwt/tests/CurveDemo1.py rename to qwt/tests/curves1.py index 14d198f..8c66a5c 100644 --- a/qwt/tests/CurveDemo1.py +++ b/qwt/tests/curves1.py @@ -116,4 +116,4 @@ def drawContents(self, painter): if __name__ == '__main__': from qwt.tests import test_widget - app = test_widget(CurveDemo1, size=(300, 600)) + app = test_widget(CurveDemo1, size=(300, 600), options=False) diff --git a/qwt/tests/CurveDemo2.py b/qwt/tests/curves2.py similarity index 98% rename from qwt/tests/CurveDemo2.py rename to qwt/tests/curves2.py index aae4232..5b29cd8 100644 --- a/qwt/tests/CurveDemo2.py +++ b/qwt/tests/curves2.py @@ -122,4 +122,4 @@ def newValues(self): if __name__ == '__main__': from qwt.tests import test_widget - app = test_widget(CurveDemo2) + app = test_widget(CurveDemo2, options=False) diff --git a/qwt/tests/DataDemo.py b/qwt/tests/data.py similarity index 100% rename from qwt/tests/DataDemo.py rename to qwt/tests/data.py diff --git a/qwt/tests/data/bode.png b/qwt/tests/data/bode.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3a34cfede48be3a30ec119fce2242b64b2ee7c GIT binary patch literal 25403 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 literal 0 HcmV?d00001 diff --git a/qwt/tests/data/cpu_plot.png b/qwt/tests/data/cpu_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..4ecea2d9618a7acd647f9ac7cac055d2a4433f67 GIT binary patch literal 37139 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 literal 0 HcmV?d00001 diff --git a/qwt/tests/data/map.png b/qwt/tests/data/map.png new file mode 100644 index 0000000000000000000000000000000000000000..6baf0936730de5cfb55da728d60663b68b73a225 GIT binary patch literal 23508 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 R17FNB4t5lB&Q>qx-vFO3PRRfO literal 0 HcmV?d00001 diff --git a/qwt/tests/data/simpleplot.png b/qwt/tests/data/simpleplot.png new file mode 100644 index 0000000000000000000000000000000000000000..fee9b2c1f5fceeebf09e898418f5bd64b5d198a1 GIT binary patch literal 7671 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 literal 0 HcmV?d00001 diff --git a/qwt/tests/data/vertical.png b/qwt/tests/data/vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6519ec00f4d557e5e1e48be091586e772cccc7 GIT binary patch literal 19913 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 Date: Sat, 15 Aug 2020 11:27:47 +0200 Subject: [PATCH 138/421] Test screenshots are now generated automatically (those integrated in test launcher) --- CHANGELOG.md | 2 +- qwt/tests/__init__.py | 147 ++++--- qwt/tests/{bode.py => bodedemo.py} | 211 +++++---- qwt/tests/cartesian.py | 37 +- qwt/tests/cpu_plot.py | 389 ----------------- qwt/tests/cpudemo.py | 401 ++++++++++++++++++ qwt/tests/curve_benchmark2.py | 67 --- ...curve_benchmark1.py => curvebenchmark1.py} | 126 +++--- qwt/tests/curvebenchmark2.py | 90 ++++ qwt/tests/{curves1.py => curvedemo1.py} | 55 +-- qwt/tests/{curves2.py => curvedemo2.py} | 76 ++-- qwt/tests/data.py | 45 +- qwt/tests/data/bode.png | Bin 25403 -> 0 bytes qwt/tests/data/bodedemo.png | Bin 0 -> 26025 bytes qwt/tests/data/cartesian.png | Bin 19646 -> 16647 bytes qwt/tests/data/cpu_plot.png | Bin 37139 -> 0 bytes qwt/tests/data/cpudemo.png | Bin 0 -> 38415 bytes qwt/tests/data/curve_benchmark1.png | Bin 70237 -> 0 bytes qwt/tests/data/curve_benchmark2.png | Bin 129327 -> 0 bytes qwt/tests/data/curvebenchmark1.png | Bin 0 -> 40648 bytes qwt/tests/data/curvebenchmark2.png | Bin 0 -> 114265 bytes qwt/tests/data/curvedemo1.png | Bin 0 -> 14140 bytes qwt/tests/data/curvedemo2.png | Bin 0 -> 8019 bytes qwt/tests/data/curves1.png | Bin 17760 -> 0 bytes qwt/tests/data/curves2.png | Bin 15297 -> 0 bytes qwt/tests/data/data.png | Bin 22914 -> 13168 bytes qwt/tests/data/errorbar.png | Bin 15322 -> 13001 bytes qwt/tests/data/eventfilter.png | Bin 8283 -> 8732 bytes qwt/tests/data/image.png | Bin 0 -> 61414 bytes qwt/tests/data/imageplot.png | Bin 104815 -> 0 bytes qwt/tests/data/logcurve.png | Bin 18212 -> 15871 bytes qwt/tests/data/map.png | Bin 23508 -> 0 bytes qwt/tests/data/mapdemo.png | Bin 0 -> 21019 bytes qwt/tests/data/multi.png | Bin 6012 -> 0 bytes qwt/tests/data/multidemo.png | Bin 0 -> 6724 bytes qwt/tests/data/simple.png | Bin 0 -> 12464 bytes qwt/tests/data/simpleplot.png | Bin 7671 -> 0 bytes qwt/tests/data/vertical.png | Bin 19913 -> 25579 bytes qwt/tests/errorbar.py | 149 ++++--- qwt/tests/eventfilter.py | 180 ++++---- qwt/tests/{imageplot.py => image.py} | 130 +++--- qwt/tests/logcurve.py | 20 +- qwt/tests/{map.py => mapdemo.py} | 40 +- qwt/tests/{multi.py => multidemo.py} | 28 +- qwt/tests/{simpleplot.py => simple.py} | 27 +- qwt/tests/vertical.py | 73 ++-- run_test_launcher.bat | 18 + basic_test.bat => run_unattended_tests.bat | 0 48 files changed, 1289 insertions(+), 1022 deletions(-) rename qwt/tests/{bode.py => bodedemo.py} (61%) delete mode 100644 qwt/tests/cpu_plot.py create mode 100644 qwt/tests/cpudemo.py delete mode 100644 qwt/tests/curve_benchmark2.py rename qwt/tests/{curve_benchmark1.py => curvebenchmark1.py} (60%) create mode 100644 qwt/tests/curvebenchmark2.py rename qwt/tests/{curves1.py => curvedemo1.py} (71%) rename qwt/tests/{curves2.py => curvedemo2.py} (61%) delete mode 100644 qwt/tests/data/bode.png create mode 100644 qwt/tests/data/bodedemo.png delete mode 100644 qwt/tests/data/cpu_plot.png create mode 100644 qwt/tests/data/cpudemo.png delete mode 100644 qwt/tests/data/curve_benchmark1.png delete mode 100644 qwt/tests/data/curve_benchmark2.png create mode 100644 qwt/tests/data/curvebenchmark1.png create mode 100644 qwt/tests/data/curvebenchmark2.png create mode 100644 qwt/tests/data/curvedemo1.png create mode 100644 qwt/tests/data/curvedemo2.png delete mode 100644 qwt/tests/data/curves1.png delete mode 100644 qwt/tests/data/curves2.png create mode 100644 qwt/tests/data/image.png delete mode 100644 qwt/tests/data/imageplot.png delete mode 100644 qwt/tests/data/map.png create mode 100644 qwt/tests/data/mapdemo.png delete mode 100644 qwt/tests/data/multi.png create mode 100644 qwt/tests/data/multidemo.png create mode 100644 qwt/tests/data/simple.png delete mode 100644 qwt/tests/data/simpleplot.png rename qwt/tests/{imageplot.py => image.py} (62%) rename qwt/tests/{map.py => mapdemo.py} (76%) rename qwt/tests/{multi.py => multidemo.py} (80%) rename qwt/tests/{simpleplot.py => simple.py} (76%) create mode 100644 run_test_launcher.bat rename basic_test.bat => run_unattended_tests.bat (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9948fa6..ac61ab6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ### Version 0.7.0 ### -- Added new test launcher +- Added new test launcher with screenshots (automatically generated) - QwtPlot: added "flatStyle" option, a PythonQwt-exclusive feature improving default plot style (without margin, more compact and flat look) -- option is enabled by default diff --git a/qwt/tests/__init__.py b/qwt/tests/__init__.py index 30f6240..ebdafff 100644 --- a/qwt/tests/__init__.py +++ b/qwt/tests/__init__.py @@ -16,10 +16,25 @@ import sys import subprocess import platform -from qwt.qt.QtGui import (QWidget, QMainWindow, QVBoxLayout, QFormLayout, - QCheckBox, QGroupBox, QGridLayout, QToolButton, - QStyle, QToolBar, QAction, QIcon, QMessageBox) -from qwt.qt.QtCore import Qt, QSize +from qwt.qt.QtGui import ( + QApplication, + QWidget, + QMainWindow, + QVBoxLayout, + QFormLayout, + QCheckBox, + QGroupBox, + QGridLayout, + QToolButton, + QStyle, + QToolBar, + QAction, + QIcon, + QMessageBox, + QPixmap, +) +from qwt.qt.QtCore import Qt, QSize, QTimer +from qwt.qt import PYQT5 from qwt import QwtPlot @@ -28,8 +43,8 @@ def run_test(fname, wait=False): """Run test""" - os.environ['PYTHONPATH'] = os.pathsep.join(sys.path) - args = " ".join([sys.executable, '"'+fname+'"']) + os.environ["PYTHONPATH"] = os.pathsep.join(sys.path) + args = " ".join([sys.executable, '"' + fname + '"']) if os.environ.get("TEST_UNATTENDED") is not None: print(args) if wait: @@ -40,18 +55,22 @@ def run_test(fname, wait=False): def get_tests(package): """Return list of test filenames""" - test_package_name = '%s.tests' % package.__name__ + test_package_name = "%s.tests" % package.__name__ _temp = __import__(test_package_name) test_package = sys.modules[test_package_name] tests = [] test_path = osp.dirname(osp.realpath(test_package.__file__)) - for fname in sorted([name for name in os.listdir(test_path) - if name.endswith(('.py', '.pyw')) and\ - not name.startswith('_')]): + for fname in sorted( + [ + name + for name in os.listdir(test_path) + if name.endswith((".py", ".pyw")) and not name.startswith("_") + ] + ): module_name = osp.splitext(fname)[0] _temp = __import__(test_package.__name__, fromlist=[module_name]) module = getattr(_temp, module_name) - if hasattr(module, 'SHOW') and module.SHOW: + if hasattr(module, "SHOW") and module.SHOW: tests.append(osp.abspath(osp.join(test_path, fname))) return tests @@ -59,16 +78,20 @@ def get_tests(package): def run_all_tests(wait): """Run all PythonQwt tests""" import qwt + for fname in get_tests(qwt): run_test(fname, wait=wait) class TestLauncher(QMainWindow): """PythonQwt Test Launcher main window""" + ROWS = 5 + def __init__(self, parent=None): super(TestLauncher, self).__init__(parent) from qwt import __version__ + self.setWindowIcon(self.get_std_icon("FileDialogListView")) self.setWindowTitle("PythonQwt %s - Test Launcher" % __version__) self.setCentralWidget(QWidget()) @@ -86,6 +109,7 @@ def get_std_icon(self, name): def fill_layout(self): """Fill grid layout""" import qwt + for fname in get_tests(qwt): self.add_test(fname) toolbar = QToolBar(self) @@ -112,8 +136,8 @@ def add_test(self, fname): if self.test_nb is None: self.test_nb = 0 self.test_nb += 1 - row = (self.test_nb-1) % self.ROWS - column = (self.test_nb-1) // self.ROWS + row = (self.test_nb - 1) % self.ROWS + column = (self.test_nb - 1) // self.ROWS bname = osp.basename(fname) button = QToolButton(self) button.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) @@ -127,22 +151,31 @@ def add_test(self, fname): button.setIconSize(QSize(130, 80)) button.clicked.connect(lambda checked, fname=fname: run_test(fname)) self.grid_layout.addWidget(button, row, column) - + def about(self): """About test launcher""" from qwt.qt.QtCore import __version__ as qt_version - QMessageBox.about( self, "About "+self.windowTitle(), - """%s

Developped by Pierre Raybaut + + QMessageBox.about( + self, + "About " + self.windowTitle(), + """%s

Developped by Pierre Raybaut
Copyright © 2020 Pierre Raybaut -

Python %s, Qt %s on %s""" % \ - (self.windowTitle(), platform.python_version(), - qt_version, platform.system()) ) +

Python %s, Qt %s on %s""" + % ( + self.windowTitle(), + platform.python_version(), + qt_version, + platform.system(), + ), + ) def run(wait=True): """Run PythonQwt tests or test launcher (requires `guidata`)""" if os.environ.get("TEST_UNATTENDED") is None: from qwt.qt.QtGui import QApplication + app = QApplication([]) launcher = TestLauncher() launcher.show() @@ -153,6 +186,7 @@ def run(wait=True): class TestOptions(QGroupBox): """Test options groupbox""" + def __init__(self, parent=None): super(TestOptions, self).__init__("Test options", parent) self.setLayout(QFormLayout()) @@ -169,68 +203,85 @@ def add_checkbox(self, title, label, slot): class TestCentralWidget(QWidget): """Test central widget""" - def __init__(self, parent=None): + + def __init__(self, widget_name, parent=None): super(TestCentralWidget, self).__init__(parent) + self.widget_name = widget_name + self.plots = None self.setLayout(QVBoxLayout()) self.options = TestOptions(self) self.add_widget(self.options) + @property + def widget_of_interest(self): + """Return widget of interest (screenshot)""" + if len(self.plots) == 1: + return self.plots[0] + else: + return self.parent() + def add_widget(self, widget): """Add new sub-widget""" self.layout().addWidget(widget) if isinstance(widget, QwtPlot): - plots = [widget] + self.plots = [widget] else: - plots = widget.findChildren(QwtPlot) - for index, plot in enumerate(plots): + self.plots = widget.findChildren(QwtPlot) + for index, plot in enumerate(self.plots): plot_name = plot.objectName() if not plot_name: plot_name = "Plot #%d" % (index + 1) - widget = self.options.add_checkbox(plot_name, - "Enable new flat style option", plot.setFlatStyle) + widget = self.options.add_checkbox( + plot_name, "Enable new flat style option", plot.setFlatStyle + ) widget.setChecked(plot.flatStyle()) -class TestWindow(QMainWindow): - """Test main window""" - def __init__(self): - super(TestWindow, self).__init__() - self.setCentralWidget(TestCentralWidget()) - - def add_widget(self, widget): - """Add new sub-widget to central widget""" - self.centralWidget().add_widget(widget) +def take_screenshot(widget): + """Take screenshot and save it to the data folder""" + if PYQT5: + pixmap = widget.grab() + else: + pixmap = QPixmap.grabWidget(widget) + bname = (widget.objectName().lower() + ".png").replace("window", "") + bname = bname.replace("plot", "").replace("widget", "") + pixmap.save(osp.join(TEST_PATH, "data", bname)) + QTimer.singleShot(0, QApplication.instance().quit) -def test_widget(widget_class, size=None, title=None, options=True): +def test_widget(widget_class, size=None, title=None, options=True, timeout=1000): """Test widget""" - from qwt.qt.QtGui import QApplication + widget_name = widget_class.__name__ app = QApplication([]) window = widget = widget_class() if options: if isinstance(widget, QMainWindow): - original_central_widget = window.centralWidget() - original_central_widget.setParent(None) - new_central_widget = TestCentralWidget() - window.setCentralWidget(new_central_widget) - new_central_widget.add_widget(original_central_widget) + widget = window.centralWidget() + widget.setParent(None) else: - window = TestWindow() - window.add_widget(widget) + window = QMainWindow() + central_widget = TestCentralWidget(widget_name) + central_widget.add_widget(widget) + window.setCentralWidget(central_widget) + widget_of_interest = central_widget.widget_of_interest + else: + widget_of_interest = window + widget_of_interest.setObjectName(widget_name) if title is None: from qwt import __version__ - title = 'Test "%s" - PythonQwt %s' % (widget_class.__name__, - __version__) + + title = 'Test "%s" - PythonQwt %s' % (widget_name, __version__) window.setWindowTitle(title) if size is not None: width, height = size window.resize(width, height) window.show() - if os.environ.get("TEST_UNATTENDED") is None: - app.exec_() + if os.environ.get("TEST_UNATTENDED") is not None: + QTimer.singleShot(timeout, lambda: take_screenshot(widget_of_interest)) + app.exec_() return app -if __name__ == '__main__': +if __name__ == "__main__": run() diff --git a/qwt/tests/bode.py b/qwt/tests/bodedemo.py similarity index 61% rename from qwt/tests/bode.py rename to qwt/tests/bodedemo.py index 30ab1ba..c0416e5 100644 --- a/qwt/tests/bode.py +++ b/qwt/tests/bodedemo.py @@ -2,78 +2,101 @@ # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) from __future__ import unicode_literals -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import numpy as np -from qwt.qt.QtGui import (QPen, QBrush, QFrame, QFont, QWidget, QMainWindow, - QToolButton, QIcon, QPixmap, QToolBar, QHBoxLayout, - QLabel, QPrinter, QPrintDialog) +from qwt.qt.QtGui import ( + QPen, + QBrush, + QFrame, + QFont, + QWidget, + QMainWindow, + QToolButton, + QIcon, + QPixmap, + QToolBar, + QHBoxLayout, + QLabel, + QPrinter, + QPrintDialog, +) from qwt.qt.QtCore import QSize, Qt -from qwt import (QwtPlot, QwtPlotMarker, QwtSymbol, QwtLegend, QwtPlotGrid, - QwtPlotCurve, QwtPlotItem, QwtLogScaleEngine, QwtText, - QwtPlotRenderer) - - -print_xpm = ['32 32 12 1', - 'a c #ffffff', - 'h c #ffff00', - 'c c #ffffff', - 'f c #dcdcdc', - 'b c #c0c0c0', - 'j c #a0a0a4', - 'e c #808080', - 'g c #808000', - 'd c #585858', - 'i c #00ff00', - '# c #000000', - '. c None', - '................................', - '................................', - '...........###..................', - '..........#abb###...............', - '.........#aabbbbb###............', - '.........#ddaaabbbbb###.........', - '........#ddddddaaabbbbb###......', - '.......#deffddddddaaabbbbb###...', - '......#deaaabbbddddddaaabbbbb###', - '.....#deaaaaaaabbbddddddaaabbbb#', - '....#deaaabbbaaaa#ddedddfggaaad#', - '...#deaaaaaaaaaa#ddeeeeafgggfdd#', - '..#deaaabbbaaaa#ddeeeeabbbbgfdd#', - '.#deeefaaaaaaa#ddeeeeabbhhbbadd#', - '#aabbbeeefaaa#ddeeeeabbbbbbaddd#', - '#bbaaabbbeee#ddeeeeabbiibbadddd#', - '#bbbbbaaabbbeeeeeeabbbbbbaddddd#', - '#bjbbbbbbaaabbbbeabbbbbbadddddd#', - '#bjjjjbbbbbbaaaeabbbbbbaddddddd#', - '#bjaaajjjbbbbbbaaabbbbadddddddd#', - '#bbbbbaaajjjbbbbbbaaaaddddddddd#', - '#bjbbbbbbaaajjjbbbbbbddddddddd#.', - '#bjjjjbbbbbbaaajjjbbbdddddddd#..', - '#bjaaajjjbbbbbbjaajjbddddddd#...', - '#bbbbbaaajjjbbbjbbaabdddddd#....', - '###bbbbbbaaajjjjbbbbbddddd#.....', - '...###bbbbbbaaajbbbbbdddd#......', - '......###bbbbbbjbbbbbddd#.......', - '.........###bbbbbbbbbdd#........', - '............###bbbbbbd#.........', - '...............###bbb#..........', - '..................###...........'] +from qwt import ( + QwtPlot, + QwtPlotMarker, + QwtSymbol, + QwtLegend, + QwtPlotGrid, + QwtPlotCurve, + QwtPlotItem, + QwtLogScaleEngine, + QwtText, + QwtPlotRenderer, +) + + +print_xpm = [ + "32 32 12 1", + "a c #ffffff", + "h c #ffff00", + "c c #ffffff", + "f c #dcdcdc", + "b c #c0c0c0", + "j c #a0a0a4", + "e c #808080", + "g c #808000", + "d c #585858", + "i c #00ff00", + "# c #000000", + ". c None", + "................................", + "................................", + "...........###..................", + "..........#abb###...............", + ".........#aabbbbb###............", + ".........#ddaaabbbbb###.........", + "........#ddddddaaabbbbb###......", + ".......#deffddddddaaabbbbb###...", + "......#deaaabbbddddddaaabbbbb###", + ".....#deaaaaaaabbbddddddaaabbbb#", + "....#deaaabbbaaaa#ddedddfggaaad#", + "...#deaaaaaaaaaa#ddeeeeafgggfdd#", + "..#deaaabbbaaaa#ddeeeeabbbbgfdd#", + ".#deeefaaaaaaa#ddeeeeabbhhbbadd#", + "#aabbbeeefaaa#ddeeeeabbbbbbaddd#", + "#bbaaabbbeee#ddeeeeabbiibbadddd#", + "#bbbbbaaabbbeeeeeeabbbbbbaddddd#", + "#bjbbbbbbaaabbbbeabbbbbbadddddd#", + "#bjjjjbbbbbbaaaeabbbbbbaddddddd#", + "#bjaaajjjbbbbbbaaabbbbadddddddd#", + "#bbbbbaaajjjbbbbbbaaaaddddddddd#", + "#bjbbbbbbaaajjjbbbbbbddddddddd#.", + "#bjjjjbbbbbbaaajjjbbbdddddddd#..", + "#bjaaajjjbbbbbbjaajjbddddddd#...", + "#bbbbbaaajjjbbbjbbaabdddddd#....", + "###bbbbbbaaajjjjbbbbbddddd#.....", + "...###bbbbbbaaajbbbbbdddd#......", + "......###bbbbbbjbbbbbddd#.......", + ".........###bbbbbbbbbdd#........", + "............###bbbbbbd#.........", + "...............###bbb#..........", + "..................###...........", +] class BodePlot(QwtPlot): - def __init__(self, *args): QwtPlot.__init__(self, *args) - self.setTitle('Frequency Response of a 2nd-order System') + self.setTitle("Frequency Response of a 2nd-order System") self.setCanvasBackground(Qt.darkBlue) # legend @@ -89,23 +112,23 @@ def __init__(self, *args): # axes self.enableAxis(QwtPlot.yRight) - self.setAxisTitle(QwtPlot.xBottom, '\u03c9/\u03c90') - self.setAxisTitle(QwtPlot.yLeft, 'Amplitude [dB]') - self.setAxisTitle(QwtPlot.yRight, 'Phase [\u00b0]') + self.setAxisTitle(QwtPlot.xBottom, "\u03c9/\u03c90") + self.setAxisTitle(QwtPlot.yLeft, "Amplitude [dB]") + self.setAxisTitle(QwtPlot.yRight, "Phase [\u00b0]") self.setAxisMaxMajor(QwtPlot.xBottom, 6) self.setAxisMaxMinor(QwtPlot.xBottom, 10) self.setAxisScaleEngine(QwtPlot.xBottom, QwtLogScaleEngine()) # curves - self.curve1 = QwtPlotCurve('Amplitude') - self.curve1.setRenderHint(QwtPlotItem.RenderAntialiased); + self.curve1 = QwtPlotCurve("Amplitude") + self.curve1.setRenderHint(QwtPlotItem.RenderAntialiased) self.curve1.setPen(QPen(Qt.yellow)) self.curve1.setYAxis(QwtPlot.yLeft) self.curve1.attach(self) - - self.curve2 = QwtPlotCurve('Phase') - self.curve2.setRenderHint(QwtPlotItem.RenderAntialiased); + + self.curve2 = QwtPlotCurve("Phase") + self.curve2.setRenderHint(QwtPlotItem.RenderAntialiased) self.curve2.setPen(QPen(Qt.cyan)) self.curve2.setYAxis(QwtPlot.yRight) self.curve2.attach(self) @@ -119,7 +142,7 @@ def __init__(self, *args): m.setLineStyle(QwtPlotMarker.VLine) m.setLabelAlignment(Qt.AlignRight | Qt.AlignBottom) m.setLinePen(QPen(Qt.green, 2, Qt.DashDotLine)) - text = QwtText('') + text = QwtText("") text.setColor(Qt.white) text.setBackgroundBrush(Qt.red) text.setFont(QFont(fn, 10, QFont.Light)) @@ -130,16 +153,15 @@ def __init__(self, *args): m.setLineStyle(QwtPlotMarker.HLine) m.setLabelAlignment(Qt.AlignRight | Qt.AlignBottom) m.setLinePen(QPen(Qt.red, 2, Qt.DashDotLine)) - text = QwtText('') + text = QwtText("") text.setColor(Qt.red) text.setBackgroundBrush(QBrush(self.canvasBackground())) text.setFont(QFont(fn, 10, QFont.Bold)) - + m.setLabel(text) - m.setSymbol(QwtSymbol(QwtSymbol.Diamond, - QBrush(Qt.yellow), - QPen(Qt.green), - QSize(7,7))) + m.setSymbol( + QwtSymbol(QwtSymbol.Diamond, QBrush(Qt.yellow), QPen(Qt.green), QSize(7, 7)) + ) m.attach(self) # text marker @@ -147,9 +169,8 @@ def __init__(self, *args): m.setValue(0.1, -20.0) m.setLabelAlignment(Qt.AlignRight | Qt.AlignBottom) text = QwtText( - '[1-(\u03c9/\u03c90)2+2j\u03c9/Q]' - '-1' - ) + "[1-(\u03c9/\u03c90)2+2j\u03c9/Q]" "-1" + ) text.setFont(QFont(fn, 10, QFont.Bold)) text.setColor(Qt.white) text.setBackgroundBrush(QBrush(Qt.lightGray)) @@ -167,25 +188,25 @@ def showData(self, frequency, amplitude, phase): def showPeak(self, frequency, amplitude): self.peakMarker.setValue(frequency, amplitude) label = self.peakMarker.label() - label.setText('Peak: %4g dB' % amplitude) + label.setText("Peak: %4g dB" % amplitude) self.peakMarker.setLabel(label) def show3dB(self, frequency): self.dB3Marker.setValue(frequency, 0.0) label = self.dB3Marker.label() - label.setText('-3dB at f = %4g' % frequency) + label.setText("-3dB at f = %4g" % frequency) self.dB3Marker.setLabel(label) def setDamp(self, d): self.damping = d # Numerical Python: f, g, a and p are NumPy arrays! - f = np.exp(np.log(10.0)*np.arange(-2, 2.02, 0.04)) - g = 1.0/(1.0-f*f+2j*self.damping*f) - a = 20.0*np.log10(abs(g)) - p = 180*np.arctan2(g.imag, g.real)/np.pi + f = np.exp(np.log(10.0) * np.arange(-2, 2.02, 0.04)) + g = 1.0 / (1.0 - f * f + 2j * self.damping * f) + a = 20.0 * np.log10(abs(g)) + p = 180 * np.arctan2(g.imag, g.real) / np.pi # for show3dB i3 = np.argmax(np.where(np.less(a, -3.0), a, -100.0)) - f3 = f[i3] - (a[i3]+3.0)*(f[i3]-f[i3-1])/(a[i3]-a[i3-1]) + f3 = f[i3] - (a[i3] + 3.0) * (f[i3] - f[i3 - 1]) / (a[i3] - a[i3 - 1]) # for showPeak imax = np.argmax(a) @@ -197,7 +218,6 @@ def setDamp(self, d): class BodeDemo(QMainWindow): - def __init__(self, *args): QMainWindow.__init__(self, *args) @@ -205,7 +225,7 @@ def __init__(self, *args): self.plot.setContentsMargins(5, 5, 5, 0) self.setContextMenuPolicy(Qt.NoContextMenu) - + self.setCentralWidget(self.plot) toolBar = QToolBar(self) @@ -224,38 +244,38 @@ def __init__(self, *args): btnExport.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) toolBar.addWidget(btnExport) btnExport.clicked.connect(self.exportDocument) - + toolBar.addSeparator() dampBox = QWidget(toolBar) dampLayout = QHBoxLayout(dampBox) dampLayout.setSpacing(0) - dampLayout.addWidget(QWidget(dampBox), 10) # spacer + dampLayout.addWidget(QWidget(dampBox), 10) # spacer dampLayout.addWidget(QLabel("Damping Factor", dampBox), 0) dampLayout.addSpacing(10) toolBar.addWidget(dampBox) self.statusBar() - + self.showInfo() def print_(self): printer = QPrinter(QPrinter.HighResolution) - printer.setCreator('Bode example') + printer.setCreator("Bode example") printer.setOrientation(QPrinter.Landscape) printer.setColorMode(QPrinter.Color) docName = str(self.plot.title().text()) if not docName: - docName.replace('\n', ' -- ') + docName.replace("\n", " -- ") printer.setDocName(docName) dialog = QPrintDialog(printer) if dialog.exec_(): renderer = QwtPlotRenderer() - if (QPrinter.GrayScale == printer.colorMode()): + if QPrinter.GrayScale == printer.colorMode(): renderer.setDiscardFlag(QwtPlotRenderer.DiscardBackground) renderer.setDiscardFlag(QwtPlotRenderer.DiscardCanvasBackground) renderer.setDiscardFlag(QwtPlotRenderer.DiscardCanvasFrame) @@ -265,21 +285,24 @@ def print_(self): def exportDocument(self): renderer = QwtPlotRenderer(self.plot) renderer.exportTo(self.plot, "bode") - + def showInfo(self, text=""): self.statusBar().showMessage(text) - + def moved(self, point): info = "Freq=%g, Ampl=%g, Phase=%g" % ( self.plot.invTransform(QwtPlot.xBottom, point.x()), self.plot.invTransform(QwtPlot.yLeft, point.y()), - self.plot.invTransform(QwtPlot.yRight, point.y())) + self.plot.invTransform(QwtPlot.yRight, point.y()), + ) self.showInfo(info) def selected(self, _): self.showInfo() -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + import os + app = test_widget(BodeDemo, (640, 480)) diff --git a/qwt/tests/cartesian.py b/qwt/tests/cartesian.py index 1cbe960..68dc4ed 100644 --- a/qwt/tests/cartesian.py +++ b/qwt/tests/cartesian.py @@ -2,11 +2,11 @@ # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import numpy as np @@ -18,6 +18,7 @@ class CartesianAxis(QwtPlotItem): """Supports a coordinate system similar to http://en.wikipedia.org/wiki/Image:Cartesian-coordinate-system.svg""" + def __init__(self, masterAxis, slaveAxis): """Valid input values for masterAxis and slaveAxis are QwtPlot.yLeft, QwtPlot.yRight, QwtPlot.xBottom, and QwtPlot.xTop. When masterAxis is @@ -29,10 +30,14 @@ def __init__(self, masterAxis, slaveAxis): else: self.setAxes(masterAxis, slaveAxis) self.scaleDraw = QwtScaleDraw() - self.scaleDraw.setAlignment((QwtScaleDraw.LeftScale, - QwtScaleDraw.RightScale, - QwtScaleDraw.BottomScale, - QwtScaleDraw.TopScale)[masterAxis]) + self.scaleDraw.setAlignment( + ( + QwtScaleDraw.LeftScale, + QwtScaleDraw.RightScale, + QwtScaleDraw.BottomScale, + QwtScaleDraw.TopScale, + )[masterAxis] + ) def draw(self, painter, xMap, yMap, rect): """Draw an axis on the plot canvas""" @@ -40,10 +45,10 @@ def draw(self, painter, xMap, yMap, rect): ytr = yMap.transform if self.__axis in (QwtPlot.yLeft, QwtPlot.yRight): self.scaleDraw.move(round(xtr(0.0)), yMap.p2()) - self.scaleDraw.setLength(yMap.p1()-yMap.p2()) + self.scaleDraw.setLength(yMap.p1() - yMap.p2()) elif self.__axis in (QwtPlot.xBottom, QwtPlot.xTop): self.scaleDraw.move(xMap.p1(), round(ytr(0.0))) - self.scaleDraw.setLength(xMap.p2()-xMap.p1()) + self.scaleDraw.setLength(xMap.p2() - xMap.p1()) self.scaleDraw.setScaleDiv(self.plot().axisScaleDiv(self.__axis)) self.scaleDraw.draw(painter, self.plot().palette()) @@ -51,9 +56,10 @@ def draw(self, painter, xMap, yMap, rect): class CartesianPlot(QwtPlot): """Creates a coordinate system similar system http://en.wikipedia.org/wiki/Image:Cartesian-coordinate-system.svg""" + def __init__(self, *args): QwtPlot.__init__(self, *args) - self.setTitle('Cartesian Coordinate System Demo') + self.setTitle("Cartesian Coordinate System Demo") # create a plot with a white canvas self.setCanvasBackground(Qt.white) # set plot layout @@ -73,22 +79,23 @@ def __init__(self, *args): yaxis.attach(self) self.enableAxis(QwtPlot.yLeft, False) # calculate 3 NumPy arrays - x = np.arange(-2*np.pi, 2*np.pi, 0.01) - y = np.pi*np.sin(x) - z = 4*np.pi*np.cos(x)*np.cos(x)*np.sin(x) + x = np.arange(-2 * np.pi, 2 * np.pi, 0.01) + y = np.pi * np.sin(x) + z = 4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x) # attach a curve - curve = QwtPlotCurve('y = pi*sin(x)') + curve = QwtPlotCurve("y = pi*sin(x)") curve.attach(self) curve.setPen(QPen(Qt.green, 2)) curve.setData(x, y) # attach another curve - curve = QwtPlotCurve('y = 4*pi*sin(x)*cos(x)**2') + curve = QwtPlotCurve("y = 4*pi*sin(x)*cos(x)**2") curve.attach(self) curve.setPen(QPen(Qt.blue, 2)) curve.setData(x, z) self.replot() -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + test_widget(CartesianPlot, (800, 480)) diff --git a/qwt/tests/cpu_plot.py b/qwt/tests/cpu_plot.py deleted file mode 100644 index d271b0f..0000000 --- a/qwt/tests/cpu_plot.py +++ /dev/null @@ -1,389 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the PyQwt License -# Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further -# developments (e.g. ported to PythonQwt API) -# (see LICENSE file for more details) - -SHOW = True # Show test in GUI-based test launcher - -import os -import numpy as np - -from qwt.qt.QtGui import QColor, QBrush, QWidget, QVBoxLayout, QLabel -from qwt.qt.QtCore import QRect, QTime, Qt -from qwt import (QwtPlot, QwtPlotMarker, QwtScaleDraw, QwtLegend, QwtPlotCurve, - QwtPlotItem, QwtLegendData, QwtText) - - -class CpuStat: - User = 0 - Nice = 1 - System = 2 - Idle = 3 - counter = 0 - dummyValues = ( - ( 103726, 0, 23484, 819556 ), - ( 103783, 0, 23489, 819604 ), - ( 103798, 0, 23490, 819688 ), - ( 103820, 0, 23490, 819766 ), - ( 103840, 0, 23493, 819843 ), - ( 103875, 0, 23499, 819902 ), - ( 103917, 0, 23504, 819955 ), - ( 103950, 0, 23508, 820018 ), - ( 103987, 0, 23510, 820079 ), - ( 104020, 0, 23513, 820143 ), - ( 104058, 0, 23514, 820204 ), - ( 104099, 0, 23520, 820257 ), - ( 104121, 0, 23525, 820330 ), - ( 104159, 0, 23530, 820387 ), - ( 104176, 0, 23534, 820466 ), - ( 104215, 0, 23538, 820523 ), - ( 104245, 0, 23541, 820590 ), - ( 104267, 0, 23545, 820664 ), - ( 104311, 0, 23555, 820710 ), - ( 104355, 0, 23565, 820756 ), - ( 104367, 0, 23567, 820842 ), - ( 104383, 0, 23572, 820921 ), - ( 104396, 0, 23577, 821003 ), - ( 104413, 0, 23579, 821084 ), - ( 104446, 0, 23588, 821142 ), - ( 104521, 0, 23594, 821161 ), - ( 104611, 0, 23604, 821161 ), - ( 104708, 0, 23607, 821161 ), - ( 104804, 0, 23611, 821161 ), - ( 104895, 0, 23620, 821161 ), - ( 104993, 0, 23622, 821161 ), - ( 105089, 0, 23626, 821161 ), - ( 105185, 0, 23630, 821161 ), - ( 105281, 0, 23634, 821161 ), - ( 105379, 0, 23636, 821161 ), - ( 105472, 0, 23643, 821161 ), - ( 105569, 0, 23646, 821161 ), - ( 105666, 0, 23649, 821161 ), - ( 105763, 0, 23652, 821161 ), - ( 105828, 0, 23661, 821187 ), - ( 105904, 0, 23666, 821206 ), - ( 105999, 0, 23671, 821206 ), - ( 106094, 0, 23676, 821206 ), - ( 106184, 0, 23686, 821206 ), - ( 106273, 0, 23692, 821211 ), - ( 106306, 0, 23700, 821270 ), - ( 106341, 0, 23703, 821332 ), - ( 106392, 0, 23709, 821375 ), - ( 106423, 0, 23715, 821438 ), - ( 106472, 0, 23721, 821483 ), - ( 106531, 0, 23727, 821517 ), - ( 106562, 0, 23732, 821582 ), - ( 106597, 0, 23736, 821643 ), - ( 106633, 0, 23737, 821706 ), - ( 106666, 0, 23742, 821768 ), - ( 106697, 0, 23744, 821835 ), - ( 106730, 0, 23748, 821898 ), - ( 106765, 0, 23751, 821960 ), - ( 106799, 0, 23754, 822023 ), - ( 106831, 0, 23758, 822087 ), - ( 106862, 0, 23761, 822153 ), - ( 106899, 0, 23763, 822214 ), - ( 106932, 0, 23766, 822278 ), - ( 106965, 0, 23768, 822343 ), - ( 107009, 0, 23771, 822396 ), - ( 107040, 0, 23775, 822461 ), - ( 107092, 0, 23780, 822504 ), - ( 107143, 0, 23787, 822546 ), - ( 107200, 0, 23795, 822581 ), - ( 107250, 0, 23803, 822623 ), - ( 107277, 0, 23810, 822689 ), - ( 107286, 0, 23810, 822780 ), - ( 107313, 0, 23817, 822846 ), - ( 107325, 0, 23818, 822933 ), - ( 107332, 0, 23818, 823026 ), - ( 107344, 0, 23821, 823111 ), - ( 107357, 0, 23821, 823198 ), - ( 107368, 0, 23823, 823284 ), - ( 107375, 0, 23824, 823377 ), - ( 107386, 0, 23825, 823465 ), - ( 107396, 0, 23826, 823554 ), - ( 107422, 0, 23830, 823624 ), - ( 107434, 0, 23831, 823711 ), - ( 107456, 0, 23835, 823785 ), - ( 107468, 0, 23838, 823870 ), - ( 107487, 0, 23840, 823949 ), - ( 107515, 0, 23843, 824018 ), - ( 107528, 0, 23846, 824102 ), - ( 107535, 0, 23851, 824190 ), - ( 107548, 0, 23853, 824275 ), - ( 107562, 0, 23857, 824357 ), - ( 107656, 0, 23863, 824357 ), - ( 107751, 0, 23868, 824357 ), - ( 107849, 0, 23870, 824357 ), - ( 107944, 0, 23875, 824357 ), - ( 108043, 0, 23876, 824357 ), - ( 108137, 0, 23882, 824357 ), - ( 108230, 0, 23889, 824357 ), - ( 108317, 0, 23902, 824357 ), - ( 108412, 0, 23907, 824357 ), - ( 108511, 0, 23908, 824357 ), - ( 108608, 0, 23911, 824357 ), - ( 108704, 0, 23915, 824357 ), - ( 108801, 0, 23918, 824357 ), - ( 108891, 0, 23928, 824357 ), - ( 108987, 0, 23932, 824357 ), - ( 109072, 0, 23943, 824361 ), - ( 109079, 0, 23943, 824454 ), - ( 109086, 0, 23944, 824546 ), - ( 109098, 0, 23950, 824628 ), - ( 109108, 0, 23955, 824713 ), - ( 109115, 0, 23957, 824804 ), - ( 109122, 0, 23958, 824896 ), - ( 109132, 0, 23959, 824985 ), - ( 109142, 0, 23961, 825073 ), - ( 109146, 0, 23962, 825168 ), - ( 109153, 0, 23964, 825259 ), - ( 109162, 0, 23966, 825348 ), - ( 109168, 0, 23969, 825439 ), - ( 109176, 0, 23971, 825529 ), - ( 109185, 0, 23974, 825617 ), - ( 109193, 0, 23977, 825706 ), - ( 109198, 0, 23978, 825800 ), - ( 109206, 0, 23978, 825892 ), - ( 109212, 0, 23981, 825983 ), - ( 109219, 0, 23981, 826076 ), - ( 109225, 0, 23981, 826170 ), - ( 109232, 0, 23984, 826260 ), - ( 109242, 0, 23984, 826350 ), - ( 109255, 0, 23986, 826435 ), - ( 109268, 0, 23987, 826521 ), - ( 109283, 0, 23990, 826603 ), - ( 109288, 0, 23991, 826697 ), - ( 109295, 0, 23993, 826788 ), - ( 109308, 0, 23994, 826874 ), - ( 109322, 0, 24009, 826945 ), - ( 109328, 0, 24011, 827037 ), - ( 109338, 0, 24012, 827126 ), - ( 109347, 0, 24012, 827217 ), - ( 109354, 0, 24017, 827305 ), - ( 109367, 0, 24017, 827392 ), - ( 109371, 0, 24019, 827486 ), - ) - - def __init__(self): - self.procValues = self.__lookup() - - def statistic(self): - values = self.__lookup() - userDelta = 0. - for i in [CpuStat.User, CpuStat.Nice]: - userDelta += (values[i] - self.procValues[i]) - systemDelta = values[CpuStat.System] - self.procValues[CpuStat.System] - totalDelta = 0. - for i in range(len(self.procValues)): - totalDelta += (values[i] - self.procValues[i]) - self.procValues = values - return 100.*userDelta/totalDelta, 100.*systemDelta/totalDelta - - def upTime(self): - result = QTime() - for item in self.procValues: - result = result.addSecs(int(.01*item)) - return result - - def __lookup(self): - if os.path.exists("/proc/stat"): - for line in open("/proc/stat"): - words = line.split() - if words[0] == "cpu" and len(words) >= 5: - return [float(w) for w in words[1:]] - else: - result = CpuStat.dummyValues[CpuStat.counter] - CpuStat.counter += 1 - CpuStat.counter %= len(CpuStat.dummyValues) - return result - - -class CpuPieMarker(QwtPlotMarker): - def __init__(self, *args): - QwtPlotMarker.__init__(self, *args) - self.setZ(1000.) - self.setRenderHint(QwtPlotItem.RenderAntialiased, True) - - def rtti(self): - return QwtPlotItem.Rtti_PlotUserItem - - def draw(self, painter, xMap, yMap, rect): - margin = 5 - pieRect = QRect() - pieRect.setX(rect.x() + margin) - pieRect.setY(rect.y() + margin) - pieRect.setHeight(int(yMap.transform(80.))) - pieRect.setWidth(pieRect.height()) - - angle = 3*5760/4 - for key in ["User", "System", "Idle"]: - curve = self.plot().cpuPlotCurve(key) - if curve.dataSize(): - value = int(5760*curve.sample(0).y()/100.) - painter.save() - painter.setBrush(QBrush(curve.pen().color(), - Qt.SolidPattern)) - painter.drawPie(pieRect, int(-angle), int(-value)) - painter.restore() - angle += value - - -class TimeScaleDraw(QwtScaleDraw): - def __init__(self, baseTime, *args): - QwtScaleDraw.__init__(self, *args) - self.baseTime = baseTime - - def label(self, value): - upTime = self.baseTime.addSecs(int(value)) - return QwtText(upTime.toString()) - - -class Background(QwtPlotItem): - def __init__(self): - QwtPlotItem.__init__(self) - self.setZ(0.) - - def rtti(self): - return QwtPlotItem.Rtti_PlotUserItem - - def draw(self, painter, xMap, yMap, rect): - c = QColor(Qt.white) - r = QRect(rect) - - for i in range(100, 0, -10): - r.setBottom(int(yMap.transform(i - 10))) - r.setTop(int(yMap.transform(i))) - painter.fillRect(r, c) - c = c.darker(110) - - -class CpuCurve(QwtPlotCurve): - def __init__(self, *args): - QwtPlotCurve.__init__(self, *args) - self.setRenderHint(QwtPlotItem.RenderAntialiased) - - def setColor(self, color): - c = QColor(color) - c.setAlpha(150) - - self.setPen(c) - self.setBrush(c) - - -HISTORY = 60 - -class CpuPlot(QwtPlot): - def __init__(self, *args): - QwtPlot.__init__(self, *args) - - self.curves = {} - self.data = {} - self.timeData = 1. * np.arange(HISTORY-1, -1, -1) - self.cpuStat = CpuStat() - - self.setAutoReplot(False) - - self.plotLayout().setAlignCanvasToScales(True) - - legend = QwtLegend() - legend.setDefaultItemMode(QwtLegendData.Checkable) - self.insertLegend(legend, QwtPlot.RightLegend) - - self.setAxisTitle(QwtPlot.xBottom, "System Uptime [h:m:s]") - self.setAxisScaleDraw( - QwtPlot.xBottom, TimeScaleDraw(self.cpuStat.upTime())) - self.setAxisScale(QwtPlot.xBottom, 0, HISTORY) - self.setAxisLabelRotation(QwtPlot.xBottom, -50.) - self.setAxisLabelAlignment( - QwtPlot.xBottom, Qt.AlignLeft | Qt.AlignBottom) - - self.setAxisTitle(QwtPlot.yLeft, "Cpu Usage [%]") - self.setAxisScale(QwtPlot.yLeft, 0, 100) - - background = Background() - background.attach(self) - - pie = CpuPieMarker() - pie.attach(self) - - curve = CpuCurve('System') - curve.setColor(Qt.red) - curve.attach(self) - self.curves['System'] = curve - self.data['System'] = np.zeros(HISTORY, np.float) - - curve = CpuCurve('User') - curve.setColor(Qt.blue) - curve.setZ(curve.z() - 1.) - curve.attach(self) - self.curves['User'] = curve - self.data['User'] = np.zeros(HISTORY, np.float) - - curve = CpuCurve('Total') - curve.setColor(Qt.black) - curve.setZ(curve.z() - 2.) - curve.attach(self) - self.curves['Total'] = curve - self.data['Total'] = np.zeros(HISTORY, np.float) - - curve = CpuCurve('Idle') - curve.setColor(Qt.darkCyan) - curve.setZ(curve.z() - 3.) - curve.attach(self) - self.curves['Idle'] = curve - self.data['Idle'] = np.zeros(HISTORY, np.float) - - self.showCurve(self.curves['System'], True) - self.showCurve(self.curves['User'], True) - self.showCurve(self.curves['Total'], False) - self.showCurve(self.curves['Idle'], False) - - self.startTimer(1000) - - legend.checked.connect(self.showCurve) - self.replot() - - def timerEvent(self, e): - for data in self.data.values(): - data[1:] = data[0:-1] - self.data["User"][0], self.data["System"][0] = self.cpuStat.statistic() - self.data["Total"][0] = self.data["User"][0] + self.data["System"][0] - self.data["Idle"][0] = 100. - self.data["Total"][0] - - self.timeData += 1. - - self.setAxisScale( - QwtPlot.xBottom, self.timeData[-1], self.timeData[0]) - for key in self.curves.keys(): - self.curves[key].setData(self.timeData, self.data[key]) - - self.replot() - - def showCurve(self, item, on, index=None): - item.setVisible(on) - self.legend().legendWidget(item).setChecked(on) - self.replot() - - def cpuPlotCurve(self, key): - return self.curves[key] - - -class CpuWidget(QWidget): - def __init__(self, parent=None): - super(CpuWidget, self).__init__(parent) - layout = QVBoxLayout() - self.setLayout(layout) - plot = CpuPlot() - plot.setTitle("History") - layout.addWidget(plot) - label = QLabel("Press the legend to en/disable a curve") - layout.addWidget(label) - - -if __name__ == '__main__': - from qwt.tests import test_widget - app = test_widget(CpuWidget, (600, 400)) diff --git a/qwt/tests/cpudemo.py b/qwt/tests/cpudemo.py new file mode 100644 index 0000000..87bd285 --- /dev/null +++ b/qwt/tests/cpudemo.py @@ -0,0 +1,401 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the terms of the PyQwt License +# Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# developments (e.g. ported to PythonQwt API) +# (see LICENSE file for more details) + +SHOW = True # Show test in GUI-based test launcher + +import os +import numpy as np + +from qwt.qt.QtGui import QColor, QBrush, QWidget, QVBoxLayout, QLabel +from qwt.qt.QtCore import QRect, QTime, Qt +from qwt import ( + QwtPlot, + QwtPlotMarker, + QwtScaleDraw, + QwtLegend, + QwtPlotCurve, + QwtPlotItem, + QwtLegendData, + QwtText, +) + +TIMER_INTERVAL = 1000 +SHOW_ALL_CURVES = False + + +class CpuStat: + User = 0 + Nice = 1 + System = 2 + Idle = 3 + counter = 0 + dummyValues = ( + (103726, 0, 23484, 819556), + (103783, 0, 23489, 819604), + (103798, 0, 23490, 819688), + (103820, 0, 23490, 819766), + (103840, 0, 23493, 819843), + (103875, 0, 23499, 819902), + (103917, 0, 23504, 819955), + (103950, 0, 23508, 820018), + (103987, 0, 23510, 820079), + (104020, 0, 23513, 820143), + (104058, 0, 23514, 820204), + (104099, 0, 23520, 820257), + (104121, 0, 23525, 820330), + (104159, 0, 23530, 820387), + (104176, 0, 23534, 820466), + (104215, 0, 23538, 820523), + (104245, 0, 23541, 820590), + (104267, 0, 23545, 820664), + (104311, 0, 23555, 820710), + (104355, 0, 23565, 820756), + (104367, 0, 23567, 820842), + (104383, 0, 23572, 820921), + (104396, 0, 23577, 821003), + (104413, 0, 23579, 821084), + (104446, 0, 23588, 821142), + (104521, 0, 23594, 821161), + (104611, 0, 23604, 821161), + (104708, 0, 23607, 821161), + (104804, 0, 23611, 821161), + (104895, 0, 23620, 821161), + (104993, 0, 23622, 821161), + (105089, 0, 23626, 821161), + (105185, 0, 23630, 821161), + (105281, 0, 23634, 821161), + (105379, 0, 23636, 821161), + (105472, 0, 23643, 821161), + (105569, 0, 23646, 821161), + (105666, 0, 23649, 821161), + (105763, 0, 23652, 821161), + (105828, 0, 23661, 821187), + (105904, 0, 23666, 821206), + (105999, 0, 23671, 821206), + (106094, 0, 23676, 821206), + (106184, 0, 23686, 821206), + (106273, 0, 23692, 821211), + (106306, 0, 23700, 821270), + (106341, 0, 23703, 821332), + (106392, 0, 23709, 821375), + (106423, 0, 23715, 821438), + (106472, 0, 23721, 821483), + (106531, 0, 23727, 821517), + (106562, 0, 23732, 821582), + (106597, 0, 23736, 821643), + (106633, 0, 23737, 821706), + (106666, 0, 23742, 821768), + (106697, 0, 23744, 821835), + (106730, 0, 23748, 821898), + (106765, 0, 23751, 821960), + (106799, 0, 23754, 822023), + (106831, 0, 23758, 822087), + (106862, 0, 23761, 822153), + (106899, 0, 23763, 822214), + (106932, 0, 23766, 822278), + (106965, 0, 23768, 822343), + (107009, 0, 23771, 822396), + (107040, 0, 23775, 822461), + (107092, 0, 23780, 822504), + (107143, 0, 23787, 822546), + (107200, 0, 23795, 822581), + (107250, 0, 23803, 822623), + (107277, 0, 23810, 822689), + (107286, 0, 23810, 822780), + (107313, 0, 23817, 822846), + (107325, 0, 23818, 822933), + (107332, 0, 23818, 823026), + (107344, 0, 23821, 823111), + (107357, 0, 23821, 823198), + (107368, 0, 23823, 823284), + (107375, 0, 23824, 823377), + (107386, 0, 23825, 823465), + (107396, 0, 23826, 823554), + (107422, 0, 23830, 823624), + (107434, 0, 23831, 823711), + (107456, 0, 23835, 823785), + (107468, 0, 23838, 823870), + (107487, 0, 23840, 823949), + (107515, 0, 23843, 824018), + (107528, 0, 23846, 824102), + (107535, 0, 23851, 824190), + (107548, 0, 23853, 824275), + (107562, 0, 23857, 824357), + (107656, 0, 23863, 824357), + (107751, 0, 23868, 824357), + (107849, 0, 23870, 824357), + (107944, 0, 23875, 824357), + (108043, 0, 23876, 824357), + (108137, 0, 23882, 824357), + (108230, 0, 23889, 824357), + (108317, 0, 23902, 824357), + (108412, 0, 23907, 824357), + (108511, 0, 23908, 824357), + (108608, 0, 23911, 824357), + (108704, 0, 23915, 824357), + (108801, 0, 23918, 824357), + (108891, 0, 23928, 824357), + (108987, 0, 23932, 824357), + (109072, 0, 23943, 824361), + (109079, 0, 23943, 824454), + (109086, 0, 23944, 824546), + (109098, 0, 23950, 824628), + (109108, 0, 23955, 824713), + (109115, 0, 23957, 824804), + (109122, 0, 23958, 824896), + (109132, 0, 23959, 824985), + (109142, 0, 23961, 825073), + (109146, 0, 23962, 825168), + (109153, 0, 23964, 825259), + (109162, 0, 23966, 825348), + (109168, 0, 23969, 825439), + (109176, 0, 23971, 825529), + (109185, 0, 23974, 825617), + (109193, 0, 23977, 825706), + (109198, 0, 23978, 825800), + (109206, 0, 23978, 825892), + (109212, 0, 23981, 825983), + (109219, 0, 23981, 826076), + (109225, 0, 23981, 826170), + (109232, 0, 23984, 826260), + (109242, 0, 23984, 826350), + (109255, 0, 23986, 826435), + (109268, 0, 23987, 826521), + (109283, 0, 23990, 826603), + (109288, 0, 23991, 826697), + (109295, 0, 23993, 826788), + (109308, 0, 23994, 826874), + (109322, 0, 24009, 826945), + (109328, 0, 24011, 827037), + (109338, 0, 24012, 827126), + (109347, 0, 24012, 827217), + (109354, 0, 24017, 827305), + (109367, 0, 24017, 827392), + (109371, 0, 24019, 827486), + ) + + def __init__(self): + self.procValues = self.__lookup() + + def statistic(self): + values = self.__lookup() + userDelta = 0.0 + for i in [CpuStat.User, CpuStat.Nice]: + userDelta += values[i] - self.procValues[i] + systemDelta = values[CpuStat.System] - self.procValues[CpuStat.System] + totalDelta = 0.0 + for i in range(len(self.procValues)): + totalDelta += values[i] - self.procValues[i] + self.procValues = values + return 100.0 * userDelta / totalDelta, 100.0 * systemDelta / totalDelta + + def upTime(self): + result = QTime() + for item in self.procValues: + result = result.addSecs(int(0.01 * item)) + return result + + def __lookup(self): + if os.path.exists("/proc/stat"): + for line in open("/proc/stat"): + words = line.split() + if words[0] == "cpu" and len(words) >= 5: + return [float(w) for w in words[1:]] + else: + result = CpuStat.dummyValues[CpuStat.counter] + CpuStat.counter += 1 + CpuStat.counter %= len(CpuStat.dummyValues) + return result + + +class CpuPieMarker(QwtPlotMarker): + def __init__(self, *args): + QwtPlotMarker.__init__(self, *args) + self.setZ(1000.0) + self.setRenderHint(QwtPlotItem.RenderAntialiased, True) + + def rtti(self): + return QwtPlotItem.Rtti_PlotUserItem + + def draw(self, painter, xMap, yMap, rect): + margin = 5 + pieRect = QRect() + pieRect.setX(rect.x() + margin) + pieRect.setY(rect.y() + margin) + pieRect.setHeight(int(yMap.transform(80.0))) + pieRect.setWidth(pieRect.height()) + + angle = 3 * 5760 / 4 + for key in ["User", "System", "Idle"]: + curve = self.plot().cpuPlotCurve(key) + if curve.dataSize(): + value = int(5760 * curve.sample(0).y() / 100.0) + painter.save() + painter.setBrush(QBrush(curve.pen().color(), Qt.SolidPattern)) + painter.drawPie(pieRect, int(-angle), int(-value)) + painter.restore() + angle += value + + +class TimeScaleDraw(QwtScaleDraw): + def __init__(self, baseTime, *args): + QwtScaleDraw.__init__(self, *args) + self.baseTime = baseTime + + def label(self, value): + upTime = self.baseTime.addSecs(int(value)) + return QwtText(upTime.toString()) + + +class Background(QwtPlotItem): + def __init__(self): + QwtPlotItem.__init__(self) + self.setZ(0.0) + + def rtti(self): + return QwtPlotItem.Rtti_PlotUserItem + + def draw(self, painter, xMap, yMap, rect): + c = QColor(Qt.white) + r = QRect(rect) + + for i in range(100, 0, -10): + r.setBottom(int(yMap.transform(i - 10))) + r.setTop(int(yMap.transform(i))) + painter.fillRect(r, c) + c = c.darker(110) + + +class CpuCurve(QwtPlotCurve): + def __init__(self, *args): + QwtPlotCurve.__init__(self, *args) + self.setRenderHint(QwtPlotItem.RenderAntialiased) + + def setColor(self, color): + c = QColor(color) + c.setAlpha(150) + + self.setPen(c) + self.setBrush(c) + + +HISTORY = 60 + + +class CpuPlot(QwtPlot): + def __init__(self, *args): + QwtPlot.__init__(self, *args) + + self.curves = {} + self.data = {} + self.timeData = 1.0 * np.arange(HISTORY - 1, -1, -1) + self.cpuStat = CpuStat() + + self.setAutoReplot(False) + + self.plotLayout().setAlignCanvasToScales(True) + + legend = QwtLegend() + legend.setDefaultItemMode(QwtLegendData.Checkable) + self.insertLegend(legend, QwtPlot.RightLegend) + + self.setAxisTitle(QwtPlot.xBottom, "System Uptime [h:m:s]") + self.setAxisScaleDraw(QwtPlot.xBottom, TimeScaleDraw(self.cpuStat.upTime())) + self.setAxisScale(QwtPlot.xBottom, 0, HISTORY) + self.setAxisLabelRotation(QwtPlot.xBottom, -50.0) + self.setAxisLabelAlignment(QwtPlot.xBottom, Qt.AlignLeft | Qt.AlignBottom) + + self.setAxisTitle(QwtPlot.yLeft, "Cpu Usage [%]") + self.setAxisScale(QwtPlot.yLeft, 0, 100) + + background = Background() + background.attach(self) + + pie = CpuPieMarker() + pie.attach(self) + + curve = CpuCurve("System") + curve.setColor(Qt.red) + curve.attach(self) + self.curves["System"] = curve + self.data["System"] = np.zeros(HISTORY, np.float) + + curve = CpuCurve("User") + curve.setColor(Qt.blue) + curve.setZ(curve.z() - 1.0) + curve.attach(self) + self.curves["User"] = curve + self.data["User"] = np.zeros(HISTORY, np.float) + + curve = CpuCurve("Total") + curve.setColor(Qt.black) + curve.setZ(curve.z() - 2.0) + curve.attach(self) + self.curves["Total"] = curve + self.data["Total"] = np.zeros(HISTORY, np.float) + + curve = CpuCurve("Idle") + curve.setColor(Qt.darkCyan) + curve.setZ(curve.z() - 3.0) + curve.attach(self) + self.curves["Idle"] = curve + self.data["Idle"] = np.zeros(HISTORY, np.float) + + self.showCurve(self.curves["System"], True) + self.showCurve(self.curves["User"], True) + self.showCurve(self.curves["Total"], False or SHOW_ALL_CURVES) + self.showCurve(self.curves["Idle"], False or SHOW_ALL_CURVES) + + self.startTimer(TIMER_INTERVAL) + + legend.checked.connect(self.showCurve) + self.replot() + + def timerEvent(self, e): + for data in self.data.values(): + data[1:] = data[0:-1] + self.data["User"][0], self.data["System"][0] = self.cpuStat.statistic() + self.data["Total"][0] = self.data["User"][0] + self.data["System"][0] + self.data["Idle"][0] = 100.0 - self.data["Total"][0] + + self.timeData += 1.0 + + self.setAxisScale(QwtPlot.xBottom, self.timeData[-1], self.timeData[0]) + for key in self.curves.keys(): + self.curves[key].setData(self.timeData, self.data[key]) + + self.replot() + + def showCurve(self, item, on, index=None): + item.setVisible(on) + self.legend().legendWidget(item).setChecked(on) + self.replot() + + def cpuPlotCurve(self, key): + return self.curves[key] + + +class CpuDemo(QWidget): + def __init__(self, parent=None): + super(CpuDemo, self).__init__(parent) + layout = QVBoxLayout() + self.setLayout(layout) + plot = CpuPlot() + plot.setTitle("History") + layout.addWidget(plot) + label = QLabel("Press the legend to en/disable a curve") + layout.addWidget(label) + + +if __name__ == "__main__": + from qwt.tests import test_widget + + if os.environ.get("TEST_UNATTENDED") is not None: + SHOW_ALL_CURVES = True + TIMER_INTERVAL = 20 + app = test_widget(CpuDemo, (600, 400)) diff --git a/qwt/tests/curve_benchmark2.py b/qwt/tests/curve_benchmark2.py deleted file mode 100644 index 3e939c0..0000000 --- a/qwt/tests/curve_benchmark2.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the terms of the MIT License -# Copyright (c) 2015 Pierre Raybaut -# (see LICENSE file for more details) - -"""Curve styles""" - -SHOW = True # Show test in GUI-based test launcher - -import time - -from qwt.qt.QtGui import QPen, QBrush -from qwt.qt.QtCore import QSize, Qt - -from qwt.tests import curve_benchmark1 as cb - -if cb.USE_PYQWT5: - from PyQt4.Qwt5 import QwtSymbol -else: - from qwt import QwtSymbol # analysis:ignore - - -class CSWidget(cb.BMWidget): - def params(self, *args, **kwargs): - symbols, = args - symb1 = QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.yellow), - QPen(Qt.blue), QSize(5, 5)) - symb2 = QwtSymbol(QwtSymbol.XCross, QBrush(), - QPen(Qt.darkMagenta), QSize(5, 5)) - if symbols: - if kwargs.get('only_lines', False): - return (('Lines', symb1), ('Lines', symb1), ('Lines', symb2), - ('Lines', symb2),) - else: - return (('Sticks', symb1), ('Lines', symb1), - ('Steps', symb2), ('Dots', symb2),) - else: - if kwargs.get('only_lines', False): - return (('Lines', None), ('Lines', None), ('Lines', None), - ('Lines', None),) - else: - return (('Sticks', None), ('Lines', None), ('Steps', None), - ('Dots', None),) - - -class BMDemo2(cb.BMDemo1): - TITLE = 'Curve styles' - SIZE = (1000, 800) - def __init__(self, max_n=1000, parent=None, **kwargs): - super(BMDemo2, self).__init__(max_n=max_n, parent=parent, **kwargs) - - def run_benchmark(self, max_n, **kwargs): - for points, symbols in zip((max_n/10, max_n/10, max_n, max_n), - (True, False)*2): - t0 = time.time() - symtext = "with%s symbols" % ("" if symbols else "out") - widget = CSWidget(points, symbols, **kwargs) - title = '%d points' % points - description = '%d plots with %d curves of %d points, %s' % ( - widget.plot_nb, widget.curve_nb, points, symtext) - self.process_iteration(title, description, widget, t0) - - -if __name__ == '__main__': - from qwt.tests import test_widget - app = test_widget(BMDemo2, options=False) diff --git a/qwt/tests/curve_benchmark1.py b/qwt/tests/curvebenchmark1.py similarity index 60% rename from qwt/tests/curve_benchmark1.py rename to qwt/tests/curvebenchmark1.py index abf3f74..2e767ff 100644 --- a/qwt/tests/curve_benchmark1.py +++ b/qwt/tests/curvebenchmark1.py @@ -6,17 +6,26 @@ """Curve benchmark example""" -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import time import numpy as np -from qwt.qt.QtGui import (QApplication, QPen, QMainWindow, QGridLayout, - QTabWidget, QWidget, QTextEdit, QLineEdit) +from qwt.qt.QtGui import ( + QApplication, + QPen, + QMainWindow, + QGridLayout, + QTabWidget, + QWidget, + QTextEdit, + QLineEdit, +) from qwt.qt.QtCore import Qt import os -if os.environ.get('USE_PYQWT5', False): + +if os.environ.get("USE_PYQWT5", False): USE_PYQWT5 = True from PyQt4.Qwt5 import QwtPlot, QwtPlotCurve else: @@ -26,6 +35,7 @@ COLOR_INDEX = None + def get_curve_color(): global COLOR_INDEX colors = (Qt.blue, Qt.red, Qt.green, Qt.yellow, Qt.magenta, Qt.cyan) @@ -41,8 +51,8 @@ def __init__(self, title, xdata, ydata, style, symbol=None, *args): super(BMPlot, self).__init__(*args) self.setMinimumSize(200, 200) self.setTitle(title) - self.setAxisTitle(QwtPlot.xBottom, 'x') - self.setAxisTitle(QwtPlot.yLeft, 'y') + self.setAxisTitle(QwtPlot.xBottom, "x") + self.setAxisTitle(QwtPlot.yLeft, "y") self.curve_nb = 0 for idx in range(1, 11): self.curve_nb += 1 @@ -53,9 +63,9 @@ def __init__(self, title, xdata, ydata, style, symbol=None, *args): if symbol is not None: curve.setSymbol(symbol) curve.attach(self) - curve.setData(xdata, ydata*idx)#, finite=False) -# self.setAxisScale(self.yLeft, -1.5, 1.5) -# self.setAxisScale(self.xBottom, 9.9, 10.) + curve.setData(xdata, ydata * idx) # , finite=False) + # self.setAxisScale(self.yLeft, -1.5, 1.5) + # self.setAxisScale(self.xBottom, 9.9, 10.) self.replot() @@ -65,85 +75,91 @@ def __init__(self, points, *args, **kwargs): self.plot_nb = 0 self.curve_nb = 0 self.setup(points, *args, **kwargs) - + def params(self, *args, **kwargs): - if kwargs.get('only_lines', False): - return (('Lines', None),) + if kwargs.get("only_lines", False): + return (("Lines", None),) else: return ( - ('Lines', None), - ('Dots', None), - ) - + ("Lines", None), + ("Dots", None), + ) + def setup(self, points, *args, **kwargs): - x = np.linspace(.001, 20., int(points)) - y = (np.sin(x)/x)*np.cos(20*x) + x = np.linspace(0.001, 20.0, int(points)) + y = (np.sin(x) / x) * np.cos(20 * x) layout = QGridLayout() nbcol, col, row = 2, 0, 0 for style, symbol in self.params(*args, **kwargs): - plot = BMPlot(style, x, y, getattr(QwtPlotCurve, style), - symbol=symbol) - layout.addWidget(plot, row, col) - self.plot_nb += 1 - self.curve_nb += plot.curve_nb - col += 1 - if col >= nbcol: - row +=1 - col = 0 + plot = BMPlot(style, x, y, getattr(QwtPlotCurve, style), symbol=symbol) + layout.addWidget(plot, row, col) + self.plot_nb += 1 + self.curve_nb += plot.curve_nb + col += 1 + if col >= nbcol: + row += 1 + col = 0 self.text = QLineEdit() self.text.setReadOnly(True) self.text.setAlignment(Qt.AlignCenter) self.text.setText("Rendering plot...") - layout.addWidget(self.text, row+1, 0, 1, 2) - self.setLayout(layout) + layout.addWidget(self.text, row + 1, 0, 1, 2) + self.setLayout(layout) class BMText(QTextEdit): def __init__(self, parent=None, title=None): super(BMText, self).__init__(parent) self.setReadOnly(True) - library = 'PyQwt5' if USE_PYQWT5 else 'PythonQwt' + library = "PyQwt5" if USE_PYQWT5 else "PythonQwt" wintitle = self.parent().windowTitle() if not wintitle: wintitle = "Benchmark" if title is None: - title = '%s example' % wintitle - self.parent().setWindowTitle('%s [%s]' % (wintitle, library)) - self.setText("""\ + title = "%s example" % wintitle + self.parent().setWindowTitle("%s [%s]" % (wintitle, library)) + self.setText( + """\ %s:
(base plotting library: %s)

Click on each tab to test if plotting performance is acceptable in terms of GUI response time (switch between tabs, resize main windows, ...).


Benchmarks results: -""" % (title, library)) +""" + % (title, library) + ) + +class CurveBenchmark1(QMainWindow): + TITLE = "Curve benchmark" + SIZE = (1000, 500) -class BMDemo1(QMainWindow): - TITLE = 'Curve benchmark' - SIZE = (1000, 800) def __init__(self, max_n=1000000, parent=None, **kwargs): - super(BMDemo1, self).__init__(parent=parent) + super(CurveBenchmark1, self).__init__(parent=parent) title = self.TITLE - if kwargs.get('only_lines', False): - title = '%s (%s)' % (title, 'only lines') + if kwargs.get("only_lines", False): + title = "%s (%s)" % (title, "only lines") self.setWindowTitle(title) self.tabs = QTabWidget() self.setCentralWidget(self.tabs) self.text = BMText(self) - self.tabs.addTab(self.text, 'Contents') + self.tabs.addTab(self.text, "Contents") self.resize(*self.SIZE) # Force window to show up and refresh (for test purpose only) self.show() QApplication.processEvents() - + t0g = time.time() self.run_benchmark(max_n, **kwargs) - dt = time.time()-t0g - self.text.append("

Total elapsed time: %d ms" % (dt*1e3)) - self.tabs.setCurrentIndex(0) - + dt = time.time() - t0g + self.text.append("

Total elapsed time: %d ms" % (dt * 1e3)) + if os.environ.get("TEST_UNATTENDED") is None: + self.tabs.setCurrentIndex(0) + else: + self.tabs.setCurrentIndex(1) + def process_iteration(self, title, description, widget, t0): self.tabs.addTab(widget, title) self.tabs.setCurrentWidget(widget) @@ -151,21 +167,25 @@ def process_iteration(self, title, description, widget, t0): # Force widget to refresh (for test purpose only) QApplication.processEvents() - time_str = "Elapsed time: %d ms" % ((time.time()-t0)*1000) + time_str = "Elapsed time: %d ms" % ((time.time() - t0) * 1000) widget.text.setText(time_str) self.text.append("
%s:
%s" % (description, time_str)) def run_benchmark(self, max_n, **kwargs): for idx in range(4, -1, -1): - points = int(max_n/10**idx) + points = int(max_n / 10 ** idx) t0 = time.time() widget = BMWidget(points, **kwargs) - title = '%d points' % points - description = '%d plots with %d curves of %d points' % ( - widget.plot_nb, widget.curve_nb, points) + title = "%d points" % points + description = "%d plots with %d curves of %d points" % ( + widget.plot_nb, + widget.curve_nb, + points, + ) self.process_iteration(title, description, widget, t0) -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget - app = test_widget(BMDemo1, options=False) + + app = test_widget(CurveBenchmark1, options=False) diff --git a/qwt/tests/curvebenchmark2.py b/qwt/tests/curvebenchmark2.py new file mode 100644 index 0000000..dd0536c --- /dev/null +++ b/qwt/tests/curvebenchmark2.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the terms of the MIT License +# Copyright (c) 2015 Pierre Raybaut +# (see LICENSE file for more details) + +"""Curve styles""" + +SHOW = True # Show test in GUI-based test launcher + +import time + +from qwt.qt.QtGui import QPen, QBrush +from qwt.qt.QtCore import QSize, Qt + +from qwt.tests import curvebenchmark1 as cb + +if cb.USE_PYQWT5: + from PyQt4.Qwt5 import QwtSymbol +else: + from qwt import QwtSymbol # analysis:ignore + + +class CSWidget(cb.BMWidget): + def params(self, *args, **kwargs): + (symbols,) = args + symb1 = QwtSymbol( + QwtSymbol.Ellipse, QBrush(Qt.yellow), QPen(Qt.blue), QSize(5, 5) + ) + symb2 = QwtSymbol(QwtSymbol.XCross, QBrush(), QPen(Qt.darkMagenta), QSize(5, 5)) + if symbols: + if kwargs.get("only_lines", False): + return ( + ("Lines", symb1), + ("Lines", symb1), + ("Lines", symb2), + ("Lines", symb2), + ) + else: + return ( + ("Sticks", symb1), + ("Lines", symb1), + ("Steps", symb2), + ("Dots", symb2), + ) + else: + if kwargs.get("only_lines", False): + return ( + ("Lines", None), + ("Lines", None), + ("Lines", None), + ("Lines", None), + ) + else: + return ( + ("Sticks", None), + ("Lines", None), + ("Steps", None), + ("Dots", None), + ) + + +class CurveBenchmark2(cb.CurveBenchmark1): + TITLE = "Curve styles" + SIZE = (1000, 800) + + def __init__(self, max_n=1000, parent=None, **kwargs): + super(CurveBenchmark2, self).__init__(max_n=max_n, parent=parent, **kwargs) + + def run_benchmark(self, max_n, **kwargs): + for points, symbols in zip( + (max_n / 10, max_n / 10, max_n, max_n), (True, False) * 2 + ): + t0 = time.time() + symtext = "with%s symbols" % ("" if symbols else "out") + widget = CSWidget(points, symbols, **kwargs) + title = "%d points" % points + description = "%d plots with %d curves of %d points, %s" % ( + widget.plot_nb, + widget.curve_nb, + points, + symtext, + ) + self.process_iteration(title, description, widget, t0) + + +if __name__ == "__main__": + from qwt.tests import test_widget + + app = test_widget(CurveBenchmark2, options=False) diff --git a/qwt/tests/curves1.py b/qwt/tests/curvedemo1.py similarity index 71% rename from qwt/tests/curves1.py rename to qwt/tests/curvedemo1.py index 8c66a5c..812fc18 100644 --- a/qwt/tests/curves1.py +++ b/qwt/tests/curvedemo1.py @@ -2,11 +2,11 @@ # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import numpy as np @@ -31,49 +31,47 @@ def __init__(self, *args): self.setMidLineWidth(3) # calculate values - self.x = np.arange(0, 10.0, 10.0/27) - self.y = np.sin(self.x)*np.cos(2*self.x) - + self.x = np.arange(0, 10.0, 10.0 / 27) + self.y = np.sin(self.x) * np.cos(2 * self.x) + # make curves with different styles self.curves = [] self.titles = [] # curve 1 - self.titles.append('Style: Sticks, Symbol: Ellipse') + self.titles.append("Style: Sticks, Symbol: Ellipse") curve = QwtPlotCurve() curve.setPen(QPen(Qt.red)) curve.setStyle(QwtPlotCurve.Sticks) - curve.setSymbol(QwtSymbol(QwtSymbol.Ellipse, - QBrush(Qt.yellow), - QPen(Qt.blue), - QSize(5, 5))) + curve.setSymbol( + QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.yellow), QPen(Qt.blue), QSize(5, 5)) + ) self.curves.append(curve) # curve 2 - self.titles.append('Style: Lines, Symbol: None') + self.titles.append("Style: Lines, Symbol: None") curve = QwtPlotCurve() curve.setPen(QPen(Qt.darkBlue)) curve.setStyle(QwtPlotCurve.Lines) self.curves.append(curve) # curve 3 - self.titles.append('Style: Lines, Symbol: None, Antialiased') + self.titles.append("Style: Lines, Symbol: None, Antialiased") curve = QwtPlotCurve() curve.setPen(QPen(Qt.darkBlue)) curve.setStyle(QwtPlotCurve.Lines) curve.setRenderHint(QwtPlotItem.RenderAntialiased) self.curves.append(curve) # curve 4 - self.titles.append('Style: Steps, Symbol: None') + self.titles.append("Style: Steps, Symbol: None") curve = QwtPlotCurve() curve.setPen(QPen(Qt.darkCyan)) curve.setStyle(QwtPlotCurve.Steps) - self.curves.append(curve) + self.curves.append(curve) # curve 5 - self.titles.append('Style: NoCurve, Symbol: XCross') + self.titles.append("Style: NoCurve, Symbol: XCross") curve = QwtPlotCurve() curve.setStyle(QwtPlotCurve.NoCurve) - curve.setSymbol(QwtSymbol(QwtSymbol.XCross, - QBrush(), - QPen(Qt.darkMagenta), - QSize(5, 5))) + curve.setSymbol( + QwtSymbol(QwtSymbol.XCross, QBrush(), QPen(Qt.darkMagenta), QSize(5, 5)) + ) self.curves.append(curve) # attach data, using Numeric @@ -92,28 +90,35 @@ def paintEvent(self, event): def drawContents(self, painter): # draw curves r = self.contentsRect() - dy = int(r.height()/len(self.curves)) + dy = int(r.height() / len(self.curves)) r.setHeight(dy) for curve in self.curves: self.xMap.setPaintInterval(r.left(), r.right()) self.yMap.setPaintInterval(r.top(), r.bottom()) painter.setRenderHint( QPainter.Antialiasing, - curve.testRenderHint(QwtPlotItem.RenderAntialiased)) + curve.testRenderHint(QwtPlotItem.RenderAntialiased), + ) curve.draw(painter, self.xMap, self.yMap, r) self.shiftDown(r, dy) # draw titles r = self.contentsRect() r.setHeight(dy) - painter.setFont(QFont('Helvetica', 8)) + painter.setFont(QFont("Helvetica", 8)) painter.setPen(Qt.black) for title in self.titles: painter.drawText( - 0, r.top(), r.width(), painter.fontMetrics().height(), - Qt.AlignTop | Qt.AlignHCenter, title) + 0, + r.top(), + r.width(), + painter.fontMetrics().height(), + Qt.AlignTop | Qt.AlignHCenter, + title, + ) self.shiftDown(r, dy) -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + app = test_widget(CurveDemo1, size=(300, 600), options=False) diff --git a/qwt/tests/curves2.py b/qwt/tests/curvedemo2.py similarity index 61% rename from qwt/tests/curves2.py rename to qwt/tests/curvedemo2.py index 5b29cd8..b8d25af 100644 --- a/qwt/tests/curves2.py +++ b/qwt/tests/curvedemo2.py @@ -2,11 +2,11 @@ # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import numpy as np @@ -18,6 +18,7 @@ Size = 15 USize = 13 + class CurveDemo2(QFrame): def __init__(self, *args): QFrame.__init__(self, *args) @@ -35,43 +36,39 @@ def __init__(self, *args): curve = QwtPlotCurve() curve.setPen(QPen(QColor(150, 150, 200), 2)) curve.setStyle(QwtPlotCurve.Lines) - curve.setSymbol(QwtSymbol(QwtSymbol.XCross, - QBrush(), - QPen(Qt.yellow, 2), - QSize(7, 7))) - self.tuples.append((curve, - QwtScaleMap(0, 100, -1.5, 1.5), - QwtScaleMap(0, 100, 0.0, 2*np.pi))) + curve.setSymbol( + QwtSymbol(QwtSymbol.XCross, QBrush(), QPen(Qt.yellow, 2), QSize(7, 7)) + ) + self.tuples.append( + (curve, QwtScaleMap(0, 100, -1.5, 1.5), QwtScaleMap(0, 100, 0.0, 2 * np.pi)) + ) # curve 2 curve = QwtPlotCurve() - curve.setPen(QPen(QColor(200, 150, 50), - 1, - Qt.DashDotDotLine)) + curve.setPen(QPen(QColor(200, 150, 50), 1, Qt.DashDotDotLine)) curve.setStyle(QwtPlotCurve.Sticks) - curve.setSymbol(QwtSymbol(QwtSymbol.Ellipse, - QBrush(Qt.blue), - QPen(Qt.yellow), - QSize(5, 5))) - self.tuples.append((curve, - QwtScaleMap(0, 100, 0.0, 2*np.pi), - QwtScaleMap(0, 100, -3.0, 1.1))) + curve.setSymbol( + QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.blue), QPen(Qt.yellow), QSize(5, 5)) + ) + self.tuples.append( + (curve, QwtScaleMap(0, 100, 0.0, 2 * np.pi), QwtScaleMap(0, 100, -3.0, 1.1)) + ) # curve 3 curve = QwtPlotCurve() curve.setPen(QPen(QColor(100, 200, 150))) curve.setStyle(QwtPlotCurve.Lines) - self.tuples.append((curve, - QwtScaleMap(0, 100, -1.1, 3.0), - QwtScaleMap(0, 100, -1.1, 3.0))) + self.tuples.append( + (curve, QwtScaleMap(0, 100, -1.1, 3.0), QwtScaleMap(0, 100, -1.1, 3.0)) + ) # curve 4 curve = QwtPlotCurve() curve.setPen(QPen(Qt.red)) curve.setStyle(QwtPlotCurve.Lines) - self.tuples.append((curve, - QwtScaleMap(0, 100, -5.0, 1.1), - QwtScaleMap(0, 100, -1.1, 5.0))) + self.tuples.append( + (curve, QwtScaleMap(0, 100, -5.0, 1.1), QwtScaleMap(0, 100, -1.1, 5.0)) + ) # data self.phase = 0.0 - self.base = np.arange(0.0, 2.01*np.pi, 2*np.pi/(USize-1)) + self.base = np.arange(0.0, 2.01 * np.pi, 2 * np.pi / (USize - 1)) self.uval = np.cos(self.base) self.vval = np.sin(self.base) self.uval[1::2] *= 0.5 @@ -81,7 +78,7 @@ def __init__(self, *args): self.tid = self.startTimer(250) def paintEvent(self, event): - QFrame.paintEvent(self,event) + QFrame.paintEvent(self, event) painter = QPainter(self) painter.setClipRect(self.contentsRect()) self.drawContents(painter) @@ -96,30 +93,31 @@ def drawContents(self, painter): def timerEvent(self, event): self.newValues() self.repaint() - + def newValues(self): phase = self.phase - - self.xval = np.arange(0, 2.01*np.pi, 2*np.pi/(Size-1)) + + self.xval = np.arange(0, 2.01 * np.pi, 2 * np.pi / (Size - 1)) self.yval = np.sin(self.xval - phase) - self.zval = np.cos(3*(self.xval + phase)) - + self.zval = np.cos(3 * (self.xval + phase)) + s = 0.25 * np.sin(phase) - c = np.sqrt(1.0 - s*s) + c = np.sqrt(1.0 - s * s) u = self.uval - self.uval = c*self.uval-s*self.vval - self.vval = c*self.vval+s*u + self.uval = c * self.uval - s * self.vval + self.vval = c * self.vval + s * u self.tuples[0][0].setData(self.yval, self.xval) self.tuples[1][0].setData(self.xval, self.zval) self.tuples[2][0].setData(self.yval, self.zval) self.tuples[3][0].setData(self.uval, self.vval) - - self.phase += 2*np.pi/100 - if self.phase>2*np.pi: + + self.phase += 2 * np.pi / 100 + if self.phase > 2 * np.pi: self.phase = 0.0 -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + app = test_widget(CurveDemo2, options=False) diff --git a/qwt/tests/data.py b/qwt/tests/data.py index 2210a16..3116696 100644 --- a/qwt/tests/data.py +++ b/qwt/tests/data.py @@ -2,19 +2,27 @@ # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import random import numpy as np from qwt.qt.QtGui import QPen, QBrush, QFrame from qwt.qt.QtCore import QSize, Qt -from qwt import (QwtPlot, QwtPlotMarker, QwtSymbol, QwtLegend, QwtPlotCurve, - QwtAbstractScaleDraw) +from qwt import ( + QwtPlot, + QwtPlotMarker, + QwtSymbol, + QwtLegend, + QwtPlotCurve, + QwtAbstractScaleDraw, +) + +TIMER_INTERVAL = 50 class DataPlot(QwtPlot): @@ -30,17 +38,16 @@ def __init__(self, *args): self.z = np.zeros(len(self.x), np.float) self.setTitle("A Moving QwtPlot Demonstration") - self.insertLegend(QwtLegend(), QwtPlot.BottomLegend); + self.insertLegend(QwtLegend(), QwtPlot.BottomLegend) self.curveR = QwtPlotCurve("Data Moving Right") self.curveR.attach(self) self.curveL = QwtPlotCurve("Data Moving Left") self.curveL.attach(self) - self.curveL.setSymbol(QwtSymbol(QwtSymbol.Ellipse, - QBrush(), - QPen(Qt.yellow), - QSize(7, 7))) + self.curveL.setSymbol( + QwtSymbol(QwtSymbol.Ellipse, QBrush(), QPen(Qt.yellow), QSize(7, 7)) + ) self.curveR.setPen(QPen(Qt.red)) self.curveL.setPen(QPen(Qt.blue)) @@ -53,8 +60,8 @@ def __init__(self, *args): self.setAxisTitle(QwtPlot.xBottom, "Time (seconds)") self.setAxisTitle(QwtPlot.yLeft, "Values") - - self.startTimer(50) + + self.startTimer(TIMER_INTERVAL) self.phase = 0.0 def alignScales(self): @@ -67,7 +74,7 @@ def alignScales(self): scaleDraw = self.axisScaleDraw(axis_id) if scaleDraw: scaleDraw.enableComponent(QwtAbstractScaleDraw.Backbone, False) - + def timerEvent(self, e): if self.phase > np.pi - 0.0001: self.phase = 0.0 @@ -75,20 +82,24 @@ def timerEvent(self, e): # y moves from left to right: # shift y array right and assign new value y[0] self.y = np.concatenate((self.y[:1], self.y[:-1])) - self.y[0] = np.sin(self.phase) * (-1.0 + 2.0*random.random()) - + self.y[0] = np.sin(self.phase) * (-1.0 + 2.0 * random.random()) + # z moves from right to left: # Shift z array left and assign new value to z[n-1]. self.z = np.concatenate((self.z[1:], self.z[:1])) - self.z[-1] = 0.8 - (2.0 * self.phase/np.pi) + 0.4*random.random() + self.z[-1] = 0.8 - (2.0 * self.phase / np.pi) + 0.4 * random.random() self.curveR.setData(self.x, self.y) self.curveL.setData(self.x, self.z) self.replot() - self.phase += np.pi*0.02 + self.phase += np.pi * 0.02 -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + import os + + if os.environ.get("TEST_UNATTENDED") is not None: + TIMER_INTERVAL = 10 app = test_widget(DataPlot, size=(500, 300)) diff --git a/qwt/tests/data/bode.png b/qwt/tests/data/bode.png deleted file mode 100644 index 9f3a34cfede48be3a30ec119fce2242b64b2ee7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25403 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 b%fkJ>VtUs^VmQ214i$BF(~3?vU>K7XH5TKIfe0 z{p0n53)uTwd(AcGh<~Gs{A)>+6y8wYSS9Xjc%-Vtl48;$4gRd2EM{i7U!U3d)O7|_GGXN;lq}
*`MmpX%27C!_R&W6EBwIHjt0h=|28 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 diff --git a/qwt/tests/data/cpu_plot.png b/qwt/tests/data/cpu_plot.png deleted file mode 100644 index 4ecea2d9618a7acd647f9ac7cac055d2a4433f67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37139 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

spowwL52VPA7WsyM3u%Yhfu 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�qEH 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 diff --git a/qwt/tests/data/cpudemo.png b/qwt/tests/data/cpudemo.png new file mode 100644 index 0000000000000000000000000000000000000000..47a4cd1196099f54e08a63f8039ba4f31f64d566 GIT binary patch literal 38415 zcmYhi1yoc~*FTJibc1w*L-!Dpf^(A^yZ()GVS&-<+J zV=dMMtb6Y{XYaH3FHYDeC20&)5>z-iI1E`C2~{{acrYB?D^_Gg;2X-O`%&Np!9`qF z9U1uXMK=2Zd`5AU(Q$!;!|eI@`znbUlN1h)3Qkr+Ox-j6xYgQ|^v-YZu8=8R=-uJ5 zR6^jrWAlaw9L}YLRM`LdRH5}f3+F%YCjKCc(PAIl_(uM{ zo?2QO{=vT1P5bv6crVzs*nLPu$mhU}sL{*k%=zL4TqmpR-@hXdeI1(Ld4<^jRBQO- z0~LRk_Lo+;Zy!EcHh2?VTu*zy1#b8WS9}5)Au#H9)<_4>QzF_FX&toHhUNpofM|*s=K9WlnKP=bhJ&M{ z&Bc9w|I9rvdndI0w(Y#NODnIoI77t#&K16qPcdk~5aHsSagh-OH%-lq95Yg1{oxkj zuW$h_`+fDBn+alv=-B=`9Ic2OY|LLuy8rxjgJ>VKpFLb(dAVp<%+VH{{h0UnRA5$O zuyIJft$&S;Nz|3fR{C0+O%*%V9m?T6$aaTp6w|~IsG;$?{ z==5e?yqC`%(y1c46;$qI!4qCBXD_Pm`07+e^!fbg_Fj15$#<^0ywi^$+Y$l3(_7-Z z6cx5@%&;UOoWB$jo3oP{`p+ZyZbSCfYzoxFa31RE(L8@;dr`v7%uCnT9Aj6CIGLy1 z3s3rN9XlH(K3o26ww@uUmrLndRM=!P|E|VQWm_iss){kYGh>sN;y(0Y{eof3U-a1t zcmNfth3sg_jFJ49y7e3w#w~SLnX+Kxfver}xXbM5@3rw;H_9gp=YxFvFuR_x&(b5n?y^iiv?)0LLJC_h2|TE5KfEQ*Y6UZjsw zm_7=$&A6)F5P#1E<}nQ?@ZS)}1uk1T^*x1z|Na!z`%qF6(NvOG)JIHq9=B4oN!ko8 z-eIJf+C1Fw^*AL8+5%?VMSKhhoYEhO2_LBDDaPO5FKvo8N<9wS&VeEt9iZ8J#kx&zn~5!RK8p9$P0DjeF8HL;*CxW10n%3f>)e) zcC5~kB#uaVG zV6Bb`H8nMFANNFKx;GdaV(4U3cTY(^nCtX$L>h>;tu%V*&KZukk_!rJso=XBj6Y~I zC2dX@sy$9pK24U5wUSp?SO2}bI=R1r$mMx%1QQaGk+D219)4T9FI_9T!Y%4bV%B1! zv(nFKc+JGLE-s1Da3F;A$?8G#-&6Q3so~Rl0`p|Vosf`FQ&)F!yA?C%&4`59&5@dx zRyiHg`j4xVD_gUA44&duI6vf*4Es>c1foF(dS9!zQI@l zx7|WF%P!`+I)0VjlWXJZ1EGB%U-HDl~D(lUDc!b1L}3v$LAIy1G`@*4d?{?w`?t3AtHr^J``y>{zL& za*m{Yxh1o+i|}24ExJ9CJ@m_%mz(<%{j3FsA>(@w3kV-gE*bKgGbKVqLqlsh^E+cc zaynaW9gd@w9&#?}4#m1WEH1z3W%sXS>Bmz~X<|h!yEKM`Uka3 z&G6qGJqjI6M`*KnR4(N3ld%q5ppJ{a_>0_6-nd+B59+di2EtqnOk(ck1)meHHZA4Jy!3~dG!L#s)CQ^K5q=fF=qOllCZL7SN%jYaymz`U%mwonsF;x;&*?# zJ&zebKTwWI_AOE9ljHX-S>K8`GlB*OJwrxlfaiMm(?gJefM5cQA*nLt+)`J^d%D&> zuGN08;r}!j(8|(}uO9Q7-OB%YOz`n`lut+3&?2ukX&O&CR!57K9Rlj#-9-+5eh%5w zVR0E5S>BD}YwMfL4ZZE57wHKV`RiMo!j6qB2ZRUJ@RH@?-tO|_-+}hKKKxZBu9Y6oG@f1JS zi1+P7R!M)5t?+0{+uwI0j~iH*$JOJ>Pq%?XPDXD=fn~e9bnp#&s{^{d-6HBoUGt)n z)#Ekiq8~6*!jA9@zq@;DVfhl?ewRjhImFx^xa3z9$P8>P&F`?0@oiZRcS`FG^YhG! z2c-CScQX+bZ0iu{m4vo?P(=Hqll-Y$y{dg8j0T^{EZwicMfd2+B6lwOWr9Rf**}6h z-Sc9qN?abUi3tb6}auqP8BMS@n_`O}j@#rZCYOl|H_kJ4Jf+`nqB~RMTXF`J2 z4>>`gw&vnJ!W^SAOP8%sN|H4FB?^}xQMN}CrJHg4_ zIBz=6Ua+w!{eOt(NXEM=R6BYDFJ=o_jb0C~5E${UrKk^N-0$>dp)zy#VeLhcB^g}R z(u%!|sWTQk=*q#Pv6={rBIRS!#B$r8pnkq;f1Z0hJ$ts7j9yEhB=^u)nRM3#af?nnZ3nxA0TJHnRJ8^I4nT zA9yPwuCulW`I;JpOOY}L;`A{NCCk)@o6lK|?|V#RR+tZ4_#FIE3%IMc{FU}rr*!j- z>ifN(t|&yV3fbQ-?=99EqJQi(kv+Ndt+I`k<4LJ?dl<_Qtf{ZhwRYzs_UU{&zGkS> z*Ddz<@e%YmTkSo%0{Xt@xx7=_CdbkPLae8!Sn?on$F>*y6UD%oXN%n4A8d*>Nkplq zg_RXQbS$qw1{A$#q2E>~ZNK+#=@DKz!T5wEuuSz^gk%Y~A|J9JrZ_URkch56-sH_( z+Ws;|7&VOgs{q@+X}gsqQ2Gg4S=7zf*r6wTmONb*9y@z^HaGOU5|FDaxKoq7{{o^Sg*ZC%D9s{N3SY6#$ zcWEi_j^f9ij^{bsp0CO;!<2nZ)_4N6+n!GBD92kKoij@*#$2(u<^?fVQvQ?`q7n-4 zH6OH|=B{nMT661b9^W#LjL0?6zrfshscQr2?&_T1u zY&62%zIMg*IWMC9i)lE9S*Izz-zw1eetgzdqZ=7II@Xzon!ffBBx-cJU^zICR($Im zuO!+#G7>NjOwY?;arv{7#uy_uGAbT20;+rWFBm3;&@IvEXs-w9dooV{$F1>8$oQjd zr=Nn_=4`1lLFD~3NhodK_Vy*2u)yH?7M{)0n)i_wa%hZkby9&0an+fmz{<$uqpyx` zJv}{r99@{>EfFNrZfR}hxFl_NHzp+!q;GC+9<2W545#QRuwX5sp7KxB#FF5x%)IB= zgs><1=XRvB7?@u^rM^fLk$D9no7cnn-@Qs(6%F`E?p47yds9B9j0%AfsM7N3nDh&K zMO_FE*k?oZvEZer>j0*K$6aj3MGyJ;BCX#@Go=hKRtiZ?Wzfd<-5ZmCH}``fT#9R< zD~j~zW)S70*s7mg*!?sR^do5w&j$W?DKA9DJiVi7D=aLo$)#Ig-og@P3-nSU5XRwi z3K8EQ#zYb{8^^ zBGkA)>b6EqbhfJ?Y9@Tx@^{PhSAB|DQ+1ccW#zITx&s@wW`Be3W<1k2zP_ku`!!Gg zvHMgr3)zy*lP}X1{{!Ls-`ynR%5G*IFxp1db)aK z%)WFG1{SN?kFj?{DyL4ZT^twijvYI*`muHa%bcj%s)-^l)EwCoeGi*D-ORLga&G=e0A_U@6&_=>yt%D zh}8yB(~R$zU#audR|nv}b*=V_~}7UAC@j+0CW4^-QFX3_So+G zH}{oN#$nNcE<#|CTz264QhfkQ#Jkp`Enc4ByQTIg4Uvb1m++P6-=%k_D=D!%_t9e| zRl3UDoade7Hi7ODIc5_zcnI*K?8E1$%Z(r9<Pk;4N z$U_7F#Bgr+HD^o21UlG5&CDqV&+VOTAlEG!3yW{G=*y*p(?-`z&7LU=Lg184 zp6bZRh%F;BW@ro-pU0Pe-n|S*{>_%>`@K0bPrNWq_-}jiMT3PrNw{3a4B;X9Zi&6D z{P?IiQBv0SB1%j%3NDw4eOAhMXSnw&&e*iQNR#ld7PKYi8v!LEw{O&23{qEs5DUs6)z zbh+DHYZ(5)aXmFXeMAr2_h=TFDG$mF9Z8ibAi3>VAL-!g9bRa{t6WI7sj?Y}al?2O zU}j#8{I67hX!P${)#PrUa)#3CDOb1X>(9lr440H72B7!(_jvfFpI+|p3^ND&F^2U6oV9*1eukySdYzXA z$;`B1#22qW7S6R$9g%M1=YqHs5Co2lYFKuaeV`g}KAL4cPHQ4_SbbDq=ow)GDjF%D zNZ2T7(f5*C7O_wrmicBBD5;JD87%Cgn(AVXBDQt>bLB6&7Pl?L z4b-%~ljNkNo6A|fdYe}CZ|fhNj%G_S-gH)17lidMU8|$(|G2&mu7XUS@X?{D7VZkq zO#cK^vppc(bzviE&9B>b77LcODHTL(<#G_x9$Q=dqAuSlMT8Wj+V&9yJ_CG$V z=$EC{)GIr1;*FSbjf{=)+L}ELB{A0;iqBXPiK&&SIkFIRS1ie<3`!`QoEd_TWD8;v z2ElkS{nkv~MhXD96$aX5Qq(}xN?JPH6EF{t64KPOSQj`Zr^w;#9=WI}hXJ)x`v7Re zDs*AM>~>B~F@DG?Wb8TLy4l}Ho>&!$>NTMzi8{R#s@8gLYKF<4;mfxiD>_^| znfRWmsj0GP02K*C)6!6aDT?LJYjdoKLUL{05(9@S&k&-FiGJDERgo)aW=Jw$E+xv5 z(%e#KdisM8N`at!;#f2NLQrkT?n45b$~v}?=*zF)KMOhI5vqI>KTv(TZ~;ob zOLbDT5p+hDBQ^hf*%B$Q_&-=U>y4tZ0R-QJ@&ph^b`7-5Z&3Js_b~gxQ30nnE<4kV z6bR3A7i`!S3pqL6vJ-#IocS=5xd=8=(tK`C?W`6I4Ml=SL5Fi+!mI=7+_H+k434+D z>|we$XWZTO7xNA-gWqvM`rd-!*jxXqmZp4C(TsY1lack_`!9nt2eNcb@?Rk@i;yv+ z*qG36UpAs`tQc}j#=p#Ob#hl$SrDSKHtwFc>9qWxU7jB)pSyM0^Qh__)(l;cqk9D= z-13SFQ9Csi)TH7CQZt@(fLr_A*q2ewYw++{=5`_KG88~M`uaTuXb&PaRlbiPa?rl`agTwM@He;*bF~3SVPHL zeNu9veH}eLA^mNS^IIcq0sd!bY#rGj&&~nFT4&Nvh+NdG$`xjy0*v25#Is|~=K?_g z*00sn)JVyIBGObha)6^w34kM+8i00)h=>q+`U{g3cKGrI)nG2HSD;7}8-1aS#lXSX z+}va@;|-7bT3$Nb;?mLqzw`HeAw1O`2(i*yQ?F%UC#%WsiwiFf=Sq*sxTcwbrcG*e zw7Yn5 z5XtHB=~qXiS8~=XhOEejI$r3qMHb)tIyj(M(+a<&%s-=&d{u7!iz`h)NNLBR7`@!s z{g9m8uzgdWm#T@93aS^3=6Zi4s&1>;AM=92-lo00B2y}3!FAhh?9U~rca(>GnEr|8 z8xK8^ZFrZ>S*zC8TRSs9F-LxuUA`GK0C)|~S1#zve_2`8#!fF%A|(?#&gq{2*O_8uS)Rl)3e_m}3QUp6a}F;BG2xu%1H1?43p{+NcuH+Xa+TX#>M2 ztg=mc>X5FwrR}ej)m0o{bAf=~@W7eM2=vJNYEjqE zT}x+!&ue_*XX~E!)hRQhN$cnR6kCO+{rql6nw@_3X&g@b{IJ8u@Y1b;xSxNHtI5-a zymCzT7znc^;EQu6fF$ZJWE5GN={>l<)@7IfWGOLqz^b+%!=LdeqjC43EHXH#Z}tmY zG&6Iz*yEJrr_7%?)Bf9FJbKUT0UV084X@suBBp#u#vC1xcUZ8*$r=JWSrdT%>JF`^ ze8Vj)oWYDNqM9(Bo$~?Q)Gi{r_I!Pv@{;nIO@+V6RG;ExGu{IkYn_x>the9h^*?-g zzJ1;3>4iT2rbBcHz}u_O25n!3)TJf>&7{pe+4u~bO}&o|lVkI8>g@c#oUlBAv&o1$ z_f84|p&=!kpF)rq9 zw_1gEONs?(pETf4tJ7UxdGa5%g%rV;4P`!^z4ST!NfLcF9lLvSE#Y2%sIL3igG))B zz&LKOVPRWGoawn)4v@kAxitOkd}%Ob%!uGS&vXZ2&yMmL9r?1Xy69q^7y9qdJy|J>f+1ltne2?JJ2hQl(I`^Zsl8f#*{t@b5 zp5p&cQsa{0O9`p&GWYy#xn*uhzV!t%j+s=H?R3TA`ikuaP}zKl+0ZAq;HPCD4a%0$ zTs8ovUMFvApZyUQF!a;SoomAp?oWMukL{7uE&(&%dnW-($HVElTg#Uc&K~sbDde;| za)&RQ!yad|8kGfE*FZ$q>L{gI*XiCRC|a)q)9`Yxw`M|3QDB;e7O0^DRFbKg*}hVE z9*15IVd1EmFK>*j5Ab=@eh2)f*BreHw_bVPzzP^RK4t-mw&SgY23jEH6RmZ~DB*T>dA>!7l$jKfR^L&%}?kdo_ z6Qeol#`dyJ|HwWrtd*ODav0Uo1y8Iv{P4!%mHqhmW$w-D*22e7PaCH=(KeurVIozP z5&EfcfTQ%j!S%a4NehXJD(mTyc4pxzCRA!qO+ysNzV(6CfIb}P0!#Jk|IxrIj%zQs zlrOa8QBt6!M!SJK>tj666?v7ljKGDhj1~?o(7V>m zW=~-;uoJi;!iM>Gs@eYqElI~f5+SMx(ebBnJwe#P`!&TgKvvrma6(eA(gD5YS z^oz6n>6cdUlOnIw&LPCe-RC>3puN*&{OK#eq5AngZc#G8k!?YMd`1sa6r#15I=Mi)7orFhgJR#Zf&Thif*so=vUCufSQ zT%fs$ooKTjC+&QElRMv3cDZO%?(}zG1&$`J|C=s8!s~(krXaH_-Ydbt&EE<`gRt?u zqgM2izRV`}jT5I=Z1?O21$=~Mhi%)XR-rI=S68ylvqy5Q;bG%d&n*K@O+$eDey3WP zOP3(+?%UQ~`N8JMPe9-lHapveB(lC4M$fcos)nJd%J>VOkWn_iVt{Kk6zf3PU~Ttn zRNrSs#mSk)p~Bf&peeOVP8cK?Wm=~GpBF$d7U&WNg%y(O2f4l(c+Qmk3@1a)==<{a zGVKr#Ptis)*<3t(BAGgA?Qxf{vXqpgrRoBKK;8}^nC{>gY?MY^ZBM;qco6nEt9=<3 zQ=cBS=d=B1gV+B`OH>I=veSA4fkh6hRSq5W%%O zOnRks?fMfsOldoip?v%|VHIUxm%%_W;#62Mb==nC`Y7b*Tx+*J)pehV(1_4*1!$~VQCislLTkHi8bgG zl^pc;8|5Nq`#2QsL&YD3h!9}gL4cUXF2SchInuwSO&3;(hzqV%Ks1k;OfiY2 zLqP!^onJrjlVL_U8M?^3N6SN!1hXpg0yPtRdwaX1%}tu}_Gf|q7|PE}1TmD^nr}KQ z1hT5~sA<7kW%`AHS{i~44&>3CvL+Lhu;Qha#|@obDQvH98BygLj7wjOG4g@0B;u8% zEZ;xW)XLOb zg&A%PS}R^bB(!g8hC>>JleU$ADqf-Oed+Y2shnLrw#~Y+d!JM!r@~>TS1+$<9MWyP zdEOtpbEvnCCigKOUA55m=sKnS(HxL?>yEhvAL5{Q<0aDZ3aX633ZS68S6@~zX=rxn z;Hq$-&U83*vf{~f7Lw$n(IfP@`;F64YATKY5bfcI7V6$>{ci;5`6ZsZ>xzg=5BEsA}_gs}xZN2#a z(F;HjR3RkDZgUy@!k67N1`nY%60Gd7HGFgG)OBE1Ho{o&BVS|rou@E?js+9RPM({TO)!vHR?ysC$zOq+u{#Q5 zUUjPPPBe{}U zPRGWID@06n?!A8RTJc8}WPF{3w_y?!V5Hi#Ar^)=I%6eKJo5@1x30Cv(cxX->Od*< z-zA@Uk)d;lNW|<12P^s)*JxtZSPbsRVwKuvkOR-h59sABlwn3m=J}iFId4YAGn<79 zdb=cu1u|5d#`r*>SydwxMOt&B`C%&U;ax3tcuYy-rh&i%fZ|f9cFIqtbj6pXg$O0y zRN6KbUiWsy#15E|iBC*(rl~5~-?L?~t7iSyCr>Zwh)1ZUN>_sE_i0LWgH=o`UsGE> z#vzXqpw)k*Hsp^N^=*UPnc_SZ}Fcnvz6 z9KD1*XB|}iB3s=vN?Z@NM;a-F*x)FO_1;898AE%xAyw{k+V8@A;$&3Zu%dt)pya8# z&Y!e2>-%brO0X4GXKGMp?YKg_n;#9nt1|XkTJlMSD^%MCf^=VtyD$82oqHRpyH z>=V&17%M5l=*Wn4rS6f<$XAvlA}P|1KVq$MTExx#9lryPXiwXWL%c5r;<&<-Otf#J z4oz**g@iNR=rtjKJz#vx$}wo41c`}LC4!6QM)92y$3jxy_!zT6=yI*;hFQMkt1;&9 z?Nz1#&3#-$bBh8~28dDCY|467MI)0nr**!)Wdx@=V>|zcG)>0t^P`Zo2M!8E8Pq5u zJc^TM_mMuN%z9Z*d)?3cR#*Wk=$BeyRe+|uxO_pQplFOw=p`EqORQY2G4!D7jtPY+ z0#N#LHO<~XKos*Zal**@4$xJV+r_(O5|ji1?N>Bwj+{{VqoH@!p?IG5ED8ysKB zw4%qF*VvV(t)1mQC+8 zXg#La9UnY=0G3f*{q;jJ84}s=RhXN*UF+*&fvA_+^*JqvLn~hs_9a?aJLaQG>TB5p*tjbQHvh@$iEm}hO@guxh%Yu({94?-V!x^Iot|Fm?^Aa9C`oF(Nu={Sm~1G~bq&)i+drgd<$sG4b=rzG&v&1cZ1U&9sJEzDrjsZJY-uzD8{S5QC9g=-~LY& z54hV&i4cm9iTkF~#O6hO@m0V*?i&u}sy~)6;eA6Lbv*ZX4~@=SseQju>G8&u_K;EA z#tfH6q5qf&e-kw8w@eSE&Zyk zV@?g}VZh#TJm!L4@Mz=}ex0Zo3Syx1IO-iqrXy>GkWNhUN$U_Sqe}dG_z%D7j@9K1Nim z8z)b9>ZHZZ71KDnX$kln-jl-wpv+BAFjdjvC=~EDAUpK?Ofpmt(n%j*clFaTOD$f{ zLn&u#iv9%$jVw!^s*qup9y3W4JTH1T4KU-_3$rIBjfNbzwg!-cQu+r-6?P0EA4Bab zqX@hj2-q($^|y{IQm6@S-1v9QR`}HF0=*pn0@lW_Hn~CQ`eYy7y!I(cx&(d0s`X7B zjp*7haKS9h5Cus#RZSgG{t?ePTOlG^;dHWkhCNg;KN5KAe)qF_>ne3|i5>R*e5-}* zYB_k#@O14~@;HV362!PEYc#=!k4lY$Da{jp80fiS*h;f=gmQ%H9zBp160&c!HRg#^>cLfw<9yfr)BO0(GT^hVb z|7)QaxxBK{Fx(Q4Ap*8+LLxpk;CrO{ESR-!%m@7`ohU7ax6{a1!)MY}k9;{A?x--Yyiv7>Ur~O^(HA0V4SFlCn^y z-rS3mQ<1)qOS!^P!nXH8q>3$w)-vE>>Z6!LJ4D4d4UI#QE`2kJ^} z7%R**5=J=LrY%A=N~%VVDI$nXn+(-n3?48ulmH*(@qEx>sq7~Ty259eVlf!7cHiCI zz257sISm;G%-6_8{XzX(jN&6^H-uN@?FLN`Rmhs<4U6{K7F{yj+M4sf)3Js|Q@V>4p<;&6TDwt3P3eo@-kx?lNfB=^Id; z<5>Qoxd|#$LVSMGqspZ5X+nV>_dA%iJkC%AUzVou=ok9y2e!2!E0Ef!9u2evTXIzq zF+8A&tNGX!l>f?!UmQT7Dyg9TrrgsvqZxu8yuPBX050XxSG<}Br%&l6R3Zj0;_yX= z6K+D@J0zP}kZFXUjgNExRC0L^qaSh>df_$XBG3UrlpG+?*2UHugHYJL-(LJ+;Mu}> za*BL($zXg>c)nB14``Y%0_*@%a|$JKs_LQ>cL!QmRo zcR@?_#Gbp5oLsu#)DhT5%{P6IId8FQb%{_I6A&HFX$Lv__ja zBn3Ix3?H>RJ}W3+1_cM_+{9RNJ+7AO-I{VPmd@5r!oBo2pPgC@TX$0>4j%7cKN!Ib zmQ_)Lzq(HF~Tfa~hrnE+vy|Hgc_PUbD(AQ(m0#T|P&8IV%MZLnVh%CQUTPkaMK97%{ zJJ_#mo{*mkP)OuHE_tl=(hQU876Y0IXIj*Y?-|8hai=qj9AhUL>?5uR#dyU z%YNW>-QHGHQ!GFF&qhY=Y(S70K7i2bfIg#$xpe3#6%@xyaVRD<3L``7#i{9JbGj{ZbyONikpG;W zE^o97eP$6&{khk!px`)S&wjfoaP0p4#Ug}VSt+?C*_RfJx0*=?_vkbcG^e=BhA0_d z_oG7_)V*SrIBRf=xM1d`6~wL;rfDT1Rmk9_0B>4J1l_fYRU#J4rID4A#j6jfX=vDD zNE8R=grQ<9@$O1NK_Tl%V2DEPFiNhsEd!8%7Q&#dt$(9ST#C=5O6(|cK)gH!y0C&=H+j50Lgwm|4#m_q@+S`k3Ws2x?wm`O?=Kq;KE2a-`XAr ztfSUCtIKDMa{YcGQOzlEH;tRyS5f0`Y|+s5CM_CL(I1O>>n(D3Szs{u4dSJ=vnhD%0drqj;>1v=H2 zxu=H~9CV<1&b#aPyZ_6E5>1N4Pvw_=qz)6)(>2AHCrGGk=?_x-#+u5r%M{!3rvqg`-5Un(t%-qZ zDyedG9E#Q3Xj{sGopv^SQ2bz!Bz57Do)iv#kU_F6F`^bd{awHPP4t5@JuVqLjr2+) zsruc*R=d>_m1zskt!`~4Ag9EEXI;tGvQcJTiFsB9g z_sqW*lZ>Oo>;5$122lW2&yutbnK1S4G<#U9Cf1S`E0htvd#x9=bfP>@jxl_<3s+_HhKL&9X7A$USaLsFQe;UW?%oc zEf$-W6*b5ZVY`mDP`v-gAK!cx2x~tYflfHN-8CA1n83G5Pa&6~pT~e&$14;RYAXN8 zwqAy$ZF!;u%tHY!Kln}bqOIU!l>7&#YC$YqK}TAm?MzssT@%x9YcnoLPRaP&_0=I% z`A#Y<6V54s1;s6Es51V;flrfqnRB;s!9}cS%AS8jY+z|({7Ne<#|lJ1tFd{{9Bf7; zq-_YAUv8~q}5RWtHZApoX^(zerXxs_-NAuZ%Ox^tLg>a{Q? z4v%7jBS@_(OO{Bg_bEKQH?x3%VQI%z8~+Vj(bq6zewjQ~o50=jATfUeOjz7r^C(zx zcj_P>VRT9W$)g(#nX9pT6IFJ!+~5>cS65eSS2>Rd_yi1WL@5Eg2RtVWVaBObS#)IS z%;@i;n97Kt$Y#NaA#Asw0rXs$8-+}A;o_ba5|<*0=$ zn~2+=8LD!X?hl+BJ9cu012BG~{{D|dgCeHJjr)#-_ay0~CbNSCjU-xORz7FBHGlCu zQ;7_&=tAEXC{|{j!C2T`cGHli)0RnN>Qa+aF=0m`gpU?yh!bTPB+GJ~!@*y2#KSkU zG~%o@(X-`brbA$gg`hz#IL;{OE{;T>Dog$`y|JCM!rFN@~!x-|l?tVz+$@X!e4DJ`ML7#Je>0yp#Skv(A$y>!@W--%P13b)rfs}R4 z4P2Jr@VFsy4qX0yXtn7YtU-Jh^d5+_jXj_expRu$<_d4wh|-ZXrHvc%Ud`8<<;| z;C7-PGjlUn>=HA9&TiDFAKamscJmZ4x2b$t8x%tK_k26v^{O3gvMqQqDT?z8bk-5| zikuQhEaJIvXpM6?G5x^8DCED@S(P8G`S1xHU>NB$lnCvvsNzZ~Z5eZ-`+$sqSx1*P zzlwK`n^E)13;@pjuu6GfURqY@c1xC)mH?iD7IZ@3@ZhkcvDIFr(tAe7+CRWyv;og& zq*nl`P_4gTerob&$6RvmQi_^MvAMU)=JN8fSgio{lsir)D~W+(ND}z+COM@Z8QSaW zt<^>2B>}D9mqt7{dCz;O_B^i&rgP=%biIinM%AYX< zsifs^_-8n?qy-beSeSX2v8gs9>SR*rbMubc!oLHftJZF0wdPRlJ}W96N}bXu|pJm+`d5 z_dc3on{sO0Fe4&Gz~1)hE#2UN;&OB>S0s6V)(3kz-^`F7?EdEw`pxck-F5F2mz))v z={CkMA07Dtt1 zHXOFkqTQd`=?kXIwvKM5S0ZrnEu5X>&-`zi9}@yDlz&V+dOHJitxSs}GBw**saQ)* z4BOUZscVKNa82ej_&Rt&uM9UbaQ>sgorQ|&w4;{oCX``zcK2R&QX-Ms*u zw9@c{d<+%Rj+Oe+E&KbB(D}|Zk2!pW_Xd<_n+h*|)lEW{`y?Y_L@5z$OxRPn>WSJc zeNPWJuf8x@!9m{!S2n(X-lNZ)uXu82(Y!?a{Z8wL2cSJJ=r>t0RI>MR$~I+Nu&$C~J=ir)`tr zbe8VG+v|K)8#fNXJEvW$X#w!d$9xG&u=KMB<#_Fh8XmFgnwp-A3$AFl5FdGYO6Jw3 zEHb{RBEb0HA1rQ7qVcYSf2;L~*||A_Yi|YP%^St>JNq(>Xzs($?bv)PDc-ZoK`WNR z8qBB!V;wuxt=?LsF+p@Qk7Ez9GeZG-x|?_TAhPhTs(j8AB|;w7<|&{%1&T$Sj8V!C zR61%XSTR}tA_u6>GeCTa(J$I8%Eq)=IDW=v_l8U6bgT*YDv z1u-)-1BZ_AX0BR-JYOkv8(Cy*Ir5W%lH}~L!Izg5wso5=mWCpJO~0S6Bb#G3nA`;4 zo`zlh<=z$!J=Al%b_4Vh=ZK4mvnx$wub6ouR59fAl{mS)SaZmZRm~v}$a&IRLt8roms4BUl6VQn491ly-rfbk*+J*p%2upKCrgt&hz*Ft zqwc>Og$T(I=w#^=tZ9I8vWiX2(}jhZ#mCfJ7IXp5pG`-z<~#yILTd*HOIaAIe>gd? zna8c$p59$vURoW|lon1K zZrl$XTr<(!|9Jt9kxUvFWQHrXy~Lx-{DsE4&EolJa25}#R%+xDayT;NCJ`7O zviuR9aiGhD8~;uO0wGan+NlMq8*ZKO z^SVS7j!=D(yy+XaPu7f*k4{hhr*Sa8hCctFxuvNv5FqE@L>1l7tCxTGHt3yc7pxW* zJJG2P`yAHKIrm%qO?IQ|w-igN|Jn;X_Yqd3WI=Gvs0)*X znAjHSfjLKcwIN^1_eqEDDw1rSFe%Pqvsq0{eA%2)lfvO?sp8&13+VjOpPV*5z|7}v zZvHV;Lc~l5L=B1k9H_FWuR!eEJ{CSF*=FPI&eZ?1#9A$mUFPLNc@#Fwn8`2ZgNn-jl} zl7uBm>I||X2ktjK`Y)~N80t1f*Y>|dX?C0eI;OgFod7EWa4AVJ5G-*4{>}=3%W4!f zP_%iALn8K;a}on7kzcBZLy-U+HQzJ_is%(*z^93qF?-6cYxIi!df-Z8Zfy+GJdNfQ^uou2$jsfLM&QHOIf-D2?_#%cWJ$V8VL)?3k}G~Mkc7TEm z^<%D+D!ivXHI;y@NLKwo?|U#aZ@b>>&JM!P?XT`>SYX1w%z#fT(|VvPdP`AxuI4oI zl~VqeUvdiUJ43di^@T2)hWc^|saADNjU*aN`o+zSUJAvrVJ*Gp0>H~m-Ebt$dsx5e zl~ex3ElR~?6$?u^RYeF;R$gbU6j*eEKtSMLAp;=b*wI~B(3adDzPFlWG-xpOzow3F z6?O8<3n9jiS6nAo>TCG`k=}zhZ(#^aRD?{B`Uc3b(-MIOuLTz3a$G>!)!I6`mwRr& zv?V&uBv_jFcN{tCHlyr+WRXkZhmc}kPR%fL-RLM)>X+K@!1xn<2=Zo^KAar`iokO2 z7lC;4@3mtA!;-R&j$q63uvkC!S|eyxD--Jn#EdnGa4)OFPwbgk&-OMy0F&L{zIVz; z8QTkr{+B2ufFaaKh>4gYG5(O$H*!ne<(`KbW?m^G$-MU`l_V!al_nG(vqMw*Q=U_k zNM#CEF9+hq#>vd&jTpx&$nPBn+FNBaIqPFgPg5R0LEV4e2#10cD;S=WWV{cfg748B<7wgXIB{t0icB;Gm-!$PTVwG)Q$-~ z!UNv*zR{g<$by*O9+^Q}fr?7QdU3MpG*w9?WG~~?&lF;Mlrv~;_GxD4f+K}tAH3;h z_3y{5+qMX?Bxszn;;>NIShmHp1rhw7R=J>NW@`;7IYS#q|ZxauFOKCHg zpt@x7tReHcFSt9cd*+4{0!<87gwd=d_nFBEbE=3}LjZ0XOt4>31gEV3383(|Ob5qF zU$os))E9nJz(S~5Vi~fJ2Zn+~29Sy*OG87Y?47aJjfH15LI=5PG>~Pb%qSZ!?QwCo zPdEhFO?YTJ;>v&=Rdm!jAYQh3`d&qPxQ|t1_-rRezM6kZpNUb1)!?-QUR$2=L}|(} zUNV+k;n-QPl=3f)y5MZM`i{$AtQcX601C-KvR?)@ec%BSH&kF@RtKfvZ=YxFZW&st zZinx@hYK_FWe*kKn)fp^edWIZ-9$ZTXn8gI@u-Hu0%*0v*AZgs6bZkC(Bkdx!s1+S zgQ0>w{ZWN8e)tE11%HhU4KQ8(YS3nLp8OMN_0V2jzjXU-QZCdnKd(HwFweXs+Nx|B zovvtoyKu-le9XZ(=z|jbKA?19pE#2mTUSD5`f!2w`{~Xs*w62MvF;DKi7YaMMTnJ* z16*-N3u=$B8{XBwoMuC6c-&U8^eH>82$D30v-xi!Vb zz4z_bmc`iA1OoAF>}X+whhHy}degGRFyj4Ym%-`w4&~)H?uj@Cw*1J44f)^S!6dDL zzWWbvI+GR5)rRXf`dF-vR@BKXonsO+6%col5H5^L6ey|;LkQ$KD&*|KFne^;+xR_D zfkTHu-pgR|JDCvFlb}m4AM3#!233&Br3j{$N#NDczRT=7dKFG?O;K^KtxS=_pINg# z>~|Zrh%q!)$#~&m<{~%Ac*%SHX7@&D{3HV^28V|bjBLN-H6tutXlgX3bi(m2lj z{(C1*e93m4ZD?o(bgeNvD?%E#f{I%hE3~!zV_KQQlxI~8V}-EKDNw8~610u#nu+Ma zY9uZmSM$~T;U<3CmsMKpmboC2YIAUWKUBpOKLd|I^ec=QN^b-E%&fXW_z9XpbWSrc zL`S_EQ#;h_Xi-=CricCj>QH~a%iKhU5;6(fk|^x@w_9Dd;>B6PE^QAKW` zTo43g2`N-`K*sz)4qBGk4mXlm9`fc%$P!h!glR1$kEaQXl#Bt;;@NI6=zkBnIVf9r zq}EBu{f{8AFW{sB;m=nGD4EZV4;r{mkL6YuY;kKH93tHDnPEf!DS4xBm zC@7%lw<>$2C@IrLry^z^V$+PoP!Fc5lDb^9Nu5Brv`G*oLQG^m4hyQ`wzWz-tLaR6 zlW}->`D+EOz|aMih=0Z!CNY6$Vdx1+CTsu=;^lRDd>IR|kZVQ4=6KIu@6VC|b?lbm zDMCU++BVRctwzF67B9hgJw#R}Hl_8njT|>kB_vhLMuV~f-RMdxcZ8^D;70Pz+W0=z zCFnCc%6BH$WxO^o5du7Xq6IymLWo6ea!tn0eHgZlSOA3r-lg0l^zF&@`M$VVK8W0V zvJKyC@7i1%N7tN{+%#U;goC#_0#B1IjmETit1w|Q1ep<90z3;x99r<$%In+L_RkMS zi%v$Ee8zvk0aQHQMQ6%}#N~JJDWUw9l`cPWO$$mN6^uG5S`L+fGQpJjg=Kf^_8S=t zyqasT`9OiV%^hPTW_OX=v^GEg>onED-ainI7>_pQ0Jc$I&nO}>yJ)onHN>Lm#A#hJ zw+|ssRNk8`L=`sKkKhW7GFoLHqttJv!5nsbNMbZ}oILpMGx%JUUZyJ;vx$Fu(*1<| zPx>3rTY3sBy0TLB-nK)+9`DDWwZLX4d3ql(u~>JJd6nR=;i(0wGb|f0WXx4Fq>GgF zw)Y>m40Xk>v3Ris>u)7R?!;Z6=amUd6MGu13=3fW=KRI#-l*gR#n=4@@bP*>2d{5b ziSyB^x~SXKB+Pcyx&5wm41f+L>kS^0_q8J`AiPa(44j?L%ZH~#%R=0eu|iKPB>RCs zT($=Fw)B-))qIDH1qo0K=D@#as7Opjt~vZ#-rF>FVMmYQ>3LXeGlmw!+)>Ax{lzQl zsiTYOVO(?$9mUBOB=7o~j`OT62P2d?DvX+vU}OBQ9HOcW!HL0R8c2NADkpWKvzlg9 zxJ4Xrv#W;?jq92mWT7sCzL+ORi~-?StaM~e>zNpi>e`M{P;Fv-0K(mDuyf$tIbGN; zcoiJ(0d*lk=sT&XS2!8NrM2S|;_qFJM2XG{`4e|J?NaqnQ;G;|Rc2^j-6{UkD^}=p zcgONnjSL0?p1aD>tLfVyKfS1l6jcx#+x$~X_$+rs#tMQz*m9qlpocLGP8iD5dJegm zXZcQTM;*>lKiedm)#rFu-S^n|t`o@Z5I4OSI^{a)KnRT-rMyab0RZ(SaK!ZH`YqIx z8ZbZhxiwM5;@_6Oo>sNh-bJzTYPa|_J=3C!aTt9I>Y`R5`?0+_e{qEM?+-|CHK0Sm zxgCXmWIePI0+9xC^YH9=)~H_^6(@@MdC6duqcnnQ)8s8T1S|5_fc_r6mZ_`96JQah zV^_Hf5rlaIW3!TJbB<&dS5KT`9WKq6%&o2N0DKt^&pH7v!)r55<4QO zlvV*YSbO5@St4Yv(B2WC2Zx#Hs65#~0(az2yJL&-Y<2aw&OizVgldWH$~{`~KYt3h z@Ksr)$(P@u=#9~~M^D57gUC$wr*QQ}>V%f71COnsE7U+BlrQYkJG=%QUUsBQm>l{~ zW}Zcmgc?k?;VOM42qQ<6etQ}m-1 zjtP0Dul#xO_8h#JJ!z@8pWga&KOYkneiN~5{G{2A0sHy-+ID5^6#V$O;P-ef+JWWs z-yGQD0mo{aRo7;Gzt+|hdm%2U3wI?H$U><{9QN!%7yLlIEe&qLq{-xx`GGx!oFIRS z;gZ!0qsI?Fb)s)LI7@>Y-Z?%DuP|Z~^k=~(X5e~(MR?!njrS08s})AEOQrcgdHfEO ztgce<-WftAa06p_Z)tM2Bol@Mkc-kEo2WQYuK$q7QJOT#ai zCWq+42wJJrFW#syJ4^5Qr{o;b`KmoV1RCJF4OlpRz zj|5{Y(3NT0dV99rF=j^b-kK*a21Uw{lHuGW*pPHwbl64;oE#S~JFh#@5$U=cLQOV= zP11aujPyiVTnkV@+uZPDorvqS^}AQqR(|{u<%+-AP%~@R(qLs_D!p*WI$cR0m{^eI zot9bU76gy$GPf1dKO>_ zX^whA`#F3zz4itNmhK1G>D3kh>PsDz-VUQTm*TDxgaxXDM;QwXQ?Ni|@WEkjxq|)` zUJbRT3crh1`A~L-!Nb_qRn8w0(fkDx0b5((2BUGkHAXY~zPF?wv0R68%Mrbde}TDV z?n@RnWhnOdvm_xBTV^zq)KXRBi7Zi({HKq#wy3jb$j~9BZrL?b+aLNSE~t`U$hf(2 zJf8G^w7u;ETXHjoW5^SI`3mKYe0=x;n-d#n24R9=?M*v<0Xm+R|FL+A}^)4`Xx z8_VgFbphip=vEYV>GoC1?=s(axHv2C@@5qK{t|LXM%Ev2(NlREDq2R9{Oaorr@o-B zj4Yi7heBLgt|$neVn~pb3@h*EqB2sN5lJNIk;^m);6SE%&eSHx5Tox~gIeTkz<#*LZkF%Lyku=$$ zz?*Lmk5@X{PXLyk=4x}9H;_z3fT->3;eKVm7%S-w!bueyV)XkZfzIv&eT`Vd2&ENr z8OFw@d=nj8^L3$ZBuInf_%6fiD*=Ht@553&R8+bw85!!@n(@i?0_F^v?GI8TOL5w4mUVn($K71m|nfahUt78AY7C?P34At#HO&icL1!$(%i}bk2#s}me@C=}# zt!?aX2+UUw#|#75m)`r3OCu^c@{lGMS9aRHbm!r?@lrX~F*n{=lsmeg)*{nt=JaR| zXJE`f9t9c5SelmqY@!xryXNgQRFqH$cYZicYFr&Y`}O$XIqgrY)wPjDnzFJEn%ioPu%~#RFvtmhA;aoTOQYeP z!VX9nCnZJYv7i*1bLK$2mM_<3v+lO0Ko|S^J`qvD122yoWy~oj6i6sbqd=qYJH=1C zusC?N*g0{B{tKmvUiL@CrIsKsdfv8I(UlyA|Jw6y;Xs+5;^>HpoBW*aNc$n};Z)-B zDTXZf`QeM`r8PrHOxE_+I4mdJ89$dA%Syf((y}E<9;0SELQL0cph>C`ZA_XZbtw~q z!;Te5-V9z?Z&FKqFxVs1(K(*e18dXn;AydG`8)PSXZ9EZ!|y)*uh$&Im!2U}3~q4g zy3Zpm14%eI+d;F%VNNayypMuyZ%IQ(bN>5*SMq{9cZTw28IJCP^=5p_hBx{F%{_K5 z4$ZaSPWKrH2j#nwAY33P#w^0BK4sNLKF;baz58iTRt7AAm`P6KWuZDAxYb-fI9e5b zkntP_CqnLj({k{1WJ-xNZlCj8CGdv;Gy#IW0g#bJ@?L=*A7&#H_&YEN;W~+Nhze|3 z`u`4IYj(iCH5n^ASqb)lJDgUU$faIgH1mBIx1fZYEc)zXiXQ*?eW?cn>l6^QPmzuM z%a+NaR73)M-=?QA+xq##!N9pMFBmgykC>|^4R-6@#8M@S2ULs=w^;yKtu>|68+F*Tu7 zjN$K~65Jhs$fdpO%RxG-ZDb#OfCjORb6PXeG$K(#k!cuafXOJI%z1T z6p4g2%e)2JUbiETGVdpL+Um(V_T&2;;v-x=2cpJ(wZ0G)X(c3^neLv;kJ&MOji7a%^_XbY@%+Z#;m5`)S>K9hadY0(jIE5xBB18?+lq1q zrx(9$?Gw~^8hO}@u3W7GgVd9e)7Y}V~rxUq2LtM1=m^XVlo|nMpP`t!d|)`W66SK zajNT+p1zkCLLNYO{O;;HbzfGGj=Dkz-OO!c&%W1@v8V4}Cr|>vK$@B9da$piXj4LG z3_^dnsBq0=BMG&Q%z-|XphnZ16i?1zH6(EmXQV=!N zL=lyQ0K$ZY97r}_UQToxm&as7RX(@^o4)2Yv)XK@?HgYtCX`c~uB}C&)P7)tlZ^X= z{QC~3a@SZG7&1@)#RksGBJ9psWW&4sBQL(-7{3DKDFUvM>3nfc_al^7*kDe#Rcgob zqIQ4|ajeT#+QfXRK4tIF#t=222HV^S{^Nzitg$H@B)7y;Rq@mgk2c2h$j_vY4mu_c z{PohD?~okk?80(?l;3uBZi9Y$PPZQi*bg)Fw^Lt20(svhskEw;^Yb8HGBO&;(*qkm zj96egMzQ#`21tT#xaGVT%gvI&xbG9TeGmkV4ZT;qoz9eK?!cK{$PC*tWkns@qpIQ8 z{MUhu|M{k!Fh#kfkc>5LKPM66OW?B+8!795S>!vNao`tSUx?2ggp5C(5F~hYGNy*{ z78PbV&QHz5(*Du#~8 z7v|C>Ek72SH{lh2y+3Cda+6pkW)rjAtlph{h#cPn$wdYYt;LPi)5AmBtPTR))pG$vUy7rXM^>TGI}!W0{XYAOgnZ( zggzM?ydEcn%?ZOOlH^zCFtiyWOR1T}YIcGKSTq@6iHlK@A=9GZdI3_I80BV64y1lk zIlzNTv4B@9$Qu$6vfe(TacIVdefbOOXs<99y7Hv&H!BX8>|VU=3}6wic1g~YM9S1N z{Jf`)|6U$-hZS?$0@V!zfd!9C0%aYsN(3-m#vMDJTV|dzA{?`Fk|GpB*%#$LcOS;X z+qqev=*TDrtqn%t4jLwOO1pfT7~6orCUJp4fydmC!fY6JdDa!m8|k(U(RL(?kep(b zb9hiCG=xtDIk_T3o@;xG%8HH-x<@;Jl@GeIW9AnuKNJL_#+qfasf)|F{A+Z;OLCYh;m z*1Ik!wJhbC0YC%?-?bx#nSbY>6Cc52w;^~mxfylZX4?l0lnVr9DaZ*7N&?UqT#4BN z1GPEQo~O*D1bReyl?2?S7lV?8pf~V?Uj-nt2sSs!nk-mUp;+$=&L16TMr?!U`?q># zb*;I6Cq?S7-@q1j=^R`hp4Cb)YA&oHs>;f5OR-qfR9G4n=7imDp`yZpzE}c_7a7nt zJt;iC?Cr||q1q#_r-`^Qr%j<1m`T7-3(|&gWSQ&F!{_O-=hhbF5M!q;4kW>;sPM#8 zdm%K}bR=473VWm*DuMM^nKDlc^pVkZhFPB=V)FyPAqgz@SN*Z;>~A&C zx?n?*Z(Pi^uEp9UGCU4os9{?ZV<=4*qPJ}j%L*T36A`C46hPDwAs6!Y%(!3F(X=Cy zrGQk}QE!d2w-%PrQ+t{)_AJYmI0Plc@T&aDp;ne*)7r*BtE>TMSM@P0UUq%<9EPR5 zYQ+-6gWJ!(I4m&x=0NU$C2XhNmFCWJ@YISr(@llWTZyfg0&TLT{~`VUKU;lQgzf%+ zFF=KdvUa8^@boy?qSN)etP*+WmN7$M#7*OtCRS~9NrYHU#QrFa!XGB3Z-H0UidB@h zi>R)=p83|79(Dk%95R|X-K02_=B_bWf%edR#MZ&% zck>k~u+`*T@lA96?onxb)4xKPvna)~$1g?BeGS_FIgo~_SNV?e8w1JTJPyRf0bx1o zUm3l@U#THec#9XOr-_4>erdDyp)U`2-sNG9^pay3s6s#{52&YZyqV=CB?{F4{tyj@HKu;b-+$S()qx>!M5%Tm8C!W*+?E3V{%S$^+Sn` zWM0d#G6#pNd%Q8LL@n9tVQ(CNI61>+UY7<(}v`I9e(aZ?0V4)VM4Hbw<;b+>}59GEC z`V3A^))~=($q*r9)Mm4JRK27EzOqx}1$2tLEF2C;gCO$F_BB^i-)#?CQCrrsq$w>Y z@8WZa9?|CtJA{Yt2%8P4!F~x|)V1IY!Sj)fmOQuckxM;Tpk+feGTi>g7i{th_}-p> z4}r2-%1}`N!0E%5j?Be|j{TNxM+CLT>AG(Dl^QtDni-PgYW!uNORTNtKMtH`B2g)K zY*pKa+B&FG-#X7-B{EG8cn&-K8OEbZ*)^^cpdli3RXBn#=-}+i&#qhpe!*{x{u(lA zE;wtvXCJiY&-@IX8>YzKvHTWW#H(#enG?wv*U(*(H!sD+q&A?h7ZISoH<>*MP&hW& z6kQv#f*_l7KrYTI`ThMb2H^UB>;h~S<<&K&lsX?H3hXyC*YtHV?CGM=ns{f_EFK|9 z9j)MjYBdkAfab!C`|ZjD)V2W~7QaHLHfw&6cJdF)EXDO1n}LhQi#o4x^P9jAO-B4O zTM~Fc+#2tch#0QQ`qyf`df_Y}5z?g@0?&n_kbGl$mYO>CCi@;WL42o_&MTw&y zyS~9hk);SoMB7}6Dz_s;p8?VobTBd2kt46iB<+duLqRD|7j*qN(Q%<*uTFvbwnyNZ zuTi0A?-W?Wd(}79@-f4dgLwT^w8@~c-PThfB3c=3pp5u_hRZQdploj#UwpB3*F}Gh zwq~4C^d*6dmIUKL`j%nl?8tOUtpe_ur3}%JNQDHn)~8cs*iU`xy zX{hz9TFL3r(i5T~>qzsZSIp?feI@75lw;P8%a9JN8I8Nk93|gNX9JTu8Gcpsxa=&7 zD=)xvhTH${JQsj8iH~-yWN1NDj;lJyesjZx51tvP!gY^~gE2i;jadhKSI2G<^(&3@ydRjZQjA5**082qYfV4rZKXzFz@N^HrxsIcrlv&x zgmszyWvw8SNA$4KYUrM}iTQ;mj%rAGlm5U+Sv{F{77W&!uM=ZmnhoPCKO(9K`r)ZI zSDOC@Zbg6+HFTMeHD%9AN~%Yj!_k(wW0koIEE<2yl$m0aIF!_GQ7?1?tAs&LkVcC8 zKEZeYSl6igi}fFE@_bOdcYk^t3fiW*b)8%B7Rs4=D~d(+Wf`NirvtM6&o37CXbjnd zbyoVkyg(8t2)#}G1z{7H7!A4j&jA9ihdb`vJfeCg!uEE-1FEJA10Vp{G_o?Z6crWV;YnqPa$Hz-i ziY!6+6&q^`EeIPHzg=R3ai-B9loWCTzqKbc#(1%3C~O*y2$Cs!NRHTA&WJQv#Byd;j~oDREQx> zMn>jgOt;AwHDcRXx24It?%Wpy%BTR53`Is_r14wBV3y#EqVUm#lI#cf+|7ut2_aK% zuFNmZ#a@wwZW;SP_)4f^8wd+KG?e*QAb#Fr5ffZB?$Xt1+HP?GRE_b=+FOK0@}~s@ zP`sHsTsRR!NMnmWZFv%8|HmT(0rW0INAWWGq5j-TjW`va!J-Pgv=pZny$HhY2~J#? zfaVQ8AQSP`r(EFK{0iJ&s-Vj=fw{l78r9br?hGD*iUBw7$Y1Rb;Z4!o3^^m~)# zbf2lvAmmMafv;l2cjKeF0e{)F3&=+{gH8K%Zmx%Gel-BkH= z%S9O*s|PlzizS_mFGGpO6HMJhZL~Or@y2ywUj!Yl#pMDD1T6!62gdfg!fz_kMn%1l zjmhsfY=jp%0$B{(^@O?)-hVO&7}P^$a6TV`%a$+-BvQ{=ae|VxKHbuTb6l(j-g+*E}fu-8snQRS?j7ZzN$h4Ye7PskQF%k4Q0ixmt4d2<;C z!&B#^X+KEF)MKfUItfC+jZla0*VaV|uaUCVYH$?W^TW(0LHZ9814z~iYF{}z3u6s9 z;AY}PZ0}d;Ov&o=taU&h~3G+8k(<8ZF08R`t9gWrtr)S>XT>G>%B(WF=b z)Z4|f==>oKx4oV2k#p!LWU}VI$%6UU`|Ox;uz%bzC-%v_Z-l+F+((-JVGhyJ`jrRF zug=SCHNDj?aWTY1W?rWr4kIYb=CUBp#o(P{T?fNKQ98#WXfV%AcSUUKXaP2YEE`t& zmx~&>PNl){YaIeyxAns}3-1;<_^|GSedwPb=gM@?hoo?A1XLEGT~2_uls>T z-!RW^nbIzXMxH zK{1rc|I64gu&V(sgSI&l;seM-J&a_2esF>SVOAinD=VXqUB=S{S%|d;U&B>R@iNB@ zQ#SCxy`$A_d4*_cb{0izzIr;x`>7uJHs7qDN@fy1vJm$rL*xI zQ9=_ltIwHc6^ek8iB}Z2KG?I}o_rU_;b~)kyUaz$Z@YKg-W3cdvd{?FbtFAOWd(z3 zS{`}+0SsFiCM=TXhrd1jnyLBF{EFAfM+vc4b^jq_gc2O2mtp0}i@L@AXIqn#G*gv0 zje|`|M6B3?q5i8sW16bW6xF8q*N7@rINA)TEVijwfrWGAl?bVGD2y$ziiEMKTSi6F`dn&OO3i6fN?Fh@d2T`ViYJ_knYK@ z944zXE|zU$WdJh50FkHdw1?dcPy|$k^yd+2g>J-7>N8=Is?(S{oCDT`n)YAisO<^c z;}Ox;h8b>{oDA}{sfOq`P69V9Zp?ldnO330O@RYiPO_`u-(@-dJQ= z^sNM_sbJ*K2(TofWV@0lE9>84ViaIHX3^6&;mRg9&4N&ovg&XsAA9^A3Wtu~9|IDH zqLFHc$tN?o`X^l4AaP1QlM}L2y6TXL4Li1X^T2f3%0N1^G(1APlTw}5H9OR`@ZO_2 za&J>Gs-|H;-Ev7^kfkpyz@_^1i3wLGDfRLT579Y>7Tzk79F5faC6>_k0T;HX=Ys{Y zA#A95SSmO(7kGqgdPhCn)jHkN!o)%Ia|7ou=ViV3kDz?X!kYI^iLGXuv8rB1W>h86LtLsKF9 zLDHY}Fk(o|*I66$lKB~HEx$Wa_|7|0*#NgCX+i8W46}W1tq)jIGlpSy)|MBoLg}e{@95HM%&|W=khTKf&2-n%kM?Db0#dqBMgj$}U8-F`kMvmRu2#Bmu*-r(7%(l~2 zgP+CE1Hst2T{Ng4dk~tIE&GqgEF(oACRxKCl&wQg(igv%beHfssPgyIul_>`gzKYK zJ}=nyJolT}((2v2h4^L&8BZZV1<7Ca^*u)Xx}uSU%;{jlG}+f&=XPjcNFs5)|IEJO z`t_1BUSh62?Ah%{oxC?Tjl}ntCJaDnpZ`ggD!=kwUJ)5Uc|G71!(e>$Q5mlTOs?%= z(^skF72_lp$%c;hq>%HO5=Bbx3paFAO|nIsFXA)&OcH*6APw>S^kQE??w0vO6t}AMRQZ%QTU2hkVx^umx1VWsq{hGw)P~1u zQJ`8KGw3*{tpaKS+BnOV^sI^RCl8=;+7G7-N^-fp@y1OIo~~Gbyj1}~JUNkD5todM z$(5}xg}OVb)N#hYh}RTPFhA-Jcd)kg#KuET;F;iQ159iu6)Q@rjsnOBfF5VoRM#s( z{knJ$NEh_xy-N%(FX4|j*f5)>h^H5ysus!Hp4aONZBV}3MG;qw@%@ZM5PG?#P9hM- z1Xn?6&lBAmTXO?W+;~4)Sh&PASaHWSge0)}mxjg?eodH}lKJ>XMknzlOiN}Q zH|}UcI$D1^E}yHTvjc5lq9V-Wcx1r27<>K~4Y4zY>w>S>WKF9TYs3_Zz^MYp>I|?Q zOcDhTn)$QIjKf1E;DLLVV@(Us<0KRK5@;HY@j;YQ9lUy^gc^0kFFMl|NIKI6 zs;om)sP){kGO<|*L#6m7cdO&eu{xiyNIDD_(ZD!Si9cgk**odEsW~ilfcz;YVpwFf zI~Uen7E>5Hmh{B?uSCaV>W89i+JLP#wyqOdV5QPbJ-q1FBT2KsL30c#shK%nX<$TT zbR7Sqg@{LIOu8E)GxPe4{7K)|ymWP*oIS14Sb@SDd{k*HD>d{Cl8coX8#Zq4cqJ-S~;-#kvZ z%{+3T$8q~>5ff+F?V@1r>SxUjN+1M(6zt2^ikqy2GyqahhMz-o;iIQ|#8^Qqc$kJ?2W8sB zw%P-WC89BiCUmo2`l|b4Q{zCMjYt>dPwbg!tzh=yazXTTUWuH5t#R<3-8=VkQQ<hV(fwI#iecN72oUXo7W(>io4n${BemBWnVOi8j(1= zu4h8k=fkERqJEN*-K9-nF?-`Xl=`wLYVqHGXi@qj+mXb#$g3$P>DU{QcHGZO5zHw241KAF=l` ze1=|ix#!>6_#Bdaq9G@Im`U7I(bn5Wn`2x!kiV5#ACOMYogp#4+mvyuLY0pq)>Q$)Pa*aw?rbIn~NU0&Pdv$Nvh!|Fn3 zHJ!w@#lvD+%lbbNVyLn3a;@!{8|TB2wrQ_G;fLdvhFrC@98{_gRv&KczLpu2guIYP zuHxlG-rC=~^Py!gh~L;MME~ntiLb&9&?POm;zgqDmyMTZ=Q+4r*yoq}=p?jU zUz1LsL>^|_COq;^xF}~E?Q|-$Z*9}C*4t)0l6gN&6$kDqF73Sk7T?8+G%w!;wvb22G6K<4^bmJ!(ECY9A&n|B5GzCX0mLG!lg+s{ZsE-d#Z} zc#3sWHG^mP*79U@iuZHlLc_3ua%ytrv4(F*Kdjo=OyTZI=at_z;x@l@6-A1UOX!yH z@XH_A`~uOuv&Y@MKbuUQee>ST_%^9V-rXO_eCf{|RW3yPG@m@3Rv)XR;`wG2|D7;T z6?!fZuiV}m?&n379}GqEE{=UwZoE$k@oTE*_fpPw2`&OWSs$M{vx!FE$>crHcDQag zPFTp7&?9dYKA*ouo&LIQWTAGK@=5Po%BgLe(BxHg`nPoXo|2w%+2Bazhf;VXojr29 zd1gb0vWTAd2U-1d;+Oj`mGxw_D3{XK9{$OwiFWC+mx>W4ikGL}H|!-G>7H_?&e?Zx zU8zrK*bEl(eX#)}BE`IPuZ`WdZm;_8Y16d-R0fpINBL3&5|z9tO{ct-9m{^#LiVw; z^HcPu0xs_qhq4s&m$=(X<3ifq!TyX_A?SH+p^Y<5cb zx8S!IY14&~60wvM=czFXiFiX}=_*vJ^p^MckY*{5AMI1Rf;sm z`iX-FSJ#Mc#*b+6Rxa#si=S6hW7}Q7zLh%!e<4^Su=q%c__pfNUhJC6-(#9oGRd?& zNVNYMwt4>YEqFhT}Y?=3kH3#+1*IvNjVM?`*8hyHd~oO9#g(aip*wIq-q+;?&SQk3ADDgSA+uF~wm; zB;PIW!%}r?FSfNOAjgJeH+DU(^WItHk5o2&$T?dvLW_rJm+NkO77Jl4< zFcw>Xp@GfThFpqQ?sO0B1DlqhxesG?S=SLDuuVrom5!#}w&s%scm~5*DV7FO<-_E) z{ihpnHQD~$#~Bg%{vA>6PdwWe1}?t0%e%jEg4FHlf+{B^&FhmE$|-OyE0yU?y$4^I z!6B-M5h+BGFC98$WSwn`1pQPIIvKqjSU(F}Zkp&ro!*omh@PV^bm{hGFj0ffMS)4* zXZ6D`sxOB)*ioIKW1*ETm3Zk?r^?Bj^&JD7j%{@(wV5LayUmj*%7n}C%{(Y#nx$S< zzSQnLw;G|)FsU);8`=(Q7GXe?Tal>pzHv5GPCa>7zqtJZh5eOwE!LPnu>pGa&E<5p z5bq==@6UDn&_5pQv)}d6A*y8nx=wgMPDj{m1-**m|H-!Z9^%e`jf47vr+K90+<%^t zfcKnN%I>rDF9Gq6Oc|a ze(&M;GR!|MyNP`TeB}>jY?(rLZ?GOoIxxLNwO0{tjm`Oq2~hWa-+5*Gbyv4SH7C>8 ziLRwCQ=z>@094Rz?2w|L?(Q8Bn0>$oBdWg`NJszqcfzeXt8?U?tRXa6o3a!GCoV@k z)oAfjj=m!{0*ysLm;oFh0_;sOH@!oI7Zt=XRrd*=-yb;#j4u5_dB$e-Q90AH-S-Lq zXhK9I2nl@_o^R=h1`mD*|Jvh=l8h{YcSFXBqtc#3>;KtSr*+5|B@~ZJ;K}dKhAdLK z1()BcuPjssVA@*z=bu`kE()$g#5#7yvVp$Jo5@?LOHK?3#l9v6`)|T=WvUa44AqxQ!xz zk>+!eo5#Vf^eFuYsS9`K=KV)<)VBMjWHd(4h2ntnJ z=$Rqog9c%w)<&(}iNS)aoO+)GrY8gGlh!5g@Q09cpTodH>7c2Y$?{sJ>=#3PLL^V_PI=vP1Y7_VT4!7AOWcbKGYnooQiC+{I=wth!Q zp*d7}Yx|B-lU;Tt?F*TU7}xw)gGhMMVS2IozL)Z&txf%^ZPeY`G=rDAHxr8k|EMs& z4{{%FqT@Fd1H{A^)tw>Iekb4Wv@l6v*vV@Ux%g6`H<*6uILYN+-2>}G)mESOyJfnA z&MVx@V`Wq~oiac`g<(3Ea4nqNRl6WcMa@j17lS|37ceJdD9Om0N zUmN_4>hz9|^{99xCmQxim2a-RI1aS+IOW*N_;0(2PI)*ETNhhnYM6#t8MuV+`Gf#x z1BltP``diZ)(P?OX#3&PDX;p8lr?&$VxBfKKsd7PiS}q~+Kqf-PTPtB_JXawWGDjB zEb%8vM(WDrfd96Bt=oj#daD^eE@`v&1Jkdkf~?S4sr;~Et@!ER#b#;Rqc-#9tXpKk*m{%#b@a^nCQa~WbF~8Di4{_DSu-`{biWH%{FhHdR|d< z-K-@&nntpH$31%q%bokZbsMC~BbNuAL!pU^tnd@*#So;73XkDfZGyxr*;A?Y__8p!|hxCP8KWOH1@e3Ai^Tsba~L?$Kl?8TM|tfm5CXntJ6n&5QhV$ zwV!P;cVyx2u1l6Ad%sh6$J$3d-D|N{?AGYTFWH=1A}=QMpN0^yHx31;l&+VygnNh+ z1_*>-DC~Ad_Ulr2-xMatf36%35cg8rXKT!@TI3sw`j<=CMrH2-1bYqL3oiTARnbi9 zkl7~#`_;s);uVVFF~ly6SdN3V$LC+?C?z_7f2ZnD!jYm|^j;@x@!_Po(0F=s#7@m> zw%P;dGlD%q$l2_d0o_4yhwQ^}b;-?$|JT-)$3yvj|01C*DP^WK%9g!i>}F(Fh+=3G zii|BZGqN)!k$nv_CVM6!pOAe?wlG78>`P_{*_p}yebndod%eD|-*5iA&pqed_c`az zz0Y&+x%Y@jtAtIi;AHnN3oQ6vRt*xjZO^|eF)XHeIw%m{3)goB}WJ>$Fg-L|(BdwwL}y-Tef-srg{1d4M?%T*QEgWPQG)V=fGe zOPwhYdhx@8;=T%>SKV>_0n90w4dRk|()K-rT>RY^21kI%3VR|Sx{kPaJXhPRSGzzf z7>i-vm)q~sP8>h^04ar*P6pj;%8_pawk{e3Queir+7m8y{uB(>5#n9*w_bv^b1rH< z)Sk&A!PFkQ-nvbrcfVz~t_?1k@56OfAvMP$Q8eV9>f~2;t}!4uW=UP;%Vcc_JV-vq zE;LHK`c-rK4BTQZbHetDX#Yy{y3MMM-(Gr1!3wTnPlokZW|A@5%uaLt>C=EQJHs%D z|1G2$3!5%Y#n#(jc;8;;%LefII_#~40oU6GB*0&}NNSYC8-_z}XXP*EEa_HU=#R_5 zfOl@^CF%9v=n?+;*{w1bZ+z83@|mf{n4#pIJi9Tr_h;l>DYE5o(2u4-X;IT+Lvc&SLlwx7HTHkYt zUE_$dT5bP}r72F>Bt^{xLs{8>V$N+JrWd3Y8C-Un^w!q<7Xw0*UTkFJouTS3 zM%NJ;gN!RO+vZXpqsIudy;;anw$my{BTf?z<;AHE_qY~O>nvZGWM=RfeCh7?k#l*D zNad}Oy7@`IYhNPSF)E>cIyc#4#mq)|(^tR#H^N|01L=!ZrW?bWt*V`q;V#g8eBy&x zS&8GAOkU?WZhdxy)x(_Ih*J-BPGmgX%&WPZ)$sJ)?l1cjC(H&EPKfrKgDeZt=Wa|| zYzC&z_jEHct34HOykND!$XP{498x_`I^EbKCD$S8xaD;fNMXs*E_@wWjGu2=jp%fL zViI<~{;~a93n{NN*C^7)6P#-9%YT+~vU_HENOM1pmd8-8GQWe;=`0v^O^s*x;yA^ozZYM z%U?1=ncne#Ib37T9Eby$htkUUplzmlO5V#CSh>^gJHBD<75#tENOlv8@xsRF;lWf8 z|2J6myskhA0J8wSe$|qHtKtATfyq_IvGeo$WnqX4I@Z#d4?d1dY-rq~%0$3XQQ0v_ zK+7_vb+ikA02#_MWchV{DM&R$fANJ}b+nw)0C(`Ejj&9O^~!rk1ITCf{)m5s{yBAE z7^h>UUR*}|husFfE-Q}v$HyTBmTCjlh1#g$oGu7Jw3V=f!12Fq&6zO=_RJOk8VKw* zXs7Hvq4HkO0FK`rjahW~O{EY)O!}C)Xde2)g3aW!_mFr}^yB5GW;5jgvhx*>pj3Am zNa~3I@?4I007OmWwm=C%*!cCtw;G4{@bAvptL(qoNbvw7&7pi{8ZZ*3Ri-sG`W+na zbshQqfw}pVLR+4YA{OKQRI4=xeJ#C}@6UeBB{1sXU?%n|Q+~`KQ#?rtvxamdV2RUG z88JwagR+BqE7y|rYb?J?=LhDWcIMBhc|s%pn3P?;4x^}_*g~n2G-kj7RD}xKz~Rr0 z*)fA}3@zCS2ULSNshZ``n~(oV*?p5x?;K107Iu+tjY~>(KR@|(#qz#b+cV~^6pBa< zc&yr;u2r$z_vvDEvKxVbAy>j1jZx=~1E_oZ^u_UyPd1{bepi=bE4H6UeeYeYI{Z8r zQ^w^S%*RdJV?J|KNCrrg{GvgB8{F4`SQap;V&l-jY3RjebUG+oW}bhjT4tvj$UBT) z+^lI4_Jjl!VAm;YSd!oavyYA>@t6RbMcGdQdjx%CIf7qL&IC9MNpQ})*YM46fA&%TyI^~^a`4D4X>oin}x%fk9!$eei z=nXFer4w}`Q=hqikCn&O4(6f=sFe`qAsd*1CLmwHF~2l*s> zPfSM1h3MiaH73Hp**S_S%A8fL)*ouV6AvTV;+Bd;5t7v~&z*Es%~j-5SlHgcfa?-A z;{yA%hn;lqURpqkG8BP$@Gkr_dM*v$r)@zue4DU9ewTHqwOcKgSwXfJ=2^=>(FGudlN zC6t)dv05Bip^6*ay-NWVK5;tUUchdTa+fZVnqT4lefbhqvfQYhoQ6P2pmIE4!Jv23 zT#fOArYO3#6h#IVnJez-M7IVAWD`W+7l-Cr@6CQ!)zIzgD4FUv>nLHEpy)u86p<1W zHS#RiN9gtmdz3N$`l;_&C0hTz5cG7RC&cQ^Y|HHD02acmi7ARwFq32tvZq&lBnQrR zvhS4cRh^3mGuJAF2@dCwfjC#6=kq@^2NjbWKtr1zh&Vn5w#w`5u|tVS(`t+RubWuU` zmAkXa7jc_KvVKvE@_(ee=vKDnS(RlVWjf9&Jz;@A%k1p(dHuhw6o6@>4v)Jpl6;Y4 zS#$+1t7+c(YWSR5!fUSST(W0R?O*s5F-7Ijh%?aCVdObOzlBtUj(v@9<%g|viu`2G z&`eoB4F&;rpempjm0w0xd;lD~FlSzXiVS+{hnT7sSNsD8&<#)kb9CmiV|WgHr^|RC zAm)s41JSL(+5h=pOeLs)8y0o&91F@NT)j)A#5GIj*43lKKR9We)jr{j96L(;7Z(2) zBm6?9pOMT&x%&Rj+IZ*2bYFela{BmwQ_Rtd&88XaWOo~;I{*3A&0bE$^uUZ>@Tvo1 z>Re*#U$j^;#c>zOlJg!#Z6ZYA>ZQuf7WKU?%AoEiSjW$X^QoT^AaWP7@Xs6vQ|$;fBgy zzI^%RTwVqb4^JGoF-sIs^!Ju<)YjIfHktyNHUtF)(vF>t%Y7I0kb0SGWNk%{UBD&g zpP(kjO2S4qlO!rzi3;8FeC?YRR|9xFH^$jJC>Y_x3|Fjleq$N0B3HGaq?`|z0Kfp%K4FZ z#Ietz7Zj?I6c+_Mt8SVPP7o8psoXksc~U2pb4&@y1LRl_<*CdWuk~WqhL_6P$Adzc z9SURfQlgl8dPMHQ2O^HBxAUoHo0H?&ovfL@qP1F>8z05rW}@;0)_J=kuA~}X@1S+j z!CYr_Oy%u(a}wRs;cLy?PaZcy429;(mnK4{6o0kcjs4Bz)7tE+9$ysLT2U9x=USJ2 zx1KKQs^&q_OU0_+@T%GWQIZK<`*EdzVb~W|4L5j&5nR%MK?S3fMmAIrCHiPj#OR}% zZ7bR)JXEiBHqMa={6D|Sno#CgGtQx!cDd{!alA*}2T05jlL?2pSgxOl>k)~Ze^BU| zcJfgdcU$@uFT3Ij4$YC9*CDU(!wv9_3$aoWvtBn=9h(Y<`leygZc}mJ zcbxq)<;imll5l$6>Q)GNaZk$itb`!xz!w*%qQbPw12atHN!@b|E<~C07jR-vgR0VI zivziA;OEiqAx(p6YmdTN=aQ8-=E+$vC1z3+Vn&CX8JwMzQgS##E01^FAh$~>&eCM^;^jBFM~h_^I@Li06AQJfV(x2 zD9&KH&p&sQz#9JUN8Hv$*F#eqk5#WBqr(&$1}mocpyY)n_DxLCS6-i~n{M8gA0wgGHvH5Lcq)}PzP^M` za=hHWa$P9Mf8}Gefx2}%$dZr4XHRY9$o-m&yCim}iG<=i%~O4A@@}JCo0w)3wfiSR zuY|n}^4L)Q{M*AI>$QgAmte7D-gS|&-qoR*Q$4;Z6M7vX!;M*l7?M*%D@~g|QE9NDL)eLyTn*l0o(&WH)9k zS%$I?LzXcN!|$Ha`}6evJkNi>Z^zM*d&YfV*L5zh^K~wFVYl@)jvnSYyldC4qgtA3 zhP!s{CGFa^hwI=0;FB-q-ur-mc6%6V+}c&pab^a%*ynIl@8+&uMNzDqHv56=Lk~60 zJa+9mR?qmmyU7jnVArngOf9vW#y*yF^ckz6{=}*9c@?x3F^+P5qk%rO@oQD7$3h`5 zuQ;#5aUnOkgz6=qoRG4p_(UUO_aO7IfD{ zcROmGrKv4QQ{JHVhwL2m;y=HzYwnv1;j-f%&#~U>_#;IA*fsOY=Du_zsF_Z!R?V;f z`bBg3ikYCT!flT>tTzJh*1P&S_RyavS+5><`wZF;Dc@Q$h2Gvu&TIVGxcnJDcFq+| zBR)1IwbIA+uB@;$e=q-ejlPWjPEZ^!B4wOv{x2(2q<v#p43(3PUh$fe4J6<;{k^br1RTbg+szbG9%Y%{ILf^L4N#|Ot zV&mgo_yvWwFZMdm@s5>t+I}s!YTSz4FJ`OQii+GieYb9`m`CoDGUefhBDz<+J~Kr_ zWJjQne;f`qCu%D$>&iHP+b-Ous93c7U2&-bgrg7)30fIvfj;Uo$UD}DPqZz;Zt2Ph zoignr4;nnbzMWuM?I$7`K}(pt{HPQY)i=}t?P$l!PpYg$&Z|en77TAR=PUMJJJMcG z{HTm;#BmUXEk|m@DEe54994(M$SlP}`LZkGr%9+lsB1KNm1t>$44DF#oH&ZQoC(*bO6Q2uE*Cff>@+0&FaGg!AQz3}}|qIbF` z4~1=E4qW{?JFca`Th9&c>R)JJN_-?~HFQf(v{~ZgSZ{# zrKl_@scwI+e6{s(`Z)5@0~PxExT|@11&&fZsV}w8zt-eH$dr_-lTiI>GXBsw_V?A; z7kPF)Mf^!QSEaLeOSQd6m}y*py?(`F#)5jT>RwpR;-;Td5x=aF!{zz`y^$~F`2yh{ zwGq@vr0wTm#s_j-1-4x7OIhk5dyO@$CUvnXNTw1yLrOX)`t z5eV()u1P9w@vS=^WzF^VXKdMtPQ}y{_3sU0wHz9U(zgsY4o_PhKGt2!Kd2LQJz2xb z;(ITOR+;KT#jtJr7+m#2&r6tvoO72^jP%tAo+=CJ8BetPp(~K2_(Pk|mRHC`YPL%- zOROpot#Eze&5IXBZx-^ih(&ym*>T^CotReEgS{>#gjzF=NF-vo$!Arh>Rr*XR(E#= z#WvS(+~#Ely33#=;OfN5ALaRC6WrIEwgx1{h-yx@m;V^&A_v2@a$Y$2|4NuLx(Y(k z1X!u~RQ zH;{}CxA78e>|ad?oA|75Ra2JeI3<6tMbf?Kh-{$~mMrQ14-TpQW1PV@-RnK_WZ8u# z348R`lu;#Ye*FwBOD!$0KO(MPsX*w?Qg@gUrmo53&Yhlfxh z9)X1>zdx3T$17#ef3lqQ@}Ga^QO>Y)F?*cz(Dz6wlSF zex%}VNF1dKWBt_zgFaHWzjrS6S+Hcx4i0{CepU~16H4(_-tP)nZJXaFxLQindtM1$ zjd+XgG}UL>Bjkx$JU=04_1>v(UK8!=iQJwTR-jQ#QN-FHm5zdij#v+cto1OPs(X*x z#E-s5RCA$@#HsPDqfoXL)K3R74eq_SkjnRNk zyyeEp$}_SntL)R1@GFq4yUt0Fh3?xUMMRzXd!hR~T^@ma4+uYy)(gSN2-_lO_j71zpI&88xK z@BMMBUEg?JTLZNVYBy!F*d0()kMNDELttcIvo^eF z!0zd{XQ+9sWGXv;L1OMt2zm7dz_Xy@^(@!V<%obQzpqw(Fi$vJWNqs_8~6u)c3G!~ zjbNUc>8=Gn#NPW8=DuX?MgQ~tE?vR@htcyOH{#FUc3JbVOOg_^7|MCHJdG2SKt0@u zV0`&1o*8esPdOiB$L}ouI6*xIQf8UVaNqk+;`zU(22)y@0Xhto2Px~2;JwNBjfFHb zc7v{W4AYnMY?en-X-|_9@aq!Ak0IW>5yu5E*-?8ba@XHmW*;kX`nGcL3>EnHOWPjs z@P5M0fcGiN#|R_ikNuM6KNkSYJ{)4mLW-3eaq2e9;uAmGwc9~&_L2~!(F(9`)R#wW zz_)EztO*u3{%c{{SbFs2rb(v%PwyqVTcB#~>o)d2Q;-wNsNEq#GIY)&sOXzh<@007JXau)^aL+5vlu<}W=2i(ka6Q((o_|ewjhkJqO3~@(y$l)R zCBeY4L`-+ zepw(;pc#47>h5a$wY0dzqM%4x^@+gbAC%{`;)P|k9syEMP3Ien!Z53mdwl|&vPN?f zZLg`RqHc%ajX^qf2D6as8icr_4?0d&Js5M(@^?kGy~w!bgxL@8#_k54S%ff6XIB>A zm=tMgAI|+L{F#Ar`x`Ca6W{aIe!gk>u65BnNlyPT>P_qSB{AW`MKSRysW<_H%i9^r z(;7to2^4itxj=0Axh2`Xwq{YZWEsl%TR9@@_*UB1#fxrLr@qs{)%vbPAMsZdN#tzO zEDc@fXp%XDkZNOWa?s2Dw_@GrK82-_pR$wQVh%_*{Ab0QyT9%(aQ{LxO=p*`LZcf& zP`DTkYYcmDPF((mb6&)qu3!4eahLu;R&jxQ-BXy>=>NncXhQMV^J+pSzmJ)1;FNnW zRTkB%L-1Q_;a%9@;rD9!{Z?Zfu(fv-!Ks_o`p&?f9`+`^bD$9zI#-V|E8*^Wv6{0K z`=Vv>DhHf^8g*Y^{^)G*?q5P`Y);3u*fx;&;r#Z@$fovT-}=NwNo;X+X(`~MV3zB@ z{rm2H?hu~aH++_T_7KHkBsMHpr7&Qv+9@)Qv8wVWQKqR?Hm?FG2>w!7wURqiOC={DxAu;owU z>fj9-@_8%u@?q5!>%OWXx1PPRl-XykC>dqaj?H6jhrr3Ng+pWCgn!q{Qe>B2nmm*? z6^4FnaMw4Gf9QKnl{J>bU~s8?Xtrx zI=Lz9I?212z(MM?zCX)Gag>muB=%F<5lWZq;GeT?{^Mlh=m?sw9hC57Sw z4zNM9e32d&oiBHCo-Zf&qUY*X98@2f+FpW;sp~P>TfDalGJ= zGA~0#7x)Xnd{1tiJ$`WC9_Bya2rLouJ3sDxg1=-eo}(;*8^|pq8~#v{$~gK?(^*bf3k&QLvc?Q9QNIB*$YTDo+2p;9_G|} zGWxm#-!6>|zFr_*_+-Jh&{2vkgW~kc;vh{_sXdD#421x<-UKV< z#IJc;=tkk6$I zXU;0rq_V#-IKhy`ho~?~QmLJwDY<^R;q%MR=~k%z`ESj;ypyNqeXi|h8cQ7y8tKMc z(SXrF2J!y9(n{t>1gHoePdyJ<*9$WNH1enU{deHuDyxp<@1N2G2CF@68s*L&V_Kq= zBzT?Z1>YT2@tFS*K7Mwj#1(9@kFmZ8+m04a@=$y#zb{JNt8CD^`QV|v6IF?6i}oH7 zOVwoi7IaN53OJb!0rdqCfTZ1ye&Yksu3}BgGb7WR2TuXzl_hzQVw=q+gVzV;E@Z?AS z{0ht?7t7rba1&ni&cog3=NtMpPd`I>_+r7&gMU#;%#I;ABfkINP9$lIs>sb<>gm4@ z0D*PZ8`zTtN8qPoln-E9zz^}~EspsEJ%!h3#RAmF!-mY=Lry#e74E{LYct{ zLE^X1FrIK0r-kKi$8gXaWf(l{g6Lx72Wb-gDKhd5aQSNb0+h)h<6XY-7I$OZPMkrE z1D`)u6UH&iI)4^HqIWSC|Dr4S?~k9o?|RK3e5mWyS*pQ|g zQwVW~*33w*0}gvq1sR;`!k#cLX2NLC%ap?9{UVX?c9&u588s_SwG*KGNYi5WP)40g z0{=qJJ{huo_O95dLym$>h`_K{X!7!_;gdLsL;jaPPoLqpT`!2VBWOr10{49J z6e7kif=IpEHf#I{e#)?uM7i63<{?hJ{%a#9JcxN(&Cfn7wDctJSIhqh~KcVHto z&cA{&*|BvgyIY$Ndj1TBo??xp)*5vu!_Xbef#<##?VSGHUrIuNNZ$KqpKj~x%x^_q zA_rSXGVSQb`RKnMCXZIWqo3TPnWgY%oSyCjqeIhQk-SQ1U8~?NG_S{k+iUkXnjL`n=VY>mu(y z%g(#o$!ABI+Q0|@B|bopWwF{e{g`ZNx;CquMj2+rUhkE2v)Q`ts5kRiGq?Uy-WZDJ zq?0M}Nxgc}6gqB4@ZaY~_TB3WpWk+&-2JN&epikH7i$E-u{tnToEPK{p#xx3;b9B>mrz*CNbIj63+QxO&aRiFpSBTbHchx3}BY4=XLh)k7a<1M6xE9NuVSK0cQ#f zuc*hAv3jimo1^2Xm|{rhiW9asQ=J}c{d)8xQ|G$Ee}UL(Hv-EUaJAkmv9@b$7aiKA zoC#7SX=vc(0gMX!m6Pw)8Gz&|^w+K=!O69A$q#?;der;!XTd@@hU(8vaYRLj454Uc zdzkoye>=l(InrZkf94OKF}+K%rLyGyKoAb5QD2Dts8BImc?MQsh_(~681cPb;kM5o z!~|pc*MC{951QzZb21BgH-0gTiv7}n*?11=yn=(3>xBE2S%;l%ie>;~7RO&!93e+C zz4EqhEft<|U>?8Jkvg5Ax=hc2tO}vHMk409MlRhI`d+$YZfgHBw~FFfe=;k|og{!; ziuA^TEnsFsJRqKzvLwByoKLSXBS5_V-&o#(={qP@Q@kaa|4@=daVF>lLu!92cMWyF z2b0)VnS|5gZ}n6`1lFtzxn)V^b(liepi`6x%HcF}0V2qgw+th`?36K7G{qpS|K$gM zQ=O|XbMB)psV_{ts^3K2D|UQqgRZ&FjhMRO;Y@hL1NfgyCqokd^0!G|O6nY^5hdE3 zAkdwAj16r$Hk@8_mzxsdzgqS6OdQjE-d=zP97gl&Fz&vX#5C|o0WzmiJGgp&cfRws znKJKiZn8fb64=nmP{6Vh$-IL#gzWolT=C}9Tk!@p1oZiLi<%acRz!7TJLk@AV779J6_Krn1Sg^slzeFo|@ z-pqjbl}M0Ghfy?#JwO@)pi0c&y6(h`5TbgG9!?`EsR z#5u*dA7$G6%7wq&Wf5FG^Q8KI2dh+Imv^|VG}2&itfI$!2zZ@R2De%8H%}4a0xLa3 zRp|6lt@Z^8V#=7NnRD^q&-h_OFc=|VZg5k^v*aLP`Ui={{dE{|cS+JvdI}^R7s87J z(?cGc6P$LuC|Bz*RH%Zuc><@MEG1SWZShpX)MpI~FJxh@R=6Kg1A!FZvJ{+n3U(^o ztORvRAKbdLivgIUM*jv(;x8CP#oy`q(u5MJFlRg2Lcv=P9k6}Wh7eRVk)T6;4iWc| zBPkAS1bh|RaTUjZow;WPPc@!C&j8r-*U+FgPZj! z_}Ml~HIzvYSft}V-J}*Q@a_x!Ba?*rpA-u+{IdKZuA+9^uQL>Z3u;xWtc+F9YoCjFBMNl0xG_@kw6GB z894D-gHInFNass-nak=StKe;QQbdk}tEboYLIVW>@V5QY%i5Lxe~8%9Yx!CJ{Yc_k zuonvyWEQk{~$%dJ>AD*)}PW_Ll*Acgs}YTRX6% zn{Za0o05E=KbsNpbUFV5!PYqw7g4EEnJht3;r>3a#Cc#K=sdq{_iKckKkug#>JO@w<(=pC3i&frCs@+*xdk}Mk|xD>8h36eKv z>`6l0z?V+XQut$&vT|-p9*@N(*6z9|(*+Bk)alXST-#BA6EY76@N^yV`LwS)bQFln zUFlnZ)R#6aar3deTwE$t^QrBMZ@kBj^5x{EzaRXR0FFtr&~le=8tXU=b{N_CD~_^bMp#JXu&Q=UE1aRZ|) zxfR?Q>U-T>e6vPN!3vjg6h@%V{yR_u^kF<%z=gBeVU&~XhC$~$6Zoi@DNBF7V9FhA z&Eg@7`BDTiov0ta5tPLq8Y>>*XZcow#E-5qtzcqM*hPS0q5Q72CooOyB{Mh}^^v0- z20Z{p-%xUKtI{uFQ|`xBZ3$c&vAQ{%$dCWRBGoxpv6v#NGXTRqMxF%rSI}iH(^BQ! z$-C($#tiZ4TG;q2=nj>X*79);JfN4yVdnvg0H&`{sHHD|$ozhJjOKKyJt*0cf72Q7 z?iZN;v{wfp8ru&h6RLPsZtLm2;GzJm&GMlEdU#4^z-Kr`ZY`+%pH2TyPPGoECswN~ zEex>APv@n(`*cI4mcF|aHy!z@%Sy*sw%2s77F={YvQlGsY3KRG5B*If}CO4uH1lNuVZ z93+eq)0HzIDH0^!0(D+Q?WnN8tQIcAYa9?-GWg{FyyDo@zo~cN~r4-MDNX}i`=dJ7K2}~LO8Y>l>bYi8tuZ*KmJ+xdM(#R1azy!reXE$TMZmhJ7)9}AEX+;a3% zrM?!L$Yn>cG6M9ZQ(=iS*GXyS@1E{&KAX??LY7prN0#K=pUh-8uK~6c0g1{96A*6) zsU$LS?&M-4z&Y2Eh0dIBL?UQui2>Tn-iBee66GMJLJWp}FcV8mj|{a>`GH#wA#_+^ zKaB|~6^$o+xQUA7cgvR9yQ=Y3Qf3doZlu+J7Wq%P0N_#!vqAUsxLqNgg<=_eN0W{H z>VdAiDL19V7F)D_5uqrt+!mR#ph+H3zdT^6ewxx|iRwsR!YAf2o_hz_{LrWW(?F00 zg~J%P+JLB+qLE$4f`l#H6*Z8yowo8n9z{o+hondNK^MF|tHut3oPur|Xv{(FNBnaY zIN#gJ0ZjkbIaJFTX1oBLnY#zb3zomvSGPpU1%q-d@tf2H)V=J53h=Ct05eo#ds#21T^teCewjt6#@U zLu;~al|n_dxDgJ0)CgiKCJUPoO92DeakfA3w%pwRwsL?e`tyO6)&Qy%U`RjeNy`YbOk#mMYZYHXQG zc4(wO0q;LzIGcF@8X!blbPf%D4p9L`(DZgCB`eX_XN#@3UcHs~3EqZYE_*re6**n@PrZ%s6?NeP@|uugOyPW>wy^)PE?SlbVY{PE zidSqK82ModhHN*-I(QKY(_bV}?yiH&%!j}ES4NtGqkl1xjQsDHye(y0f zk^UlAv=kQ`!k^2BACr1%Sg*XK#1k{(`pcB6oE81ac;I|x zO>Gg}3BbwV)+YF!!M!AZ*U5x&VrtH{SL&>^Icka24>=k6Zy*x0ighs|=VjPd!RpnX z?r?v&;fll<^W!X$#YSl}plko3AM8+6_Iz*pE+QPM)77 z)qecyNo0_fi-{s(T5G_8JDii7&<$5fv}k^SZ2ZsS)e1?<2HGctcm16A{4u6-RH9}R z?>`4rftr-$O=I=SWhOj-f1>kKdeTCT4L>D!Z}J)ck|1gA?Zh~D-iPA7LTUU7zV;TK zm*qtxXixe5FDs%~Va8o2(?3}H6Rlq}X#+Q#(TO*|EyympO*vXPr}83RL?N>#VDbw! zV@J4dS#=gIHyr-!!V+z3N}P%t?Vp4}ta^~CVkaFSuK5xqB`0} z$VePQC7V@v5=ZJ)AZ+)yNnNI;bU*2khW673VjYZay4d7GHOa+O33*SqrzKwBBa*fHn14P+^@vom+B5 z(ey|zO6FIV@jRj$yv9rPkz$IAS*J(t3J4w3I7?Xn(k9iqk%}*$RD^adcgH$J7gnPm z`w{S%?Pts)WklSL+NC=rk9r>gO}fu#C3(26zTu)gw*7hj-0O#2?UXqh(kf}2uc zUi#9k$2acSndY>i7VQ>t4IB?R@NFcSOM6+adwq8$#A;~ydG4%9SL37;VR7`Co;h*j z=~7{iw8~0LtV92MmQVV(mu_GoR95B*bx#^`a?pVc^PMfvJU6s$Vn|PJYUoeqa`%N? zRx%_N16W$w^AKmwVo{%{!-u^MEq$*~Q2O;0%P@U%u4&{gdmud<#Hv>tU{+T|wOuQ2 zk*Q>Kjran<+%f=>5Pkg7n=vk}#O04URfNZVIn#Z2bA_%{Xyp!u<7iG_1js_Mc1 zu!T&WnBgfHgpDX{Rc~TA%ab#mNMD~__7^Z}Uw<&r?}-`^*u0OA_OrVERpu?1SM~c; zjW)$ML)(!gw&df5IB>Pv?~=zyD~%ZCo<{AzP<#yK=h#I|uQ~6N6gj?-Rc+^>IaBV2 zkM$bPRt0Kxg-5%7I<0Q>ow^sOhM4Lza>w6stX<%S6--^{t4izcj+|Pliv|R_aajL* zEW#;8h>)&1Vxl1B;|d zAhx+@ji71&o5BjET}zQLbWP2I#^IA|Fl22tXNt(l53_j8PKw^B`fssmhgQ$}M@x*Y zhjxo(&s`Bo_ChPyQqOVbp3X34!B~$L=xvlvU6)BU2lMjMEEHOl@>6vpu-&+I+pm6SnNn zkAM9R<;SQNcP{vXx58(GAq!a{gTNjN7le`(w%D-g^g~Le;|U1lh|yM`G$W@d8=gIlDR`fTl!3tGL9o6lS0(x zO{x@mxSRkSXGup?e9d3m5qZntim!dcL|MkZ(%XiNn%MPg?;-AQz$KAPyyV|00(57L z@1*T(G0Y-kp$9fm94J9=+-bS2tfNrj+K*jNYlLseH{)BS%>T?SVFtfoi3>T%LS_NVXn<}r z+94Vte=!=MSAvK%S#J2c;d$SHYa&@eYfygfSu>J1Kv%)TxJAqs?dpXTU~eP)ibhmu z=aeKHD+7!#6%cc#YBM%#o!?^J^;;HbI!JwgdrtR9^JU!@J(T{GlQEF*GlKkoc@%BH z1OV)QfEBXyQaAw2T0Tb}NmW;96}=<}a|=uDqem>QW*9nJD7?K^Srcm6m027P*PG=d z1vyV9>^H4J*8>IB6Cue*Ywy^i14$pjp)5NUF~HCx>OjoA9+T~|~!tn9b3SrBTBRSESsbP$% zHxBnzK^A3B;EfW(<(4K9w!gF$e@z{szI&OP)%DbRMTyk>tPoRmNwab%jP1fJRn-8T zp_tN>v#27jr+rMXlbNNjVVPMvQau!{4v5!oend;5^WA$reY9BH+RtH8yEs!r%cc^| zl%rHr3j?iTba!u}m%MM!l{YeQg26P1R81vQ8Hl4*Ig*XLB^f2t>HK+-@9mjGhGNX# z=%KT?`_kxnyH|E8LZS9;;zFlD{QseiMJE`wznZFH8^W_FO?LZ$sf00XIo^g)nQEAl z9t{w&0)`cv4pEeJ(()-F&x+2i?`4IRDMs~SLfDFlixjpbUwa#>j^RjNH%4O^sL?8j zD!C`RZ_F_>SwPRaA&|bH`!KOqGX#*}GxE=fw?4L$Wf+ABTHi2G$S@R{nu84VJ1!8F z<<=sOv7!r%xr|&Zb7nxKI!xZ-%w9QMSnKNi%7~|mFc77Ac?%7j=xnksH#NB_7Tdb4 z&uz*k6H4R)-;->o;8PPYMv;a4au^pL=&bmwdOMm7GmCAF+CcZioWS?2xt&!x{T))& z?$jyVB)Af?eRU}-1S>QS!qBl8hB@ZW9CwFjbfZ6K5{~ERk0S~K>QM;Xs$J6uxuGYfvTvx!5Yt^e8 zaJ1p|yF3(&?3XZ?yz8G7q)g*UZ+-nQRgUk;^j`geEv!g^+?>}k6s4DPQLOfje1dG> zN;^7~uDmIcUL=_+e#CF}YbPu%zUg}W&?h3*v-V1=tR)@DAp@Rn|6(%mB28?(2zZ#; zV0#CwI)af?Nbw~u#+UN7qz{d0z>t;0nB~Wh@|IQ&I~wk5&(4)Oea*(IY)IP~A4CT> zTv>i=eREdOFxmtDtT1(8UgaZ*>hk+ES#hNddui=CF$%!q9}`q#%PhlB;SiN`Yjyt| zT#_H{+Fl7~96Y^9CoVeNe)F1)s(0&78AbmW3Sc{L2Ihgx%d*d?<@PGB;7t<@HFlk3 zbs*Jf@+UF|IddY@J03(*0c0Nl4kZ}Hm=SM;vb1dwQ{jSG3`J7JQ7nJC7$Rp*NC0}_ z3ktta3n7%#TmlyUMYv6Pa~?!hyBgp z?XdGN%!vZpFRxGtn{paoOW=U-(xrTO4STak*-E)ZCwvxX>n?HKsgJs_k98pB)u*Wo z=bgL)j>_da6CukVgPpnVr2XrSU-KjOvVK{uY6 zCBzU`U!?>uA7H&zhmp(0Znf|NZNC!%A`itFw&?R3CYc;jQFA6w49e|9%&BB_Iv&6A zvF$xgxxRU+Wbb;$y({k#C{wQUpFJd6 zYfX!Y>=gwq1Uj}#1rPJMOf#n!j;s8;QpT!41}9h6OwB3ik{VR8rOm|jtvhiN9UDNe zTSbp|unjU&u8!P25*qk1HD*bBpvR7g4z&7+UEe+7QhUpsq>w`jS=U|B7&s_YqL{JU zhG2>%X0r&iA>iq44bB9C9Bjr$Z~|MggC=_D1T(fSzJW<5Ldt5O%R7TV0PX_>Mm>48 zskj;7n9Cvy-;@WXdPfdTA|92knY3K@ekWU&X#dWp=-Xh zV@7b(-`W3JUD6Wm%1tVA><$kXk=to!8#7yOH6O=n^6zh*IRRGMkRU6j7_<(w6)Z4N z*+;vj*~_paIUUu$mz~^TP>1nWJf8`B5p&gs0E%*`q{>pc^UMIgJ$w?{f69fxnBrLh#!CS=SOa=RN6=!K+=($3 z(p)IJWFF?njE2#lNtCvQhou-5K|3oEvOEMRZnkS~m5e5J2xq*j&~5RxA@H_yQ3gAu zZ5l(hl-%E3)ycag{6M*aJivj9l^ag4J*k)hx|8hr;QO3@5G9ly`okw~X-n)`Y}rv< ziN7Dw`cWT;{42T;sOpST{7_aU4`r+Sa%zZi90m(h@&q&avgXpD{Ou_w}at)55{jt_~x)OWAAtgf`k=54%;b-3T{d zi1u5NbrH|Yy4NbzTd2|lGn?g0H1bK6?JLD6>@HTIzg>`q_V|Ry)B+9D$(t3TZDnbT zN{d?LsOk4t<0h>FPc-v7S8Z@45A>)uoMYDC0LQLt#hAAj=E*jIhwpYJmd)@p65Uat z{021JW`V45I~r91HMkxceyO>elAP+hrPpd}XmG^HYw?k`t3+kZh+hFNy4MCEk;b=O zJq*+;7au&2l^IDZSEs^lEu@m?Wz1&^4|3Gz`o4&zuZ!e6mh110<)SD&?Kw)Fj$UGc z{#x=WMf9cIwjlb7l1g`^28;lnMvOJ-*^W8uD#+A3`#ahU>q*5T92=kZR_Rf@fGzG4 zUTmC`CYi~^Kt1DQS)aL#XF}Y9bX#U@0KaRqC%DyijlcJVm$<<-d`0ZcBmB0jFOS50SI_W1Fz)>mm8-^wP(b4I9NZuR5V}O9yy?xK3YGH6}PQ zE7O*L=dvRh?;j}IP?u4fjN!o7y>*x*>Khf#HaCCWN;x*8`56vu>5r?{XUZ^TL+F)Q zY7AoLd}hh2I<}@sJoqPnI%tc1z=ZF;ZJZvO2-HGzvv}_#>#?6G@)oDhguzq=dGcMW zR1s#pu%d8?)v17+CD~%PA*o6XvdM@9mS{0O#1WL0Qpv~ptkbRXGPXCJh*|zH;A=)q z05Hi-zO5+}cq{LENm%!>x$FyhkRYY=0$)oNW|YZ_zJ}b0Wp?MX6jWFDWThwR>p{EN zdl`KBae~m1;W%uS-78s|jCQ_bhG2D{;J{m_1$eN;bgp}->;^5zWeusu%X6Cj;+9y? z_y=z}l0_XRRhfm6Kc00x0m>S}@J1(HTmnLOHW$ufiLoQbjHeT1+mM^`!9_2|?~is3_G zVEwaPKzHaqp<#QIloPxi-mONw+nZA~U820#X(zNXEFEdNVQbzH0KAN|BzvqorFtFv zzCK`by*N%_+T13d?UKsvj^;6J#{fX;03WUN+yrFCc?!Skg~w2d0iXpHQ%iV^<-m>o z7F--EYmp|hmf0WLQZF@l2M>Gz(-Xj#2SdNtzA+~RL)fN{_8zb@dT%SvHzz614Qy~1 zgZ`O-hhGgzpYtgcmuG4jnC;x;qUhr>wRkYhwa;jv%qD(yp*4G*JZbITY2~=0*MyYE z)MU;9d<^jhPH;P>lCGZbJ&nnQOa>cjyA&U}=smj|w_pBPYh zH$17wO$l@?;ii~-%RqZ1HMcBsu%CyCN~v0hm9pt%|Ct+w<&2@I8&?=^NV%Ke|DSLN z%!`S6u#6n8A^B)m$_-_IsMdg`HDE?K!Tyjz3BIHa#P`tIWEz){T1mwn(o_+*% zRqUh@H2jBS;QFMk4Z-cz(k-;h#O{`bt1O9QTq{Rwlxa>jgg3yd>LgChBg^)`| z?HTIH)EU)lZXd6$#LIe@Bug^FT_YCEVIh09dDLpB(Ow3RCvkwDQ#m23#+1#gzt)uH{5Qo(h;A$tCXzt6d_ z&S&q9ZK`HqJVSq1fE0AhRJ^?l4Ja}0H1n;$Dq!032}I8OcMl5+h=FPwG1)QI)N3GT zDHg{{$}bSevBp5d8y_)>y8Lf1U!m4?493t^A4-~ih7D^0V1_taV4v_;SU0kKj2}!}Fy+Oe(LE~H$KlyIQ zM4x$54ROT4DxeGIV*6?n!1~FbRBU-oT#UM%bnV#gYPP9_si&M|Hm$`xtmCxr1-IYf zqmes<;n22y=$$l^Av|ETr~%+Dn=Va8@>w+(DL2?bj@74dAt_347NVw*@8>q(d@`>{ zdvt1*6QxS{=>0rqSr}%d8l>h_p`z=wY1%BFRc6}LeX|v_K=$tcW|dX$rU6TqAWd+g ziB~sY$kN2#L_@(kP=T)5hbg|IcY9V}#N0Rr;t2o(<(ZS4)qnQ%?J8+52sLx5eQEoy zbi!)a`RMG)ntNB!^KXHCSi(O{&b|tg%HhZJ<7=M)czU+9$upo&p+)2xK>n|QNcG|{ zn?XKN6{TAWY+Qzh;l6Iyylt#55;v$$F-Y1KmxJ;4RhwHbKho!oWLhrezkjzn|6;OM zD8f(mMNF#nfMMTF;liZhe)AB4gJ_~gOQR!{=+o4DYingMP-H$QQlki!IO#%QJGeE+ z%q0P^vmsD|h>2UN{t1mi^NAZf?`Ajd)S*&U0ez&(B#tb;h~)P%@b|XL*iSY=Z@r7f z4yA>-+cZ)IGBZq;`6-e9^)UoR&8VnDC293^I# z0JIqx*R@3mCs){)j>?Vr-e}(9H|&$cy$n(CH02G04W-wl|KulgZhV{uVv(EDhYtua}HXRH2MO7a1DKN4o zQymFpaSi!pGc^)pzAUWpN0mR)J1j=tKo89Hu%p~N-l0zdQ<5!TS+Es3aUoo&+l>uS zLk0Qs(DmbG7#1ydd=iix_>Ot0In7rZG^3I;FoM{t5AnU}TjMMYvX?dVAsCyEpJTWF zc;}I_V8f+z4^K?NctVj_Pf9suK{3=t_~oN~?i)IABZ^ z>O7hVrZzjdLW0hsXeky#D=wh`JRe5aU?|6w3c6sX!0YlpeJLyNw;Tvq_T~#ip5WN^Cng)N z-J>i@or+ufXigxr9$9vP_QEY;68#ca4)%NCp9nvFpwVGnJ8Jcx?dwXATz&KAGxbbQ zxcKh|UP%FbjA6Q0QS-Jx(t+48!!95A{&`K2Cvt(OMl~GxPcMuMA;h1zv>hu><3#6& z-|lU!UW&Ti_(Lk@*Md|DuQNd$uV6#Kx9DiPNNXTfl%;jea}_jC|Ky^W$m87#3Q0@A zFl?8;5Tds0W$di9r$MKbUZJ#h{^|GfcFLd`*~)o*Y0%707`++ zh@J{7I>i#ItzEo6T{@;peSUM{y`p4wQR&+bC^%ZYHsG1zbI5j3UsX0|d*4h}14iy8 zSvQZ2_CqLu;9-H0w8kVJPJaBQ(eFWy{Sp30-JAA~g1p9$to82l3}@N(ILe_Sw9mT) z&%NYd8s3OC8Vf4I-UTaVg*n`l7V(9PF_ePTzVFfpOEd>S`^F|IF35yFU=;9f<Am#hRI-EDp&BnnJ24`e@d`u5 z{8O~dmV<63JjMQ=C_muJKra`;tc;!wWEPNW=dJ>2g8w2P2*#IHDRVuhsP`}|8W2-z}L0a6!1OT%_YMt%2t9Cztjgv zKq;wHW(DGoybQ1Hf!SJc@Ht6qJXewPNi8)l>oVP9hxYnCb0q>}iS^-SpVWuFZ)9ey z0%Ni6(5SUMdzL1rRT5XQ06Q5^~BXaq%us zwk^!i3s(h{U7kl8Z4kZ<6yT)GfSCDs4S@V7kRTr4EB)0|;;@^8fPPYS6uimkLizTM z+N6b%bUQt{8Lb;{F9w<=T_^dgciKUFx(o!BQA_%%#iuF7eC^mY6Yk%BsBW=45I>|u zx)$29@790=5BbtEE=_;A$Tizd={<;34{OOin5owXpN?JUE^Qn&z!sJ0%ssoM#1{P{d->Um&cg^|wb6W}dOWthQauh)}*j&&DR(X($!+5t$c z3_$OeyA@Ft!I$*5r*g|D^gtC=GrQd0^m(C70XlVDfH|QRR0Oov*VOwl8(t7EB7b6^ zjU>r?o!wbg`o#CFcgX$NkL>|5P+y%_CUQrB+KHP*4p z0XPhGB!af~lj4`}f0YqP7MUa(5e}(coI4G2tqn7($)8 zz4}BD`~5!Qa^epR6=-0Ed@@K)e~aonKhO}X5494AzNk#TFO=DX0At5c7BPmvaFwVH zp>=P}2%LwK?nD(SxpL#B>@5+QxEy%@8TJ~)xqH}B8~LH*=eH|ipmK|86wY_@>H7{wX?9dUUHuBWAUhpp zbN5BgX}oJ^>h3(GR(A6_SJ_ae&4`#G zK{2tW_P_pZ+= z#_S&0e6M{t?WeVPW~^Lv77SbRA@;C&yTgYm>XF-y>L4;Fz8O(XaF!(Xm|ETTdml#V zIR%#l-oI0F`(iQD3PAZd2RG&XSJORZv5PTI^`6SYnp3xMJZ>Hk3C+N`saiKjoF<$% zZ7@=?Sp6gJ&v6?b0Exz5r<~FGEIt*RD(X{hIlJ0@ZK|ZbNE)b11G4!D)J^uFU6oVv z4dQ93YR4)O zdlV6yqV|qhv0B6|u_CtL-G0vbp5On~bM8B@ab3^r@qFIbq<}JUD+UrHrfL2CtPYy9 zTAteDt;^_f!uj{naH44F|7I)CdH?jHfTkHVxO-!y?t`H%;oh~^t(F4MJRxp_QmdzH z99S&$Bep7Z<;SnbAVPp_mi1Nd!9x(|Ws&zDQR$cw+MGuskSjxrtKRZyh>}zp=_Kn} z`pUg$An1Fk)fB;CL-?v#;@a)6!XqR2)DrmbY~se-k7nX>y3qJOFN+(R(+*bXBa_t z&dnr2ft!Hs;3E&>NMg&`&2f0}nw4~*`|yG)G9B_~*>+O=izapEQxjRDF)X!zF1t5r ze-(>Tp#ejB+SzOkm=83YD#g)j2z5)8$NTBovI)~q-C55?do4V>A$)y@g;*2iZAb8b z%4W!a)G2RA0PZfjDx9%4E!*aUI2$8feihG`R5d+oY^B6?sNnz{PpfP^$dauWFTG$a z4H_GNB;Al>DBAGnN6NSw_m8k!odH*i?_$YwG(726leX6T#rc_>PXTrW#x}wQWe`n6gUiqp+ajElv@Xzo1_2M)j!bIMh@M`m~HDF*O11$|- z{yYfWnP7rWts<0GRq!PDoPv?Xlbzr)DXg(I2R0KIs;POEe`)+Fh(!!c*a4r5GiuX3 zfkT#pE3o}=R?53YZ=%4p+C5$LI`esKZo`8t4kls_UZA$j0!;z%;E^8dHN?6)8Kzxa zoZIItDtt?Gx>Is$HI@0YHahUn_N5(@5-|7Aw)1fYdOh=idg~!gBt~rBQmdw}v4Q!! zT64l1u~nr{$Oa^fqgqPTpF8FbN`RvlgZpTfh%R$JbjJ=4v-8g==- z>x^U|wm5intfE=zaUIa1U|{cW2&-Pd&eQl_6N|{UQgD)74MizHY1k0rX}+~6f=GqN z$tz>Y2j+xWoI1L)kxqcT9u3j*JBc%6_!_ha#j4+)$`E?rw@usVP?3YlVrbULnk0sT#=DoZTRQYJ8yLVQ7rRiL&v;6#MhbyTvZ%?PekB`*aH-WXET{JLHNIjB{{~+5dP5$#5aH3m~|9cIu z0iNc4T~#RAuqjY4>aYZ9t|#xmhqryV_|P*EGzm5RDF7v(H+fZ%#Dq(+o((6av}#Tp z_+E-OG+KM6J~=z}kWKLQXSraB0o!cae}}UZMmVk#i~v?sG!I5TNj*NdZHxm7^CqzfNDG8^${h=aHdw zgE`t8hb7P2gLSaYPOKE=zCJAGL*${Sc9Y4YNe7nNgyA85mRxPp$(l={;>z)xiL^j? zkYqmN2)3^SSa-^FODs*c=!oYu97cHP&~%sNH*OJm9tK?uh3DtY)s+!f&^B>;p>^v#DtF|5ujRaJ=X5SxpcT0?#krD@r-T4J2H!27 zV4vJVyDdyh+xhAPe49sJM{*!{M=YlQ9!PWA&2cyefE8NSTokmf7TU}L?deD?+{CJG>Il70yzUl zep`SEtuMi`ZA=}kee&Y)?5U!*4nG?IyC8jf=n)HVu%Rdc;sT{vuXpoK9$<1bllKD& z0j8dLVZUST0m&(4CCPE!;BGpQ7koS7(CHm-6niT*bL>ByMkPw8*f)ue9}FGhs9SWI zhmHFG>-q}yx=eMYS-)H12YP(6Zo9%z_2%WP6*KdP%Q%O3>{@QM6(+BmVIr@Nif@j7Tn48rn%y*Wgc55{sQa&pp;}oG8Sg4>kn0c?{@?n$-U30B zIErjJO}**PQ8n|!IVeTMSIf8GwG;S3Zj{_mqqa;X%AjX)kp{5f0ik zVxd}r_ryoZ@l<@fOS?VPjlw!)wLQ#H3ezW?{QHkC*Iyf}A|Plb`i1);2mX0bX2|SV zZ$}M80a<&2W%*$VvQ{^S0~Nd!q5-Y%_Ru!lDipzy@`THQdC}NtzVBm>NtL01>bpq2 z}(3T%=`T6J;x^P1(bvP%Mm+wx* za(T{OzujXs^&M#$BTcRFaaB9QT2|yCxOpII%Hr2iyN?&tt6Sn@+FPkrF0&qUmvnFw z)#Sf?o09~ygH*?3z+6^rlKs-iXfR*e(9vAd!Ktw2+a#Fa;NqVbj(?nGB@P=&dTF;k zrq}9JG<$u@ec{^Z9*q?)84e$R^%Q+8`sBdioy?!qh1B~XK({-#2da_ik?dqI@wnre z{Vn|dh~6-Qu8Nek11!P7s`|3N64aDfDXBfbjc-_3H7%^NZ+-;0m+$;2eO1rY&2U05R4RW;9JA z>Yx1sQ$nPkQ$wN(df)U@TVPDBTvd`_ z)KdJbT*EraNzK>=3~^zp%5%Z4Er=r*_P^mUxU{%AZE?Ve9)~kcK{po0r(suqYlthW z^GmA;fywLga$WYtoSDOPwNUgWD9Tp1w9qdv4?8TydH=WPgrySc6WPpRr@b9N3WTJI#S2G z#&^peFJ~NVuj#pss=FBNjwgueuN%)->XqRp1pgY%E&_eK`0B9(`NMo+f5+}N2FS1k zfJG>K7K~^nkf(Y-q82#in%cBn9Kvfg6-QiAV_R}r>-pP5i_U@nrD$r=bD{xll^bM+ z;D+TxJ`dL!uxFam<`~YJF=lf(U|!Uwc&C=;zz}{cx+t;v6n!AMu?a(or_Q`5cmMQ*$io62X7r5UE8q45i*YW$N77lRMs8Y(13XG! zMKFKf^oaopvg=XDuBoh*^t-5DX)9UX*6N8QyT2rt*Fjzmil{SDD^b$dWoM|Bg* z0H{a;Aq_f;+uXZd4Yiq6B6_$1DBw2$Gz6yizG>0Rb>_8(rO@Ks?3_oS{Nn6hEz4a8 zK%~BLa!P67(8B@_lfL1_u2Jg^3Al-_4dRVV2)MN;JPLnIH=LJiE#*EnfI)wosL^~S!OJknMLDE=M(n)0ZtsG6htlKc@E_E)Doe$SJ- zasA+8?<2Ce7u9HS!#XZ!w9Xr8J6kY>()V{ODk8Jw$Y#-v&VCZf0OLi!vG^2ClIfrM zX$kUA1{i80?fLjeX=HGz$Vs7zHwB@iJ^TzM3ig}y0r`T z2x#VID}`0sGzC2A@K z?=@7Y3)j<5XDu8e=H4ImMn)|DrD=Ob{--CdyjG{$u2@gGfCI4E(2t`K7cVp?&@a&+ z24MTgbb2aDc4#-V-VFgR3;{=T-u;t)nyMzv*CjE>PsF%(l{B zN)J0^ZO;dAf`+M+UGLe)_Uf92ON*cW!o;Mz_nmb5^v6H{#fl~lVC zG7iv~p8ZuZ)m&mfScw|j zn&A7%OINMT)nxEJn$`<2RPlr{-2eiN#g&AEUMhfM+mnYA>P;ncIto^TYh8}#bGnpt zL{N;mi)J$x?t+t@J=5+(BndR6KR^i;rzBP7cS2a6{M~3>hVvzm{`l;}I$eq8fQ1SG zU)d-)EiWp@t+Noc27yZYAZInZdvsB35@bWwXJDX070V==*|AqZ(#7^e62SB5$QG}l z9Hi!v_BJ%84cGyP5b$`O6Nku+#fka>KSeeQ{;GVMrIB_@!NCo9Z36r9J<`jtq{b&~ zJ*zNHq$&8b2c2oxjbE{B#4fmaKD1aF3!}OjQLV!zR?RKp>^T8VN1h$?4lL2XOHP!9 z*RY9X|7OIEdk84fq{<&-PoEzd85ifTTsu3_c*xTyXg_9H^v{eC>Dm>* zNTBsA0*%Kw?a+%4MZt|hIi@ibh z?Jux0jIWDjfvpk8)DBqYawUPErk?emH$hr+;eb6gxTa?33AsJ69Gz@-R5Bb0Q{@*e zhtO4-gw{236%;UnN=w2VnpPzQc}h`{ev164$Nt)YI3yi;7^STWD}-d}5qY{rs?`gH zHIX`citBuf9Tis?g7QBYIrnx{!17@j4yS`tiXYKz6&(?NT#v8@&l1#Xw1UG*gEWEZ z^a6t;VG#czY!>G)${#4)J$^B82;!vn(c{PQX>_##(gEo2bDJ_p08lv4iWv2rEx&t* zPqLB!R+g)DN+5ZdY+vP^oMtCkg4JR{V64aRR<&(xJ>rT#u%?r(!dnvpFemiJ_A;*N zhKalfLzjTvZFB3W{!9Bc`!7-m&twnWCMr*+TV64{lmFQ|keZMVbmbsB>6`L(XN!>8 za*Ez)_gF_9KH8G!GVFowtdr5$745X=@5eVPR5e}vNe@F*hyP7{doA9^u!?y%{I33b z*3W2w2d#+to7rTbW3Z4Vzq94sj!nrCm6Pcct9L`)H%pE>wum8pa9@;PYuLDrx**zz ziiQaJLOe`GP?>ck-mA#gdfWtfhq!2%Xg{sy*<;}J0=Clu0j?8AhQEsY&Lnww#HqGf zeu(&3@Vt56L%}3rC@72Qr*f*6cdQk>eFU!0;2y_b-%ldsV#rAhXDLq%36r__8mY13m{e*;% zS99cdZbUwy?{l%G1Ox3vuwmm^tvzh4T6$|9Q$zZ@BY`o5BhBBRmWCLTf7JYSs@a$p z*7AYwv+a)Ysi0l^djRt|F{NPjla~C7ZEoviB9e$D-G0Pp(;}6rcrVaP@zs4la!CRnOXe_01}4k#aWx_vK9K@18JMmuM5l@&IZRQ2c>@LspTfNKcpw6 zDv9PKKJ!3)q@!JS%$S(EaZ~f;A5(!L&FQ7Or_h$_#R7S+adGWKi|6lWN&x)D-N371 zfVbx?k<*SdO|wBmcBG@U2Ajtgl2SEc*UlUaDclaNpqRRW==DQ7?-2!?2 zWqpFjt=J%Q0T{ivA@ZkF3a$u|Bv7G(W{i|2HEfx|`Ve+==b>>65|=q?pnM30W`G_?L}bcqo)Ou26)K5_gSw{2Eqb@(8j2{#iC0ShQVwKU{Sp{8-3 zZmPmCDOv|@1ap33_i|}v6Az|7NyaqAG2lEKWjof7r6mt8EU9N*UYg>epT;ntl7f;^xaNHir}x&SL~~ImJNwDU`$#|C#bUQJE`F8sCoHl@I(OP>Ek8d zP!4@#1FF=YjyRIoKljd3Ro8K!lcEE(O?pbI=GLVq# zXVP)9HZ=z_GBQ}RzUY{8xrD|@efp)hPwcGIn8f4hY{x=;5!wAVCBEg=j!Z>P$ZyRw z(NCL!8_RQ?=O{9;V2d%gOp@6}bOfJIsCkBH4oT#w_6(zG3wWp3It?yNA#LTq8rJr3 zlSXN2jhFMZUFy(P$)a+3Rg1&h&#^d@--5G+87mTpCjw8ie<_muFcnpOb~vh;8a9>mKXQH|q31|M5T;48UCaK*$)6E#`KydwS56 z)WN)Aj;`Xi{o6!oSt6`%LDfg^C+2AzS{IqW3|mYE#2M`(QtCn2V_WJz&SeU9Yg+oe zXkT*1)fdJ7N`FRl33(Atwhh~VK8^yIlTM4}YRGg|HcZk|`0kKE0AHCNcPKpg*tjDv zEsbsDQAdKf_^Tu!`kPlGKUD5^`)LciWcm}8wM9ECEA!x`uDLMM$SwTiI8&6?Q$1O3 zqNW`|vPZOQbT0xQi!E!Ha&kG>fUT>3s1H{`d@(BQbt>XLdK~BZCDM-rRt(R6EU!>s z0&|-$A%`w+bJ`uV7ZZ+3opkE zctn?p`yIU*Ocg#^Ybjo=PpudUK%}`ntErrZ5=a-$XJTkl7lSnJ)U%Td(Fi~I0D!h& zjK1_JPcytdd#mZ}^tpUzC;!`IfSXF}-Cjj_>=z8)yTj?5QoZV-%w(m*T*X4i7(cJb zVCL6>9ARceLhZ}adTPUryWR5|3w_fwl$qRWs-YT}da^mRs;6N$woj$3ABDtVaiV^8 z3(tdR&tlguQ;ig5T)1ED(qMJrF{-xXg(Y>;=F5dgfQs2_@b4@C<9kb|)DG4( z!~#p>n@$6|pUu)~MAth*_c#HjJG9-g6X+#@kr!}+=rwAKgXWdas-YosB^pZ|=R^g^ zglRk`MBY+swT6_s35j@j=TY-q9_B54i(F;c!-Vzi8Wz-)5WODrysf_N_lAvY(|M}0 zKzt124^UO2<3a=0;%Eh!mnH7;ZxKbf$(Xi+OQj@7*0McM9N{eh*aG2M)Vv3-3v{yk z(D<`YQd1Z%?UllQ-dz#bc2B_qsCDtoITTfQB%_S8B#Fa8g=mxyl*f5>m;+fXfyhL( zDe%#ob%)Xm!=)k*bGq+f5)%eB*6)!xRUQ_y_LYze&nH4>x0JVM_OP*x*!=!_Eo8B) zVbh%)MTm|y156P3tHV7v?di%4EMCj7-P=FUTsG|8gEU9x08#IcNFUa>J?~&6J}W*N zR=jt&gPf98UE729wPY5H7pN-@H+FK<`;&s;5@|;9!w6z0t{K9VC2B zmW>cA0-O@J`J7{Znh-RuxFyT#!u>+0^PGbHp2!!lA)L&&%I5ZxzP%wQkDq-FX!lP? zO9us3bKY(Ynkm@2aIJCq4n?M}{ir*7YLZ_{WU`?6xn#+Ikh*b$jMCwpvM^PVZe0%o zeZ|JM*nzq)*g8E_)v!8Q*U|RX8@iDK!}B*Kp1QV=%o=_PZ)au~$#wX}Tqr$0~N z81Zr3#FWmz9c`f@xvU(U!7s_@T+$C7efF|EhCTf@x)*ePGG))$Yld2}ujsicjH&)@ zFhr9{a={LZCvmqjE2uEn;}#rQ!*`?_F6(A=ldMq25EcvlvLQ% z?PyBPLhd_@H5sYgelkTFG4^6Tw=6Zq@h4DX*-W<8BpvPCp#1FpTfM%7NWT3m)dOSO z{LE5=jpv5G7m6=056CZxY|MHo<&3GWP3w3HxIok*-LiLV7l#t97nN5P1&*J4|T);Q4chepn_Ux!6zkktk-_l3i7Y5CbE zhEbWtv|h$DEP%pNJVJ}D>HK}zm`92l4`Iizni3f=8~V!)yy}sFbEUkH5z(9pZ!_0~ z1kbCF&2r-^m7f5*wV-SJdH6lhqWE;4iy~laf6@0l3l=e0GD2_Um}i_|4-rJVRtGOm zG9scC*nApQr#pCNGPmjr@DHllM;vTqw>n(Sq#u{6nF=cTx*PKOw>E4f!PEQ*yaNrM7x!oA${>f&3MML5`EjXK zzE7wv^0yooOPeSfl<2s9*=hj)^)ykryspWVMv1w-P?OzWF)q)(&Ia;HEU(5{LD;LN z3hA5Z=C@Wlv19zNs(Fz9{)?{+Zql>9B@y~QO%)_I&hXjXoa=z*?v88@7Ta2M7&#KE+pQ387hQOUB0cmc18}M(O7~m1T8% zF7`G(x>zTArY@}*4himAXOLGG%~w}ecY&+B)XY(R5f9OxTw6ZBjGs63L8NX9&q=IC zG05aPF7Q6KZ!hRF=ht*Oe7Dh4Lz*6Rib#+4tZn&aq{7_>(Gyt#>M}r)C`C%++EKDn z=gs>t^<_5;1I+5BtRsR_4vXG`=t@oP`$v0VCNH0n)d2OXfA0TBp;t?%*Ynlo>UQ9@s_-ej1Z5+rfcfjYj7+`du z=JAeQd@8IWoGW=1fd7+1zG!(4s8og*R5}yAOFkL(oWB7x95%I6FpfKOwH;ziZ#~W-V<@ zSTw<+UE=vm^FWQWW24&N7bB=z8-;`TNei$C#((M7HZNfSRZ38eR=$E zSR`&;;2e}uX5k?FmbO_U$hOkIrW zik93hEcXd9p4Z~oaDBG0eqA5dFxWk^gFPuZkezyyv3BO9<)$!re?KiRb zHT><|N1U8%0%IkJ^#M1z{cR7G|H$O7ut#e3P8XSOL;Eyx9KKa>`8*7AY$1-EZbJ8N z{&Ww)@f}~5(VNs`DSknGF?Vq4VLfS}_@TLKMzLFXH8d_fJM17$Gp)}>!~4?6qPIq6 zUPX+(eNWCfbZVU4qx3v!Q(ob=6rBII;A}_;zmvJl`bH(&#=7-k<4&!)0?3Edc7YPH z=Dp>V*f!bAGh>%tL;YvAb%3M*CX8L~V;+?N>qgd*;01tzBzV7w_|62j^6UGzuz>@k z%m*UYy#q9juf(*5I4!=%$%~>Azxvrz8m%4@k9(m-F+p1X!-UzqJD` zz9@))&c)xc??WnBw|Jhg`T9b41~g2re@0HavGT=PP)?gj$H_gr!=1V>kQg1E0PPG- z@NuijUT=DaKoN6sQTE<3pURjWam;1L`4+JJUq{sL+@C10-07#~yo|DodRL2ejK5AFH4ZDxeb5?r#q+>bb2T=mx64y|yV}tIY{)5|nJ9 zm9%AcD9`DVxw)Q5?wTRWBr8$U%gL?iwu54igvU18b7(=vA9@@FXf#bJi@jP>iQCtJ zQaa{!vDzXj#MiZAKPaoxVhzyWF0|J+;B;ouWiA(OP?D;sJ${xR@3ucyB2ieQ8e_4a zpr0F*v3M&KETJWZ8l${PZ@_0brCHnPvlS9aQqdcy4x7+yl8=@z2TTS;5Uf~E0UTTK z0_V(K2_U&=wB|jQfCsXeke>pPKp;g&_Ypn zB|Z@3-yNVdd9_TnC=#L^*F4>4kQ|Z(o}`RUQ9VA30~X6`mpQ^p)1$uZPWbc8~5cmLWb)(yHFUsUvw2OK^UAij>~uohl`OZf|aD_g(% z(IaqtotPD<18EJEUgbo%*-^>AJb*k|9B)`G7306FFtvCayWa5g4XJ@y?Hxio>o~0- z;6Ie9j&t3E9({BA9%O|xpvC##-L1`Ap9`lER^;mPn>#3CP28D3m@J<{B$$~r()%XL zMQM6#q`bDBbOFBn_jY7%|0W{cCY@oZwuzZ{-?WOK|D;B$w0<_EU8r73mt`p=eaWkah+S%Z=^e6xk3kCbrTlQ)x?~eR(1NKuXyi0h<<%cv z#M!LAhK?m%Hcmqe-8j0LeOSWv8@112UL^?h0BV6fZJdtzau?&^`{zag^jpwBIWI^} z$Ldr?K!J~y8)dHM_2N%88^EcXw~VRbo0A6D+Y`^SMiotFa)9t$ zp^~i1UrY$tOLf4z?VHa=N&Rw_Xi;3%ID>Zs+K7Q=wfzO<%KCJinN%m#;m+hJMHy2Y zE1^yC@1&-8qT7V4?twh?nAfX2(N#3Y9v(oH=}{e!%_1V7=Dv6imN!Cv>y#jE9m_ju zP??K80F*GVQP(S0GalwBG#m@(lbkAdf%v&>s9eocHsl%Vx~DQ^D$_NpY5U%{rD?T( zrWibY8WP8?wJe%2wCwv?(jM8)M~)#a)G{g*reUtx{g8kGbQ#A^K32;(J8X8oCmiD1 zZ+l2T_|02s^^_t#6-!*}fw)F8EMTtkTGtL_W{|3F4!l4wh$ZHRVQ%5cwV)&1G-sFWoe3F!G zdylo^;qA`%mI5%3np{PjU3*BFRrG9mAN<18xeDX%AGK{{J?;6JkKTkJ_5QQHCTLuj zvS?IF$7drey$N1}FF2E=kbQy+AD;#AevI%&cCw*;&fI;!DvW@H5%@ zlo1_6X67#~O<-^^(+F6dU3PnX{>0tuXwm<)D*w_#`5LINNlo_)UudGChbMpKq}v?x zx3F2o#Kmw@hUNCfsRvWZY&1%H-`VYImp;wbEz!X)*orL-ln6Xb{NZjllFeekFd0w~ zv3D`Wl{Kh8JpL|mlqGAJb_vEhd%8K$?cy8LId&rOC8!P5Ck8v{Z1S?gqcS^97O15|x%JF0R|_BKi=)RDzevhGPR+){ zwpIX%3~b2Ewj!|B3?VC#Mey)yyP3+8#g>&wZ<2I^(jP70qCV{2-whm<`LX?r+B~%k z&^?VD)frUXP;aHlglTNp_rd@`c~T6M<>||F3ObcXiagD_?|bk1Qu0F|@7Fa0{B??{ zY+4qPehxZ`Q_adtg;2zIcHa|0J3>a|YmwZF4^PKU&^}0~MK6!=THp&9xKGYRqs$CG zCabO-xB{o>dlnH(!*}5nH5sB}5tYPvU+#`ZZ{li(Fj5i`9b3LA6RGoveuNj7n8qA=y*Hh{(x+B+d8k$#2P_1C93V;AT6~1O z;80YzK9ka7Z|a-&`lj8)_rpt-Ju~jRbs2q2T(y_Hx5sWKA6)J*dB&A}H2*~k4GoOi zf5|W7ivaFmMF7brSs*<5V5TRWHd^L$Ih?Dw=DG8V@UL)n@~L5x&{0|6dvX`GYSa*w zq;gY^bEvv4zOutPL#lk#o{zsMzk8TZt-fnJ?n5MUahSEeyXk6$uaR&zoP$}}`w}va zh}YbS1DD5-6~M@Y)M!x=Aw<$Xsr}7|$Kkc(+=2AB;xAd$-$eX+>whV)G2{!W?L;tNhzh}ykbLSy0g6rBDomUbwC&=yOi6ZI}-_o}{`z@+Kp`(-f z4q`g7V}-eR?zQtZ!(rNr_{LxDRBS^-qS09qzA7r6x!3l`EG_1{L7g?{nJm*DoeN?9 zHYp>ygZYZ~84Ys2dLK_UITpT|ageHN6CYGjjAFJAU)ixcV z;YNbbi@2YrA%=~niDXiDgH&MI5;uy_kz2D~NZ1W3K}|~7KN7VRZEFZnCg)hXJGXoL zIs;SY@=sP$g8F(QbDhzQRppWOWqSJ4oxae+gtpOCU%?XACOPcK4UYf~Aj;C>Cutft zL6Do9byOx7Yup#@vzJHHSxF}ztIt)^B{NKtOoM>vr>7FD_kJWIecWXpXy~8wdXaH? z^QqcR#){)C3!xNYiFumgyxAP*CYABYlJG=G_D}n*Tk4Z|Yh93YKgiiLsOtIus`65Jv!1p@kcFo1 z=K7c};)x2w-|kD>L{H5()O?G>yXc}DKNu_rc77>dPmVciK}1H@Hko2}h)kdvqFyU} zS83TNZuEzHb}+A1~S_5v3Txi zaMHvtM;QP|T(wPMiq>N#J!U1>at+5Mmfv{4kvKo6-Z-svcPU{@kEjjG6#m8nu1S?M zoGn1A)p2EyUyQYn#r3M{a+mHesPYy(2z)D+*!|_!p?2!^rgE%3IVt-;-x1xX=lX|6e9cvRW{!^%l`ecm=A-?y~U2pMOT zLR@ws$@KZuM2~gD+^?M!?ng9U@0k96{%EHr@#DJCWiBlh zDb6$%W!}&km!s_V`8&6Xdz%_rU%f-(T0@}@W%)2Vu0%DWoqPT2a0u>RfR%IU7+%Kk zw9R|CdP{@J?P+6i0zhbNn0_a1meX)B+h1%8JZp`#>#pah3*0Yr@>J(2ShYGNx~IC* z*^Ub^B7RKTAx(ZtY`EXSnjcX+!O}%NTmGgs4@IN%hm>W0h%+j^PAv&j@aFV)?I))x za3>T;%B*IkDi)kl-{lswR*ArsxK*mAtcY`BJ)Uiiq>Quk$Y1#G-wS2?bw&%@y{Ex< zPt0yOB2$p{ml~t3OgW#xOe^xYivM$+3pF`mN?4Go7&CzSG}V*T6#dnmfwys;DnsmL zen&@6Br@4`aueU4$6^{{v2E|M%7c2^F}~OM+YrykFKFioy+Oa7I5DP`CII8pMOvwrisOGt4l$!jE?OR&Bk%%V91u)%-rH-NIg1t|N6@~Vy(ZEk8#10E)L@UM-HF@tUIxcJM%#Z`GbPv;Wv zR%jr@#a1SJC`W^~fz*CSg6xPFelPri$DzfVrLW!h!O{IgKFS9-Ld7TVE9V2HvxFHP z1CBVYCyfF3T7z$S4R%Fgy&mvw>Q(wx`8z(HL^|VlsVka-_7=n7uVaH3Vdr5>Zf#63 zcd8gtMF0B4H^EEQ6oDsIoB{b6y&!$Bnn{JFK*H;Pxb1EVv$7dfekQ9iJ6slSeX(h& zSh@nztecLg*m51+EjgKb0hio*QB#Pr5nWW?{3X%mA&X^`%A>uh3ZL#g+q8jDT21mz zyGOm(-ni98ePRHY!NV&{q3}ep2TZLV^FziU(a~IXruIjvaqy-*D)#m1A_wiXOwf&_ z;DAT!eObSFo0uJ@V%MakCbCZF$h#+@7i)@i)V$+dt}NO z?1}w!ppB$mV=;s?&j@Exgr^BUv-L0yZ*Jxs87*k;g{brkuDbEc0w+&}Y^ULFO$;Pm zY0L!$=rG0(#PJ)A;@mNdfrEEXSOO{1Fs4Zir$n^BOy<$8;Hzz?u3N#&FFXXz z!<_n`B_!}y_9Zmgf=OHPdXLtdK7UDj06!AP#%&7UY;C4syS98F$R}f8ylv2;KsE!+ zch?%S&yN(@OQbe3wtkm^H?M-|irkL5eC>rIzhokjT>8L_MHRLrhc zSS~OkcxjuCAG1@1<2(j`Kb>pqXv;k+8LgUDswvY~Gzf4VE|con%_Y?92gs8VElvx) z@>5H(4&S6SBW*jfwxrHthmEi<$E`q9A|+J?`vna{*MDTP>@1PDo3;o=*nnp=VryT= zd{GM*;x+B?c>JnF&_<70Ibq&hHj**W9iqQb&q)f^*&3`*j6HCN_!0f(OJPIObcqs} zxw2H9nXuH*sxJGw2~Su(zo? zcnJi-wv!{dWC1sO=F=hY4yeDg4qDs)3zwSiGd#7eU$i5?M55LU7F9!U^0(VuVu0%w z7zPbl>$XLSo@8gcb~DNQQdG7zxB%(dNuGPTe{aL6!*&DRT$X*n!+1%6M7L4mbU(uH)svv6{BIv{ zgjM0y^7yV7gt&*?unF)j-vM3r6V!b##@Tq0=$-lLOWT#zsI<_R zRNr)74In+#p=ft)@m=o0$YDKPW`0ci9v!NY#bCQWhV3QR zyNqM+jramHZXJS>3KUT@<@xN2nqZ_#_e(V|+1R4#s+ts!m(%~2Stt07^F)UF24K9C ztPji&N++e=SZH08v`@R358b(?!@K4N=Igzmj2?LVzHRZC49;U{OlpmOqzjW&?Jy?_ zHb_%j6*5aRHHzP7rw&#gvkCOA{5)yAvvdY_57-n`WjHmMlY1&Ch%UF?&NHjyBiA{u zzY!bho~X#S8ic<;uspI<4FTkoB#R(TtxGT>93?d2tdeDvX2wg4F0;NiW?p8dD_fZo z$J+R_<$z1mMyJ?#E&DUm7v|uQjI}0iB?IS4>D3XxHus=Mqh0>%NcH(}_e+)Uvm3`m zZCIG^T24+0jo!r>!VDoXd7|@F3wdM|F464S*w?`3U~)w%-Xs4QBR0w`GHCmwQFPId zf#~!?0WrX7gx^`Ax3VoRP|DetNy9YSDIC70vwjVnc(>LX(JM{d^;TEUgz>o8LvM7E zXo;-aBoFT3^S;%HY}U0*cN=F4CC+bwFW!ZeJ!J$Nn4i5_QYuia-B?mo#qM99aj%2Y zS_)?Evxh+6H*!sYa6nIuFcoIg51+FpDeCe00niCt%VVP4H+uUN32ZDKva3m*66Q9QZUQufJ^zI54~NGdK>=!XW4PW}22>U2hL z-oY!f)w*JFek7^Px%MjqCfKtb8*l~qZ@ReXBQJ_gWQGeMVQmuGUbPsXcHZh$6mwZxG*eV z03xvk6(gI-)|3;@*#i)Yj(j$(0F^2jbMW%6$XbH47mLx(xCl^k0nOX!(af&s@m$`J z^J`8mpBnLigJ`Dq#2};jI~>Jh;QF0U1D$4W_MuHM|0kw;hhYYqT@Q#BFsLEfPn#Sx z#5MVYnwy)jCTzo{67W_2@jTSgUXORZ`fFlPZ4OX*nO`{MTZ@?4HlLY!^mOj!;NUpc z9J?~TLQVLcX{s{(MA)@XZJ=q4i>+!!j1A!uUQ7C5`kR|gK7E703MFLDo z6yIn^lWe$8EQM6HQq@(?emT6fk+F2bN_t#Zb`so-5@{GoHaIM%hE+IvA%k)oDp;Pl ziOWiDWHogg@lel+MfhcmI@|W+F_y|%<5Kf1TS|SUqfU`M>HkSP>NHhiBEWY>^n;DC z2yDKvx}rCV>Rh^9EkN787;th5mpShcy34TACNo^fRzFR2JE-l4<9@nVdG&8eHRV`} z*mNF+wFTZrjaY3vnNrNSnjTIFcf+9K(q*c&s6acuzM;Mp)%SG8YNNh>`zlUq_U{LH zKIqMC=d5`xWnw560TTRi5-;9enE!ulz4t%c?;k$;?$BycRkc^EE!A4Jx7u2} zY6~s3N37VPwbicL#HuaS3?bC6Ra9&eBWM!@5wV^0bH3+1&JX7g$PcgF_x&8#^LbsD zr8IQhSs+$IrvIwx(`IQcqo+QEd?&L%BHQqCYf23I63uoBcuQ8e8yJK%+7c9IFO+JV;Blt!6P6@SZ><4b(vy@ZYm@-Cl$9Z<*H^o#v*B7SX?N_o&+#ID(Q zd;`3prrA15%9xOFv%qkFE!?YvUWg@0II%eutE_3zyH9Mqi8AH#JC?jbdA{BgqrhC$ z{1G{G>CC3G9M%b$jv?`q*VAM&OU8qT(Tm~Y8koBBt?CS%*;6d$=Jw4%C?cIHP-3?( zbSL+W-S8^M{#B=D_~(nNOyD10gu@NRFR2zA3{4-MZ@&$=vW57`f?Hk?{-tVZUC!}2rvO%_(%jB$ObZPS^?<|iD)b=-isyp|ZAMaJ%^it32 z{}aKKylC=ZdGT*=ea}Z* zK+bI{9<-Ml-fF;^;fo%6=8aGCe;Amzj)Cy zjX%BKOrhg0N1Y(lok_8oDP{iVx`PzNzvcVu@h6QlzI%-zX`uu|vMiky6NlYr%Mave zH)QKSe_|DCt4q+sASf;rMTEx6cps;5cTY~c)&1IB6og1@_}v3)Lkws`SAs}U^x1~_ z5j#F-mV`wa@WG#IEha}W)G3CEtQ?%Zd&@P@jHM)kYpnlg7p9vR*ePHFl_b6U|`Wkk1o_&0C0V&U~TRnQrEFrVW zH9~KHnAAMIXhK$nF_hIVk^7k?wc>Ei$HB-MWM$TZxIHh=SJJU$N1*HXgXE^Uq4?N=XuT8 z-|t5>C%0q{211L7>`lG8ulevxDZA;Dz7Y4+?ClP$N0kKH`d6*om)1h)Ews1Wf#q_| zc~n2(c#1pnb0hcbB)NR6nHESxE${Gp%W17qD(Rr}NOW}SLbW162|i1fX8Sn0U*Qnv zh$hn#;c5hjMUzL=U%W=_A7ljt@7JDHx!yutyu_!h^q1-dncL zf3v%dsfa2=r}Nxjj?oFYX~lj z_O-NU_{$_O;Y`JMnagUo+e-B3rB!~apyiNs+dYLnBFdFt#X$L0y&b4RNqTYnD)qX~Rfb9VKYU&iwj6HKi}KLYcmI?+5K zCR$B2ClbC(!s2_U_3}b`R>|)K8oCxY+};;M7^eO8<<3(825 z4~foWJPLYquX5MV#_^y{ouN36Q-r>8!1!JosTjHlz6k zO7yIy^I=m2*4Mh!NF%h#>Bj%iYbdboTy=mPP5LLNQ@`zfrPC7C9bcV_cdOe-Ao1@f z6%OXEBT`aXAWLetpURfRY?sck$i-4#W$&8dam-FR_{C4<*8rhy#6_T|a*(9Fi@csP>gBkv;Y_yF7!upxb39w) z9~zy;h*JB{Tius2(KKu$$|(mIH@+HCylc^b1zOJ2&l4quHY(uX{>&_5}`g8+07 zZ?VO5)<*)^M~}Gv2$AW@i@&|3)ep9ScFraSIiOKI2mI@|l8r$ogp(O@h#Ej~&uH9yDt6dREGNC)-z0#Ldy7 zoA>gwh-;Osq{PkIFZDnnHfZ{jN`ml_ zw?NFa61`oMZGUTopZxkXd2m`+I|!1|U@K_*BVxnz0$6BzhGNlRvPG?4Fo3sVAn!09-8&U_G29`ZPG zP?l7@FK1flS?3UL`%XgPVyHVD@3ywam#er<_`6_Mt7x7ukRdD&}I;~JyJi-Rd?T1VQ6>3A`Jg>Z(7_Cfk_^K~d!nMZ9Gi;Xu ztmoJLHUt| z?X+~N-+GD|+B#|f^j_TO=VMMTOX6?5yc|=73C3=9i}vTts}>5b*|Qs?&awi>UVrQR9Ccuo)I$(tbuc&@{T>)-&poVtBQVL)X=f-za@Y4cR(_-fb$ zg9urQyXnGx>ENPWIoC3Koe;~8<_$5I6`+X&-4#Lqc>bpM)Kd@~Rev?kWbh}Q6Magr&ifkl$R=I8E?f$}{=Pc`xg>S0+ z%wp(6!syoK{H9lq$+6C;F!r+OJTAED&W8+6cX>>Z3mGk%m4a;K9%8LAubRAmi8U|u z0Nf0bR5fF|&0a)V&wVRN{`_NCaIeX3;SoFbMuofzG9aX5+tU`O)faog5@LK2%Cr%v zIQm>t+}op_ex*-KW;NbAKU@Lp6R_h6fc)SI zUISjTAl^e#x}1^kyqlzIjdlmF=RO~q3291gP7wJW#Bc0}P7MueS#RNYJfwV|elyA` zr3g*s#sN5A3G$SCOJfLvbd1XO*1dP!yaw90nZzmHg2GcI@+W~A@4lw49y#9r9jEBr zXq1UJyyC6@vZNzXZUl6&YIL|Y`u z+TI})#btO*_U1}@7-Dt06Ce7S)pX}&P~=(LUYZv#)(@n0L^{%1H$Y0%-nzV~HOMIv z?BA>V!J6Y<)(?Yy?{{Tfw`dYyHPx?wYrZhgi|eg?!LW+&1SNOw?GALjKhdazT$mi5 zNw~W)-GIPcf?$Y&8`h>NOi!L&KmvzGHO9=c>NA)Bz5CHr4j6rYowFQ=A-#jO+_vxU zpRES}dIK{;e-LBddRF$=VzK95Jhtl64dA7Ci0_1|ZmGbrzu2!N6RJz55;AAbQoKUd zg^cn-*5jCt^M`#S$t*fElvHz;wQU9;4?>I&P98T^ZH&mK5E9;8n39J~>t}*?uXRed z0=%VxWE8h97veib-g&O;9v)uhSpQiMIGh}hw_6l@ZaZ}pYNB)DZLRBG`bg0jbK7z# zIiT)pEeJ<06RLf;n5D|};U!44|rwgQ457sJ~!-~Ohx2EJLZ${Z%%Qr4$1G$sE3ml;kG_ zk&b$1X}KMzyNuxHL+qRrG(TA1BemwS>po@{RqYz*g@?)Wz4cT%KtmUOpqmgapj12| zuV}=0UcO$-Hxff{KAp(krs=}k`|6n=kmxY+n=#rT!`>LL-dfq^nw1h2si(TR#XeOa zxH({Pi@xj`(9!~V+`6^YbST)bf{&0c-ykVCGr}9x^4c)y@q<)c8jXFNjLYJiU*UCi z&8Xi9aF1C}JN7i)-KllM_zi%b_}!0ow25`qW4I}uglI2Y*p%d2Z-RWQV6V{!j64TxyVtC`7gv3^Sd+spxxLux9q>ab!ZvN~~r}=JV!Hi-I zPz+8&l=$)Q%D2ur%Wiwg=>^_QiXR0u_MPNGvxnKJRglb6;%1$i_wTYN&F3?;=N1jZ zJrZk#f;cD>hMTM!Q?j2DhMyHOFc{d6x93H!j2Rriri;sHC3bqt3(nMU_HuIeRggk0PRt<5v!hSOc zv)v=kh-<@aO(In+&N3=4vK4ecD>*y9bSGTw+s`BaUbvpB#=VlnuI9r^JN+P-J+Vzp z<9$TqpLJ88bcd?u9wMVs10$5#jdx_H4mKo&QNV@l5_3 zrEqQrpDDDPlLsp+CS~?#ErLvZNEO>bmDD)6qdQJSjIY&kuZT%F@K`qw&9-1S6;Ex`c421Ek)I11Wg7a8eHturoWRqWV_hq{{U*K21OTWn?!de%U z+BWZouE4Yd?_{y#^#3GA#EpxaVm}UxdraDJ6k9D+5#K)5}uE?G-4@Fk~ zGU96Qh0C_fv-?rA^X9FR-=jssf|Ke)fK{HI@K5X?ULEJP*G^>n)ko+&&i@Y2d?K-& z=kVGw=?zeHEq<%{qF6ZOb%)OIZAwu=nlC7*Pg761cSeBDq}~^z6JVjA+nMOK_q>E@Z5qsYW}t*?K3@5#JCZJ^=I2*X7EoLLD8F z)LbNPbwHnKIb{{Edj++S{>yoblV78@W?pSavY++A0` z>TLIms&9XZX8j@WW-}|rLtWZJgSi8qEZ1*ZCkTe}!G2d-JS{HG2_|i2v!88`sddMY zRi53sct5te)*4vp`vPLlNTb1My;Z#NI>(9qIsL-qgUob?)s|YiPTS!v*s$=}^;bk2 zaOA3=jc}kW2{G|>&gO(S8;U@u);nZ+oe~ZHLiz75ROVW0Qwc4=stQj9`1X%ZveRYY z61LH^!3H?GW*tO&GrhC)b#&kr3=ypoGN$rI(DEA;gm`;7J|cP+d^UDNvBjz} z$Mr}yDu{;v4{K>Y`}`-=O`DuyCyNC;XTQc?HnLE7v%x0)6NoQF`|tn80N--ci`saY zyeIy>xrvbxn)%lNV0EJ?A}m^cYWoAj~1Aji6lxas&~gxDi|MIEL{%_rJ^D(|@N z-PaYPjs=GYg#7^(`mnP8%b;|p3p{c$F+XObenfTEsAFVcR?wKoGPP)+Il|L9HDOUO z38Xb@n*);X_~(1$Ied3p#^kA=FhTi62{N0PxcJ1f;&&UZ`*Ucaz?8kqRC}VvH=jS@ z5H|r}(Sb*tjHu*M#2J@QDx#w!y1oiDd9k%eIsk17Q>dTaAHUlD7EqkZ0XLwGN!8|j znWzCn)ozzXLScWpzF(L&zATSTzfm(xH$Ro~SUNLzqR8rbx&_nn#2>E7iquw#;vEt? zZE37&Auuil)aw~Vlj_AEZoCwuzyj+|qKRYXi#A(z$EnpDc?)AXZJdzTT&Wq%?OJJ< z@ST;wjApI$wjrSNnVkE13h+e2q76m}T57q}kRFAGL^TuN+_KA;QZi2y&TB_FXcyOr z-G8GF{`fWI9OCe3Opa;yeED^kg3O;5YhV8FW-{gOWlhkBtc{p+6Y(Lsg@%nh;l;c> z3~gqo{!rhwZ(_~k%l8Un$0lZuR8$w}B-XkC`V|KqBUV>= zcILTA2u|m_j3bvA-h(9iX1LPHZsEaF9cG|MKEo168$5Qv5TNt{2WogO(;&a-HOO=~ z-7hog>IeTzOytc%A$+}G(}rzI(yQs}fm=OHh4;lZSif@=lDUvfe|Rq4M8`ZbHnMG> z37p5+z84d@UdAD9PYa8J+{H1f6A&tE#`rM#(4sWx(!PR6RX>yDSH-_ct+wA!BLnZ&0l|qBPJGuj-Z+;q^sQ@K)83z8piB2OueR-h!SC+? zY30$%dw%XeP$D~AcRO819}e9cP)-!yFcugWSFSwDDH8K}0~&At(eHy`2sPOctf&^Bhx?b=Y!$9KW!|BX~+JxeQ`W6 zDYDA2LaQZn**`HiE;Cx~>iwnW88Rus$~@DbY&&aBUU!xjBd;;(T(28S&mMMo$G-*+ z4sZ$dJlWSBCGQOc(vaz~kqZ)L1W5L92y3>*d2dN98E7Yy@tJXl^MbW*)5IgPj45$l z$K>g0wL+%lMgS*qNv^^g=@nhCnXf1_nlHA>gmxf87UI?w%vB(l-)Pz^Dao3%jv z`s>0=SGSfx{C&X+2s(_?0Eax_0`({5+SppLO61V=JT&KI{&xQ8=2MN~!oF?Ezbjyb zS_R)vf>oKKQz$plDcc>{Lr!$dhOeFMi+7m%F%jEVfJ;%&eQTj1A(|Y^=q$5Id2L?R zkbK+T_q>bBqr9!IndzXVMkiOK(Rz@c|fH(uqXj`d|Z(dJNFE`7+}Et=z}j|iKi55K0H=*2Q2B7 z70s7LnI2Q`eOTEDn+c)jxSww_eFa?5C>EU};_meBjar_m_)foTrvK(gD_8Bgc!Jxt zi;r{kQD)CH@RxB%)$S86T9CoEYOcLO!hW0o0e}o7-O6`+39m#B>Y6 zUY1?xH8X7JXKeSc-M#XibL~XEyCr*(GWoBo0D?&9?T#{?qLA>!voapOBYM8*sJ~x| z2d*@ftDJE%ag>}vc$?3zbvf4wz1F$LaC0>7J^72Y=!mf5HC9lI&w75S%Gc9d=A(*H z!078Qnx!XfxD&|CxTLb<0WDFKtlqN#nflx#&&dO|_KXHH?i#gIB294rdF*dI&_2Ds zBnD3T1KJIWjpoUSFMI`9Mv^y&&yt=njY8Y&Y-)Z$gDc?9D`d-`2kDFr?i|PDMgC|B zGF3ma!yUiLXAx+O}Ijbg03plwVCf&!SJ(7*%;EFjnLjadnow9)W9MJZHRGRT}a7Dege}KMQ5M363k+~|h(O?z98wT%QrkvzPNXxW4t|dBo~fsUT|x+ z?%rk-K!xW*UeJjxnY!&MeLnN(18;_!U2Hvx*~NzJicg!ym!P=Y8+I(&??har%sgd0 zJEyl5V10V`OevR(aCYTO0wPt)XP>cMs0T5+x`;v2{y24M$r!(2#er+Pv0wO=5EYEu zU#aG`#pQJ;m2ZM%A;*f*`>kgpox1ozHB50@nfwfPp46q-Z%0iw(ur@5(!_l??`)1g zT->TC?F&tIpeEwH<%nI~lj)87Vh2RMCoR4>Vii88k-t4laT@Yq)$4ao05yR>eL`;P z^RiPW;`l*}8;*EWzJl_!Bs+g+wCPvtVP9njv*SWyqqX;TLmF@A%=nDr#$WJrAYW{w zwYmHkQpKh&p&C0eGH^IoV?*|mcDl~O6eikM259~Km32;rLvDEry5?bYlh=LT+ALh& zsPJ7&JC4tCGfWA*nV`#_%~C9QtnPoT*g9oQfF_(jb*A)<3q4)AX6z&P$>Nn!4?K4c zK!r`>Z0{RN4C>aps{~GvVI)i~ET06!&P`|d9U@3J^WI1gE~17Z@NWBM;CHHBb)aLB z*q}Y#w4A7typA7^=M}1LIW*9Y1SF$5uoWofEABs^e_%vLLvm;3K817NA4=CDL|BQa z8doi?F0CpK6$bTceek$kiJ;7TuXOIfp1g*22|wkxcq?A}+c5HNr+=vNaJn(w@5Bf= zOj1IE8(M7WmgjqXwu`#$HY{8C0A{sysgPl(ugGm`UkQG8{E2HBWlw_=gXX2rGd@Oo}sq=YcYD>pQu3!AuN&L=V zK6tWUE>@YM@*XJpyY%g4EVCAuFQn*cc>wLNpDcYZe$vXvxg+BUA^F4T~v73i9?Y zv0R*}Y8vEhbYa(;Yp=c=CKU7MFD~1mNno_0a*S#Ik6C(MROx)*XsddPf_NAtWop2BpsJ5H z;>aBY)LZ(3nQ(vfWmH@6FLiaEmR}BD-rvdp?P<^&10`~o`%P66X}Nm6LRgTna)C{p zx%*nb_FeD+mctm9K!yL$OYP4Eiu51Qo<|5m(K~_(t-r@$nZixR?X=nFFf1b$m3RT@@9FW5WlqGKf zd+;~=f~J0lcV)p<6aVT|WT~c|c1BVx92c#&UL|F{a&4fL_uBF(Jq02)z<_2HXE}m` z#N{5*6cUsZgHd!%s1@BkrzgnoKLK#ds%)r~m32_+FJsi_MYi`N>b4Xn+pg zmhr`r9as9l*YZm}3dXMA*n$`45COV8yweXYM*Th)Kmh-)C3jm#Tc}suB|B%A{n&rH zjVQ{%$w}-HD5L%gE{&+^h@ctMX2LK5QMM&|zD~g21D`y~HQGIbHghK!|4Bw2U?BLz zaJ&C=v%Y@l$-V~N{*LnAkXeH0_qrE8K@zd;p#k+K5i@t_mRZA6(cowMiu+#dWmPL8 zH75xx_QevzEmBNgSH%##JuPj2c&8>|@miRhl&JF+C4jDKbA$7}1Sch-CANLmHajM7 zy74~mR_#_^pJ9dRx{(*jJ9RyQFGbnAH%9Xj_eNaWlt0J;&tf~3dk3%m`>Lbd?ESqAUww&B#t!y1Xxv;Ghz9L{piXLZgbh4HUdQE zFoylDAh^xizd*H-4M+@<-RT008Kn8w@Q~*%?<%!kTYX*|H1ardZ^=+BdFS?0DNii} z$f9c}blW?xS3-C4%?(f!_eFMq{VvjZx9j&L#D!?4*Q8QA5oC-zeT!r;tqz^e>9U;Z zs78#V?ezr4)<=)*^_sZ-Qw~Er^kMJoLZF;`az6oanApzsHA_f``+&tCf-qA`^K+c> z=DTS_+CP(t8UWoBI=QMqG0_bB441t>9Ul6Kt5MU_d4*CQWmI~Js< zZhE1aQ~%C0q2JHKMO(FueH2s!eI;t1nbfI7oLYk80%4R`dO^%nY0U%bqDD8K^3bD? zcHF&fUpYLU4^ItZayNe6J zNDxDY>pdm?<{vuqkSImV5tzHRy$Aa~x=}ZgAt|O@rBWoDO6+Fyld$=ly7z ze&KifAD*Ao)mXVUNkO6pZYLg{d>81hyJ#wye;enE8H@0R-IU)~De64e`84)6=Nh9Sf4J?9ycoaDVU)yIL+9`j6F zCxW~mPYq`b<%}wK&0FImrY&|+xwo)Dg?Dy2l-Nm=0{_JK0cE+d@>1^?d%+YgU~aNM zI`f~lmNcR6g+d!w$t68=1Z`85&h>>m{;Z0M1%m}4jh?2tRJH)! z=_ftD--JWP0d_2__T_Vq^cY>KNs`jnx zUR@`;xb?HFl+9zd=jAjV;nB?lU1rEK)g$w{!~Z&)7~jnsmjAk=$c9vWs=1puny7MV z%w!JHj{80%me?;x(UzG09yTWRK9{<82SKAr-(}p~i$&-?^whjQF!auJdS)_E_38c7 z$GpN?qIzO8VzJjm*JhyRqks(SDtcrj1!$#2j1PN0z6AIDbC0Eey@fQ=%qjL+7L-Trm(3}bFl{wmAax+ViKg7e8jKaliD!1(W{d! zz6m<1w|@&@BYH)3CxdSgvpQV^_FJn*6(j@dx$~>yvgD@X8wHloD^}y=BMh@N?)hyf zdABR)VYPxczcH$sq00~&W99L_p{%f0h%u#Ez{U8qD!>>I+o+g!;4gcBn4Yb9`ozT> zQk>+!A@guA9?%!8kKSTYpUx6#xzBXRs#4tx?AYA`g4+I+@l(DYBeqrJs_sm#CTm^u zUmiyG92M_tJf87ci*b*Klhr17ylj=T?tb#Qo0ia3x6P%xYlS*z7Q(K}cd$*FtpgQq z{qj2B?-4UTR@EonUjev5=7|6tIjDVqqkFH60<=_(2VTE5N{=1cX-kB>d|ky?9ygv1 zS?({apG|8_G ziksxj%yiR!_p)e_`on)NU&V%#_i_vF>Pj&)q{bO%Sv75O~zVL)MsbVz~dT@WF^G?wh<)+-|SHC z!tZchz`3FH!y`#Uoj1>}wz%r}t+#jv+S|w_B#69?bJIf0W#!K60Iq}lLg;*t!&R;w zSQS=L-E6a1*^BBgbb*}Grp+$5armAi=@6WoD}JyUZ^L56lugh5Vd&M) zZLY|mSD#)TFnuQY2`TH7S`20U79x11l!#3K1!OTu9i;c`JN&ZO z{$A+PRSr;F*%VW+)i=psn`4A-2>Lb41f3H5hlKT_j;>uuh-LFI8}=M2MvX-XrYsFC z3C+9@r>wKb@7j8XoOf9iWg#NfQ3Dpbf9!}4mG-w^`7iaY%CQ3FO9K`5P-!s*oXj)? z%ws3D3qhpW!QI*U+L(OYZXiE*P>$);t%uW6ItFw|9o$=a1FAsAVJApU4GB{`Cwgj+ zH;id)hljKVQdv)j*&iv4{f*@?hH6?xtcPhu;-fb-_8GHVn>hw2u_^7E12QvSx^^|T zu_bGdKNQwgW!}Q>+W^&_UDh7d|FY`#vXi!C0>0CO)~F%u?gudGu14-(4XQ+F&MZN6 ze8Gy|+wCX876`6Ll)lR;jH4^4dbpsY#Pd4SX@US2v8kub!q<&G^pp!eGl!C~6j`pd zE<4E@PVXvmd!WE8FU@Fz`Z8+x7$3XUuU=<8fAZMngFe$IUq7oWzOWqg8nqunzLyE> zE!)S--!7#s1x!4I$FJ1#vDf_FQA(%8?hI*_H&J5+*|(gd2k2Sf6a)&;dqB&(ltA_* zeE_l7%dgkVn7+Sa4PkxuT*7=&woP+4U#F=LgQqYiIsc+pk{vj=jM(!Ks;~(8`6m8e z+>6--S2+B+I1-(PSj}5V3#{?hFkaUmf1sgmy5xQ84h<0_gfDU zCrHeo(cq>r`2;#@z_r`q|Be8tkc=}j;d;MN$%_rjpcYbeSDkvAL;G%`_Qxy@|XgXM}@K_TO*2!_$ZwR(dFtn zlSljDr>?gX3@(i$Tuq|d9a?X)<+!gnTRXDXQDYqh?bqCFUldJ*W6@3hZQN=xR?b%H=4SGf`rS^+W6oa|=m_tUW`bRZ~W6Nap1b%{UjSLTN z{{9Vd0c{7lag9LcB!dW_ENkH>lncgCz1=WkD?)SNk;}i*iE4CnXGYmSBKfHAf02Z6 z@aSB*HSl9l?UYUEzjV8|)KzELRnXB^PqTBPUv*qLearG`hV7_Eo!SlJ#`re}FLnPW zH87kGXQ6ITMun}%oyN*Bp#pDD?GTdkFB$h`IM?3%6}R-x?}GsfYw%u&q;+n`AWM9; z1yW7l&*7wwWU6pS3@zecg^zo=MK^33zW||SRm&XNIeb+1>N+UZ@14E+QFw^-^x|xj zY~A~Nb0X!Zb}^EIycU;;?qLR{rFLCur97>}yTVKL+S~&{m--w1f|CNnMOmp~G~nq} z$o75W2-P%TBbBGGb(hcIZe{S*T(vp=*27+>&xZw^Vm$~=+$7e1Y%2$G{1VV*2AMT$RlKuHq~$7NykkYwS7^Cq5fgY`RY3 z9dd~rZDY&E6eHy5kV3<^rhhw!*&-cyQd9Zy_dhKV8)U*yqU_h0iBoR0$%5%xX-e{U z=hHt7$V)#oI|*wlAHHkGpV(P0U4ZJbz;oPJl7BRuZ~&3;7wFFpBKY1QYw@JQ99-VE z!Dy=*=5dH#2~W;5KCJ8C6ZnVC*~hHCr{?4I3Z=5{3n-5H*kJ!5| zC8j7JVr->!jFkXXKl|5CS{xWy9WruyQWH_BV^bit+4O3S`E+B+Aba%I=uNDzz@gbc zEQc35W-hpY_z&NCQ+-sA-ra;gTu`K#h)OJ^nPX{D?Kt<;2U*y3c@&Nd(S zk4>yO(!>wdQ&C*s1h`H-`S13E%F?RINTPud-TTn{0x)I3l-&&Jjo(95pqf4q9OLls zhhKngoNJ#?Q)XeDpxm~QY3w>TvJC)S8A=17@xP|mU8Wo5?=QH#Je;uAWRXau5ZYmR z88wiw%}8H8dUM~{nu6w974&D$Tb0he<@Xo{8!G=#OB!+4Ch}kXt9L-nOx=cO%tsY* zMv_X#dpQCrT?t&w?yX4d6bPccfAI4(?fKLC7VB2}zxU4aDoP!Oiqt6|dasBHfb=tP z|GO;f8HbitIQe6{Low?n?f^#Ov2qO=bUs-Wb_e}(K(KHJY`_h(aQ-%brEWcp3;!R^ zT*hU#83sU4)=b&d@`~Y3OG|Tp$~l2c5iPne47ZCTBj8t zL0OTsDp~yfC({d#aM>3)@Y1>ElJDj^fAGSEs+$2#;G}b0U_WZWX6`>@p9tM{YAibT z9o9=x6>>^B4PtA9)ut&eZ7ZLo;iM*A+T|@OE}6tWZ$Gin{w`tt`1t;oBW-QQ^{YSm zM_=lCADI%S&R6~Gmo(kBy982U$LW-7=kCMC-T~~=34dqZR~Uv1LUg;*Hv8eJFZ|BQ zw?e4P>GS6TL4mxoQ0Tuj2+oopHGyhE)W99dIEYK<$bi#KgUn_FMD5%bLLb|-_Ar89 zz?b1vX-W2DeAXc5jxo|UX+|>WN371HpE5z_a=_kSY;IC-*__3#7ebg=2JG}}yPBgy zEFEbnhzxo39u6FzRtK4s&hN8A%rzhw6$ z_6q|C_ZbstIY!pxI#E9kPQ8bd{Sf2#2--ve;^?ozQ(RFacgC7bf8C(Vhw zflkXzAHLqWMxy1xmv=JNsN;k?oRzPGlGtJymxxoe?1?RP4ZMrbbB({hiU3t*jo*40 zG23~h5jUa)powJc(mxFm9DDX{2;XGK9Z>1E@|TN9)I?PS>pINFiWIDWf-J~raD$AW zZ@cu2lfh-C2Ia%O#Q!ymJAb>n8fK8!wA(C`5UBBLd``P$N`SF1ki^~EOryc-Lox-n z#U0q%>4)&C7x__6SuM#=gXyJ=Oe1Jf)YU*1m5hhw!+V%AHT}ygXkUdF*NN*Kddt5Y z$r(i;>?Cy#{z0wHa_6>}R_%k^*E&AXv zi|WfS)?E~xXs@%ASWY@5!rirb*Ecb)0OhaGk>q}u822&6u-)$!_ec&xri+WhxZxYU zGG$%pUJ@htwf<$M1H)7Ce;6nBnSk8+TA4o<%k6JWej*m3y>1q{va*n=fGN4ElL0wp z%2>axXB**xZ)~~lShn-u`Oeh#EGOB3Eqe}ZJNcaw>(wnq+br3iH$ppsg*w6%G1(A_I)p7alrz{^t9P*X&H(s%2a6P$Iee8tMz=X*|W zIjo-XW)oWK28*WJ8_TTS++fZILX_=B4!(MvG$a{{%dWSNBJSSn{x{xoXJFm-uO#PU z4UjjToHwA#$u!{qeD&ksCsX9FHu?Yg>U!RfNUD0ZrEtKM)raXQce46K0JC(Noj%D% z1I%=rRk@*~)`e5W-if6&R6yBg@~*Qv+yP<4oe6pRtY3>xb*6EtXM1n_l_lzlLxf`d zel@ML{tUKqhA#}>rh3HUObS4d+)h zF)cpC?;LSgIZR52z=E6_(1bMd%Mo96A1W~FKMKH>{_nKO-yMD`KBJ&?|af2Fl1FvGKu&Q3!$wD?PU&4Ulh7@I>rek%~wMFL}UdIoWD#~uk3S9MzrCfx( z(TiAsCluA4P=66HM^Xiai?-!^j0?*Gc9Q-@V>tmTe9m^k)TSu?1EQ! z%a@6F`a<`HbL5rDIc!a=?}I*UHhsfvis>4tliT&u7GiX6OD<`Wf6f|>+$4UB`cFh~ z@C84=5I*1`edd~8iuX%I%a2A$|AIQhc`#IHi zXBfqTBi}xS#K{i~NT_l#haR|b7gOxR9W*^`HYKjtGZZ&n!0B{Kp7;KLKg|tg)iPWg zb4|Mk!b*q4sWfx|3DnEWb6WZ+eD7ft=lxUV)Iq3AXL$QsNv3i5iGU?phf2gvXFwjq zE;LX)x!OvJT^kDn4U#y#;sbApG!-at?04)bzAW9f+)***?d~wnsNU5pS2}<9UiuJ5 zVr@6F)$@4Eu1D@!tpEU9K71bnVb+y6u^YI?LHARZH|6)9N+z$xf_!wJ7kxim^^p2V z@`{5mIkD;uIN9i1vv15FlAD>k%G|alb?BmQoX_GBFiD?zqPwnaij~$w*GXo}2&b4Zctwd2`UC5e_BsrvW$Gl{0 z=AsKB9?x3x{Bk?<#=!?O#7Uj;2Ocu4s5T*mGCO+y#;D>Se$E zPVn>xaCD-c2FD4bq)L8(4Z7UpEII~1UL;+uqJ2#HFk&QO^8Tn2;L`C>th!xO2~1uP z>7-hxBM18b8x%F1i9=SAXGLs>)<7k7!}6e0`?0$sV{ru+3ySYtY-x3ml$TZ|B@-U3 zA)mC9v~9K4D4z|e2rT1*ZGVm^#)@i$txXMBU&nnh+D_FRQ{ZVve`_w+8$&*+l8wwr z`E<^-UspIcThvh)pzRi`7`StNvGi{KZ`rVLjsU4yRGb1po^|%&tZn71u(cUAeVC(L z2IRTyECp)o)rGFd@V|h*@0nX#atAwa@@;(t1T7W3*JZ2E8*x{J>3@JcY$mBuD{b|^ z%a32N#_WgW%?}`vx(Bo;_m#GDfKl&1Cb-YTj)3bm^1BxHYk1JAbR?EhkNbl zR_;(9`Cgqn6fzQxw%2}+3Wm!TGY-rAU!}bVJk|aCKi;siWoDKJ5=ul__aRZjK_WXN zWvh-o>Im7R;x;miV~?y34u_0#qjKzVtjHn9Iu7R;|JOO)qxh6M0-c~HB2vl(12Ycg{>qgq zS531Xi$N!xC`aQ8K}sGiR5Otux&qX7wVhHY}oN)b546pd++|S3)z2 zFO4Iki@_L(YlF%tveX|04fI}=R)rPKqsDw%!q_{p_;H5~M$)zT32C_B{NbIvBCW&w z=M;fPg1DBrPwaj!^3eBk_C68`lLrCII<~LsK12mh8Sdy)OI3kYJkKCpNd|QLo8@&! zif^d0)kmgeNy}{Bd$Z}cs|d9^{H@k&so_glK%6RqO>}+d!A*t8`Itb&(s?>UH0S(E z!*w(rR;o&0Ih}B6Yx%^C&xM|Qdy#l0;pz8oVQc-CGoo)qct?9XDy8k9)}s=wTX)~Q za#V3}&I6ua{U0T}EC zzPfq*N1}^?Nxb1;Sg!E+k6|-%0t_e06~};M*{vJnMVk28uIt)osDu;94B>tvWN69I+CH30pdX_G0vHIK5qC(<9$MZDyATrq9M|QS_mTp-;(qG#>xsca_PP zb5?adFX_!Oi)4?t3Yf&k3J1Q+Vlva36>vg#?)PAJ90^rpcZ-H_QE|#I)?G<>=EqIT z#L4>b4av4ncF1np^5>7QTvo=lM%t8T=Y`a5%L+6bwVnl6^lm%qWzP=0L`yFEhJ{sn zz1d3V#^}&Ig2hlmOOv9mju3_rcTd0d>pRoTxdO87lqP8Kmi5Jkva9C^Q6L7YDO=#d zU{RJFojGP5#@T+ldIKG}ESl#KP2_2vAesq^NR7)q@undjBMmn`fSeA^(FOj z=^v&_h!r_AM}lrq@*C)k=Wt!NCC_D{P!5Oad+tsD&VWlh?9Dtehw>M1`aN>SQ7_m2 z0~h8nBfq|1Mc-Y}He*-k;m!Y80I{^RyxQw`8TjQ@TM7Zf_B;y}dOR@2>VH(1yHaykI_!)FXRGV|CKhkBgy6_S5v&(K_`Q+Z ziBR(N5kXG}n-nY`MgcaVdGGEe#>n-G-1Q{1&e1XzZ+W58Ff$90^K@&RDvZi)!b^{b z_yA*gA}WfK{=em3{ywt$hST$Ml;_L{aSnOAuY9ezhI_3z8Tgd?DN4}ZwFwa^kVW`w zLYuzCB=&r^e^}obs9pc?i2k$Mw$V7VV8kNX%h$i=V!na#8S|Eo^UB9k`P|IA7+BLK z!~F-@!4RUcyJnuRlQa3F;nJ0*cH)oh<+ViJr%H-1GNYy|MVHo&g^>12$%+dfpVe2e z4&H?9Mq8s_>8Tm=VL*lW$J0KpD2U3}hv0&qf1m{1e1+fLJAq3!j94XAPaW)Sks2t3iU&&qUmf1XXRUF~&hB`tFedHk|*s_-47%%(2vDuvu>jp{R@_(6FuP5Ie*`C4Wc1g_^%er+``LX86oi==iEUaJv_39%F(Bri z`z-64BthCvLsRS#Q0Z@y%oSl5uyePJnSh zDJ{%na>thglV4#*L-6Np>hUu-cRw*RCQ+xyJgGk}+N@8%nD{LAg5cTiaLJ2IlJ&Zf zMn}+`6=|t>B#KBg!x)j4r_3}t##p*V5&JGH%5Y9y#zZl7N*ekQ-B-m2u?&o6$H;HM zsF|q9^+AU5Yj$;pFXcr;?gs7)5K_N@6BK)AFm$c-bK_T{!ghjJ0i%%{ZCYb1BK7y* z30|E%1SVeSIXG!#)1NPG$6?@w6t0xXL0iVTt#a8Bl&NzA25&N7LUs`hxNO4p#8G@! z)hv4~@4TIL$8+@Pu(!ydHT_FoJdz0daSweB>r4WM+sxl- zIj$;Q^Uv!86K2bE!h&^HA(>bCum<>!Z>1B%hbIP?I-cqbdKlFp6k@ZSWVwo8n31Mb zy@gMgvYF1LHIElSqewi%gxwv9x;69iF%jHRnc;~50sk(>sZWZL#^Xem31KW~SbV&; zx~jY+JFXQNjOVZ(AwI(3I^WjWB&_j%A!C5rGsn0lqX)F#6G zfVZtl3~w)BF>woMLJu^`&q?RNF>aGD=@QDvFk+y7P4;Fe)tQGTNr#YV+8={@c9H#I zPkKnvc{VIqz7~?a#C~_o((K8`SLWg+xt_16UT>z39zpd7zN&`gW&VbSX0BLbMmwtK zpd2v_m*|P!GoyXaObNSl%@53?vr4xUlpg`=|29n=1ZcE#o*H~F@++0sehNvJV62hb z%&L6nPLUxg{!S2WMo8b#Pyi2tB9iMu5XIAWf?@>ao-!Mm99{CGZBN3U@VX_aVmxUu8`-W0NuVH` zXWuwU1NoqbX6=?p32BvfHa?q~XY5uFvt?~7t%MqVT z2E4YzCeNzT4~A-)j*<=#C&KiWdj>e(WXgmTt=u<->f?|xtqvU?ODzXoT;%o6)Yjuw zBX6vE%zgD-!Z$gtM7pa&CSsU|uyWCJ3fahOm02GsfL(n(6P2h&#n zC98Gh&XCDB^kNyeO9{U96*^=1uHd+IHQ~=DrZ1?u+RxdElcgn? z>wC;zyZqH2x_{!F@_ z?}_4ikaBFR9WV~BExkRqW(@?@0uMw8&G8V9SQIM54fQ1+D#bt=zxNy#EJZ!9nln#= z>{`<#>r$fH)i_G67AP%KSHY0+cdYo?3dZ?(A0QVtARbC;yM1r%Pg8JY8yf!_vTH0a zo&hbdfH5DAQ@6w#1qLd5EXd00$Iyn5db3~D7yURhmaJ!&DanN0;B)Uy`WncjrN@<3 zEJvTFTQcWQZufjU#c+eaD}Ge|9?)mwRV!Eu15V*fv2)|#mig0$OyqlN0=il+YFQLQ zR^=@G79z3al;NbgHfIV-7%H7ebq!TsfQons4Pb`8Jq>!2)gxSsj_{ereF5e6#;QPb z;SHQd9--gu=YPd7!E@oPMZP<*cp4c;T;e$DZrxcu^tT>%hzi&8X^HWZil^YD?V0!5 z8v?CcdlR0wquLH3rYLne3h&m;81^_DYYIXE!A%|9N_q&=z73`_<+M?J3T9Dvad0ecH(<6VrK z{@%adDR9J9=iyo`{32mj+b#HMJ`z|PyDe}2gMtvGljh1TNw|UurEXQ9YoWwjUT=bp z^;;8H1MKt4?0a|Y&{{A*zu(VTv&Vy+h`4Zd#JQQH~{Om zM9LT#j*E^;PDqffM+u0%(D@;#G4WRP7MFwF3#?DsMs%s?%S&9jlQ>^NkxO(0CwT-G z@^GH1;WLnKf^xdzUXEOvZ7?dY@MVY9szX%XY0(gh6efjz!dYCs z0kh>hptH#TTl=@JAz!&HI>O*Z*mb8t_J`8e@WpZgtd~FsBA<+(zTb8vUA2PA96&pd zK^?($u52hBfx`}3CTIxFp(D(@7ywzX-TBwat-cP2t5lb0XTFreDR|n6VhFn)^XFM_ zjW?r6-c-o+0`J(kF>s=;)Dk_?z+dbV>~h~g|A+90>_|qz-jB_Z%UbVX5nXCwpp_bR z!*a+im9X2{ti#oxuD<$hU0g88b>%Es6UsJr&2TU-%oUVt6ydkP{m$-lLzbfllNoRk z6KRN4=5d~qELUwG!jRwg<$eaey)eqmd{_KAA8X^^i?i8_9Ils3*soUd0XM`;KKFd zRb3mGvyTtG+XaR054xmRui2ap)FzukG(g*NZg$$gX*KA3=>)m6$uP3vCn)Nf`QJK7=)0jJ!kA6>cV$!gKiu&hI02@RQ`>m_0F-n3jXS%z%J4vTeT-NhD*vdv#4(W*RD1```ZGI6 z^nJ(z$>`Js)my%4c$dFJabmr0+BM=Y(VfwFS0%D2-2C*@nRC5OG4d#SzF^KPPv3)u zM7Q*$Q44+-fU_K7J~4BHJ2GymEj8owxwXVx4NgUi;A1BCPz6|28J|z+*Z|$E+}61e zk|zhImaIWZ%Cklusp!NYp&bP0@NBKO>XZT@6!cX3H0n4u}{tzcmA=aM%&E z_YKr`KBl=i4z)b_Eevk|m+{GAA(qy)GX=L#xtGGsDAh2#(va~|EdrZz^+w=<{m0)` zFV#%6PUd>QqYt=e&+PA3m5sIx#b3#o?hpTb9OAf`-r2R_#Bwd9J5NXpMfhAnOO@KEHD2}qV>7^y>* za~CK<)bolL_eF@M)l#>%W#cyc#|$fb!S~_1-QE{gOnEWk%Qn`oN|6_P?mEnKHl!Bl z=+P~UR@bmP#vxa$_lI396BSkt+<9fM}_nJbEsF(`k4BGmkw z9mDW8!MgM}#^zToJ1#b4u)c0iM0>u$u1uGA#kd~=J%2I(_5@r>TR~2)_R@RDl^!+} zPB&3j2AB|7rA!(QHAn>l^UOM zB^_Y+;vSCgQq@@N%B&1fgPRAJ|Kdmpq!BP2R1sXQG5X)x(G_qr`>SZ zq(TJauG*rfFCzQ3J^pi$NG+^ZQ%OPb4BU@imY888_QLrg6j`XAtJckM_1 z(C`ow5luE7y%JGT0EIRwD#xm@xGI(#gCDEBScTwai)}TYM}KJq{Xv2Ha$Xkw;~GBw zFr|1thS$G+Y)ex+QJ*c;p)B7i0?>-Rq~EpmKAR{~7ch3sW{N&%A9<##o<`7jO`W(C zq-MvDOU*aSoYG{(rMgpnPBn~DB)K<|kD8~Ermpy~9YGx#OJRKdX1!L}HrSGWOyVtQ zddC^4T|U)OMvi|q)#9zve%?x1P8yEnRlwDr{4)Cr>lfvsPrv3sBu-^ATSX0dU0dh0 zms8bC%LUaC5wRqXh7Vbi7UWZb0NN>-km*iqey)A9)K8J{8soQ6A#)p>+k z+wy=(-PFXx~T*#OigmEkm{y(nkw0;V5H__^3WJ4OrGx9KnJT4 z)~I!6C4ocJ)yKB-$h2IRQKXdY`XNB)DYeGn{e`;+PS1x~i#AR~39u-Y4|8E;Vo_}; zIQHVIF}a{v_JmKxIkc25^iYO%;T^xLq^O0V7st-=5b=_ zxZl&4VZy6syr|WvELEfAbfNSQ6Lcc1^~4#nsvU8YN%ToQzjB=^j8Dl=jKyjjkjX5S znvKGt8o=GUZAVk2*b*>%Cxvl1{yrW`eghHqS01QVzoDHK&k%`Hi=n}u9NVX45$?P-igq5$B6S? zs7B~VWi7vw!r`ST^bPykX+>Qy zClG^?=QEbLA%U3;I29lz?p!t7U^{wTnQQA=qe0@Dl6!&yUSqXdaB1N}4Z>u6_eu1e zo1m+6%R;s{oxa}j+EJqLM{2!Mc|cM3iy)??MiY=S0TPs`)c9zcyCx!Q*(``_aYWd5 zXYlj&!uoBVkCmD#4|tQ(;3Roql-U)^$FM|!5WoH*$t8DOdqHIDkTZYo#ChcyOihrW z+w#?ISGy>Z9XeKz_PP)wl??Okc)-YnbGpRJ)`^}JB#nN$IOytIcjY74{KiI0qpQAYl;2x^%r2rSAzJ?6OfmjdZdt;}Y)6~U z<)Lx%=Sg{GWAAh#8QKCfG+xOgJBKAe^*?l7oDM+YqD?gbo3GZ z!o(#D;fr(xE%>Y+Z5oM6@Y^jgU_N71&DPt9%}KzhJa16(t_9({ zBUxu#{=@UYhyKaAZJw zS07*^`*)cC!oSHjCI&p1d}u=algNS;_om<8L3XEPv|R)=M?~0c9OjK0zP^4FyDH)0 zF8p+V=iW{MR&mk)HAUX_H3yyjqk;KeARYBjJER!A&9KSL-#BocmTbO!yy#1~4l$Z& z5PU}aC?GD&;A~VPL005k?A*SY&=@ggawj3Hv}|Bd|AaN%Qqu&QS@>HE zZ-8u>2|{!C@X^tZc#^)v7HU1^1fo{WC*ssGOquJ4N)+I=ua5&lyX4>)VqZAzCegGE z@YdGr$75?P!s`d?()DQwn1Lg+{v?lWx9=H0jt>7&EighSJ%K;4q~!k;HXcnTj}q2p z@=cFeF3dc0|05rO$3Q=rsZ@UKFHMyKO?@yqa%5WVz{T+eS+)J9gClLh-?QPmsCo|> zog>Z$`1Eu}Izmy=s;+4i$$aU-f~M;?;t;!!(~8^J?vumahsE!gJ{#p)F&7qB99m=U zFgpW<$xs%0Zj=OZV1^0cS~?Gvi<>=hhIwEe)d}-7gx-zfnzz1d|JX}umbAP)ZHdD8 zEzLusmiyn@cI~uT)PBEaOSYt86$AVevkXk^Ivqi%MB$6&j*RJmGb4^u&9@ z^OYWZM|+*jQ^lH!!A#wWS)KBt(=52KkN3}&uB}aHuB3!aRz>Zv9Oj4}UC!Bm&WxLq z!i}1_W#>;?ujn>i@bCv4Yb=A^v#qrmm~f!h7TJhCj`e0qxeaL~T#oe>ojN zL-d^c>bS;yg^=m+-PD`QXq{@!#>Ed!w%b`1n&adZDKB}p8B(a!kRZeBQ`hTF=Sv3+ zxJa{ngk-uhLMX$kt|($qxs3q8QTqUdcJxXsWd^7-x$;kyhf??o#cTR_n05>404Wt$D`_g`tT6PNCELkq*0O@aQ;gr(=+BZ%Y7varDBc zb3s6*-X>*|zoEWmue;2PeM7F~rwLHvm7c}PG<4xMmXBI1%sesSUnS&p?4C4+2J&Vn7_k>doIGxdokC>cN zT7oPdHp{wWv$D*PI5Kfu0}Pvj`r<^O5v3MRVM{+ltp`@AC`csDusnO_U}+}V4n)&3 zhB5Qe<>p6z$50o?;UzOuWkXW}knZ=cLl{TFTrk@i$&4fPD?aYx!*tMGM~O^1WvH*e z0Kn@GiJJXoMHF@CvZO;UQX`OQd+D?&LhN}~(2t${4-bu?BI)VvbFl_KJppmtdFLlq zZTOYa+^1RyKZcx;DrthbsM>AeO7kKE<+WV20QV_!&~JY0Ok2X?IDT0~J{3}Rg1D{e z3>^#rs|+aV7*sFxgn7mRfJLB$%yMO$C6elvHae-M9-%~*x}AD25YKftz;V$v-FYZh zDlcVR=?wRhJ1VX?NkE*BkqxIb5(M$q=nXz8WujW7e*m| zeTuT0P#Hm4y)z0V2+isy(IetG*7m|ROFCE$wOz{aZ%qW}AJ6{5VI~QNZE37*%)Arn zge8ZT>f?|XC0on@lKPaT8uo4vB!_Ul#H(RjV5M|@pghZ5Bs` z(I%8IL>~K`qq=ny&4Z;WwXg~^&Lbn(J`HSc(kqS|g>m)$7^VYDi17aB;C|eU?))Lh zv5DACqT=^$30tTPWlhC1uyXGK>1CFx<7CpGO)70U>Qo3m;;=b(lP_6+S0yQ>b?ebE zA@I;ElcsiDkdZTa=7Gy{`iCR?N0#KfdDM2S&@}^MiWrNCLx4xZl-igS!OfA#FrD)8 zzwYDXSwvA>UVJfegCIkoHi*w%qLyM2isjWpy&lCI?iFKP?erPI!Y;)w60pa!2Yo~c zXkNye8nyN>%j!#D1<}g2t5AKnz|bhET}3xWoEp<5l0%W-`Km>g2xeUPO$tV}SM^90 zr6sJ)nDPBYakh4p!rwabu=)6DxL-B{?r<5i*g`BI<&naZey^Bu?YGxY01BsCMLo#- z;3ffe!Kby4(a_8)cTDL?&S-lU=!EAV2WhRYKzh5IvYO!8AN2pi!A)Do!8nu=7uTLp z5}@h;EL9TD9%~X=^wYJ(=5x8Y`$xCT*)9p3r-eaobP1%dMNev&E;j&6Ar9#him zF_9TZ2y7pH$I_5=cjrhf`BVHA8?fQmK+4$KVMYNh167_v=VCl>7l~W>JcXc-5B&gU z8^Prsb*IDwn5RvVCR8o>n`FR6duH%^3jTo|kH88nN;1T9xe!$}J#~(KrE3Kv;)?=Y za?#m4%k&{)!$4Su3e>pO)&@3UAZVlS4E&rJIP^C|@i7ZkNT%&kyN;GM8uSJ`hFp0z z?``+uf$Vz@^yWam;%xo1C99c-FW}umYB}YrrJ(7KY$rXnfd<=CdpJzj|70Gh{RCSP zYQITgy7@NAdTPW&7NtN-pzlM2p8noV7uj(;%bq0^pvPuV5A6xN_AB-}zP4l;QAC`n zS0L8M+N;21C8~guI?tWb>$9aHydOCBk%C@$7%6>Jcps#+je3&TswuCof+?g52_I7YvlCkk5qMQ*ogU)g*rLfyf5q(t{h-K>% zC7>`-7vLn*Z@NyhNVAl+;ttwDlgFnAA2)qyL!UcE7Y(uWGRF?BGKQ8oCiIhgCO_UL z5yqRQ>KtiI&LL6mNC|vz>14>?mkTyI>5iMF9{H(d+jVGgjPq^;rQAoUWhQZU>rS=U zu-4E-zxb%aGYyiE`=$5=BAJZ}7u62x1x39@nUIrW{qO$9|u>zH(NKw2;9HK7(21RFisUKs&p z<nEwaGo^mx#FR0+wWS8x4SEB} zLgp?lgp3b0?iL)cm=Tjl%unonnfzEWU*xAY3Ap`g4mi@@%!I01{(ra|K=7K-1T}}A zxSWz+;b1{WfLWG#z84d^ez-kr?`CD;C>(h;@^T>R&$lhlqg@E7l#_ z(h=-udk%~@!w?n6+Rn&nYCwN>Dk-)Cx?rVvEsG8J<}fQe=)Pw8*Zspckn815gF}s$ zH3%^;RI6_kh+!w;Bs3ju3C}weo~!dVjLOg5(f%bdYC%P|IKH`(%h7Tv>GqnL%s8zU zI8x9Wg(UJ?xGbwrm1{yp0Kl@MAtUUhC{Zkj?zlHUc0?m4< z(5$ASXo~^2t2TXW^q|YKLaat|@se+xA>QB(%P#v|Ng|~2v^uzMrmxN=A%0;`?5Lsd z(mxgo=h7Zd&(RzCCY(~@Lt?%PsYG8pB#0am4@)f@P%n`l^;8nNIA17JDL zqyQDY-MLSlo#el#5B43P8rNMD&o4RBj)7`@QgGx0L8QGg*1u}dKjF&CyX?}i)n@lP zpGICCH z`ySf+?gTE|+GBNEoUuIy_7O?m=cO+bzc1f^TKXV97epZYieDPEyiz!9T!V(M25SwG zAKY3I-9&at<>7+EQ!|4mY)x9*+ZPtIg7neLezYNZ$Y)fx!|<1K{2m%NMG~t zyUGZ^o@jwWfT7|sOq#P&Jjkwl_PpdYF2CVnlV$ zAE}F=(A@958zB9&H)vE|RCnLNT4hUk@6)|g;J1S{tS_%fx?!qM6cNQj#O}!N91JzK z6Bm&mIDJGE0XTuUYJ_lhF0=(Y=XmX$#k5W^6-rxB&Nx^or~fec`q7fQT~ilKN%vL)94ta-v1 zuj<_~VoTBcqrW9BSS{dAJq{5?m|!cxux^N7BmBr;U;hWPYeKCRR#;!Zk{X&2QN0%U zZAIyp^^f0rO4#mB6lOPpwM+++&zWHqB34ipn&>xw-2`XIQfGgi$1N&K#o@A4sk}uTMwFS!Dbq!oQe!iUY%$`d6ZT+wxDM1tDXq z_P)g8Z=axVvL<3IqOwq=O>3x+9t}Yx8g_jROju<~_}r)FJ)O{h;3yEEKzPu#@q&AA z2;p%C)|Yn<$|ozu+i_#?JG5Fru>lUnI*GJJG-`{~@M$>x4^yKDC;4O2L1;f8aF6(^ zm9bE!_9Suh@$a>M8#0|QAiHlXq!Yjr_n)qE8vTqt2cF$5E$GA@(CvUvz5=F^J@%AUp3mEmsg? zM+O*YUB{?xwMwpE8caYGcefNU8BQ%hQFpKku{)88&mp_mDP(EZgeW5aNK)E=-I=Nx z<{KZuC`Ma=StLB;{ElQ~5eX{iQmj)mvE%(l?(7PRjTppbKvd{TruC1o%1Yq*32Vn1hk znm${#h`PNl1fmbGRokeC451N@$DgfpFVvx<;r(BIO$7#p=)Hn#@K|DBI6#~331KeM zRQi*jQH}VjBn1*u65**-YRGy3D41dcs7*g%cQZ5L44m}#GMx10uh0I9okaMK-rYqq z;CP5P^pRx8H&zB7!=ebsBYUTO5JeR2e2M&*Hy6x^B9bM=s~B+fp|$U?LHhNlGI%f| z3l!VYuKLA$f$gL+VWlY6QIo!W^ z3@65@i<|3Cj6vqDcxYMH$6LuF92gyJcqU?_mT}&Rx4`%eM}L^t^)01A(ur8_~1i965~^2D3M|B3pKO=K|N3nK~hPNh)Wc(gtW1I z3yT7~C9uAXdIfmIUqRzAdGyL1MY|kLN zq8g7$_}YMdJ=iVMz}ZKnhJ+WK_|=Z={CU*>bSetAY2EUJeEZ`mE@48ADFa8bs^^^4 zX;Dg%qKBrWF=%mwDUK%8e6 z`wXo1kKtzc=&s7r-DMEv_M9sQF_=D;UzuMiJi_Dmn9AoBEQ|8jl0KuL6PN`vx81DEm&iB=}{KNtIti#fmPWQg247*ePmQtPs%u`!#^DUN7+Cr zaZGznDIupQANtk%I54O8@6IIvSQKIWi-vTe`@#2wDb>8`FP{Ae9ZX_dL? z72k9Y(-MJCyVyqTen0K6CG~b|eg5WZ;G?`P)MXQE(!>RXk-_ObyV<{A3&11Zas}_D zOQ76)xUdTII327K9XQm7;OM_!i^L06znt#Pq#QM6nmlI_xZvNBrKkC7D=y*h*H#;I zlMHvZsb?|@z@`_;1mgKH5|KILKObi!!Az0?m*$@jgHv>{zu$|D6a^Rd_j|Xvz~I1N z-;2!2(PqZ|{T>&$rY$r-NB!v^Wh?zA{3#57U<&RVA4r)aO2l6#3*TE~i8c&va^D$` z^3u%~g%E`og5Pf`X-QRX;Q=^wuD;mjT)kd(e$WZrB;%>zI!@>X`E@DoZ;8C@>!Ioc z_rSg#g>cU=js%Q(ANk45>^jZQu5uwQ27ZFA} zGFImVPi@D=1(eOIDI_x<6|L)gj>jQ;4_Cco&0JQoO!N_h zPL7d-IMXiymPN-f1#gp=j*13(aANe?X){M;o|zp=krrK3!8E#8M)6?V@4sxL9EJWm zaqsUVL{g97$L~HRUU}eII!83?1}c1guRaQDaIR1D+4zE>XjD{_9*~@2!MLz)lhMxW+$7T- zV#|@~>X8)iOaL7u`H(Bs8?u2TAM_btA79tJ8l<)!7e`_l%lWydvp2I1S4}0;zvWS{AGe%nwkm!qlK#K8*yuI;UohH#%B&Wop^GS zK&H8Mvw)U*F-e9Ew~b!fwE@G%I64=KLM)crXw@!0iM;7Mwa+*$K|Pa!s8x}~rxakd z;y5O`(8y<#n$~3f1Jw7voT9uJL4B`_t22G!c8A+zimh|MnyyaG5fr1`HR`t!Qw0`R zX2G9dIq}a|-f{naY%vLX!GZ6v7R9e_J$^pu6!|cZa#ti}T3KCQ@@GCpt9^oBkYu-8qsF?4Y z1t{b`FB?3SG!xE7`6@-f;NKbtF+rK6oV(VAP3?p4BrL+#v1pYG2Z{K-v$uH5wk2JI z&smG?xV7xo+dQ#eTGyt0$3Xn&y;MpHO!-{$DEx!Qpr7}IF^y?=-=U%@!U*!)Vs)zY zAN-5R!QQiciSqm2X$thjuBzR#B8{>%mYzp$M#R9YA7P&cKOQJ`)-*Z%e$QWbWYH1z z%8+>R>-KB^eW~7)6uY>5>!)HJOv26=F@+`^%5%|8y8czr%fT|tq*|Dy} z-t7)RWzVy{@=8@qYA?PEgpDHS-!0aR%>D652@>da?7j5vqST@HFM|Y9i=7Nff#oB? z{R){{6nlSI`j-Uf7!%DbSz<((*35oq3B$i{_oU}Q`3l`#Oiw_Ss?-*y1Qxk|8XQWL zNDnXRZIFKSduBoqcB68{vGq~ZPrNXi zIl*qmQM197qR-rP?=EJ{5E3?9oie+7jW3i_GDXFSKLuM9M|=H6S!`MjVzJ&OSm*`; zd0_%6z5Gs=ZfqDv-^6m=O^2!QHrZiY`Rk=n456E&c%E?qcVXe4_x{i#ft;6&awAwM zhh=u8xKrHZ(^HBwg8$SfqM@!8{U_D4mp5Jdt-~9zfx85k_^M^b(&_`f4HNA5VP%8x zf-9>2bJZire%k1-n`p(9u|J&W{YqW+Z4u`5)-xY`AsD;Q_X!tqliQdK|SiX_qe|7OJ~Vd`il#fjKu6}$*-za~w@HUPxb z!%`3azY*#FublZ$VNtB(e+sT#RD%1b*V{h;-Fma9)Br&FOQ*wy3iGHzL0fKxeP8Xu X8I?eCNb-vV;LmkUy{o0_Ht_!sl;1B^ diff --git a/qwt/tests/data/curve_benchmark2.png b/qwt/tests/data/curve_benchmark2.png deleted file mode 100644 index e68310c29a1f657b8fd4a508a10a498bed9b13b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129327 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⪚xbpK1ae)YK` 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 JF6*2UngBn)Zu|fM diff --git a/qwt/tests/data/curvebenchmark1.png b/qwt/tests/data/curvebenchmark1.png new file mode 100644 index 0000000000000000000000000000000000000000..53d69e18a0b29248a43f454fb253e0a583299c54 GIT binary patch literal 40648 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 uopwoPe$3dReO%vL&m?`tcNSbd50aS%3Bd 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 A2LJ#7 literal 0 HcmV?d00001 diff --git a/qwt/tests/data/curvedemo1.png b/qwt/tests/data/curvedemo1.png new file mode 100644 index 0000000000000000000000000000000000000000..560d562f29c9fb14a0750730e6625e2462dbe2be GIT binary patch literal 14140 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 literal 0 HcmV?d00001 diff --git a/qwt/tests/data/curvedemo2.png b/qwt/tests/data/curvedemo2.png new file mode 100644 index 0000000000000000000000000000000000000000..5896a53577c27513c74ea3b77b0f7ffbb1989460 GIT binary patch literal 8019 zcmY*;cUV)+6Ye3z5;_SWD5A7LLJM7xCWIb(l_ue%3y3tONKvYQ^b!O?dT&OMA_NfW zC`F|s7zC6qf{4I9_`ti^mWx~sV-6h06?p$fi(mGN(KO+ zxN#l=wm5&B8v!4b-pZQB=g*&?UeNmtzQQ~;Zh8X%-J8=NMVbKJB>>>q)5P8|zMs85 zE1Evt!18vxBHQ?8_+*=f4)I}QI5A~WGMl;7t4cOvvbA%}5q9TH3Rn4(2B8g1Y^IZ{0NBk)ISRt$I_MS_m^mJ~HMzPocLcXr=B zFsn)^DHr(MGeZj`#wTcjt+#A~ed$XGE=$AzJY zj`;)4(|{s@>jC_VIw2fD>QxNI(&7H*$=&%sn;9ox-TS}g^+keuU_=9DsM)1w9bUxZQD_~ zUl7Tb57KE)#qTBP>%!UJ!Tw1}%-%{p&x{m!B%&YVf-hsWdKe`Xq{}6<0Q+(MfgC8 z=a-Cp3&W|>wS{u}kWf2_Ec%`nRpd#E;RZp0;$*as+%2d^q(Ts2y-Q8iW|p}Q)H*ZW zTqQr%{GE4|s|L#&Fudnj8}6RLyAx1vSk9U&d1Xloahvcu+Lrroof(ZCon2|rt^6~- zZ^r17^`%oB6Hea6YM|>|c?=*%*FKB=Qoa;omYDccB~{yKzd=;-=g|jVo{V(;(DL*s zGaJq32$W3fnrTq3j)5J|L+lBzb2+=^$XG|J{-{QOl9{p+w)=)NOxnavUHs``to+gZJaH2d2$SIT2;Ae^#{9M#E@zx=0eW5u@}S)M#~|rk)16tkq|rEi5MK0*Y{b!lQ`) zLZRB-{*N`0e3k9~)C+z2=BHBSLmSLUF~lhU7mVdEAw!!=^~MjOi$-P7%sHy%cs}Uc zz&+Yx#h5(TX07XpNDb8>#+8wB{UG${4o7CcieZFdCEkwQT}^eZx#17h!U^ksQQmU7 zDro0eS@Xz`eiK8RWc%1QHvc-r_a5dzK|J?kz3x&Tzlm-WFHB`9vG7l|XVAE4)FQ&L zyrh)}MTy`RSrmJ4jSVe0;=P{#3yNhD$IMTI4DE3*jsf!dWr^hcMI7}@4HS3KtS^W*3zv+=9 zz%2EHAjO%96v~zOkDSKQSsCr~E?Mu+ib%;}Da>V?6@4z>OK%e|SH-si0`Q6E1(jrgG6}{+4Q? z%M6@F2t&)>l*%uhz&$(J;W4$?8`ZS@j5O ziI1^~6y%r^f8p{(m?y%(<$=G8)TIwMA)0wpJIVGn7}2bM2vuEOrnejOmKQni#p+q} zxd-m(4Hp+#susAuo7WHwwzcC?6^x|gagQisKzQprH2os$ON^F%{o5bbCG3ImF=lmj zweqoX8$WrF_NgYK2%}Cr>btpNDSu(+xz_<@3TDl&vwu6Usg@}}ma`=yKj~I8lkjhk z>68In8&uV+zxu$F{dIx~bG9)QdDVVt+@mO`h3hf?+Xzguab>#3l8U2Eiy>1(_hQ^! z&(>>U1-b6|SBB5zlQ3(_aqMSJskFHdUpFA5fZKA}Lww?+(xFPBXhkwjTEIEbQp)zQcIg{19qUhj3Ni7k6^oc8^*=rfIe@kT< z6GgTks9H?fq0}?8g}=CNC~+oP&=k{h3ma z$fM`p6GA+Ev8nH7)_v2m-L5l=eKl2Hzf{$LuUq>~&2sYX18!QzO}@HHT|tt-GVBA*cj8&&F89H?82{rqQ%j?>K;2d7Nb2^S+c;s2TeAjsE6Jw3WGTq zJxyn7a8+a?Fl00>jwyS=J5w(AJ#3jHy$Q8M=iI3nHYKQCs3ue`j!DSC9Qa=Bwaj_< zsLsQ`@PGoWId@8jO^fRGH*J30j=kC6l_GAh#(0&K#A=uzgbml0cJUYj%pd$}%n1{rCg;?rg% zYkB7C7Ar#OJ+Gw-JdR3`bLx^?tCz zr8#2R=ll^BL6gkz=N}q2{vdJ>cU-sQYS<508YZ`EUFPdEMl)SCLuBrX(H3|CC=PNv?3Q|YIxQY^)br2Ts z5C@BcEAuEp+owURUBWucKUR)jIm9=y@Lx7pGqD7JjIPsf!_}iO0 z|7y{f5lgW)r9`B@KkePmu8^*zsItVHFle8;0AlwnXV@zLg~_XkCvj9s1VJ%&&=Dzt zoF=SO#ae#s4e{8&qPqE{H?^@)4Q+siQ+(2{rIQC+hhtJhMChO?t!ZQl!Xp0mNR`2J z$U=3AGFlMj{FB3r!STnbgZ8Shu$U1!-W(TArwU*V8{&_`X>6S3KE9om-HSt}GGr#k z{k0%s^5;LWTz~yYOHP;Fe_r&(3>MBO^c@#jZ|V&Xy+gb|p!)8{9C}oW7Kw<+SGQaW znLFYgTKXAuJl;^!kXC%KXZG{RgxunksM<^-N{fwE`?NL4TAHAnS+CCX@%YQ}40(lU zp6r|0=*#Xo7IpRtPQ?2{{!0Y-7%*Ghb(bf>oI%$aIf7L% z{`G)1o62bG4J^0>wBgYfCKZKYsE*9u+Dl2pW`-aXtVO~+Iv<4&e&QB0qP{yjxl_%U zhH9r4{GFz9DIZaL#=2JG&hHb!APX=p?#Ps#nBuc$`(Q8(ZxoxXcg(OU1?C2x*X0`s z0mykussry`7nd9ot;EO_9G%B*-!V=e4?_*5vLU=JSAtf38p zR=Q;s^j3rfFTiDzjkJt2ZGmOSh-Xy4REm&X=_U#N9y9EnznS3Q%*Y(3xp&2#ZAj%W>YSp@Xe}>=kovTA zBX&1_x8`%Z%HS4>pYH4!6WGpOJe%tLQ#yU)!Uz&^CtzEEPgk*-E-=K`)v&%rOr*a@{b`JqvOLg z{Wv@;E)H1>b7lcbRtrJdiRtJ(2@H(jBAye$tM1;#piOH{lSX~Vmuu~^K80^=8)L** zY<`nFP;*tq;#{UAPYfN(AdetM0l3pRLfIXl;yT+SLCP1y5vWdsiUpqP4h|I z!I|A~#0I|zUy9-nsY;cm9~lY3PdSec-TmQ_F(4|4k{n8+GTJ7dLr!`R3b{z!yV4_h zBHZ0N4p22PB&(@yM-z?ZD8pRL9PE)t?GKMx?D!mfM49e9&{clv21UM|vE03o9!`WR z33$OjzF^D@k7<%YX1V7lO?>dS9`xu5_X_8c>%rN=&%O_h=}b;c-(t?WFqxE6n^Z(1 zUa>4_N-MT-;R}73l)?~ON3s`~#5xs$uJGcF=lql4oUlL)OQwAz-t5G=y49akMdyq@ zjThX{K?Jj|?(JweU5irDQMJozVO`_m|2T+MlxshMiXE0X9eLJj( zmKeIbKwyx8{U*@k46%-47Uu9#xYSh|=9+((SqWv0heEtinX|~r<+1V#dYzN!X(!wUl;&zlnhDErxPF5erIAnL z+3gloc_u%SbsQETykz+GJ^L)8eP;4Y~+HHBP74}DM3R+Nwl0Aw=@2^ z<#^fJ0%AK$G;XcGKZw1gUwDx+MJ}1}%%;xg8VwU6)Z8jp=VWv5=)+IDjC9AO#L$bz z7c)(##Hf`lAd6lE)Z~oS7`wFwRYCIiaUAhO-xXNgx^KBOM(6_JnSh|=&|Ox#gatK}Jq|k^YF0~=>y(GlTL6V|!gYPJyDvoM&FFtqqr=_EuTo=U@-ZviQ7y|1hM5KXfw z$&I1VSl;kUnxD6d28$Ur1QB|!?hlimQ9A6ovt-xY9pf9goJ5{;G z>Z$>tv9^yB2Ke(*=COw(f%&|;8oO6ZyE|@*LyUra`1qMT@?Qt_{A{^UzizFPf9{45 z-7x55=#+z=29S3JRO;HG(WgUF`6<_QhMi1S|6 z_c?V%&!$!z;hGSio?@ADG;-)aa}4m1%HP44M^S&ckIK#iZk!kj#~F*V*@lvlu7Rbx zoOA#fIFAc;rOtTKBsS`NU90`s>c}jL0-&br!bJB@Ph0+4>q%&LaHZF8X@R-8G9`eF zv{rTg1eM~9jezyK9j0rXRt!k!3g}kd3$~4b{5WDx8uysibpy`7cq|rN$7^*BPnkZ! z39Mry{)KlhxhM{r=XKlTNjM)v=3;@Pr4X${;hFzrcCTbV2$5$$dk}!&u`|Mg6PtRE z?~Oxgoc&TSaa7k>;%)P z7%G(FwWnXN(L{M_(J_LP!{)%l1H8OT&@_Kdqy#&j;e;ts9Irgd8nE?a%+wcw!vR}f zaC)(UL#}k1|Jj3M&qiK!VGM&sRLF2r0Ct?1?vg)Zk1sMLJKmHLt0E$p#qN4$ITxye zmR>W=m6{z1S>ib1DU|%r2Ew&#IufH?5XAWEVTHDau+Wg*z6PMA1&Z@WDOCM?=+Kvu z!O!jfpNG9~I$ZLTST0B68Ir(r*{#WhD{reD1v9)@a#{lKtGI3fF=zq>2$0rH7lx9OCx`%^3e>cwe(`N~K-T|_*wSIw4c z3{Hip#_hPEtajHwg;D~EvGJtv9h{lxE#VrFK*Xtg&|Y(a0f{;BB(g{Q+GAY*@|RjS zDL(Lc_KxtTB%nljDNM7?5n1PX)?w%VHxFH9$p0XgL?H379M8D za&WJv?Ek{%W)HS(P3l^bdj`+_{+ke)4g4qTk+y21vb04V_1*PYRpQ{6y5D4NL_ zs5rTJ^asN}^J(QowPWQ5N$uY`jIJP4F{WqqDgl6;`yN_Gn;AJHX1$wJ!3zLPeTKI6 zhK{(9wCuxTa7WbOBQ1W@Uz9N^O?vh;HxcJbV$>|`Q5bx>WgWR7`7rXP3;=L(VJ5#y z(Xn=OkHP`q?gJR^ z>rT=|R`2>_|2Chd-hW}Q9R_=*r|poD0RZ|BN%r($M1{VYcs0s;Iz)@z7p)&)O#$pX zOuQV&3F(zqYWSj@=-xL^J@S*dM)%D;4D>GvoGYQ%!1Yb)J6S;VAGNh}&^?Owyza^0 zk(zB%$O{zhxM*VOqQYbm<91rQE&XH3X<1cieq3CLJIyg_`MRcby2WI-QaK@tQVJul z_l|yA8$G!Ajt5{@N$0FD820c(TV?5Daw?aQjHzqG|ML;t7Vrptc-!CMvSZ_=nq`B# zq+sN40Rfa?kQ6Ef&WME=A`}RPLyHH4m}Lb8eP^$O&H?hTv~(kCYr(1rT;-OkCWf5~ zNm=n`%=?Vot4`;)UlOANOCc6H=YxpH=2Wt0yIGY*B&d6cj;(M4fJPijCf*9Ov)%gu z+>wCGLpw790D5ClO@Gw73yWobJK*e*0+N>hs{+@@Msl17fWn^CY*Bnpj3L;EO_aA} zYH7#fU^n|;Kv){bDvxhl$cQ~pPkWRS*mu*=-w{GwJ^a3ac_ng0fGIISk(V-`QTlL+ zQ>0zR5IT0*^WJ0FCnRZ0Da`sNyFPd;`K^gkGsS^{2YySm9%G+1+lT}-!YjzQa;Jdd zeg`HHy(v$7Wg&rce3#5v9wP>eRt%Q3=0VD!OUSHGX<(-NgZ-W_1tBxG6_wp3u zHM?583;+{PP)(hp^5+1OZf3H8)-`$Q*CS~$mbc=~%O=5%glkt4>?H`+jCQsCLTa|2 z#@Bo>fC3mY`+b^P{bpMZ6$AzA-p%O-d-N3m`eG2Hy3RpzV!GerhP56oJwWx=#4CdO z-J-DKU0Q1^VWFnYCVByY$#xIjbVXe9EGo{G!#xn(_isUDJB_TOxk=CYvRo&ZZ^e1PDhRSeH?I&W<%hf<;Fi>wCuaW zF9YL)XOJiQ3+@Aiz3 zQFxA}IBT#3L4gt=6@aJv6bZT$r`JY>TUpe9=bbLVTDV5NNd~_xp!p!=r%TKZoB?!l zB08|IBiZt4%)K1qdY_^Sm?~@GB&fC{-&&{BsROl9B4Mk`d%s`&`MtL%bNiprb5_DN z1-{zufpGsTN4P093ZQ>`XQv|i&rjrHP4abiEXcM$iy_SVZnTdy^PbdxpSyD;LgoWV z)*EP6o8e0t~oM7X~Xo3QoTzEPdib>U?qZ&xN?qU4T0VWGJUKr$zBkGIr+;_gsVnrH& zpE3-l1w!T?xb&^`R63C(45lC7ciruVF2oMpfnv}e^dP8D{$NuRq>`bk^GeLYzgKIv7QBvN p07f|iETEsCTmg?A0HAi|#LiSc6iZg^1aGJTO;ufNwX*HQ{{!EdqJ{tf literal 0 HcmV?d00001 diff --git a/qwt/tests/data/curves1.png b/qwt/tests/data/curves1.png deleted file mode 100644 index ff0fe275ed9a8ba4bdbdec0c47d08dbcacc507ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17760 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 diff --git a/qwt/tests/data/curves2.png b/qwt/tests/data/curves2.png deleted file mode 100644 index 89278efa4a3892499f4185f7b420e3826eda0c59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15297 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 diff --git a/qwt/tests/data/data.png b/qwt/tests/data/data.png index 7c0cfbf54e67ef00cb3060d554067cd71d310aa0..0fc97c45844645e09a00652c3c190482b93c91c3 100644 GIT binary patch literal 13168 zcmYj&1yoc~_dOw?(jXx%O1E?jp&-&ZFys)@-OZ3v3M$=#gX(Z3J8g73eH1?}&hZ~ghs zzCRE%>98k2W0T@LoeApU7br-Z~yLA;aSUhcYO?qkAak7$*MLD;J= z&i!7kkUTR|8&ad$3JnOYDL4D}b;y{z%^Wi*cYEc9OHNMSfLxxJ#b#wK6tZSvXJvI9 z?`R6anG#-lyzuJ*KUQb&h;h&B>#)c*Pg3bK4JhM&?O4>JORZ$fY6XN*mIYyYAc>M( zRwX4uUA?bnrmv!Rp76ATR2yBx4Pjn8{SPJ1nTn&jbI_d65}87%J+jY_#FHFm}{*ssWwqng8^ zW3!gKg%mX?hJ%)-)mDz+y!VhD`RUmf1gp0AeID8$NYqd<$Po7!%6A2vw-e4 ztk2nywl*vBdt#{O-len(#P!6+ATdrDyWye|xa8k%So#o$W*4@%S2X5?)xZp$n{+1g z+Z}u3AIV-Fp;!?8AoysUhRBPiI&tcqsH|_Nr&|vwq{rwi-_T51-$j4{Wlmha3Ug$- zansJJ$EeK-*4EiR*sSh?Ai89BEPMLgj$K~!i7tLQe$OloYbdj=JZNvV^76FaBx96S z^^%Wi2^^3bUJjz$fb9G`yM8#LCte!_?Fn<=ZH-%u@iu>qd6d^8CqpnWDln(B5V_yS z!%!{chux`jgqTXC${#g>gJX&Fpvu0b`$arumjaX3wi<+(b=zfKWYP2j?6qnM8 z{OU9%$Scna4amg7s>)*q$?QGE8iSfoF}o*1T%!mcU^R;~LohYD_Y$Nd=R6Vui~}Xe__*{Iz;Xm$u=fTnoDTS z_TP9V?7W(1H|UcKaM{GfM6THi+*@5S#nAt)xc2jSSgi*OFF67%!)2x0@P`;)`AROntf z#95ZK10i9l6LcZB-yuhW@e=Z*<}Fur+)Ib>_rT~ojOnn3n^GJ%Wj3oUKYDDNiV*7s zWc&4}Lp3P=Cg5$=M39`Z*_~f^Niua0do9|V_(!}5{nuKm=zxhqJvrl!1G`tP3hh)2 zBV;xos_q^LB_nlWR+%hSFt-b%&14$DN4DTXF5@)B2Uv|*63 z$a64vm#Ue7$Rin1{2~>a9e!eo7o2DDo!@jJ+9}_?drc4|+7h=?8`AuN{pbUC7lqI| zOQRut{c9eH8doFZy{w}CpFs~$2d3RDV#Hs*9H0$nTjb7ePCEoQDrOJYxb{$FZawOu zV|cqRomLCGj~8~Rl?NjI++HTi#qNm`%?bpYUC*N4V#^IW2Zw-k*3GAcH_Z(uXc)1^ z3>8uxub`(i2~l*^pYxn1sUa{(4GF=vFHc4Z>>lPgE{1)Fcf^k@Dl#jf2ipLml`}V7 zAXSQgH%xi;-@DTjIwo`1%bLzTKUbNGuCB`$VxH(DCid!D&YACYlQ6xB zy9{{?IXPp@iA1ejrGm|94TNz|mq^>kh!7grnnIWn^9zRBNh0aamMXbZ3IFS*k31WX zir{Hgl~G6ftu%6tsGM5j35BZ(@7w3dynRNIi=Yu9dz5UNQyni5^{6AMmywpdHKDm2 z_qw*dTW9e%^oFVNMTjLz-|eaWflkk=G+0lI*t8m|4Ta<0$EhH`j6-kM1oAc<8wyZ4&#*d+c+YNYPWoQvCXP@L83)Wlb)XApy3jfA(vEtNl*1l4r5EwcXQ)qzUQO6 z17R&8(rKudHPle%Ou6v{Ybm#V6|R817bW>l6)`WH?`qW`En}dw6r;zMYbP|1#EnS} z5LgFF1G5`xNC-H;7r7R;_%o`CFx%(aJS3nk=SkADxVOi#Y|Az2qD&LR{#288#=m?} z>KNSt66r)PDbdGH9Wid+{*1O&VzUf+Ev3)#+A^%Aj|NuaXH%tf-}!8tN4i@1&4EaK zhUz+0tCP`UtIuN>Hz;#(FHhZGY%Yw@>Zkb{La#s6bwFI=)>VOJ#|@h|>V zZO2QlBW0jLSu8k1u&r)}4%4#)bCJJiQtMSzROCa4RBy_`Zt6oGDte1!yHke#Tv)%= zlV(3yW*7hCigX&zXRme4iggsuJi9GiQQsjvTE$~Da5z@bWRqM`2pyI2 z@f~N))SN+Z-I>zcDX*?E%b7tJvmH0!-$vv*qJ;!9()K>d`2ylkc4beqNS2i~Hn#WK z@QqjtTmKY|cs~iqc-$FgDtDR%v|KWc2g+>~<>o}aic=J|PiY!9Yu~7Apq-~h$WK)C zJ>%u3lJoW}ady&FDsv%bE*d_Y*QS#>$WLV^`lKEwf0;=0)#o&Q{D(_9uaDMgz|r7I z#VHoqsqe1cGZFoFlV;q*J+^xvm1BS+$RpYjnibr zC90Y z!uC&UCgWm`CI+%HRa3pe6->B75}A$(&xoZXAE{C@qfCqMgXxgjPAXjALEzP(utRO{G@JM)vuIp+Mj0>l(Q`$% zD*O9-^HP0^Yu)C+v|vs5lCgT=Jg7RJBt1-L|7WPv_MjJ-O8bm%OZD!w6^;QqzjSW5 z45*SvyjtP6xokFeKFRJ`rczxZkHNN*H;av)=6y%JVc4DQ`M9GebR{j!JJbZvs3 zm2WhBRywHLFfu&jB1tQPDIsF-4Mo+(Q~c#3EDf_xxi&{ZvdR7Z&9Q)_oo-Jm4w|CU z1K`05`^zexyJ0LfR%T|oiZ8WGB1zS3T$1hPkPnTgS01HL!8~W@-G`O*K(FT-F#I5{LbT?JN2_80vx6Rw zEK`EQh0!LV`;WF6W}5Z=p!TEFYMhD^011PPp?|qY2ZZ|K+iKJ5$#ufsXW=6?@bvNU ztymrP12?(QlGk%VS(GXw9GlrA)>2;Wn}>muuhbQLK7!fk+LT2P2sl2KrOydzHsr$l z0UQ%+Yb=FFx%|F#Y^Cp%5c0_GzWY)K%y(qDEM6I3b%!faPUwn_O4AT~yr!u>zO)ng z$>!FR4lxRl0@&)`vUXFEPsx`;2rGLbNx(MOFAuocN3pducqEN5p8&oUx~b8LabEU@ zrH^?fN2D;j7rkjeERMnwC=?IR&@-hV_c1bX$o%9UKg9hk#0*87a8W+dJm_u5G%yAB zbP1xKd=e;I{V4(t7s)w!OhNp;Zstul{3Uk`hE#{8!i#z~mLDz-#7c3hv8Z-sTva{E zE2>UECmO)Glq)M(ZF#ptu8QQ|egRZ`dVXwNzbN$P*)Q@DgpMT(e*!pNQ8YeHlPJ*^O11xBZd|!6mXShAg0S+GpPKNlLpY;M06|K${Z2-KY+K+5B1=qNH&S zY*yq1?@vZPV7~aO3tRoT5W5Czz4}z78!}z*)$8eoi#41Z-B1uXMA2n}l`&`J#JTh; zh14#XWuMx9pe{TWJjqQ(U_~%+O;r&YjW;sqn&{3HQAw}|xAr;fd{J?_ai#W*j{V?! z8ies{RaS{@@q0d!(6uj;;0EwyUQC5-Oab;7(eMe6j8ALr1UaNKS5EjBa6BH zO{Jv+lZ-|rey6mXhxfaf#=l(zMkC{f0*&;f>KEMV<8LU4^C;F=2<8`DSl``hW=9%} z8vWP@n}~jGlkW)JclvVOxIzP_@+OOVIU94a^|7q=?<)}t%M)8fR`SKOEFTC_zg6mq z#)WudaFqm^Q%0+tyUepDJZWX#Bu(eZdST*z#VL)$h~u?@*QC+QQTxv4)(q#S*J!n$ zt7;^PLxi>pq>dhEpW3BXz9?cg=g?{aY4$p89Bv_L=r#xNuu(Ntxh$hos_%r)&?aYz z9Tj-eXwyuDnE;;mCKfKlT=z69fTun8+f=|%e<>3ftW*)sErrbO2M2_XCsxig33@lx0+ zVBg#}r#>=P)$;Ss(-uZr%!mmZ^G?f}4cS_wC_`b!O~sGld!pL-d4R%~hE?4@D2_%f4p+0y#PR}o@NaU1%DsZj^T7jO*t(jPY-0Bsuqdo|*Yg=Qezkva(sUemZOVyi8RaDH5Mj{JX#w zO|e&Z4UK^VKgC-3qdDfg_hfTL`p{iI&qKcKFzHp1{@HN){#UcK(*X$!D>|q4Wav#? zGbjGRs?`z&Rm#+x562jhk2h2O=YHZj^1OaOSXl#EnCgvZj~Ex1HdlTVrl}~7lM+~p_$zm|ChS(5Z17!Q&+O-489G~ye)p2*;Vd-S z>pUDGt!%fMAc;PkZ}r~VE?V;gb$X`p)ijcZnjYu%r^!zqHr})-?sVSxf~y@45HaVU z4ISjFS<%W?y5>XzNkD~Rrz_?M@d+QV>92oEHD%qp!W+YSU;Vz>Y3Hq(bbb}Rb>RD* zK(z;IZIlJa*#;4Z(r)KFpF9P&ESuC$Rj#xw{6Pywtn8oO3(b+fp8L(QWF`2~m{-3- zAPLVA`sL>7I}K<;Oj3ofj5-ANautASrRpg&6^8v9lg=J&q% zUafAzSkjoagYApAtS@T(U$70X#l^K2-G*oMCtzniieI7_pGrSOOd$s5KbYIn&ZL)n z+_RFcT)Tj9GfDq5vOJK3$%$4ZglxJ#$j!nmEgemArTGVXI5NQ%o)m{ zrviVqeJu(8!Tc7B@~^8KHf|rK!>&_7#Fou`F2>!gdJx;TJRc?%6g!N4r!4^Y)$elV zp&!y9n;F!kYBS z#=!vk%X%vlSdpPd5R=TUoCI@{L|*O+h6#T7L`9L&hw^5yL+*xn=!kB>Zmy91yyq8k z`q#nlalyGO6{6myfQ0pb^h`22P4qd=^rsFEA}lZ+D%06l4qA=S4Epgtc^AHbuBXJGIsIpM-vN{3Vclz&GXVPoK1{ne?M)5BGh)E_f-3 za6d^%2t1a)j~mxkB8u1$Yfr>-#u5|~mXR0`n7d%8CeC94e@=4w6Cz`W&fVx@N^9P& zzSmLeLsnRFelDD|G*J*mQHyU~)zje8jOFcxkITg0NEqTO?{rAC8DM=yC--*Zl(wqY z($ntq*=?VgS}k2lfOf9GN%hsD^g~3C=Fz)VH6|IY$dc$=0+FvKmJ*nKw(+{2^uv^q zEZX)Iv0k=OvTVERa&D!!iR%H3uj#iwFBvW!sY}xw(1MAeKZEj%T=v39^0Qt{5gIOX zZBZlmNpl}-I#f!Zvz6NDrh3WbPpKK5>h(u4S(2sQYUMsnOM`f#-|ot6aJDDrh(g&Xy5VN$U1oMS39CXJv5IQA@XY9JcN?VFf8xHUa(AF~{#K9A@ zoL@n@RlcXoTbLXJos(wvK=XbHB#p&Cw*wgh)F{X~WID;CH~7OiS?ym_Y_OoF>Zrfl z(!iT^X@4Q;M!;ZCIzqUS9%k@0mc$Da-Z0*oxqgfq%|EsTagP$w4AylNVWvRATx!3a z;PKqBu&bWrpG7Y70e?e4E@$8wxYnVhY~5br?D(g|JOh<+K@P0@vs{{abaisMO>aLy zUpC{j3`kg^wpR`>6VlTk6ZLHTA!El!Qe?Fze5Z)5Tk4TFRaMrii1Pm~NM;T-uCZZp zogk~i{z25cI3RC|gX_^gOB?I8x#5udfjX8vh_BTZAIVOXyXgZsoQ@z-583fTUy& zvtCS!%0i{r;E}P_4QHcWuJvvR>PkIEF&utL+HTj!WB#e6Z(Ga3AEF=Nk!-%_+y3mH z748T&UB!YR_G>H&F49*{h_o7HMybz%AdgoOUi5*1)9Txy{TDN-?{koPciPlt`FxN__;X!F7woBm2>1L z1seq1e=>|;MoUjeG~acEXMCc9M(P&RqfxW$NIQ-fH(X2A!5V=Ze;(!Mt{l|WE*Fn3 zeOfA=PjhEdnf*LpLe#Bt`Fg$@y_&yv<|);C_!K3|c_e7f?BHEZ1CP-j$S{A<^zOQEaW zE+-YGzufITzUl)l>CH(s3@?tc#D8Km$|bpexj4Ti@r%@M@_>qTM>pzY8i_`*K?A9b z`SN6dkvp@}k!Rt&fjiV@@|*VjbZYvz*2(hP*x4+b?8fEs7|qEE;;Cn6?%&|A(ymP= zs`Ry6s@AdC09nuTTSqM@JoIE`_Epe+m6Z7-;i$j46NhOKcrv9~Am5eS#2)$!8w1Da z0WRr)%2@ym8a`^^K@4A;%_LEoEs;q=1k8Oz413AVWTrRlJRP-r%T=KVn>{(mS?d;f zDgK1C`%)NQu&L&D`d7?qsJk`ssUuyiU-)e;@Nkn|sMJcR26fuc0MRlqZg(<2hdhcN=z=SKv;msj$yXP_3$amB(q{dRh4-lC>2cPY#g zoqmA7g`Ntto$CChdp`NnNAq!q+;-g$yGOGh&X>||nWS!3csTNCLQFrmFS8*xZsOCU zULG#1VFdK=_o97QmGuxIDV2FuWBGEh27pa^GVAvb9tPRv6l*M2IIp2!XH zQ${!%|K{h-p7G{ZqEa8Ld|Y+ttQC~xm{wGIZP(URp4kA;vEkj5oduDUD(v3`J_wSkgOy^cDHOmi7wQBXge4kXf z9Hr03*Tgt*EAt(k@R2SSGO6A^;~2F{VJ-f7(0b)kZYW_d3vj z=%r2BW2*?c8@^{+O7oyNAY1d-8dhCcSQ!pAmxR+#td22aV>qH6EE?BWv4*8Jb8CeT8Rq#CYW;h+*kVY8%dp7Vea( z!FSUoBKC`cACgQAf~s!=(+vsK?)TD}d(%TvkC&j{b5P~sdPDmWyhg%dZL8X%2q|W7 zqr#_DOEka^AJ4jW=VoS8uBTTX;VSn0Ev^t*+hRTKO%G(&`F6eaE$7Q% z^u&58j*h?}sGRw>z4gK_-Ho9Z;GILT&20s#U#%6dibM~PSEMk0&lcs!WP0>ETvn)p zlV22>ZPjfOOkJky&PrGv90l}?r$4UK%$;m<-dZ@PPW4lbXnYVp*K@wzB}im%7GM7u zpFFk)gLO^R3lE`M^jp-rk8cH6SpN3a4P~PLdq77o3hqGKQ3}%Jz#1#a_CmDL30^!( z-IUzcp9Yx)t7?~=`Gfzhx{FNqNExu6j*zs&G;0>mvH_Xze7LiF!(7`ouDJ+~c7m{0 zl_;u%{>oK;;oVu+x?)mX*b$2C1xXP$~XM8u{c}Ydss}f)c&66EB+9Kpwz_YNj^Kp2rh>z5T zZ+Go)i#COaXK+)(1ck}`w4gX1|4b)GFtabqGw^MRU>`Le4^bxCf0$@DomPI>%al_W znE=m)hzr4jqAl%n%hT9d9ku2{e+ZcOjBDmS44>=rXi=^odD#@G=@mc3WTEommGa4o zX2rZ>x08siZX6`0CCl2DcdUVAf~XbLQ=lV47b=+89`iHYfTWXGNu2FmC`IfKFPe){ zz@&c6sa0UksG>-UUID&+-ypSB+G%j%)9DbfVb`&9IAVky(oXJh+!$TV=2qi>8624H zn1geXkAXV|RRP;y9lSqaZzidI7XyEO)0XxtYiV)h?a> zsDMZ7sSwrng7@sW_*R7_@5{qokCD@P=omS$08zWRI=iJiI7ChLXH2#T%)d>SlUB6X!J2T7zD9dYNAwAgZU>r2mqR`VGnUG3)ys&-SoN{1+f$aU5}m7RRHyf2dxnYFj2Z}t<9{Dh^N+iWNyOJgSIq_^7a1+ z>m}h=Yq~a!=BM~Ok5sbR2ibltvc`zId!HbZM=FMg?E++%XP}az>`T8nxE+*8&+9D~ zOj(#l`8c&~9^ZnNCsI#P%5JK?U+phlZ8(?<%>ybY5Nyt{t4Sth3+H+3IEf{(oYakE zh)N4TQLlb}Ey$?fx9wTxYq{`Bf;Jf+$!R4}Low~U>o6WWMPbV320b#GDiDbun zW7rY^7OspUiFCcjuAcebm)YO!GQ9Bf(7f?%`C%^pa<8*z#rnvJ!0|m5q%|bKP4o-> zke+9}no(xeJDZYb^#zX3n9$UCbsJ+PSwR71MFvBL{8u{L&1~&*=I_ni7M`p9?Oang z8E>5Xt~<%SEc@*kSnG-+_mbF_-6Kd33PuM(=+u_DYl=~S4xz1B2yJf2y z7ieu(xcv{^lyv!V#2Xg&p9wwz`e6vPE<}`Z6${x|eC;5Ycwhhv2+ZLZmcvJu)abl* z6<@;r@)1)od|AM#6lr@U36&r6ZgDn6`9Y z)9>AIt{cMQn+Vx;!3t}ss}a+8Gh+28!~$AS;=YC0*g(zTAEkJ!^^fy=Q#19e^*jzX zRi^(k?Vv4k+(N7y;&E#u*KXpcySj1goW+$TNEK!x{ibWBf-MTbLEfx|uBzw^w)7wR zFZ2Fl%0o+$@ugoNkvg{24URx^BQ*>md5Qb^amJRRf8G@nf!yvRx=2Ct_wkTVpVah? z!bKfqtsQlz9MpEXLiD`RKdX`QSA>4>uB2MJ`tpS37~ssX1L@S#>)FzKxS=2TP*HKw zC;29B;Y(?=BOb>|JMFtIDoq_UN(n&>oyKj?_$Tf3*a?zFpml`X=(mL2pe1z~gmdxP ze91(9VvLS`^~}L>7(O#n96a@MNiRavglLmMJ>5;s1qlPS6WAO= zd^(lmb|-U37D6Uf7=L!oXZW&j3ZU3D4(6y{Z3Kazk|6I=FZ`l9zdQV7?B zBJ}zhYoWTz4(9Guh@4y}A+V0A*74_%`AEBxqGB7^)+6TGwkRLZ0^i5BlJ7}vCFOR# z%CD)KxZNc3!mxS|E5@=~jF=#1)NWdD9Rmvt^CpuILqVdWqi;nr1U;W9Z5Grkc#`=l*0v`A5 zFD3yJ!C!qLvi>OD=ff5oK$&5F=zVzZR(ABMMCV;cnjO8{dEnh3>{q^B(tGB3U_t!I3tlci9XBZ_U?LyAOW@^~U+ksupq%50h~-`*HB*I}%7X)K z9hxfuL4%d92sw19Q}>_4N~^m=+E|A_5}!Zezte*^JvB~Mxyq~r{oHH zvf|+*r35!9$lniJJNP{xoW+^R7PA5zWxMf)Ag^%(;3)4-b}B1%Z8~0Ro)YnRRd*$v zEkriy?{S~O5)GrGM%CV6z01fyRS3>2P++m$7{+8_+`=mla?*SVD7Ai*xwZxCKRv7UfA&wCnSkt z5u~U1m6z0~0Qw^`vd z#;am7xAaRA{Vs_cx`xtO@FeW^+HZZQ*Lum$ z>~d#Fc5B`ZdTKNqI)E5$JzYo-nQ2&V-xl5r1z23ben|e`9B~KtSYv?lh_}o#NOCX+ zl{lPal$==5-(`>iAz)#UH^lxY(&w72gJt)hmjOmFa5pkHUMHO^4ATyseuJJ6aL9Bb(V%WzNlmy%* z<_JYvQo`?Sl|{WSDcAWY3?FN(=B%bhtW)G`N+J!h`s53MSEU)QWE`IR7geu*H@dru zw|FbqP@Vu?;$@ROlhrtA9Ls2D3qWaI4KE*Du)4kh?snap(cNWG^~xrTx|DDKfFzh7 z@QBHUV@P>LfI*J~K8BtT;vB^`-KRHrR`86-wL?Myg1%phqYvO$OEks{cF#FaN%vii zYIq5yw}1N@r2*ASSbfrOC3&aIWedtOWBwTmI)hHh_|JYej?P2n)|!Q`u9F2n#RrDs zKSFAXiTdRk_iHdZX#R|`F{7k7!;Mg}$!;vFTZC`;sA{YaeIrhJ+6Tm%i;Iu45hM6N ztqcobg#8}A7auwTIJ;~p!srFr-5u={l0F}0NB5}40Lqwkfslrppsm7(`~DsLC3KVZ zL>k%M*B)duQqnZ^7lf1bx+)HtHEsD`8i4GE31t@bqVZn(Tq*&qrUTbdofV6Vw12rx zXT9I^^ROoC?*VvV--r(FP{uBCcu?B`^P=(j15DxHm1cy6?E{VA|Da;@4rL-_*A;jE z4LY*_A8r3bUP0}e&G+E1C#e+QjgyO^_*#Z$Q-nY@EDX1Ti*Rt<8d z>Dpt~Y4`^0iO-{xw{QSLI~vmfK~s~WRtE4a-ctSwl3 z_;e&xUfAzOB&Uk6QYpI?N-*&2!Krslq|IuL@alXJjDKgp?)3QPx1{ErThWR0BG3NC zDwNW64tfys{o*0PQ1`$#jiF(4RIk@5Di6O|mF$EbS4f8@qt4>J?k@piv=`!no~5en zJ_?6EOjdl?DXYE8nEr?j!ps4g3{>dkRx}m09fQ zkAgL=rNn8aXHFeVpR4i{?EywxE@-ZbFsS38B4K$}@cAh{llV@~UyFRh8C3E}CU{)r z5s-*M$aJj5GbDkQP|Z!vK3dYfy~F*ROHR8TWcc~%)>(CFZZecR2@#$Qcsn1q!6NJCX-NNEPDkkyswS-eg*A~Xt3>CZX zx!FV>lMf16PWO|B{l-#9te<~lVOUtkh)49LO^iNXS6fpw>!c9UsiuW6`*xz3E;Y1c zDzoPpDc-(x5E#R5R%mNz^dCTDC`*4)aNGlZp$Rqdz6d3*B;{E-iqg>b`$8>2Mx#Q3JYnjW^?+7eN|wj?cmo^yQ?hs|%Hb=_}67KhL0VD<3{?P0@s zMvY^Z{g?=?7YJP-!^sqCR?sA>qXi^%;+#hR$OrT^;HRGXk~DJx3k7jf@9r!VihNc; zO^Yp4`cGHK2N=)(TTaF^{Oz2RsbfFyK4jN6;!nrm3D`@}#+K&;DWxlNvz%b6E}T;) zvEB=?V1IipU%^TyYkEnIX`uSK-7&}lI=u>VWF|?xicrIIpVo?ZDuL#jR4l{wpWx!iI-moL;?8~S=DT5dwDU+f`DNSi^^y4dVmk!GP z^ASfh!~YC}C7GxRiAOLGCeI(v=C9ZQ*5Cj5^Y;PwMd*QTw4S1r1iwHAqxt^H14IXI zetu_gVE5pupY>Y>&PKUj+_b}aQS}4*+#!zro7%9F`O)vUP*ihD;$?W!;^)Dx$9hRj&#SY3TW3zO4ZB&Hb^zo9MN~~ZBVbb zqB6nJ(mq;eA$1mCBduY%2afh<)TcD~Gx`7xcoQ*u);|}}clt$U_r*ssVtS{WCo)Mu z{!e2*YZGqFx1(hygfY1uWVPKU-p<;}>Z}6+^?}`7@SL37UZC<(eiz!@0pXq>+Yoz^ z;h8N1p=;^EA~}(xLCt6$L=53Hz1K!5VNL_KwXGG*qehHKBAv&e+KJ_g0c(Q?@mA<5 zBu8Nh$|`OgtYCyxT}VPVvt6Cc=1uo zO|hQrggkc%Csi|c)t(dt=FvAQB%^KxMECBTDt!%a7C}f!E1a>bRm1L10)R}~LZDjt zYCH7BS3VMR-dpU0?tNfc@oy z_m@zp>y2^i!Y_&&RRp`Q!ExE_JISh2AQ}NflK3;<3Ddgfzu&}teJ=a0-?E|4wxtg( zhw8&TE!Nn{4eQT=)jDCMWBW#N2ig9X9K|^f02{{EVM(ii%r0)}l2Z8fm{-Pb3NBDF z7}prm=aw(Gd)4e+wqx>oyi4uwTxmc%=R3m+EavfB0$DZ2KW_#H1%Q8x`wn!3v7(;kOpB$O-9EU zBc&UjbE00~>-t^4`*lCh^M@}SY)8D0_Yt2s7o@H#PjZR+(wQ@7NE8+1G|rqkOLgW9 zf$Rk$;5Tl}u9d(K0!IybnKQ5+S{(4=oRzeS^qDh=@XLoL=YiK3Un%G~o;gF>g#Sm- zW}jnz=8O)dqMY<|H^b%R;mAcEWLEv8DwX5R1(vf~M?3u2obJ?p>k!y*s{hS==V>gtRL4Lr=+$qg`G^ythv|q ziTt>`nik56F*gvM$Q73i$1ZNDP78hO{tV`fuj>^*%&i-J@nK`&p6G`l8q$#oOJP&R4IhX#^V$_jRnS<`Ml9xA|pu-l65yO-*lh; z5!&J-0lToq37YD9M3`x_-pqUW%^;UK#33Aca%{xNa%m5P7PK7~wZuyF*xvwgt#25I z*_XA5Fs#y5);XpI9$=XFMK;$S?SwCh;p7a%kYmqOcG^6DddnUBKuwD~9H*UZ2xr%k z@osJhh6I5{_cRL_6`O<^%gJeZZf8fk%TgJYz9$oNyq?VL{V|LTZe2X-6<$9j-7dNA z$7|oL9M3Sl#AIZHA{%WX6qeLhxd!i?FAvaoO6CMzAbd}?YD$Z<y!2?v(1%%Vi%f<4TUp$&mqHKsJ1VkBfipJX})&V(dqJ3AeBVG-jssH8jp%smavek*S&Q@ zD8qY`>vo=JSZO9|6jgj2ljh?v*%pHYOkrjN-6B~N?QQy16K}hfgSX;nJnX(;$LM9* zdc?VxOnq9U8>4u`OSzyu2FSi2Nj}^|68lf9H_Oh}o{xmN`-CpJ-x759SY&n23mD0- zsILyc4iN&f7{b<3|6)?&p5iX!P5Q$m>|PSRX_LJ++A7460kTFQR&U-@S8`F04D}Ya z-ng*U=G2L|2Ww6GI{c@BD8Hpf?? zxAa2_){k%BLaRt(c{;r8El~=a&g+Az_3yuesrNMDCVvRU8ntT-u@JwfjaV=dm8yA@ zK_&`n>Ln9dOlv<1X1E(lwkv(Jl8qsMD9d7xv$>yW(u_XNo|nqBAb8N;RYKX!aX(qlb>Hs8>voaFxjmls0>dT>fJicUBFX0yiz=^~WH4l{rIihI9De0Kkc32R3KnTQ| zYoz`+u5Sj{qY*1@Ey6^(I%?>_oyLKWS8a{3Swsbnk z*s%&5KU8Jfn_x>09Qa!2HOa-`v|!95H4iO%scics*vFE-A(J?7E9&S_NoJdXqs=;4 zz(~=vY3}MKqQ0uzErKy^kG&u;YN@s6M!e&&OUe1jBbVli?7o_(P?|3<`NhJ95QF0k z@d7tz)=@dfK5=H+vj@H)RG~{!MD;~ds)*?KYc$bOd#{D;-)lh0`rWS^*nV1gtz5V6 zNvd$uw+k7C!@eUV3Oc3_*(c^X8WL`1Iij?m5#NhGkeRFNtP2W#f?S(qz*^0#g%h^k zez8&aQt!v(Aa9)u-TntJrl!ilDa2LWqpOXRf&~t4i#oJ=T}Qn6p&k}Cdj_}0sc-F6 zSD;$8_&AJ`k)p=xFc=UWMIbs4NhuN1q%>mo)O%V^Y!;(;=a;WH5dn=#>=G%})%J_c zo|P%ho{xxuj@82fAb2}FV&_$R?*wVCVNu}2+Yy%m*REc`x3;P-PBNg;o_R=j5)XTQ za(8fm$Tr{mBao}WFQrt)6(;?@hn12=Px=v@IWyVTNMLq(Nb(8LRe(S9(6f~IQU86n z@g48;gagLQO?QQjfxn))E^J(42E2-sG(JS093o{D$bjGG6A*{EY>t0>qs0Tf^1CQ% zJQ?x*-5(8Sp8QkazrQj_8&kYoap|{IypD%LHOUvnhF&xfq|<>ISb&s1bEYa{B(~7Z z;5;o48nJB>6-~zj^w)YU)&jk7-fu%zjpycN@hO;ml_iel?N-enX{@5gy;IW@SO!w6 z$?f^)THZRytzN{%#K*8;z&swG1Epr4;7`!@l$PX?}_URr@He~DdCS#oN8`+M6x8**Q zN-?Og5RJRT4I`$fc>koB^$#SY%ui=mzU|%qNJ2QliL)>Co@U<`q1GEzx1p4VjemZk zba@*(5FpSQW7plZ8+XMkGF0zuLFs6ftLSkoH`p`Eh3>s_aT|j!wtaZ{ezB(Hh#c=w z5#eJ7f=TgSLU}1C83}KmOu57xuSlnLIZ*enZmwN|`PaK>T$`A_qP5?+?x}si1CZ;? z5|Nbcv@EM+3A8NclNtjgg?m@B7FMJZt1Jj2XSxvoLW9vmo$g#A-e;8KlX^02Sz|jwR4w4SHBu_M_16B?C=*L zI6|U2Hd=F$@BL$oA0}E}7SdbB1rj-b-qKN{@;79HO_;uydh7c#W`2tWa_lO<+Rfp1 zo^Ukoy2My5OnZNGiW&2`_qJMzBOs48GLEYC9xZ|HMVtmfWy`bP%roJ*#-Q*r$ROfA(GGB)eNsjgbu|c3x}jSn-to;LLW9Ntn*0)~#Skpda+jZNK_&T>kZTWzvPO zgeC8;IX~}}`ALx!*;inV`e&dh$Vl>^NT&HNv+hx@Iyd!!#uVT6Qi|l15{frAYd2lc63k$r4)M6d z>la<9&#f5%u~F+7UI{rZD=YrTD3vWho4xzJ*oFJ%0}z7QPwRx6Iy9(jpn^AHBqp*^ zcfgZg0Rneq7>928jzR0{U;oEPk$5ou(zJx&TR&Ejy8c~p1PDe|a;z;kHNb*Lg#m1Ertd}_22{0_IZRm=y zc`kK{`3&i}Qa^r#zSI!!aRTmON~_nC|FU7@nVs8`!%WbX+mNxsssfz_jYl>@5uO?7hBFz8z?3 zH|NQ6)<$InT^X^KC0L&o>PRnTe{JDOA#ax*_l?Pi)BD<>cVzCmzvDySTW@;=AL*l$ zgVAV~3%Gba&vNPC({Cpo@nG1qQR1!G;UoX68-!5% ztc6ulmpt}J<`|Qntuk@en`w)F?VEQAqkNlqmW&IDu25~BGn0ZEm_D*mIJzl4`7nP( zX@R3U!@Qp9S4DVCQt#HLPom3ItNIIr2tg#AHq}9xNx+{AKpw9@+#)XH>xSOB*Mw_! z>_eU|S^uZc-bgJ@jY^P?6L#xG?CDFDgf8ed#Qy|77iU-PZ{H<*iki)Ci`bk^FE!4& z$cZ>|@m-0#Pv&mYQOv-Vs^&(2)x`4s>77-`;uh2F&|7e3=|M|r>93@+Y3QFk{PVF@ zqFes{*tlS+?>vi*>omSA;#r3o$HxBvK{k4k&H>9tL3Qsj;y@X?M;GAg5kFR#QeZl|M0 zHRzMO`skXAXr5lP-E2B>?59GOy|fxB3Z+YHEqid!3^lj6;1_2LKAv15B=l8z!-y_5 z%O_^oPs7yB*T$cR8xK5my^=z7&(5bDo+iIa4IqR9FT~7HB(TT%v$LLyESrpoOB@(2 zKNO#Hu%KRvC=Knbpcf%E25oe?X($j(v>NsUoG$u`c~yEujw$#Z!B5pKbsG(u9^crp zy_KpZb}m8+xg4dxS<=VMe$9etQb=L+Ut{Dm$JsvcVE-lu}q2pc5{|Zrl>~Y^%ZAoBj z&R}tiI@8`{-yIhItAacw9Anl?WieKSyJKiYwcv+z?XFGyQ7Pal6N(Kvi7u_c&d>tz z^VY3)hchFI+2=SSKe}4$4N2pL4K+e6y$dtI`(`HTS)ypGC!la4^3~Ev<8H{?-3; zUav$QCKC?NZ_L4;JXg8UZ2Hq|fCBHrE z^!bEyiw0!zCtwCAVr2g^WoxYWwLTf@!Ro?ebm3ej#jRo&$WW`ZsrLq-dR*xhsX%44 zrUn5W&RdzzE7*tR*Laiu4paZC*WYlXQ^W~oxF=RvKyxF%fP*K)-_CopQ#NI^y z+Wmzgxk2S#LnR}TTiuSvPp(2b0-lpP7qygSkj;0~mp@NoKqnA-rMWEYzBbFx1zm9) zuZKYrcG(YDwKjDXkG6m!-eq6&2C*ewB0zs`lXe>j83He9**l$P8LWOrnGlfVAI&SU z1|`D{m5c=~t2{eBekSvd0&8N}j7ryoEy8T{+oyth^JgVf$jV|2JnpWMd+impa z(Y5c^;0dZdvA5iBz@I%Jvc>t1BrZLJ96g2lSBH zW8y27RiIV+u#uUS1Ll{!b#38|CgBO1&e-;#e#N+bR3p8GAy(x}_3A4^@y+Lj%6jz}N)dPtP@ z@sSyR_*ybfr)r5L=H&X5<00)y07A{KuJa3*ypE zqy7kIkxk;_HB!Fe9abiwxO0^dkXGaj%!iVe zq&qdGtH6NmIqG;0=wkf@JY61W_5#pu}Au=gj;^}|D_UZtAqo~^Cc`g(Xu0z<7gN8x{(J0 ztt6d%Gv1F0OL~8);U=Xz3K*w%ubUICr6_Vs4DfpA-{wDY=h`vot~6{E{bIHv#kFy8 zHAkTLBRH5%SK~j`pdJX_5XyR$$?%jk>B9(K5nsFz z%wTo_WCheNtgvxJ%|w45?a5Ki34K=h*5IUWJGV(?(ef*OWcB2N>j3r3ZysFbJ^mr6 z%AD~ifN>$Tdi`aeMy9J!fpc{_1O;*Zg0Vphr3DZqkBge?*m~^eUil+DmTAcKzhnNAFvS z2r*N=?3NY;V?DU+tm;rDcJCKBsu<9eC56a@b=~s_wD3>Cl{Wwzyr%qk-|ty{ar*f_ zkOcUtXIOh%F@n9^g+c^|HF&ipWm4-TyQb(rTAEzcnjD^=dwhy|l-MMP5c9)ADnZhMjhq zt5$htru$&`N~`8}VtvHN^)^9MGc6+_pb3fm^jkYVJOUqpuBrVCIdxddUR~qRai@Ds zrILGTeREfn1-GiKPifsvpr&OM$O0|nXuJLAv+BzID^SP9GkSjsL715Gi8KS^l?v;Y z+@OrsI4%iQuiUTF0rEBtZoI_&@19H;gM2aKo%)$Ie5x~;ju!0*qXPJ&tXfX%#R!si zm3Nmon$&QD(>Q+Z9$hUZ?P%Grf;cl=-M7~&)kz37Ez{J!V8ysS|LKKAOMnIS&JDMR z^6$27p2FnWpI%Q3cZ^-1^OB&6E3GHq8{F45M~_66(c8!gmWaR1IC{U8b*%HhiSA-1 zDJwDfveXwj_ItXT{Fvg(fLVyQxA)kLn{kF|j3>dZW{S3VZrAG?1wZlB>noEcLA1MM zrdaIW;sPHPCzZlt3RwaJz6(GOuO2%l zU+FP7l1P7qaZApN5yCDGSL7c_w8Mu`clyVnCE!`=OM=63PvX2etP0qf^E((#5;qY} zMsp2W20cHr*%1?mPfa+WUIyUs`Q^& zg4=937R-(K47L$TrC|$|83H1AZKEZjD_yidoS?g_Wy-Mc8nI<5uvGb;Q5yvo=gW(_)N-oevV`= z_>F@cml_GlnqDHBEYB=^c_~-eMMZXIAh3i1Yb16$ZZ!|Nk#+X7qlD(a8*$eGVoU!c zdfSh;nfommx^xzEQj~Rnv26xt?tLmY5L7?l^Pml8{W59)>VZS3K=H4|&mU`-Np>7T zzO}m=hSsRMl+Z48Dq`KOPT&{cgo?NgMS?Locymv~w&qk+_wL*&~Jomr+n;|;gm+5?8|6Wv4hS5za~Ah{2iWcfW0m3RtQ>r-~vtq zm!dj^>b;s;VFxb1JV3m6>79?j%oT5OA$cyQ@&dS4!><|O9ztN;e|@vFRA>}gaI`h8 z?4D_G;8CW3MOt*(Y;W+>#=W7eF~XJLm1oWjobv2CTqY`{7e_L}v!k~JwAWO7^$1ZtqO;x$8yB|PLTeNed>HSR;$nB=oL%TgEaOu`mXPFcdZUM!*p7E z@0HSxWWTxb7>e{iowiItHN+TPEXckhRqtT2C2n1*dV9;ZlIo2Ux@|pA8v8U~rJ8a` zJ#T+r#J$7j=pr(%aNS*0$H<>zb@s`C-pJS!TPc^fmpE?rK{pQQ>gq!f(l#ST)x$iu zyRiR4NoH<7(%!xzT<>7vpDOaX_n`Nh;fj^40}Nx?>e&ps=f)o{nQtA-g~DG9{hJn8 zIJA3l_4|x4bd}r8HUh1RV&A!y(ELjHZ3gGS zh+2+Rm!wYeb5Z--y2veE-_NZmHc)atyzzr8q-TMC*`;y89|hMuvj2Hx@vT5d*jOR5 z>|WdNt!Mr1L~)BS`n~N8DMR13*Q|+l)O0ifjTn5AltWaZydQF`9ZJnvEA7-} zT?7?QCnpsrT-F;IC#YBc9At=Z3~XE9iaF|c{1?iS7&aK_8m*C zJd975uam$HPa;2o(mi`sSBS@WQe%94z(bI|QzA~xiZPV_c5+En~P`kPo1wg9I z?>_0#=|11Ks<3WwCmlL5r?337K$(O4pz2hGwUlwqMCy*VkMD5`61lM|FouJU!E%D&q%wC*=A zq}!|@JvLmzKJps<%5|1tMELW^{{f1#8*uI0^Tkl{)<-g*f#8KTBtKk)> zpPF;$(FiMq5NO3~hn(Jj(mxD2OFP&%2k1r@l!V*rxg_7nkHL640tURN3--RU7^OF1 zkKg-YH*9o!r^TIBu4IU8!%obsK2L4>h**IRi76a-u5r3&+Jk(zvj)mbkGfl8A#?k) ze?cJcf;na0m|#R@r^$TKQPfhS71kuvLamaFg^~?l@n)NAEfD-S>^H=$i`PE zxk%(*5I^!3#*$|xe^|T)>yq^Ky$aN#qG^7rslm%0d3S3(cwK@d3(#)IXP$WnudLBDbSWa&G3uJmzIe5 zw9Ra>+o@Wkyickf(aieaBvAHF4Htl`9uq}gu%`2Wm^cy4>J7HTY0+$OR!AAv4{Zxk zYIWWRnjpTq;Nmt)O_`wvIHmjK2}ybgh?=O4t8Jopew<-CCzSPv&W_P36q$SmnTFBD zylB?nV2D@xoYzBdX|HX%VoH=NK6=6eLGwaK#(P}9Q1El0zwh&+;xrllVS>_;&d7wm zzH;KJek80*Grzfr-Qa%96BW3?U?^Eh~N!~xAro7Uq%Y!M&f;eJHwVQ+~q3Pw{0-1FQD z^ZZoYHE(!j_R*t#aKSmfnEm3i`pOEZ;Aujp7{nE52U%!UX?%!J*xvRVp@okguTxiN zfe95!U&F4Kipne~TU064KHk^S-hT2er^ri9ehF0+4CTC$ld{hms|P_dKZ!`r;6nlG zG2ZwC!!p9wMG;>jCa?C5$El4ugV;my#4JHUE!|H_wdx<3I}{W+ijd?y>e+*?&!RUM zDyhEqUDHg$DnFm?dCMAMR_Z8ko@f@os2{df;`#Y2(U`9RtBrHO0Jc*<&Lfl(sV%}W z)|}Jl(X{%~G_IBO@)}sf_bcOa>sD)mi}3Qv4iUaxk`Q0n^QJW1qvbOj;~b}Zo`>9X z7gPcF*gxwh!^vXMb=X5C5vN3Qe8b_OGihH8<3xB}bQVqx$C;oaWt@PF#uc zqZ>H2aT0z(ZI;(N9qVr1TCK<7U0~mXEVj0B^hr$cQD9(0ZP(7m6)y@h8%j{hYKwmT zu;CT-VYKq+E!=a8-bi#AaU#gl-=*;EU+9B|^n5f)m4!?)d1A9>c6wzM;G^Y*Www{) zM&J=)CpPL>ox2+L!{vDR!Neg?$5T-g6WBd3pW{}fnYLtGXNYUL_P*}KKUwe>20qOz zi#A6OH1$K_a`O^#=lc+%IoC_UWP+$~M9aqK2No{mB4aDLw#W<05A$iEc3+iD*c7cq zeaVL3Zn7OPcbyxo6(B3K_*RN&^Wf~`bt7C5QwQRp)aNep01X$kv$xr2^sX4Cwu&s)1Cs+zLwq!8&05@#DLjzO(qb>pJIj?}V}sIG zTtZ16e|v+k|CM~GOhZ##X-}sKj^#>h!QEusAxVw_XA^RYy!yr#fezG1&L-GxALQ_Z z&-tzaN?}YC)&wjK(44OGsCq@mk+p(DS7&sE;4GrOdj7(mffm6S@+ zrtOg8`*z$>u~+qlG+pGfyM^hO#4)qX>(T$4_d6_Q@q!GbAG)|AP19(D>dMAYM!~Ys zTz-#&TWS;dL&M?Yn-{%*Iv$22uZ;8*E#!T@s9Zl7=k$MLMPbsHvto=R>z&Qdg{oVX zSS?$x(C2*rmHt7QC{gynOs02LnxWcCeepe>*GHZt?vPSRen%nQiFM~@^W7GUupYSD z_{=6N9E(8Cde;=S=vEKKq0J3?kRQzQg^~3#tCinM=2k-O0vDZ} zZF6;Zky=xevpfh}jky1*x|X(jrZn5Av3)Dp7J5ah$>L6~J`~RVo$Dtx;%7yYXBi>T z_4=k{Q>5^IXKz4WmKcF)zxS!K3%F^_)=~9U(%A zx@udxMqm3+c^~%DIy*L@rmu}%FTWJzovSj0Im{Ps{jhP!zM0bX1hk@iuZ|@U(-X*uxOh;wP7Cv3&gr)i*!D zJ52TpRY$Tso?kxrM7ve&Q1uw=2UF%q9Khgv&p*i5O;y*i#nZRlzoP9OTxEgspZ>|{ zJcpjSU!bK9Mb+Z3@Z6{6Swb3cV5WgeT!oqVT)dfp_M%@JA#aK?1wlMSln|ihN|$`9 ze@CJxjY?d7LH2&2#g1vV$Ct3Gr&2W8poNHt%(G4i#0IFBDzXHeo=!v_q(15pJ=X9 z;q*oJ29+X8P0vb6IlUztaeeRF12MCsXxH?8deeGUUueiB*Rgg^~}kSs%45uza(v)xx9Pf z{9G_7*qn{q$*a`KOQIJV68ts-C9T`~LQIS4{Kzz0XMu>076t2DDp+4xd!v?e8%laq zxMe<$(JD@`3*NGl<}EkI7k{5$ADxUHl5%}G@j2kt;8t&xieitg$4-=$E6l5}?H<&$?H_FHd?cko!!^!|H)>o^ zR+DiPt#c_1WmlHD;Qe_f&m?i?t#*~p1!XA(M_OL}ZebZi8nEZ=gSUm7cLOpR?uxAj z^j;ouyXCwtdM(6VoFTW|3*y3^&2rr;{#!{r?PaC9B3PF`iuVb?kVu5`vp1B;9C0S# z#;dXO&e<`$Y1J7WnAY?8eNAAOG6Uzg=COb@EVMnmLR2epr_L@3jTmP^)KTkS-aE4T zDDmq`-R%RVY{JL84cM8zL-DM|=+5x8!yUmxnv8Y7r|eFAmuIpV5c%+0Fw`!%yU(D* z5?A(vW9)_PwWp-5;!Cnx_o;!Eb5eoaG)-%8Ro-s2vmfh()HJOx|vQ(v6& zaOVBSU@L{V{#5OX9Ooh*i?rY&gBQR6Ufk{r*T{YgPM5%+KR=-7`N~d#Bk((piJchN zz8_fkNXF~CAU6x+W>6UXU3b;3FA!=|40WVdQ<GZXi0Sab7bUhD^iG~QBgx#! zJ(|c*XORhMH^(#!JSCsbLH&==U(Oz=S;IFMz8Zd zEo4v^mF2bFIq0Mp1uuNbN&t%HsSm=wHY%xmU33IxXV@%7&{S6ES-7(<4LuXuwfXz`T(BKDPF=GYy zexq=4Dc{Wx?<}O$A46O}lsSxjupZPA46@>GxhBE@&g+mbG%Apiu1oRFOR)|zGbm6w z06H=yD$4)fa1eFsO<|*4IOj5ph((g|C za3Q0nmFFI$jP5s=Ua89T)o{Q^>?^?x9qCmXNiv6k5DqJW&tUy>Q(b4M%Ji_ZgIte1 z+6KbAG(tVISH2Jr6&@NymjHv2n**oF`>5ocHS55k7KbH`z2WLqr36FW zluhzHVk)x>hVi}5_*D$Ovb?(c7v-(9+{dTZ7_9h7Ye7M;f-wn^8_2Ie1gU+K{43S* zC-j$yLw?3FO%(*UVWlTr*T#1#nT#SLN0a|Q83v1w?v%C^plH3seqpFPj=)+=F8kp> zSsifi)GBQ=<7C%{UM2Rny^0n{Xu#`Ux9N{HjgjL~9{94bdkNT3THWya$;fnxPVm?e zD{dPyyK)0OQ$^ALrP!7nY50K&BH5=I9c(fozLAf}!<%(+x>*{X%tP+yt!vpK7c zm+qujW?fkcXf6cvT!kX{wziNW3=HlXtmR8v49H~47l(#jwa7IDNJI^y9r99dq$$pp zBHPi1316UA6J?QTaC>+~Yq3GQ6+kIL(tpi|B=7^4>Bx_jPO$7a-p1-yM|V_NCVx`j zAB$`pQM0CH&Dw5d8pr=7c5flN?wPPmgKZVlq}}iG!$fqs*q?X9Wkw)dQ1Jk)J!U}b z@j&T)Y3kxIE&o;x@;C6CA|q>~W|e)?8D>$j>Xx3H%4fgew=P2&*1etth7|Z_p|w7^ z29O6&{tW%2UQ%qUfzs=0qG13Il-U~>6j(CP&M|L{!Vsh&gG)jJFT52 zhui%36oeKjNzdU*dM&E>itOg%3vE;CW1kt3@MS%G6ebo)%C8A+lG^bCEV02(Y=C?z z@N<0v8P%q5B!^Lp@SNY2_X{@%7vNk~Q$Me#NKxGLeppV2LA3nWV@?O)bV##vg1oIt zH*vdonu;67OpF+;yU7h7C@<-*v%G=}xFUJETv2E-jCe@jMaHbmx9Gb?E2-$9!&7`0nP<*}{36)UwAE7dr%wqcRq_{&)R@ zvp}!>Hz39nN3|h^fcDww3Q~$M$f{#Pz5j*)&0CCeWCE*aNriwC+ zc4iM-JA~|Ul%YMNX_QH~3xeXk$Wdug844kC`Po@%pS`2yZgEsoGHr?0Q}X}u{F|_* zh%H!*U#dv|67_@2>8x)Sbs6wf++tW4M?4>6UMfC}il;)%DOGwnIeP8@tLYF2H_V zHwWe^;LyQ{y{8KUEJ~lKNQP6VY6@E+M>S!ke?^MaqiLG~krlN=E{W4`)SNP9LTI)u z>9?b0;&2NKbibU?AJXysb1S%B~Xmzp!+ z6xd(Jn-+xTuIUhBmg7e{OI^G~lC9V=h@~eza6y2!<1}{g(y@h#M#;Sl7=mvhS=?6n zoAj+te%Y}OUbEp^sv+g-%xC6L2q5=F#{z|)v$Z=9)L%@EW6*_N5x?lcC+>ZE3=~lZ zj2vCT8;3!qf?2IrBr)YycI+th8pa8zWNk(K|MVvaYnKJNMvxBvK{%=cmz`7GG2D0`0F7OOQ@fmpE&Xxmq|% zhiw^beF+i#Y(8-ovl2hi`69YrFw8lnK;UuIMsyWgoSyjwME}-p;eu^EpMA$x-q@_j@~BM=dsVrO14iO#*F6fLBCGW7+1eQeJKp}!67VG zOiJ6F>MJRG1^NPepc!rKu&&vIOj^17$lnpmo6+!e3g3SkH+zfXDUlxfN&YtvwvgCn zUS<{YLZ@?!rO6A1-yXK!xYs;EA~B$G6mr-L5zt7X0^DjOkR5-)dBRpxfu;)PMCg4Q zmDtd$v{^^BB6^BTTVE=Pyw^x6*dBl7S+FeF@+fsOg`TQ)J-@e34nrV2uhMsyK)DUL zZNiy+JI*fSs;|(jdVz_N2^-)|)$cQ|3L^@`%VSR~eQ#BY^#tdIB7TrppYI&wuaC`R z@deW^itB+wvSR#mx@VqVpSX@E#hmbZvH7mZP1$&7x#yvz!J?G10t@hu`3y;^C)%%`R~9%782>jlc8>a+=@Ab? zD1!L*zX{%dEuz(GWvP0v(CJ%}zA^4xr4!TJU9qoCrSH7o=I$ae3m<+{fXzD)vm(q5 z6Ks_k$?d7qSi0$fEo*)1kBRGdFB_s#xljBwu`QjYPH4aqRJ~+GM|sp5ao6r1a_f~! zzeeWIn~G8XPq*HBH}vuHx;OV-gy0@uT5}Bu1d$wEdbVcPHAwM?0sEv~V-9$-y)AQ0 zhGqWX-0WEnO%K59aYr>Pw6n(j4iJq^ajC&JJnWf|;;1_PqV9X`6j@Ufj&}?C>KBqN zgv?k>*WYJepY00;h<$+!MK5??r>7&FQ%egNMS$maytO(!R>C$8ZOk};7U#s-VwdJ> zXHUz_QJ>V)mDuko7=&eYE_D~Tnf8r5itL}9>?02&4^LEVA$j-@ZX1>{`xfVNc zwa_V~UBv8P(5VEfP^^6!Xcxg^+Ms#tz-au2@LgS=xrA$*yH6?aO|)U+j_qvg)6XnW zXT$NN@nS`BsocC@oTIUERH^QEm=)U#cc4wQdtlv}cIO6T$l?_Bm!@zQT@{qe}ZSOCEhw&JhEY#J~xR*G?9ty(Y;UIBMl!yo8C+*W4o zZR=(RDx_aG@4LcG1N(qon5fxx!?y{0KXZaClH-I>hCQtj;h4Xu zC6+F0jAluyA!NfWsMD^tB7{-TB=VXB(3W!*7Y$JD86lb1V>FKMyuB}Wlw_iU!dFsZ zUiKSZz`$BSTlXvw+A2BwVmg2sDyeq2irl zN-6T(VAxDx!9wdRApLpDBLk*rzEkUOWG!tvz7sGwy$YTd>8i6_e-jw`F%ZQc@S&6Z z_T%!9M+dry{EhXp5-aI75PHzfr*y4WXN0Q-ys&Yjy4_^i2#iA1 z@OG)G4i*EpM!uOwmE^4fEJdE(a#chn9UTAn@5u+Ync8JrR zK6f3}zIZIj|65p6&o8V(B^_;5NT-bucGLCG>N#eA2KOVQp6boBM!=H0Y9~bai$!`00?_yra?(6pqZ9n)Q z3PL2mOOf1S%ebm!O=hvr_!dvbUm5^1`m@M=XroTdL}GM^Pvrwu;c*=N5~{sA->D5@ za1gt|++Hs*XWM=Zzg1sjqmbG)j80*Rs~;$Pd{EY$@^*+9BwWVQHh=x7KO#-$Qd-P* zrTC2u$pWefg9B|*>HEw--(QbY<)z41EOiRVHo|)WoE0~+Q~f5Uo)4${gV_mcN5Qf% zBSV1-PiKg~j8G zzBTVddMH1r82_^*RL%Ub+bf;@9^ni6HvB`>$9*tDGOoB(LWRpW7fb?}pA=f)Z6ELd zy={YGA>+CSjxR3z4XpZ)G<{jnqET)59UZ_!jmi#Oh!dJO+b`tn0anbE_rYG+ao7* z!{P_AyM(_)`^E;JmyN~sUnype-&OB)(3-8#!+x?{8A989a^sfovHZT^EAMtFuyNa) z!?*9E1SKWR-*kvGgb1AtTzw)}sJX~gd-Dxk_Wn)cC?%~^52Cnfe?4&AhFz72nea^w zbaw;3X@fo*`E`gZF~U^`7slk-lWktl4;d|RY&fp0C@rJDH{KOltYf>}MK>vu6Mq?J zwim5BUs>^r?nbelN&cs+#Vi>685Qk;Y)9RpK#1w+xzj)toe=nwQiRtdJ@dtgFYZht zR0SFFEkJ%dNv*@j3h#{Hk)s0$ETCQ!$7EIf105&U;Hb_|+1Iwtn%qb81vtC7*?Q>` zFG%C8gtfIqPi{7A#huvas%Arer?}y7{+G+Az$;bl-*SwzFs4pTu1%IJ1k~SHOcX1P zm|y|gWz|f3%Elf>tjvO5V99r2RKt$jw};5qtOS2^=aYc6e1hhILkLINv+a>+F^ zzKGQ7u8H+hgxe~=cpefroC7CU#zvPBmtAA!|Hgh4K_0aIu!=O-p8d43;vePk|LB{g zL>%t+BLePa>%R5IoZl;ZaMYoKy(>SS=|e}$vdC&>nex$D<-eHfefex!bGNnmX=HI` z#`0_MkHzbAAAPi|)Wa4Zp63Mru3i7QJ)bxwRxlUVWKc==0A5)+<~Z&Mj@v&E{pmIM zO|K(vv$O2^qZT*C5JXbz)yr?Y_-^J0vhwTCjCLx9VT^&Roe!Wr#HaoA_ig!MU(TWz zf=#Zv-E@J~5QdkAj*ivX8Z4S?>oUjG-k13DC~jOVI9G`xO+iZgEL(Sj%v4dx`NgS@ z0T2_b&d671Tz1E>#_x;)(EOoXb#--Iyn=lv?ZJs>k7w?f#7G^}?@)W2rWf5Xt>E(7 z?fk57nJQYd^18Iy`QrRVU^l=M*lSp*b}>Nw>6zlwV~NDB7|ED9U!=R#m$B-vj+*?g z%tn34vR5hwnJSmBFYv~e3`Uk++`l%&!d$R1>bV#PQ?cp#+tH`4{lk)jr_19MDa8qu z?0Zo@C65mJUhG}5=(mEpK=&R>&CYVMCd{Q^rC_r66lfN0f*d}buJ)RkYM*(((pr(V zKHf>%Nk`YRi(3geYOOOLy$s&Y%v+DA)sRxwLZXG$FRK(vbUfG*Kk-mW5B0g*ddHfp z7yp!n{=OfgOY1HFnrgQ{0I2dv4nG`lCcI3a3&W35dZt_DG1U6Hpto6G z2Szx823o-B)8;|$T73>u2^Es)xI2Af&Rq>!$kTjoJ)eUkv zBty_0Oz>yUB20?LJiB{d&3~~0^rF}jFp}H$xt1u7AL^emHKe@c45$JrvWh34Xqy}* zZ2fIkXRrasrP$+^8S7VcZUr_&`LoLVQ1NDM(k%-&johrP%b!>)FNO;m#tAI`PD0?T zD0-AvjKoujP-&Q4qjhF)WqMQKA_=u&WY;I){X#<-+*1CGaL&Iy+;1c5fHFM0(fL#9 z7X$9?jYE*5Vk%;(<@qdM4({v^LXkBS14?C1*nj=&@$=Oz?>-5cW&iXm1jQ;!}f`bUyqkK8=H8EdHNH&OM&#whiEO2$2z$6(;3SNvJ2@wTupQ5E3;a6Y5D0n>jth zOggBCaw^i)N{%IR$SPwb=VOM29125onvI#$-rp#1&+~bo_w)XDf9~D)^}DX?cip>x z_u=}2oKV9x-BX-K9(ll-8boSCab_3u(WeQeTx zG({&Kxv(qKqwP9)HM~HtbvOfFxWJ(Wdu%SMo#X+qBrJ##GXhuC=;Yg670(XW`uT;j zYTOD$rrvDQwklv)`HL zRz}aXOSerEHWMs=fjR95QJ~c13NA1Xos*8&w=6IrxArnm=8RuMv}VO2FYi{)II=>U z0KHz3I1NZtExNxUN2~a~_}uC9nu63)|DU0?RB*7khD@iGs7Cn@zJHL67&Ee|!1RnJd76mHC?$?#FD+&OYhO z_q{9W$!s%xz0rNFr9zeX#?hAcBei-(U=aMnmKRe;Nv+*9WZD|IwIlg-yjyB5#Ud*8gnmxrf-)Q40Gc^`O1{Kp^vl%OUW}1_!8gsbI8rAgFrJ6Zd_c;E^r1 zYqd8;XtaF|&0SgMi-0hDECNca2`@F@?ixA#?bmuR+)1`I+XH^z8(^Dwt0uVrY2sD( z!<|VHM`R%D-l)unic~I2Fd>`vU9jGb`DsR-45bbzuG8sYOO9WlNA_^2EcVkd?a7LP;>7e5+|25$16 zAia4wz?0Lbgb9^4`Ml6XaMhJ`TaJkNq%DPQ!juj#r_yN4fj}4*Sk9qx-1pMYN&)X^ z&)n%}YaHaWE?EKtX22DYD+~hRC-tEo$LZ?X7v?0z+I1f`J zM7zH

(GV5#y`ZK(TEAp{YoFxJU;%24_?#aJn~fx)Zc{-lbQfQN<@thLy~Rm2`#S za@XLwYw+a3dVH18^Ftxi8avm{jZ4jWNiiyb4nVi~eOzVnNHJa;F$EB)1IT=+03@8E zngi?`zXSkiI^r6ikVvPVsP*;pdSN&t)53Z<0I_NagBh9XPE<)S79nL6mF@NnWq`$Y zxhzR#`$MjaD0{g}j5hn8h?r}>Q{!rHpi6Z;j@tbLeOS!`3|;0SMvwpR5|#w`o(E)D z^zLX%xESsm%^jLp&-mm1kXENI9~Hv|QkQ3gjwv(n$Y(qTuVQh@u#7^mUja3#`}F|C zk}`8J#uZ$S~7 zL8~icJGk_46*{XcaSDnM2L70p_&Rj9A{_+yR&u>goRu=0nsd8%3#N4TNptWLkzg;+ zj==RIuY|<)#_CPXOMxLJeX02qHM7KG z##eJ`cFFTT?byiMy%}!814j?d-GP%I^3f;eCM$rp<7oGX+zU4u_@0j+DB(d+b_uEZ zOD&JXc<(9gg)N2L@Twgl!zmtxQO!oaJp12jC>T&9q)55*m+@OsOrJ z3rxn2h5a=KL+gd#l>js2H3!Eu^E1H##>xC|l@K7qbz(qzo|l5XS4rg|2`?nC8RrRN z42xrdA-(bWoaZK2WiBF>6h*OFE4?WVmYz>&=&$@I1QJz~aILkU9bAlP`V__7RyDtW zKo+IH|Koeb(IgTT;&z4L74BT2pz&Y|{LYyaX`2`T;kt)Zs8LMV6D%7SS9pcxV#?=d z-OXSX-33HAIVGF(eckGlw#YziNYw8J9*>&noU`>cm+Oer1=nO0;q-gi_Yjj;5 zLOc?ezyD+B!nBY}y%B?Wqo)u8mQAJ99ke=SUoPabIfqd_!p>8^2Y}w5thj0h=2YO7 z(Nor^ZM5%@XTp?)KQr`VrN;YqJz$eA+T<_dEyUMdlu=18FzB~y6;lE$(Ym14U30Qd zLuVKBz_J5yh9Ba(m7Yc-aV&(iD6&CRICl+z^&FVm>zT|>d%>Z+(^t{mad~pHU)({l zu0M9@y2cQy6BbNv4Wo8WM4NSvTATFHBRR*NNi3wA>~W$%S>ppW z1&KP~0|C+SC~4u2V*=RS)^0V*-K~z=Z|~kfnojbhBvKrgtCiI~K9c8?KFr$Pg+r6J zMlS-N%PTkVx&=Bd|5N>QsRcD$q%o=am>$QAsG7X#96ct8w^(^r>M3)Xo_6W@u0(3e zuIkxA3wQnRP{jr3(QjsHCwV?IQ2fgW6_5~*#Yfm?6li~zp6D4_!K+Cc4j(Ou*%?Hbc<{hr$ z8=1^0A_#_lvU6CCE_5P$|12v3_6ZG4pr4lB3SsWKZHM?_Y3aR(!w+!1-!I)o`6#>g zIK%~C$G~?dxwM+;< zfset*BkrD)EG9JQ#01F%$cC0rAQom^>5j+&n+U8ZD$g5wv+O4GJ zX#pi)*bMKO*^vJVu)(VJb86I#LBDErAVA%l+BXHza`T)kHmJ0?sz5m`18RMF=TzLx z34;=}(QG79oY@d;t@7~}H_(C_!}x{`%+7CQ`s|EKrw@wh#qVCPRq4eHZ*OX;@s8Za zNWL#G?6%_30qB?h^79mjJ$Szkwu{~D%kYwWF^GP%IUA_HMPhlx^SK4$>lU92%#4F% zO%F%tW6Pn~Lc@xyW-}~gyG}aW1BQ}F5#TJ1v3Y+~x1g!t$+Q~%lFiWubc!u7hA)pXv z>Q(&)ZNh9EYlo^K;)p%zTLw-!$scZ#yXu%hK5vsG3i<^L_^1AAJLq{06iN7avAdX z-P^j}iKJn5dxG)M{z}UJ(3&63r>|_@pFU|VbKX(E9;aZ@931gA@NAk^vtP@{t!sW~ z7@r%MYl|<@uR|RNBLxY*xQe$mTsQPMYFlQCCsVq5)s{DxMq9ume^njeHlg4}DhsU? z`18lXy8Lm-7yN)d*%HpoC05qFF?5Zi^AX-<{}aj~!AtZ4Gv4wRdM*}D-tc^yA#9zg zX>OZv5P+x5a82RmDOJn;oQr0T1mflyr9b7JAV_m;87B5RHqg7QaLLC`&$d8ui8Kcz z^sYhNUvo;;9UtDXoohk=UH)XSJ4=e-WVSFv{1!0eJG!JlI{Pyq7fwk&2RX~=RQJ!f zhF2C?EVgJ=1din{oarV9q<9?+UE>iuX9n9?YozD6Iq`WIL9xd~_4ecB&q$$tz45h8 z15I9|3x4)3qNSblHeWC{x2j8))(CqRUDeG2oab27r^$PZ4U1-IG-A735;K=pyX;}5 zXg1;~b=o3f1cC7}9^ybkn>{zT8uxecm}YN#)aZ<4(OtIiEb*`p4%W%yC76aAGntYKYgIFvWC3_~X>0fK zR7Rxgv#*1AHRIGbii5W9WBZ+L)|;=nY{g1Q3DviT3HDJO&bKxzt>Ge?uWJ`h zK|;f*R8AjvC5fOme-k&7@v3(+EWER0p`rfU0$g7VtH=n$ZuxKgs@5!-~_@TYii;FAb`bYnJ;1tVRO&{B0~sOuC0EHUo#cCp`VC zmX-&{xAS|Dt!R90}#WJbj01WOhZxVkTPH?6zCh`<;P2wOvI#h3PP zK~yuGkDs#L@sWBMM=DYs4&?pw6ImJ+BB3H#v1g4P9hLGMHTDiz-G^f++?|ta81i*- zv4jEtYV^hq(dmrS#y^`PGpK0!P0r}xK(agxPIj*q@m(^b-^^5;7+9=nS~{>B^^-!2 zgiu7S%%deAqWfp;c2FVpZVn=w4CF%Jvd&pbe$bA~=LjKOla0il59EE5f>Y4xHjcy_ zXw8b+m{_#M~Kp-U!DwVSr@I1$t@>F5~X^ob<@sFZefn;&(y0IfwkLj!B#(5ABrhneo$6~AwfP=ck`=|g zRpqxo+th)^X56%iYj!+%{G}xSWeH5Qrevx06zeb^GZ#ium`2RYv>q#nzeeckxMoIj z+O-xTNcmL+mc&kuHkr{=B01vMr$($rEU=W(zhH@LRR;%|!@x(yeTN{4QgMW}i6r&r z*OVq5te?NINB!vBu*JAUlVpuwsmJcIs0#T}byW5JiO=#1ii=*Jnkndvn3aJ~UZ{$O zw5aXHmX?*3uaec}-H*@Gm5p`n&vyR^BXxzx>>5WEv~FUHdJh;KCZcA__JI*G?e0;e z=KZdLaO}(hVkiXi7w-`GeOIfT1_F6CyOI5U%GEBcv3`GVbF{wu?DM+xSHr7cXrH^H z;2ED=wYXU4d6W^B*#)Xd*R11XYKEGoYmJS@2I^|aofhz^ee3A#+b*X!7YdO4?cBJbZ-J^(91w!1qW>DT+T|m8* zrXYG^r&){dN(6ZILj|dH01O5KS^i)=c7L262sn9Bv#9!iv2$_hXP4|VT3^HEL`QC+?O0$!}u3rJoilmLw<{;mERoBMAxGj z19Wy~9hC-BH3Zel=PXzI(e}=I)3`sM0=hf4XOVrhSTNf#Md{!%{cok1TVwlR z?2D;CA}n6XfUBkzvQ}~ zgQqENTA}UzVvdpx1=t&ht+%s0$|lX>3&Y{zP9_|5(Ma;nvQr8UB`I_;iT9r$L1BVI zN8Le6|LX__zFFz@rdM%1N4k_oB z(~hi~l0Ow-zhRi!K2_W^5s90xltl2}qE#4~n&XwNR(vF@7qDl6y=cE*5_+q)%?71t zF-qzd?^8}D+nLO_xofi(T#!TjSgcv#$AM5Ix5^;V# z!~gK~?Ts07T0wV6cL zQOf%#G(QjukW{&MN#x3}imo#*=d#)DUkhxy<$b79JR_}rc6-YdC+XL#so#uBvjTtQTDy4*p< zpn&b;K7Fm;6M9yDjtI-%7{QLn)u#TElZh_l=ONN9`D$zA38A&!k9~;IW9|8`Kd&I~ zO1G{2dwfW*82Zw_{A+~*)Jh!~6tykR1aI4X)OJ$m2m||j&nhn!G zh#`@;{2RJP_l&+Twqz#miR42$9*^(%_T2T{X(>$nH7WWsw&0E%zw8j+X{U-)y8N@M zf@?6FNiELfQR!9E$b>76SAOcmd!Bfz#hS-f!W}}T=%CT*Yw1EHZ`OjU?Lqm!!u!uc zPG;rw%{srFDU*PiT^Cc7a-@X;e{z(WR3jTt(V2VB4N+z~d&itTU8C=qf=8R=mkKw= z6J!-=;EG#+CeLGHg@pDv1ifOo1617C_vC@IJvJN4@E}=EBjh@+S37lmjtntIv3)n@ z$FD{YKVydM{`xK}v*ZZr`C*45xK`xuU2?q1Uh%k;Z}If=)kA3!gMF7t`&=@9l~CW2 zp^4qI-ppb5<`48}WojJdgfGHa=xf}7C?DK9-;cWKjZa>dmr!g>Fk<272wIpEW4u_^ z@YA+y^m&H`MCtW-Wth1R%r%%0QENN+T-_!34@)QOc!8QUwpG{JbE3IjA!>V%sw$pc zSeE5i==1!lVq`k{qrw#JS}>fV7JN;BUOu#)`+G~_B`%zSLcleq#2|ymo?m4!mn$lZ zg=CEe9o9|cWIkqaG1t{qR0<2fxUg;?Npx9rX}{c`5L0foU9Ppg6^E>Ao^rNrDZIsn zd{9y@u3yW-&-7jh9~pVDNpibhR1nOWQj1c)jhx!53P|@RGN?q;$}w}qzB~r;+A>_$ zu9}Mw7Hoe@gB;ZeqHR z`P)?VOM!829pB-hI~RBS+n2RbnuDk>-z8z)HuL^YF*5O`{a&2(Z~2)riz8>*f`x<7 zP>)yZ@jteQ{=`((X0W*iCx|GHz5&TEf2)4^**=41DC)_-=VD) zPT~CQU-Y6qD##sJs=~pqZ0)n_Xo(kjRRO)^otEWnRipAAe}v700wV-8x?V<|;rb0r z+SId-ca@oxGdZ5#>lK_@dM=AM9gPrMpDMvF%M1i(aw1j75+%nge-N9>OtD|7v2TN* zgxLRj);sAw+^A%r?YP!S;`nrt!lHhbyc0+;WQW2FA8S5|J*+W}imm?Y19C3%LmE7| z@x0i&dNfo{Xz1c^hiw$$GxD}mFFSske?4TWxQ5$iw%x{S&dvFyodh)cX(8_~$id0m zgL{ur3^iyPll`)10WC~U_KH30=p=hlWqcWzeLJ_tcB1*vTFF5QCZ)f>dural;#G!f zBXlE@Pu=DLGh)-$2BBd6VegMOf`c>DTsTq7&FEDYeh+9hY}g``<}!Y?xNnx8I8FvD zD_}CPJ8*&z40Bfb6Db3+ z!DsUrW9m{k^7-2a^a-;W07a+5nNC2~Q64VXNm?mpEV5)4hRyAS%DnKBvNc1rvHl#6 z{uXQUh*4DcL$kt7UD~sU@Mt?`Y;4xGeY9KX!L2T4SU^mrjr^}OeNTa`5Fl&0dvV9E zDdwrbd5!wBv$BE|8L9PsYDav0(|H{S+2X4jzIY(DI+==U+C(c~@6RGNV_vWv+ zmKSFu5x=>f7yX?F3_ohA0Yr&Mq={Wh}EbuPWzXN0>&FXMa1d)T5S) zmm*gn>o4eRp(m9yB`PEpY2zJB_^*F|nB3hO66H*Owp6WPCdU5#RH-&{ff&=ho%a3O zx<~!jTdhx6zqh65cWIn_3Vn$VUcw%MPU$bD7LGFId=-}y<^H%XaI20>S&sKMQ?*kk zh?4l~uBmNvOnab()ua2&=SZ0kTXGcis}Aw;d`@JV@z``5O8DGE4->0$LI}zGPYv zi&ly~a=nt{rY`dj>PrUTF1}0TWH2S&v`16Rk-5?zk#T`l>%e0=gtqY4l>$g zXRn)*u&kn})per=`m;x`^@dJ44Ako8UfmAZG6TPIv%%?)yyt{=SqQ^x3|Nl-q^Z@N z-N@Ce4);d|F6pyuY$S10>xLT3Y~!GxdV$&EP?E)NBOqAV)EC;f8tQMXy>Ygv#Yjoc zr`bBFp4Y`n`z#nM;}9m0Iu9QWl<&!FyRY^z4EogL!YH=~SHJ{a5NZup>?lKI9d zUr#oU;LB(zjc4*6BfiL!j2c3W#k5Yln|+KIm2C)=lz zU26r{)+|}UE9Kl;lY80Rz~biS78?R48#?siAfLc5uPb|Lu#=2|-I1#mAy|8e-tz4m zqldTFe^Jje;}g%!fflqHxumifh~D+E%Z2JGYg$?nVcHhl5id5$lqbR{ zww|eF7y1;5%Ty_S%VR0usnPz$(z_Bxuyi7B-15spB-dQ$EJjC#K)YPbWM)IthxeIg z$TE;$oH2R_--u6*4VK%^rUj=cczH$+tHnb-r4*8Dm;#-2w=0x!)Aez&bD3;k%unWk z6tEqiR*)i~d0aVj=FI{cRYIEnM@=my2e^nnJL#jQP{Y<~4Ok6f(#Qx}gv(P!8s~`f zIDNb9QqoZhKiA&#?m9#%*m&&cJ&EK!ZU*69x+ywXSepun5q!$NgjGH(mUH>W=CeIM z+G8aqelTXe?L^mLBeQdhPAQW5m(-n$IEcA|$d*RvBYM{PHTj0&oq?qsW(halImmm5 ztZ@diKkKoeuI-%{;j04-J}UXmd11jHoVGnHYX0&>>>Dew&FQp9Y^?B=LBm>1t9gCe z_lHkIqwhS=VXc%k6Hd=t2NiCLSO>*Y;UXLwEm@Z(ast9@vEE>|tyo5>5>O0e0SQ+Y ztIsD8`m@}a-7VtI%~I4+1Twru0~Z64R5_%4m|tc4-eC6YIR2jPiZO(3K)YBu=1Hz|No2VVqO?M*xCP zi|#ZZL`kt+yVnZj3)qs^H?K^@g4`!?kQMRV)v(5j__3>2)?PTu#e=1t`=yU{K0GO- zCJg*mWO4dzjG`1)Z4j?&zy?hy>uHuOg+eV<`F;Q3Mvx0+0+}$ z6S+gj3^SQ-JjBaqqOAo)QnZmRKo!XNG)H->&JsC`hN-6FA_(TajA^7>N^f?3ouHrm&?r4T+3 zt1DCGes)Ab{E(W2BDNP2gD?>EvQ~&DMIVBA%6ja}JAt9c1BX<}j~P{@<6Q&r8?j=p z9G{_Dphb_nJ}+R;rGL@mv&|XNbsBJZ``OwC%T}j@$i}0eUUQv)a-LCfg&*>j6T`jf zx>cVAMeGP#K{wneA74XDa41LZgaXpJ80Eb`BKX&Ya1;7vm^Ux}92!$TwIVZ&Yzu*g z&Ukx<9Fie!k-93kq*7>`N5|Hpq?4XJGO6ml$4?OC>t_>y6JwEw=%;bQA>YZ zaWd(8(QR9+W1nR=exm9uf7(}uT%~8@>AX+lX!s-Lq|+QRe+iu4%?CeUQXuD1F) ze$nLKz^KWY3rM_vihSVkSA&~o_o&m`u6_9>k1b!5W`Kp$v>&kOBL}~7D?$a76{)mX zN0zwp{O+Snld;qj?pOCiuNs`+mNPH0dNbA{%yaNO6W`g+~YzD(w z>Hh%a9jIC0Jo$RGXKSpz7j+spu{Fo|8gS5%k2wy}>GFahGoMT8lr!(+ZsGMdF|S5N zp>)KjsZ{vq*f@8{{84$iF)P~Be9(QvOyQ6hJX1o;{5ai*DbA(4YbGBPxjpe65${k= zJvBShG)tUj*6wqKdIrlb5Qy$oKdu0`xV(5%?jn4UpmAle#Ph8tD?JD+RMEJE zIo2O#x_1(nr7|3vqjwrcp&=Q00PuQ+NdBAw`vt(i9dq2!tFj|=X<+Y_%c==vHbErz z4Dr80ZS~Sfzp&P%jyPx-wxnbBw*T)YT?{x)8oes>?uBp33Eh6U~ z#FT5ehEtO^Ty*(}93wCk87*qE7H^El-2_D`uwrv0p^$v|$4bnlHh3GS(mJ`xJjY?lwMIX-715$Vx8cn{8U7M<)K<@3H zzw-ytZ0o+2$pSC{_idB`<2?fw_K&}=MF(fV+7$hN)7v+{MiXPM;~G~A?Jg7;ElAv| z(YJfJ-Apfc_&LDlK8up;D0aNgr=Xk$LYj7+L93fR4W#nI=7+1e+ILp;FQL!x`~Hl- zVo<(vJd5hiX*I>Hkrkl5d$w6X{OURM`T@bg2KhVl0AVAmWWmhm^-8`D z9^srw?h0)1t+rN4gTeUEi)(9UQ5mWJIe8}00OCpyGQLDVP?>x`esAfGc z5YIj1}u<#n1;{s_&)M{6#$p$(V+x^TwE6Z8j+vd3TMvb7w8R zliRKq9zL3jwpIv5)Bq{f%eN z0RL7(#`2Y->TivU9zp?XAL2*T?XybpYSjs#fKv+(v2R(H#W83*d(>#LQ{x`Fta_#X zzb*$ghk?#XkRi*pli!WmXh4QHwv*OXK{l47iyyeUBx?aQ3Su!plE)5T_^@i9u{D=j zFzssx0t97k-M$ygdnQOcHs-a4h-j^`utV+r^CvVUF1PVCfK=pKZ2NB{*J~~8bDiAu zfk6H=qs{`8lCy(UxD7wDtxe+ z#yQq_tcfA^5X|mhRx`20p{_}NWTgVA+~(kD3D!zJY^@<{tZ3d^r7Z(!m4Nt)DvG>+ zVZ4uZf$WfR>G=Gtg|cD3vs)U5X5+9wIQEhIwO|2LL^>YZUrT z$M{3V0irnUu%sSGz#e${w&q-OhDjnU2i~L;LnY(mp~Lz!UN1GII1Xb1FOHhwxmbUC zunf$@=|P)`<0$iQl+!3P-)lB~=N;F*&(#pKDWBb^tR})9Q4oHv+pG_uI;z4?nKS@; zSO!scmD<;l`C)LiLE{{z@#(vr!00<~MLvTVAu`fNT-!^V>Jf9Ey4iEv)G51<*aYxX zP>Jx~1FaK~OMutu68i{fPyyH1Y3pgTjfB$I?ac4e7(8v9!_r@+t1|+<9GdGu%w-pu z49|CI3F)(|H2fh^%Q2i?V|C2TMeLOs^D@K02v1$9c-|ts@qk>X?iZZ8y{gl26o`QCnuBBC0Z#fI7{c1&UnXAb7L-{U#fluk zdnh&I1~sIz2zY$ZQ#^Sl$QM8VN3_7u?4_S7$PJFl2{$K`%ZG&kbXeD#=XC}(ASLw9 zOog>*HDr!R{_9<*roAiD7oLDFCgQX2)!@Hm<)zIljDH4%Up_O?c3uUE(}N}RhSJAY z%i@~U#pPKmm+%ay4*f%--D7Xxm zEG-o?@F>&821p-<2cQk$@f*g5T_u4I4qPmUQnmCTaAY~_Y{oiHf%UZUm)M|DP{>J# z-UsHSQ#v<3f|0~0P~#6U|6)Qme=@GZ7L-AUG0drSu*-7xlV~-J8qX!flcIofA&{VS zM>=NIoA;kd|E}bjm8bI}BF(SO`VJNLszec=f_7@Y`C*APtS8P!6{P`0c^cl33#-S1 z(ozZgPWeD z%+2yN1W5GmALYTZ8_|k~+4Yg_n61ID-~t9T{-Nt;u#s?Vu&JnwzZ*=JbCqw$`%|2? zZ1uvo`6_Ge(G-W4zCkXhpP3KENc--NnBDuI514%x6-x#kr6drg8@T@;dqeucyBJN_ zKI7Hh0?HJNr+6Ppy}4N6*e8#yr~@x^09kxz`)+GZ-ps1b#F;7vv?&rd zWLHYVhaCe4uT_;95lHQ1AtMw_U()Zuk$9JxpdKPul|+~ip%-1~u3)ZH(t*E{%)A;f*xjHKMzh~ zzn|psJB(mH<7EY5Qq5Xxl>D<33O;y&pIZ zzh`g`lp^kQL>^@?T_MP!2l6PZw{AE^luzx+qkyXz#qYHAs9X6Cw-hE} zo_OqvJcDKSTd2pBN#m#S=nD|2x=!rZV-QBUGv=G+v-78nMu?)ip0J~#%|>>a$% z(s6Ly)WMG58vd1Cz-30AT=;zvQmI^EgcU9mfYDz@fl%1?5X>yR=I%{2id|v=U!}6< zhfTJ_2yU3pTYUM9;F)8^#0Qqv&z|JKG-7~ln*GoAy! z51u~e{1ynNUkkSPenb@7At=pW8njBEWmsg97L%x<@QH4c%0}t6YUMj;9G-}3{y)WM zSC4C(qC1O)2FR|5ZTAhCKwUnFdaK*pMva|OX_E(6=c3qE!cDr*gWTymG*FCFL9#sO zl?{9}w@Z9?v0y;B+Vj!BQUOp_nb!rUspY{{tXi}mwz5F`1#&eyFJpdJ{}cJbqzbdr zNzey(vz$eHvk3bT$19Y_@ANkPdn@SFIAAEdbBH$Kq+jUP0{i^{*q)1(f)=Pl0f12w zh&0fUHprIP;Q2n)V`VVQO49>|{iwQg&%42c^Uq(z-3NX0!)j9rS^0K`J?sEZIXE2> zNSr40_gLYKDI-`(MP8r@8AaX7qv4mUKep)}&}CYOVz>{`^3%F%K??TRdnx&4Ua7WD4{CRiA$>HBd|0xOTV^$NtYu$d)VPPRR^1MfYV=4{s_VU zWl&DH-CW0PIa|xk4ChaIVx{21$$HcYX}XxJAj%%Yy;olDJCC}R-_4bOh-{BJ-**ib z|2W?HhD#Sh0tgsMKK_eGl>IF?6WogIaPB#EgsALhZ4Zc6hpZb|V=`~+xa><~f55*b zD$Il2Y%$Q_+2;e@`gkRH>lqaaddqw7yHy& z8DE#!_aobKj@LXbkln2aQ3w7c01Q&vQGp3=U0KbkP`cLx;>2NrlxAAR$MCM{{R{^v zzq+?GRAbw%V&SLj%vauhvS*xO4O0A%RFdJ+ynaL6GJ8rpDRL7d+WRHx+TFQGeOz{_ zOc&U+o~UIuV-k<@Rv`IA@L@h6og>;k>#1Tt_Cq2-RTb|Hz)h=lF9^KO&t{qUv4KsEW$Y z;k#}O9@mG>u1c5sE~K?%>6ocQPyie&gYJJNl3J0~h`n(%^X=aqYg^PbSdhuuwj=0zZokmF|~G1hl4-fK1*3XH9RAGDMQ$w{H&nrW2G_%AxK8FeNv z^c0xp>0erwq_dX@bz z(H}TVlcJ)Y9XTy{YMnSwAZ?>@0CpzOzy{Fy7AS;R18zFZ)gXEu)`mw*{x=VIn9;%Gfkpr8Sx4v?e9^E% z-!2LyVc=F^rabz;DoXgwF|_D6YR0Ataky7jYW4+S==b`-CXeO`T^Pgvy$gH@XypgL zD~qGY{X2E|f9z^tZcZs)>2L!xI>^|c2|j^qQyG-^V_Jto9)1f{iDyq!S4k0FpR{;C zeZ)c^YGmaqNXk3-4(Dv;SQAhJf;V3*S-=1$W^?iYj91p!&;;?cE#|btnS;1p(w!&9 z*MNFsg)W|xqQ!{Dv`@7*&ig3lZBFj3kM?bD5+~$+6!#9_>5T0i&K)Y92&R?>XO4pZ zp%TFMeoqlH{;%oImO}>QhAx&c`8;^S8$UDRTLFJskw{?>b5Ku#)0IN9&To z4*i50n^Rx{c;|+kr8Li7JJ2DOuR9GwSx7zh2P@TNEyTqvMl_M)&OtGx5ZjtH0d5irGq|~d|4A&9 zztrI93fk>^Z^U+;$WePWA@?(!*$~AmDz@0a#7mc7ZNovr01t#DLa?uI7v>V|M#w3dqNN~bS z>x)hco8+eZyUPw|%}8VWD1?zt>E}zs`vY9Y#poHZo26vZX>-*$e~p8dkU+F&Lz`}! zt-A$blr5~C)JaJQpKI;WORL$=iek-y{ZD_m1N^59>OxCr_Cp2pq$JO4cY{{X~8R?q+d literal 15322 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 literal 0 HcmV?d00001 diff --git a/qwt/tests/data/imageplot.png b/qwt/tests/data/imageplot.png deleted file mode 100644 index e848da0805685544cec3966f05dd549a6f6428ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104815 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 diff --git a/qwt/tests/data/map.png b/qwt/tests/data/map.png deleted file mode 100644 index 6baf0936730de5cfb55da728d60663b68b73a225..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23508 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 R17FNB4t5lB&Q>qx-vFO3PRRfO diff --git a/qwt/tests/data/multidemo.png b/qwt/tests/data/multidemo.png new file mode 100644 index 0000000000000000000000000000000000000000..770afbd7b7f399bc60c690714bbd69367695eab6 GIT binary patch literal 6724 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 literal 0 HcmV?d00001 diff --git a/qwt/tests/data/simple.png b/qwt/tests/data/simple.png new file mode 100644 index 0000000000000000000000000000000000000000..ae4224ad077cfd52a04f6c6397c2b4a5ce21a374 GIT binary patch literal 12464 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 bpChsp1?!<08WvuFETpM+`$p+?RN(&u0ugMb literal 0 HcmV?d00001 diff --git a/qwt/tests/data/simpleplot.png b/qwt/tests/data/simpleplot.png deleted file mode 100644 index fee9b2c1f5fceeebf09e898418f5bd64b5d198a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7671 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 diff --git a/qwt/tests/data/vertical.png b/qwt/tests/data/vertical.png index 3f6519ec00f4d557e5e1e48be091586e772cccc7..522d55f0d59b77ce29befe64e6f374a991992049 100644 GIT binary patch literal 25579 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 3: dy = args[3] - + self.__x = np.asarray(x, np.float) if len(self.__x.shape) != 1: - raise RuntimeError('len(asarray(x).shape) != 1') + raise RuntimeError("len(asarray(x).shape) != 1") self.__y = np.asarray(y, np.float) if len(self.__y.shape) != 1: - raise RuntimeError('len(asarray(y).shape) != 1') + raise RuntimeError("len(asarray(y).shape) != 1") if len(self.__x) != len(self.__y): - raise RuntimeError('len(asarray(x)) != len(asarray(y))') + raise RuntimeError("len(asarray(x)) != len(asarray(y))") if dx is None: self.__dx = None else: self.__dx = np.asarray(dx, np.float) if len(self.__dx.shape) not in [0, 1, 2]: - raise RuntimeError('len(asarray(dx).shape) not in [0, 1, 2]') - + raise RuntimeError("len(asarray(dx).shape) not in [0, 1, 2]") + if dy is None: self.__dy = dy else: self.__dy = np.asarray(dy, np.float) if len(self.__dy.shape) not in [0, 1, 2]: - raise RuntimeError('len(asarray(dy).shape) not in [0, 1, 2]') - + raise RuntimeError("len(asarray(dy).shape) not in [0, 1, 2]") + QwtPlotCurve.setData(self, self.__x, self.__y) - + def boundingRect(self): """Return the bounding rectangle of the data, error bars included. """ @@ -139,9 +149,9 @@ def boundingRect(self): ymin = min(self.__y - self.__dy[0]) ymax = max(self.__y + self.__dy[1]) - return QRectF(xmin, ymin, xmax-xmin, ymax-ymin) + return QRectF(xmin, ymin, xmax - xmin, ymax - ymin) - def drawSeries(self, painter, xMap, yMap, canvasRect, first, last = -1): + def drawSeries(self, painter, xMap, yMap, canvasRect, first, last=-1): """Draw an interval of the curve, including the error bars painter is the QPainter used to draw the curve @@ -160,8 +170,7 @@ def drawSeries(self, painter, xMap, yMap, canvasRect, first, last = -1): last = self.dataSize() - 1 if self.errorOnTop: - QwtPlotCurve.drawSeries(self, painter, xMap, yMap, - canvasRect, first, last) + QwtPlotCurve.drawSeries(self, painter, xMap, yMap, canvasRect, first, last) # draw the error bars painter.save() @@ -171,33 +180,44 @@ def drawSeries(self, painter, xMap, yMap, canvasRect, first, last = -1): if self.__dx is not None: # draw the bars if len(self.__dx.shape) in [0, 1]: - xmin = (self.__x - self.__dx) - xmax = (self.__x + self.__dx) + xmin = self.__x - self.__dx + xmax = self.__x + self.__dx else: - xmin = (self.__x - self.__dx[0]) - xmax = (self.__x + self.__dx[1]) + xmin = self.__x - self.__dx[0] + xmax = self.__x + self.__dx[1] y = self.__y n, i = len(y), 0 lines = [] while i < n: yi = yMap.transform(y[i]) - lines.append(QLineF(xMap.transform(xmin[i]), yi, - xMap.transform(xmax[i]), yi)) + lines.append( + QLineF(xMap.transform(xmin[i]), yi, xMap.transform(xmax[i]), yi) + ) i += 1 painter.drawLines(lines) if self.errorCap > 0: # draw the caps - cap = self.errorCap/2 + cap = self.errorCap / 2 n, i, = len(y), 0 lines = [] while i < n: yi = yMap.transform(y[i]) lines.append( - QLineF(xMap.transform(xmin[i]), yi - cap, - xMap.transform(xmin[i]), yi + cap)) + QLineF( + xMap.transform(xmin[i]), + yi - cap, + xMap.transform(xmin[i]), + yi + cap, + ) + ) lines.append( - QLineF(xMap.transform(xmax[i]), yi - cap, - xMap.transform(xmax[i]), yi + cap)) + QLineF( + xMap.transform(xmax[i]), + yi - cap, + xMap.transform(xmax[i]), + yi + cap, + ) + ) i += 1 painter.drawLines(lines) @@ -205,42 +225,51 @@ def drawSeries(self, painter, xMap, yMap, canvasRect, first, last = -1): if self.__dy is not None: # draw the bars if len(self.__dy.shape) in [0, 1]: - ymin = (self.__y - self.__dy) - ymax = (self.__y + self.__dy) + ymin = self.__y - self.__dy + ymax = self.__y + self.__dy else: - ymin = (self.__y - self.__dy[0]) - ymax = (self.__y + self.__dy[1]) + ymin = self.__y - self.__dy[0] + ymax = self.__y + self.__dy[1] x = self.__x n, i, = len(x), 0 lines = [] while i < n: xi = xMap.transform(x[i]) lines.append( - QLineF(xi, yMap.transform(ymin[i]), - xi, yMap.transform(ymax[i]))) + QLineF(xi, yMap.transform(ymin[i]), xi, yMap.transform(ymax[i])) + ) i += 1 painter.drawLines(lines) # draw the caps if self.errorCap > 0: - cap = self.errorCap/2 + cap = self.errorCap / 2 n, i, j = len(x), 0, 0 lines = [] while i < n: xi = xMap.transform(x[i]) lines.append( - QLineF(xi - cap, yMap.transform(ymin[i]), - xi + cap, yMap.transform(ymin[i]))) + QLineF( + xi - cap, + yMap.transform(ymin[i]), + xi + cap, + yMap.transform(ymin[i]), + ) + ) lines.append( - QLineF(xi - cap, yMap.transform(ymax[i]), - xi + cap, yMap.transform(ymax[i]))) + QLineF( + xi - cap, + yMap.transform(ymax[i]), + xi + cap, + yMap.transform(ymax[i]), + ) + ) i += 1 painter.drawLines(lines) painter.restore() if not self.errorOnTop: - QwtPlotCurve.drawSeries(self, painter, xMap, yMap, - canvasRect, first, last) + QwtPlotCurve.drawSeries(self, painter, xMap, yMap, canvasRect, first, last) class ErrorBarPlot(QwtPlot): @@ -251,25 +280,33 @@ def __init__(self, parent=None, title=None): grid = QwtPlotGrid() grid.attach(self) grid.setPen(QPen(Qt.black, 0, Qt.DotLine)) - + # calculate data and errors for a curve with error bars x = np.arange(0, 10.1, 0.5, np.float) y = np.sin(x) dy = 0.2 * abs(y) # dy = (0.15 * abs(y), 0.25 * abs(y)) # uncomment for asymmetric error bars - dx = 0.2 # all error bars the same size - errorOnTop = False # uncomment to draw the curve on top of the error bars + dx = 0.2 # all error bars the same size + errorOnTop = False # uncomment to draw the curve on top of the error bars # errorOnTop = True # uncomment to draw the error bars on top of the curve - symbol = QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.red), - QPen(Qt.black, 2), QSize(9, 9)) - curve = ErrorBarPlotCurve(x=x, y=y, dx=dx, dy=dy, - curvePen=QPen(Qt.black, 2), - curveSymbol=symbol, - errorPen=QPen(Qt.blue, 2), - errorCap=10, errorOnTop=errorOnTop) + symbol = QwtSymbol( + QwtSymbol.Ellipse, QBrush(Qt.red), QPen(Qt.black, 2), QSize(9, 9) + ) + curve = ErrorBarPlotCurve( + x=x, + y=y, + dx=dx, + dy=dy, + curvePen=QPen(Qt.black, 2), + curveSymbol=symbol, + errorPen=QPen(Qt.blue, 2), + errorCap=10, + errorOnTop=errorOnTop, + ) curve.attach(self) -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + app = test_widget(ErrorBarPlot, size=(640, 480)) diff --git a/qwt/tests/eventfilter.py b/qwt/tests/eventfilter.py index d868cdd..124604f 100644 --- a/qwt/tests/eventfilter.py +++ b/qwt/tests/eventfilter.py @@ -2,58 +2,75 @@ # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import numpy as np -from qwt.qt.QtGui import (QApplication, QPen, QBrush, QColor, QWidget, - QMainWindow, QPainter, QPixmap, QToolBar, QWhatsThis) +from qwt.qt.QtGui import ( + QApplication, + QPen, + QBrush, + QColor, + QWidget, + QMainWindow, + QPainter, + QPixmap, + QToolBar, + QWhatsThis, +) from qwt.qt.QtCore import QSize, QEvent, Signal, QRect, QObject, Qt, QPoint from qwt.qt import PYQT5 -from qwt import (QwtPlot, QwtScaleDraw, QwtSymbol, QwtPlotGrid, QwtPlotCurve, - QwtPlotCanvas, QwtScaleDiv) +from qwt import ( + QwtPlot, + QwtScaleDraw, + QwtSymbol, + QwtPlotGrid, + QwtPlotCurve, + QwtPlotCanvas, + QwtScaleDiv, +) class ColorBar(QWidget): colorSelected = Signal(QColor) - + def __init__(self, orientation, *args): QWidget.__init__(self, *args) self.__orientation = orientation self.__light = QColor(Qt.white) self.__dark = QColor(Qt.black) self.setCursor(Qt.PointingHandCursor) - + def setOrientation(self, orientation): self.__orientation = orientation self.update() - + def orientation(self): return self.__orientation - + def setRange(self, light, dark): self.__light = light self.__dark = dark self.update() - + def setLight(self, color): self.__light = color self.update() - + def setDark(self, color): self.__dark = color self.update() - + def light(self): return self.__light - + def dark(self): return self.__dark - + def mousePressEvent(self, event): if event.button() == Qt.LeftButton: if PYQT5: @@ -77,23 +94,27 @@ def drawColorBar(self, painter, rect): painter.setClipping(True) painter.fillRect(rect, QBrush(self.__dark)) sectionSize = 2 - if (self.__orientation == Qt.Horizontal): - numIntervals = rect.width()/sectionSize + if self.__orientation == Qt.Horizontal: + numIntervals = rect.width() / sectionSize else: - numIntervals = rect.height()/sectionSize + numIntervals = rect.height() / sectionSize section = QRect() for i in range(int(numIntervals)): if self.__orientation == Qt.Horizontal: - section.setRect(rect.x() + i*sectionSize, rect.y(), - sectionSize, rect.heigh()) + section.setRect( + rect.x() + i * sectionSize, rect.y(), sectionSize, rect.heigh() + ) else: - section.setRect(rect.x(), rect.y() + i*sectionSize, - rect.width(), sectionSize) - ratio = float(i)/float(numIntervals) + section.setRect( + rect.x(), rect.y() + i * sectionSize, rect.width(), sectionSize + ) + ratio = float(i) / float(numIntervals) color = QColor() - color.setHsv(h1 + int(ratio*(h2-h1) + 0.5), - s1 + int(ratio*(s2-s1) + 0.5), - v1 + int(ratio*(v2-v1) + 0.5)) + color.setHsv( + h1 + int(ratio * (h2 - h1) + 0.5), + s1 + int(ratio * (s2 - s1) + 0.5), + v1 + int(ratio * (v2 - v1) + 0.5), + ) painter.fillRect(section, color) painter.restore() @@ -103,21 +124,22 @@ def __init__(self, *args): QwtPlot.__init__(self, *args) self.setTitle("Interactive Plot") - + self.setCanvasColor(Qt.darkCyan) grid = QwtPlotGrid() grid.attach(self) grid.setMajorPen(QPen(Qt.white, 0, Qt.DotLine)) - + self.setAxisScale(QwtPlot.xBottom, 0.0, 100.0) self.setAxisScale(QwtPlot.yLeft, 0.0, 100.0) # Avoid jumping when label with 3 digits # appear/disappear when scrolling vertically scaleDraw = self.axisScaleDraw(QwtPlot.yLeft) - scaleDraw.setMinimumExtent(scaleDraw.extent( - self.axisWidget(QwtPlot.yLeft).font())) + scaleDraw.setMinimumExtent( + scaleDraw.extent(self.axisWidget(QwtPlot.yLeft).font()) + ) self.plotLayout().setAlignCanvasToScales(True) @@ -125,18 +147,17 @@ def __init__(self, *args): self.__insertCurve(Qt.Vertical, Qt.magenta, 70.0) self.__insertCurve(Qt.Horizontal, Qt.yellow, 30.0) self.__insertCurve(Qt.Horizontal, Qt.white, 70.0) - + self.replot() scaleWidget = self.axisWidget(QwtPlot.yLeft) scaleWidget.setMargin(10) self.__colorBar = ColorBar(Qt.Vertical, scaleWidget) - self.__colorBar.setRange( - QColor(Qt.red), QColor(Qt.darkBlue)) + self.__colorBar.setRange(QColor(Qt.red), QColor(Qt.darkBlue)) self.__colorBar.setFocusPolicy(Qt.TabFocus) self.__colorBar.colorSelected.connect(self.setCanvasColor) - + # we need the resize events, to lay out the color bar scaleWidget.installEventFilter(self) @@ -144,12 +165,15 @@ def __init__(self, *args): self.canvas().installEventFilter(self) scaleWidget.setWhatsThis( - 'Selecting a value at the scale will insert a new curve.') + "Selecting a value at the scale will insert a new curve." + ) self.__colorBar.setWhatsThis( - 'Selecting a color will change the background of the plot.') + "Selecting a color will change the background of the plot." + ) self.axisWidget(QwtPlot.xBottom).setWhatsThis( - 'Selecting a value at the scale will insert a new curve.') - + "Selecting a value at the scale will insert a new curve." + ) + def setCanvasColor(self, color): self.setCanvasBackground(color) self.replot() @@ -166,8 +190,9 @@ def eventFilter(self, object, event): x = size.width() - object.margin() + margin w = object.margin() - 2 * margin y = int(object.startBorderDist()) - h = int(size.height() - - object.startBorderDist() - object.endBorderDist()) + h = int( + size.height() - object.startBorderDist() - object.endBorderDist() + ) self.__colorBar.setGeometry(x, y, w, h) return QwtPlot.eventFilter(self, object, event) @@ -183,11 +208,10 @@ def __insertCurve(self, orientation, color, base): curve = QwtPlotCurve() curve.attach(self) curve.setPen(QPen(color)) - curve.setSymbol(QwtSymbol(QwtSymbol.Ellipse, - QBrush(Qt.gray), - QPen(color), - QSize(8, 8))) - fixed = base*np.ones(10, np.float) + curve.setSymbol( + QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.gray), QPen(color), QSize(8, 8)) + ) + fixed = base * np.ones(10, np.float) changing = np.arange(0, 95.0, 10.0, np.float) + 5.0 if orientation == Qt.Horizontal: curve.setData(changing, fixed) @@ -202,22 +226,22 @@ def __init__(self, plot): self.__selectedPoint = -1 self.__plot = plot canvas = plot.canvas() - canvas.installEventFilter(self) + canvas.installEventFilter(self) # We want the focus, but no focus rect. # The selected point will be highlighted instead. canvas.setFocusPolicy(Qt.StrongFocus) canvas.setCursor(Qt.PointingHandCursor) canvas.setFocusIndicator(QwtPlotCanvas.ItemFocusIndicator) - canvas.setFocus() + canvas.setFocus() canvas.setWhatsThis( - 'All points can be moved using the left mouse button ' - 'or with these keys:\n\n' - '- Up: Select next curve\n' - '- Down: Select previous curve\n' + "All points can be moved using the left mouse button " + "or with these keys:\n\n" + "- Up: Select next curve\n" + "- Down: Select previous curve\n" '- Left, "-": Select next point\n' '- Right, "+": Select previous point\n' - '- 7, 8, 9, 4, 6, 1, 2, 3: Move selected point' - ) + "- 7, 8, 9, 4, 6, 1, 2, 3: Move selected point" + ) self.__shiftCurveCursor(True) def event(self, event): @@ -225,7 +249,7 @@ def event(self, event): self.__showCursor(True) return True return QObject.event(self, event) - + def eventFilter(self, object, event): if event.type() == QEvent.FocusIn: self.__showCursor(True) @@ -319,7 +343,7 @@ def __move(self, pos): else: s = curve.sample(i) xData[i] = s.x() - yData[i] = s.y() + yData[i] = s.y() curve.setData(xData, yData) self.__showCursor(True) self.__plot.replot() @@ -335,10 +359,11 @@ def __showCursor(self, showIt): curve.directPaint(self.__selectedPoint, self.__selectedPoint) if showIt: symbol.setBrush(brush) - + def __shiftCurveCursor(self, up): - curves = [curve for curve in self.__plot.itemList() - if isinstance(curve, QwtPlotCurve)] + curves = [ + curve for curve in self.__plot.itemList() if isinstance(curve, QwtPlotCurve) + ] if not curves: return if self.__selectedCurve in curves: @@ -376,7 +401,7 @@ def __shiftPointCursor(self, up): class ScalePicker(QObject): clicked = Signal(int, float) - + def __init__(self, plot): QObject.__init__(self, plot) for axis_id in QwtPlot.AXES: @@ -385,7 +410,7 @@ def __init__(self, plot): scaleWidget.installEventFilter(self) def eventFilter(self, object, event): - if (event.type() == QEvent.MouseButtonPress): + if event.type() == QEvent.MouseButtonPress: self.__mouseClicked(object, event.pos()) return True return QObject.eventFilter(self, object, event) @@ -393,8 +418,12 @@ def eventFilter(self, object, event): def __mouseClicked(self, scale, pos): rect = self.__scaleRect(scale) margin = 10 - rect.setRect(rect.x() - margin, rect.y() - margin, - rect.width() + 2 * margin, rect.height() + 2 * margin) + rect.setRect( + rect.x() - margin, + rect.y() - margin, + rect.width() + 2 * margin, + rect.height() + 2 * margin, + ) if rect.contains(pos): value = 0.0 axis = -1 @@ -412,22 +441,24 @@ def __mouseClicked(self, scale, pos): value = sd.scaleMap().invTransform(pos.x()) axis = QwtPlot.xBottom self.clicked.emit(axis, value) - + def __scaleRect(self, scale): bld = scale.margin() mjt = scale.scaleDraw().tickLength(QwtScaleDiv.MajorTick) sbd = scale.startBorderDist() ebd = scale.endBorderDist() if scale.alignment() == QwtScaleDraw.LeftScale: - return QRect(scale.width() - bld - mjt, sbd, - mjt, scale.height() - sbd - ebd) - elif scale.alignment() == QwtScaleDraw.RightScale: - return QRect(bld, sbd,mjt, scale.height() - sbd - ebd) + return QRect( + scale.width() - bld - mjt, sbd, mjt, scale.height() - sbd - ebd + ) + elif scale.alignment() == QwtScaleDraw.RightScale: + return QRect(bld, sbd, mjt, scale.height() - sbd - ebd) elif scale.alignment() == QwtScaleDraw.BottomScale: return QRect(sbd, bld, scale.width() - sbd - ebd, mjt) elif scale.alignment() == QwtScaleDraw.TopScale: - return QRect(sbd, scale.height() - bld - mjt, - scale.width() - sbd - ebd, mjt) + return QRect( + sbd, scale.height() - bld - mjt, scale.width() - sbd - ebd, mjt + ) else: return QRect() @@ -441,15 +472,16 @@ def __init__(self, parent=None): plot = Plot() self.setCentralWidget(plot) plot.setWhatsThis( - 'An useless plot to demonstrate how to use event filtering.\n\n' - 'You can click on the color bar, the scales or move the slider.\n' - 'All points can be moved using the mouse or the keyboard.' - ) + "An useless plot to demonstrate how to use event filtering.\n\n" + "You can click on the color bar, the scales or move the slider.\n" + "All points can be moved using the mouse or the keyboard." + ) CanvasPicker(plot) scalePicker = ScalePicker(plot) scalePicker.clicked.connect(plot.insertCurve) -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + app = test_widget(EventFilterWindow, size=(540, 400)) diff --git a/qwt/tests/imageplot.py b/qwt/tests/image.py similarity index 62% rename from qwt/tests/imageplot.py rename to qwt/tests/image.py index 0acf00c..46eae75 100644 --- a/qwt/tests/imageplot.py +++ b/qwt/tests/image.py @@ -2,54 +2,69 @@ # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import numpy as np from qwt.qt.QtGui import QPen, qRgb from qwt.qt.QtCore import Qt -from qwt import (QwtPlot, QwtPlotMarker, QwtLegend, QwtPlotGrid, QwtPlotCurve, - QwtPlotItem, QwtText, QwtLegendData, QwtLinearColorMap, - QwtInterval, QwtScaleMap, toQImage) +from qwt import ( + QwtPlot, + QwtPlotMarker, + QwtLegend, + QwtPlotGrid, + QwtPlotCurve, + QwtPlotItem, + QwtText, + QwtLegendData, + QwtLinearColorMap, + QwtInterval, + QwtScaleMap, + toQImage, +) + def bytescale(data, cmin=None, cmax=None, high=255, low=0): - if ((hasattr(data, 'dtype') and data.dtype.char == np.uint8) - or (hasattr(data, 'typecode') and data.typecode == np.uint8) - ): + if (hasattr(data, "dtype") and data.dtype.char == np.uint8) or ( + hasattr(data, "typecode") and data.typecode == np.uint8 + ): return data high = high - low if cmin is None: cmin = min(np.ravel(data)) if cmax is None: cmax = max(np.ravel(data)) - scale = high * 1.0 / (cmax-cmin or 1) - bytedata = ((data*1.0-cmin)*scale + 0.4999).astype(np.uint8) + scale = high * 1.0 / (cmax - cmin or 1) + bytedata = ((data * 1.0 - cmin) * scale + 0.4999).astype(np.uint8) return bytedata + np.asarray(low).astype(np.uint8) + def linearX(nx, ny): - return np.repeat(np.arange(nx, typecode = np.float32)[:, np.newaxis], ny, -1) + return np.repeat(np.arange(nx, typecode=np.float32)[:, np.newaxis], ny, -1) + def linearY(nx, ny): - return np.repeat(np.arange(ny, typecode = np.float32)[np.newaxis, :], nx, 0) + return np.repeat(np.arange(ny, typecode=np.float32)[np.newaxis, :], nx, 0) + def square(n, min, max): - t = np.arange(min, max, float(max-min)/(n-1)) - #return outer(cos(t), sin(t)) - return np.cos(t)*np.sin(t)[:,np.newaxis] - + t = np.arange(min, max, float(max - min) / (n - 1)) + # return outer(cos(t), sin(t)) + return np.cos(t) * np.sin(t)[:, np.newaxis] + class PlotImage(QwtPlotItem): - def __init__(self, title = QwtText()): + def __init__(self, title=QwtText()): QwtPlotItem.__init__(self) self.setTitle(title) - self.setItemAttribute(QwtPlotItem.Legend); + self.setItemAttribute(QwtPlotItem.Legend) self.xyzs = None - - def setData(self, xyzs, xRange = None, yRange = None): + + def setData(self, xyzs, xRange=None, yRange=None): self.xyzs = xyzs shape = xyzs.shape if not xRange: @@ -61,10 +76,10 @@ def setData(self, xyzs, xRange = None, yRange = None): self.plot().setAxisScale(QwtPlot.xBottom, *xRange) self.yMap = QwtScaleMap(0, xyzs.shape[1], *yRange) self.plot().setAxisScale(QwtPlot.yLeft, *yRange) - + self.image = toQImage(bytescale(self.xyzs)).mirrored(False, True) for i in range(0, 256): - self.image.setColor(i, qRgb(i, 0, 255-i)) + self.image.setColor(i, qRgb(i, 0, 255 - i)) def updateLegend(self, legend): QwtPlotItem.updateLegend(self, legend) @@ -76,39 +91,40 @@ def draw(self, painter, xMap, yMap, rect): Calculate (x1, y1, x2, y2) so that it contains at least 1 pixel, and copy the visible region to scale it to the canvas. """ - assert(isinstance(self.plot(), QwtPlot)) - + assert isinstance(self.plot(), QwtPlot) + # calculate y1, y2 # the scanline order (index y) is inverted with respect to the y-axis y1 = y2 = self.image.height() - y1 *= (self.yMap.s2() - yMap.s2()) - y1 /= (self.yMap.s2() - self.yMap.s1()) - y1 = max(0, int(y1-0.5)) - y2 *= (self.yMap.s2() - yMap.s1()) - y2 /= (self.yMap.s2() - self.yMap.s1()) - y2 = min(self.image.height(), int(y2+0.5)) + y1 *= self.yMap.s2() - yMap.s2() + y1 /= self.yMap.s2() - self.yMap.s1() + y1 = max(0, int(y1 - 0.5)) + y2 *= self.yMap.s2() - yMap.s1() + y2 /= self.yMap.s2() - self.yMap.s1() + y2 = min(self.image.height(), int(y2 + 0.5)) # calculate x1, x2 -- the pixel order (index x) is normal x1 = x2 = self.image.width() - x1 *= (xMap.s1() - self.xMap.s1()) - x1 /= (self.xMap.s2() - self.xMap.s1()) - x1 = max(0, int(x1-0.5)) - x2 *= (xMap.s2() - self.xMap.s1()) - x2 /= (self.xMap.s2() - self.xMap.s1()) - x2 = min(self.image.width(), int(x2+0.5)) + x1 *= xMap.s1() - self.xMap.s1() + x1 /= self.xMap.s2() - self.xMap.s1() + x1 = max(0, int(x1 - 0.5)) + x2 *= xMap.s2() - self.xMap.s1() + x2 /= self.xMap.s2() - self.xMap.s1() + x2 = min(self.image.width(), int(x2 + 0.5)) # copy - image = self.image.copy(x1, y1, x2-x1, y2-y1) + image = self.image.copy(x1, y1, x2 - x1, y2 - y1) # zoom - image = image.scaled(int(xMap.p2()-xMap.p1()+1), - int(yMap.p1()-yMap.p2()+1)) + image = image.scaled( + int(xMap.p2() - xMap.p1() + 1), int(yMap.p1() - yMap.p2() + 1) + ) # draw painter.drawImage(int(xMap.p1()), int(yMap.p2()), image) - + class ImagePlot(QwtPlot): def __init__(self, *args): QwtPlot.__init__(self, *args) # set plot title - self.setTitle('ImagePlot') + self.setTitle("ImagePlot") # set plot layout self.plotLayout().setCanvasMargin(0) self.plotLayout().setAlignCanvasToScales(True) @@ -117,8 +133,8 @@ def __init__(self, *args): legend.setDefaultItemMode(QwtLegendData.Clickable) self.insertLegend(legend, QwtPlot.RightLegend) # set axis titles - self.setAxisTitle(QwtPlot.xBottom, 'time (s)') - self.setAxisTitle(QwtPlot.yLeft, 'frequency (Hz)') + self.setAxisTitle(QwtPlot.xBottom, "time (s)") + self.setAxisTitle(QwtPlot.yLeft, "frequency (Hz)") colorMap = QwtLinearColorMap(Qt.blue, Qt.red) interval = QwtInterval(-1, 1) @@ -128,16 +144,16 @@ def __init__(self, *args): self.axisWidget(QwtPlot.yRight).setColorMap(interval, colorMap) # calculate 3 NumPy arrays - x = np.arange(-2*np.pi, 2*np.pi, 0.01) - y = np.pi*np.sin(x) - z = 4*np.pi*np.cos(x)*np.cos(x)*np.sin(x) + x = np.arange(-2 * np.pi, 2 * np.pi, 0.01) + y = np.pi * np.sin(x) + z = 4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x) # attach a curve - curve = QwtPlotCurve('y = pi*sin(x)') + curve = QwtPlotCurve("y = pi*sin(x)") curve.attach(self) curve.setPen(QPen(Qt.green, 2)) curve.setData(x, y) # attach another curve - curve = QwtPlotCurve('y = 4*pi*sin(x)*cos(x)**2') + curve = QwtPlotCurve("y = 4*pi*sin(x)*cos(x)**2") curve.attach(self) curve.setPen(QPen(Qt.black, 2)) curve.setData(x, z) @@ -151,22 +167,25 @@ def __init__(self, *args): marker.setValue(0.0, 0.0) marker.setLineStyle(QwtPlotMarker.HLine) marker.setLabelAlignment(Qt.AlignRight | Qt.AlignTop) - marker.setLabel(QwtText('y = 0')) + marker.setLabel(QwtText("y = 0")) # attach a vertical marker at x = pi marker = QwtPlotMarker() marker.attach(self) marker.setValue(np.pi, 0.0) marker.setLineStyle(QwtPlotMarker.VLine) marker.setLabelAlignment(Qt.AlignRight | Qt.AlignBottom) - marker.setLabel(QwtText('x = pi')) + marker.setLabel(QwtText("x = pi")) # attach a plot image - plotImage = PlotImage('Image') + plotImage = PlotImage("Image") plotImage.attach(self) - plotImage.setData(square(512, -2*np.pi, 2*np.pi), - (-2*np.pi, 2*np.pi), (-2*np.pi, 2*np.pi)) + plotImage.setData( + square(512, -2 * np.pi, 2 * np.pi), + (-2 * np.pi, 2 * np.pi), + (-2 * np.pi, 2 * np.pi), + ) legend.clicked.connect(self.toggleVisibility) - + # replot self.replot() @@ -177,6 +196,7 @@ def toggleVisibility(self, plotItem, idx): self.replot() -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + app = test_widget(ImagePlot, size=(600, 400)) diff --git a/qwt/tests/logcurve.py b/qwt/tests/logcurve.py index 862e678..38f72b7 100644 --- a/qwt/tests/logcurve.py +++ b/qwt/tests/logcurve.py @@ -2,25 +2,26 @@ # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import numpy as np -np.seterr(all='raise') +np.seterr(all="raise") from qwt.qt.QtGui import QPen from qwt.qt.QtCore import Qt from qwt import QwtPlot, QwtPlotCurve, QwtLogScaleEngine -class LogPlot(QwtPlot): +class LogCurvePlot(QwtPlot): def __init__(self): - super(LogPlot, self).__init__( - 'LogCurveDemo.py (or how to handle -inf values)') + super(LogCurvePlot, self).__init__( + "LogCurveDemo.py (or how to handle -inf values)" + ) self.enableAxis(QwtPlot.xBottom) self.setAxisScaleEngine(QwtPlot.yLeft, QwtLogScaleEngine()) curve = QwtPlotCurve() @@ -30,11 +31,12 @@ def __init__(self): curve.setPen(pen) curve.attach(self) x = np.arange(0.0, 10.0, 0.1) - y = 10*np.cos(x)**2-.1 + y = 10 * np.cos(x) ** 2 - 0.1 curve.setData(x, y) self.replot() -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget - app = test_widget(LogPlot, size=(800, 500)) + + app = test_widget(LogCurvePlot, size=(800, 500)) diff --git a/qwt/tests/map.py b/qwt/tests/mapdemo.py similarity index 76% rename from qwt/tests/map.py rename to qwt/tests/mapdemo.py index 1cca95b..0f64d57 100644 --- a/qwt/tests/map.py +++ b/qwt/tests/mapdemo.py @@ -2,11 +2,11 @@ # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import random import time @@ -20,13 +20,13 @@ def standard_map(x, y, kappa): """provide one interate of the inital conditions (x, y) for the standard map with parameter kappa.""" - y_new = y-kappa*np.sin(2.0*np.pi*x) - x_new = x+y_new + y_new = y - kappa * np.sin(2.0 * np.pi * x) + x_new = x + y_new # bring back to [0,1.0]^2 - if( (x_new>1.0) or (x_new<0.0) ): - x_new = x_new - np.floor(x_new) - if( (y_new>1.0) or (y_new<0.0) ): - y_new = y_new - np.floor(y_new) + if (x_new > 1.0) or (x_new < 0.0): + x_new = x_new - np.floor(x_new) + if (y_new > 1.0) or (y_new < 0.0): + y_new = y_new - np.floor(y_new) return x_new, y_new @@ -37,7 +37,7 @@ def __init__(self, *args): self.plot.setTitle("A Simple Map Demonstration") self.plot.setCanvasBackground(Qt.white) self.plot.setAxisTitle(QwtPlot.xBottom, "x") - self.plot.setAxisTitle(QwtPlot.yLeft, "y") + self.plot.setAxisTitle(QwtPlot.yLeft, "y") self.plot.setAxisScale(QwtPlot.xBottom, 0.0, 1.0) self.plot.setAxisScale(QwtPlot.yLeft, 0.0, 1.0) self.setCentralWidget(self.plot) @@ -48,10 +48,9 @@ def __init__(self, *args): self.kappa = 0.2 self.curve = QwtPlotCurve("Map") self.curve.attach(self.plot) - self.curve.setSymbol(QwtSymbol(QwtSymbol.Ellipse, - QBrush(Qt.red), - QPen(Qt.blue), - QSize(5, 5))) + self.curve.setSymbol( + QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.red), QPen(Qt.blue), QSize(5, 5)) + ) self.curve.setPen(QPen(Qt.cyan)) toolBar = QToolBar(self) self.addToolBar(toolBar) @@ -60,7 +59,7 @@ def __init__(self, *args): self.tid = self.startTimer(self.ticks) self.timer_tic = None self.user_tic = None - self.system_tic = None + self.system_tic = None self.plot.replot() def setTicks(self, ticks): @@ -68,7 +67,7 @@ def setTicks(self, ticks): self.ticks = int(ticks) self.killTimer(self.tid) self.tid = self.startTimer(ticks) - + def resizeEvent(self, event): self.plot.resize(event.size()) self.plot.move(0, 0) @@ -84,21 +83,22 @@ def moreData(self): chunks = [] self.timer_toc = time.time() if self.timer_tic: - chunks.append("wall: %s s." % (self.timer_toc-self.timer_tic)) - print(' '.join(chunks)) + chunks.append("wall: %s s." % (self.timer_toc - self.timer_tic)) + print(" ".join(chunks)) self.timer_tic = self.timer_toc else: self.x, self.y = standard_map(self.x, self.y, self.kappa) self.xs[self.i] = self.x self.ys[self.i] = self.y self.i += 1 - + def timerEvent(self, e): self.moreData() - self.curve.setData(self.xs[:self.i], self.ys[:self.i]) + self.curve.setData(self.xs[: self.i], self.ys[: self.i]) self.plot.replot() -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + app = test_widget(MapDemo, size=(600, 600)) diff --git a/qwt/tests/multi.py b/qwt/tests/multidemo.py similarity index 80% rename from qwt/tests/multi.py rename to qwt/tests/multidemo.py index 74845d6..bcffeb7 100644 --- a/qwt/tests/multi.py +++ b/qwt/tests/multidemo.py @@ -2,11 +2,11 @@ # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import numpy as np @@ -17,30 +17,31 @@ def drange(start, stop, step): start, stop, step = float(start), float(stop), float(step) - size = int(round((stop-start)/step)) - result = [start]*size + size = int(round((stop - start) / step)) + result = [start] * size for i in range(size): - result[i] += i*step + result[i] += i * step return result - + + def lorentzian(x): - return 1.0/(1.0+(x-5.0)**2) + return 1.0 / (1.0 + (x - 5.0) ** 2) class MultiDemo(QWidget): def __init__(self, *args): QWidget.__init__(self, *args) - layout = QGridLayout(self) + layout = QGridLayout(self) # try to create a plot for SciPy arrays # make a curve and copy the data - numpy_curve = QwtPlotCurve('y = lorentzian(x)') + numpy_curve = QwtPlotCurve("y = lorentzian(x)") x = np.arange(0.0, 10.0, 0.01) y = lorentzian(x) numpy_curve.setData(x, y) # here, we know we can plot NumPy arrays numpy_plot = QwtPlot(self) - numpy_plot.setTitle('numpy array') + numpy_plot.setTitle("numpy array") numpy_plot.setCanvasBackground(Qt.white) numpy_plot.plotLayout().setCanvasMargin(0) numpy_plot.plotLayout().setAlignCanvasToScales(True) @@ -52,14 +53,14 @@ def __init__(self, *args): # create a plot widget for lists of Python floats list_plot = QwtPlot(self) - list_plot.setTitle('Python list') + list_plot.setTitle("Python list") list_plot.setCanvasBackground(Qt.white) list_plot.plotLayout().setCanvasMargin(0) list_plot.plotLayout().setAlignCanvasToScales(True) x = drange(0.0, 10.0, 0.01) y = [lorentzian(item) for item in x] # insert a curve, make it red and copy the lists - list_curve = QwtPlotCurve('y = lorentzian(x)') + list_curve = QwtPlotCurve("y = lorentzian(x)") list_curve.attach(list_plot) list_curve.setPen(QPen(Qt.red)) list_curve.setData(x, y) @@ -67,6 +68,7 @@ def __init__(self, *args): list_plot.replot() -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + app = test_widget(MultiDemo, size=(400, 300)) diff --git a/qwt/tests/simpleplot.py b/qwt/tests/simple.py similarity index 76% rename from qwt/tests/simpleplot.py rename to qwt/tests/simple.py index d8a3de2..1222c05 100644 --- a/qwt/tests/simpleplot.py +++ b/qwt/tests/simple.py @@ -2,11 +2,11 @@ # # Licensed under the terms of the PyQwt License # Copyright (C) 2003-2009 Gerard Vermeulen, for the original PyQwt example -# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further +# Copyright (c) 2015 Pierre Raybaut, for the PyQt5/PySide port and further # developments (e.g. ported to PythonQwt API) # (see LICENSE file for more details) -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import numpy as np @@ -18,21 +18,21 @@ class SimplePlot(QwtPlot): def __init__(self, *args): QwtPlot.__init__(self, *args) - self.setTitle('ReallySimpleDemo.py') + self.setTitle("ReallySimpleDemo.py") self.insertLegend(QwtLegend(), QwtPlot.RightLegend) - self.setAxisTitle(QwtPlot.xBottom, 'x -->') - self.setAxisTitle(QwtPlot.yLeft, 'y -->') + self.setAxisTitle(QwtPlot.xBottom, "x -->") + self.setAxisTitle(QwtPlot.yLeft, "y -->") self.enableAxis(self.xBottom) - self.setFlatStyle(False) + # self.setFlatStyle(False) # insert a few curves - cSin = QwtPlotCurve('y = sin(x)') + cSin = QwtPlotCurve("y = sin(x)") cSin.setPen(QPen(Qt.red)) cSin.attach(self) - cCos = QwtPlotCurve('y = cos(x)') + cCos = QwtPlotCurve("y = cos(x)") cCos.setPen(QPen(Qt.blue)) cCos.attach(self) - + # make a Numeric array for the horizontal data x = np.arange(0.0, 10.0, 0.1) @@ -42,7 +42,7 @@ def __init__(self, *args): # insert a horizontal marker at y = 0 mY = QwtPlotMarker() - mY.setLabel(QwtText('y = 0')) + mY.setLabel(QwtText("y = 0")) mY.setLabelAlignment(Qt.AlignRight | Qt.AlignTop) mY.setLineStyle(QwtPlotMarker.HLine) mY.setYValue(0.0) @@ -50,16 +50,17 @@ def __init__(self, *args): # insert a vertical marker at x = 2 pi mX = QwtPlotMarker() - mX.setLabel(QwtText('x = 2 pi')) + mX.setLabel(QwtText("x = 2 pi")) mX.setLabelAlignment(Qt.AlignRight | Qt.AlignTop) mX.setLineStyle(QwtPlotMarker.VLine) - mX.setXValue(2*np.pi) + mX.setXValue(2 * np.pi) mX.attach(self) # replot self.replot() -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + app = test_widget(SimplePlot, size=(800, 500)) diff --git a/qwt/tests/vertical.py b/qwt/tests/vertical.py index 43f3dc1..3f48251 100644 --- a/qwt/tests/vertical.py +++ b/qwt/tests/vertical.py @@ -6,7 +6,7 @@ """Simple plot without margins""" -SHOW = True # Show test in GUI-based test launcher +SHOW = True # Show test in GUI-based test launcher import numpy as np @@ -14,7 +14,8 @@ from qwt.qt.QtCore import Qt import os -if os.environ.get('USE_PYQWT5', False): + +if os.environ.get("USE_PYQWT5", False): USE_PYQWT5 = True from PyQt4.Qwt5 import QwtPlot, QwtPlotCurve, QwtPlotMarker, QwtText else: @@ -29,10 +30,10 @@ def __init__(self, parent=None): self.enableAxis(self.xTop, True) self.enableAxis(self.yRight, True) y = np.linspace(0, 10, 500) - curve1 = QwtPlotCurve('Test Curve 1') + curve1 = QwtPlotCurve("Test Curve 1") curve1.setData(np.sin(y), y) - curve2 = QwtPlotCurve('Test Curve 2') - curve2.setData(y**3, y) + curve2 = QwtPlotCurve("Test Curve 2") + curve2.setData(y ** 3, y) if USE_PYQWT5: # PyQwt curve2.setAxis(self.xTop, self.yRight) @@ -46,8 +47,10 @@ def __init__(self, parent=None): # PythonQwt curve2.setAxes(self.xTop, self.yRight) - for item, col, xa, ya in ((curve1, Qt.green, self.xBottom, self.yLeft), - (curve2, Qt.red, self.xTop, self.yRight)): + for item, col, xa, ya in ( + (curve1, Qt.green, self.xBottom, self.yLeft), + (curve2, Qt.red, self.xTop, self.yRight), + ): if not USE_PYQWT5: # PythonQwt item.setOrientation(Qt.Vertical) @@ -60,44 +63,46 @@ def __init__(self, parent=None): self.axisWidget(axis_id).setPalette(palette) ticks_font = self.axisFont(axis_id) self.setAxisFont(axis_id, ticks_font) - + self.marker = QwtPlotMarker() self.marker.setValue(0, 5) self.marker.attach(self) - + def resizeEvent(self, event): super(VerticalPlot, self).resizeEvent(event) self.show_layout_details() - + def show_layout_details(self): text = QwtText( - "plotLayout().canvasRect():\n%r\n\n" - "canvas().geometry():\n%r\n\n" - "plotLayout().scaleRect(QwtPlot.yLeft):\n%r\n\n" - "axisWidget(QwtPlot.yLeft).geometry():\n%r\n\n" - "plotLayout().scaleRect(QwtPlot.yRight):\n%r\n\n" - "axisWidget(QwtPlot.yRight).geometry():\n%r\n\n" - "plotLayout().scaleRect(QwtPlot.xBottom):\n%r\n\n" - "axisWidget(QwtPlot.xBottom).geometry():\n%r\n\n" - "plotLayout().scaleRect(QwtPlot.xTop):\n%r\n\n" - "axisWidget(QwtPlot.xTop).geometry():\n%r\n\n" - % (self.plotLayout().canvasRect().getCoords(), - self.canvas().geometry().getCoords(), - self.plotLayout().scaleRect(QwtPlot.yLeft).getCoords(), - self.axisWidget(QwtPlot.yLeft).geometry().getCoords(), - self.plotLayout().scaleRect(QwtPlot.yRight).getCoords(), - self.axisWidget(QwtPlot.yRight).geometry().getCoords(), - self.plotLayout().scaleRect(QwtPlot.xBottom).getCoords(), - self.axisWidget(QwtPlot.xBottom).geometry().getCoords(), - self.plotLayout().scaleRect(QwtPlot.xTop).getCoords(), - self.axisWidget(QwtPlot.xTop).geometry().getCoords(), - ) - ) - text.setFont(QFont('Courier New')) + "plotLayout().canvasRect():\n%r\n\n" + "canvas().geometry():\n%r\n\n" + "plotLayout().scaleRect(QwtPlot.yLeft):\n%r\n\n" + "axisWidget(QwtPlot.yLeft).geometry():\n%r\n\n" + "plotLayout().scaleRect(QwtPlot.yRight):\n%r\n\n" + "axisWidget(QwtPlot.yRight).geometry():\n%r\n\n" + "plotLayout().scaleRect(QwtPlot.xBottom):\n%r\n\n" + "axisWidget(QwtPlot.xBottom).geometry():\n%r\n\n" + "plotLayout().scaleRect(QwtPlot.xTop):\n%r\n\n" + "axisWidget(QwtPlot.xTop).geometry():\n%r\n\n" + % ( + self.plotLayout().canvasRect().getCoords(), + self.canvas().geometry().getCoords(), + self.plotLayout().scaleRect(QwtPlot.yLeft).getCoords(), + self.axisWidget(QwtPlot.yLeft).geometry().getCoords(), + self.plotLayout().scaleRect(QwtPlot.yRight).getCoords(), + self.axisWidget(QwtPlot.yRight).geometry().getCoords(), + self.plotLayout().scaleRect(QwtPlot.xBottom).getCoords(), + self.axisWidget(QwtPlot.xBottom).geometry().getCoords(), + self.plotLayout().scaleRect(QwtPlot.xTop).getCoords(), + self.axisWidget(QwtPlot.xTop).geometry().getCoords(), + ) + ) + text.setFont(QFont("Courier New")) text.setColor(Qt.blue) self.marker.setLabel(text) -if __name__ == '__main__': +if __name__ == "__main__": from qwt.tests import test_widget + app = test_widget(VerticalPlot, size=(300, 650)) diff --git a/run_test_launcher.bat b/run_test_launcher.bat new file mode 100644 index 0000000..49b4148 --- /dev/null +++ b/run_test_launcher.bat @@ -0,0 +1,18 @@ +@echo off + +setlocal +set PYTHONPATH=%cd% + +for /f %%f in ('dir /b c:\w*') do (call :test %%f) +pause + +exit /B %ERRORLEVEL% + +:test +set ENV=C:\%~1\scripts\env.bat +if exist %ENV% ( + echo ************************** Testing with %~1 ************************** + call %ENV% + python -m qwt.tests.__init__ + ) +exit /B 0 \ No newline at end of file diff --git a/basic_test.bat b/run_unattended_tests.bat similarity index 100% rename from basic_test.bat rename to run_unattended_tests.bat From 26be38a57fa6923f32090b9a3fec3fcee3129116 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 15 Aug 2020 16:11:50 +0200 Subject: [PATCH 139/421] Updated documentation --- CHANGELOG.md | 2 + README.md | 3 +- doc/examples/bode_demo.rst | 7 -- doc/examples/bodedemo.rst | 7 ++ doc/examples/cartesian.rst | 7 ++ doc/examples/cartesian_demo.rst | 7 -- doc/examples/cpu_plot.rst | 7 -- doc/examples/cpudemo.rst | 7 ++ doc/examples/curve_benchmark.rst | 7 -- doc/examples/curve_demo1.rst | 7 -- doc/examples/curve_styles.rst | 7 -- doc/examples/curvebenchmark1.rst | 7 ++ doc/examples/curvebenchmark2.rst | 7 ++ doc/examples/curvedemo1.rst | 7 ++ doc/examples/curvedemo2.rst | 7 ++ doc/examples/data.rst | 7 ++ doc/examples/data_demo.rst | 7 -- doc/examples/error_bar.rst | 7 -- doc/examples/errorbar.rst | 7 ++ doc/examples/event_filter_demo.rst | 7 -- doc/examples/eventfilter.rst | 7 ++ doc/examples/image.rst | 7 ++ doc/examples/image_plot_demo.rst | 7 -- doc/examples/index.rst | 30 +++--- doc/examples/logcurve.rst | 7 ++ doc/examples/map_demo.rst | 7 -- doc/examples/mapdemo.rst | 7 ++ doc/examples/multidemo.rst | 7 ++ doc/examples/really_simple_demo.rst | 7 -- doc/examples/simple.rst | 7 ++ doc/examples/vertical.rst | 7 ++ doc/images/QwtPlot_example.png | Bin 11529 -> 6383 bytes doc/images/symbol_path_example.png | Bin 6962 -> 5214 bytes doc/images/test_launcher.png | Bin 112341 -> 0 bytes doc/images/tests/BodeDemo.png | Bin 33343 -> 0 bytes doc/images/tests/CPUplot.png | Bin 32898 -> 0 bytes doc/images/tests/CartesianDemo.png | Bin 14765 -> 0 bytes doc/images/tests/CurveBenchmark.png | Bin 15595 -> 0 bytes doc/images/tests/CurveDemo1.png | Bin 13958 -> 0 bytes doc/images/tests/CurveStyles.png | Bin 32687 -> 0 bytes doc/images/tests/DataDemo.png | Bin 16540 -> 0 bytes doc/images/tests/ErrorBarDemo.png | Bin 11288 -> 0 bytes doc/images/tests/EventFilterDemo.png | Bin 15653 -> 0 bytes doc/images/tests/HistogramDemo.png | Bin 15798 -> 0 bytes doc/images/tests/ImagePlotDemo.png | Bin 25065 -> 0 bytes doc/images/tests/MapDemo.png | Bin 49963 -> 0 bytes doc/images/tests/ReallySimpleDemo.png | Bin 12798 -> 0 bytes doc/images/tests/__init__.png | Bin 27479 -> 0 bytes doc/installation.rst | 1 - doc/overview.rst | 29 ++++-- doc/plot_example.py | 25 +++++ doc/symbol_path_example.py | 53 +++++++++++ qwt/__init__.py | 102 +++++++++++++------- qwt/tests/__init__.py | 18 ++-- qwt/tests/data/testlauncher.png | Bin 0 -> 96546 bytes setup.py | 128 ++++++++++++++------------ 56 files changed, 379 insertions(+), 208 deletions(-) delete mode 100644 doc/examples/bode_demo.rst create mode 100644 doc/examples/bodedemo.rst create mode 100644 doc/examples/cartesian.rst delete mode 100644 doc/examples/cartesian_demo.rst delete mode 100644 doc/examples/cpu_plot.rst create mode 100644 doc/examples/cpudemo.rst delete mode 100644 doc/examples/curve_benchmark.rst delete mode 100644 doc/examples/curve_demo1.rst delete mode 100644 doc/examples/curve_styles.rst create mode 100644 doc/examples/curvebenchmark1.rst create mode 100644 doc/examples/curvebenchmark2.rst create mode 100644 doc/examples/curvedemo1.rst create mode 100644 doc/examples/curvedemo2.rst create mode 100644 doc/examples/data.rst delete mode 100644 doc/examples/data_demo.rst delete mode 100644 doc/examples/error_bar.rst create mode 100644 doc/examples/errorbar.rst delete mode 100644 doc/examples/event_filter_demo.rst create mode 100644 doc/examples/eventfilter.rst create mode 100644 doc/examples/image.rst delete mode 100644 doc/examples/image_plot_demo.rst create mode 100644 doc/examples/logcurve.rst delete mode 100644 doc/examples/map_demo.rst create mode 100644 doc/examples/mapdemo.rst create mode 100644 doc/examples/multidemo.rst delete mode 100644 doc/examples/really_simple_demo.rst create mode 100644 doc/examples/simple.rst create mode 100644 doc/examples/vertical.rst delete mode 100644 doc/images/test_launcher.png delete mode 100644 doc/images/tests/BodeDemo.png delete mode 100644 doc/images/tests/CPUplot.png delete mode 100644 doc/images/tests/CartesianDemo.png delete mode 100644 doc/images/tests/CurveBenchmark.png delete mode 100644 doc/images/tests/CurveDemo1.png delete mode 100644 doc/images/tests/CurveStyles.png delete mode 100644 doc/images/tests/DataDemo.png delete mode 100644 doc/images/tests/ErrorBarDemo.png delete mode 100644 doc/images/tests/EventFilterDemo.png delete mode 100644 doc/images/tests/HistogramDemo.png delete mode 100644 doc/images/tests/ImagePlotDemo.png delete mode 100644 doc/images/tests/MapDemo.png delete mode 100644 doc/images/tests/ReallySimpleDemo.png delete mode 100644 doc/images/tests/__init__.png create mode 100644 doc/plot_example.py create mode 100644 doc/symbol_path_example.py create mode 100644 qwt/tests/data/testlauncher.png diff --git a/CHANGELOG.md b/CHANGELOG.md index ac61ab6..9c0ef3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ ### Version 0.7.0 ### - Added new test launcher with screenshots (automatically generated) +- Removed `guidata` dependency thanks to the new specific GUI-based test launcher +- Updated documentation (added more examples, using automatically generated screenshots) - QwtPlot: added "flatStyle" option, a PythonQwt-exclusive feature improving default plot style (without margin, more compact and flat look) -- option is enabled by default diff --git a/README.md b/README.md index e3e12c3..9cdd746 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![download count](https://img.shields.io/conda/dn/conda-forge/PythonQwt.svg)](https://www.anaconda.com/download/) [![Documentation Status](https://readthedocs.org/projects/pythonqwt/badge/?version=latest)](https://pythonqwt.readthedocs.io/en/latest/?badge=latest) - + The `PythonQwt` project was initiated to solve -at least temporarily- the obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is @@ -70,7 +70,6 @@ for more details on API limitations when comparing to Qwt. - Python >=2.6 or Python >=3.2 - PyQt4 >=4.4 or PyQt5 >= 5.5 - NumPy >= 1.5 -- guidata >= 1.7 for the GUI-based test launcher ## Installation diff --git a/doc/examples/bode_demo.rst b/doc/examples/bode_demo.rst deleted file mode 100644 index ae3df46..0000000 --- a/doc/examples/bode_demo.rst +++ /dev/null @@ -1,7 +0,0 @@ -Bode demo -~~~~~~~~~ - -.. image:: /images/tests/BodeDemo.png - -.. literalinclude:: /../qwt/tests/BodeDemo.py - :start-after: SHOW diff --git a/doc/examples/bodedemo.rst b/doc/examples/bodedemo.rst new file mode 100644 index 0000000..2bdc851 --- /dev/null +++ b/doc/examples/bodedemo.rst @@ -0,0 +1,7 @@ +Bode demo +~~~~~~~~~ + +.. image:: /../qwt/tests/data/bodedemo.png + +.. literalinclude:: /../qwt/tests/bodedemo.py + :start-after: SHOW diff --git a/doc/examples/cartesian.rst b/doc/examples/cartesian.rst new file mode 100644 index 0000000..92f3fdc --- /dev/null +++ b/doc/examples/cartesian.rst @@ -0,0 +1,7 @@ +Cartesian demo +~~~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/cartesian.png + +.. literalinclude:: /../qwt/tests/cartesian.py + :start-after: SHOW diff --git a/doc/examples/cartesian_demo.rst b/doc/examples/cartesian_demo.rst deleted file mode 100644 index d9bb76b..0000000 --- a/doc/examples/cartesian_demo.rst +++ /dev/null @@ -1,7 +0,0 @@ -Cartesian demo -~~~~~~~~~~~~~~ - -.. image:: /images/tests/CartesianDemo.png - -.. literalinclude:: /../qwt/tests/CartesianDemo.py - :start-after: SHOW diff --git a/doc/examples/cpu_plot.rst b/doc/examples/cpu_plot.rst deleted file mode 100644 index 9229a4d..0000000 --- a/doc/examples/cpu_plot.rst +++ /dev/null @@ -1,7 +0,0 @@ -CPU plot demo -~~~~~~~~~~~~~ - -.. image:: /images/tests/CPUplot.png - -.. literalinclude:: /../qwt/tests/CPUplot.py - :start-after: SHOW diff --git a/doc/examples/cpudemo.rst b/doc/examples/cpudemo.rst new file mode 100644 index 0000000..dd284e5 --- /dev/null +++ b/doc/examples/cpudemo.rst @@ -0,0 +1,7 @@ +CPU plot demo +~~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/cpudemo.png + +.. literalinclude:: /../qwt/tests/cpudemo.py + :start-after: SHOW diff --git a/doc/examples/curve_benchmark.rst b/doc/examples/curve_benchmark.rst deleted file mode 100644 index 08c21fa..0000000 --- a/doc/examples/curve_benchmark.rst +++ /dev/null @@ -1,7 +0,0 @@ -Curve benchmark demo -~~~~~~~~~~~~~~~~~~~~ - -.. image:: /images/tests/CurveBenchmark.png - -.. literalinclude:: /../qwt/tests/CurveBenchmark.py - :start-after: SHOW diff --git a/doc/examples/curve_demo1.rst b/doc/examples/curve_demo1.rst deleted file mode 100644 index 3a13897..0000000 --- a/doc/examples/curve_demo1.rst +++ /dev/null @@ -1,7 +0,0 @@ -Curve demo 1 -~~~~~~~~~~~~ - -.. image:: /images/tests/CurveDemo1.png - -.. literalinclude:: /../qwt/tests/CurveDemo1.py - :start-after: SHOW diff --git a/doc/examples/curve_styles.rst b/doc/examples/curve_styles.rst deleted file mode 100644 index c43e08d..0000000 --- a/doc/examples/curve_styles.rst +++ /dev/null @@ -1,7 +0,0 @@ -Curve styles -~~~~~~~~~~~~ - -.. image:: /images/tests/CurveStyles.png - -.. literalinclude:: /../qwt/tests/CurveStyles.py - :start-after: SHOW diff --git a/doc/examples/curvebenchmark1.rst b/doc/examples/curvebenchmark1.rst new file mode 100644 index 0000000..ed59fde --- /dev/null +++ b/doc/examples/curvebenchmark1.rst @@ -0,0 +1,7 @@ +Curve benchmark demo 1 +~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/curvebenchmark1.png + +.. literalinclude:: /../qwt/tests/curvebenchmark1.py + :start-after: SHOW diff --git a/doc/examples/curvebenchmark2.rst b/doc/examples/curvebenchmark2.rst new file mode 100644 index 0000000..d631fd9 --- /dev/null +++ b/doc/examples/curvebenchmark2.rst @@ -0,0 +1,7 @@ +Curve benchmark demo 2 +~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/curvebenchmark2.png + +.. literalinclude:: /../qwt/tests/curvebenchmark2.py + :start-after: SHOW diff --git a/doc/examples/curvedemo1.rst b/doc/examples/curvedemo1.rst new file mode 100644 index 0000000..977fe3a --- /dev/null +++ b/doc/examples/curvedemo1.rst @@ -0,0 +1,7 @@ +Curve demo 1 +~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/curvedemo1.png + +.. literalinclude:: /../qwt/tests/curvedemo1.py + :start-after: SHOW diff --git a/doc/examples/curvedemo2.rst b/doc/examples/curvedemo2.rst new file mode 100644 index 0000000..06225a8 --- /dev/null +++ b/doc/examples/curvedemo2.rst @@ -0,0 +1,7 @@ +Curve demo 2 +~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/curvedemo2.png + +.. literalinclude:: /../qwt/tests/curvedemo2.py + :start-after: SHOW diff --git a/doc/examples/data.rst b/doc/examples/data.rst new file mode 100644 index 0000000..872fc01 --- /dev/null +++ b/doc/examples/data.rst @@ -0,0 +1,7 @@ +Data demo +~~~~~~~~~ + +.. image:: /../qwt/tests/data/data.png + +.. literalinclude:: /../qwt/tests/data.py + :start-after: SHOW diff --git a/doc/examples/data_demo.rst b/doc/examples/data_demo.rst deleted file mode 100644 index 7f7cb8a..0000000 --- a/doc/examples/data_demo.rst +++ /dev/null @@ -1,7 +0,0 @@ -Data demo -~~~~~~~~~ - -.. image:: /images/tests/DataDemo.png - -.. literalinclude:: /../qwt/tests/DataDemo.py - :start-after: SHOW diff --git a/doc/examples/error_bar.rst b/doc/examples/error_bar.rst deleted file mode 100644 index a29fd26..0000000 --- a/doc/examples/error_bar.rst +++ /dev/null @@ -1,7 +0,0 @@ -Error bar demo -~~~~~~~~~~~~~~ - -.. image:: /images/tests/ErrorBarDemo.png - -.. literalinclude:: /../qwt/tests/ErrorBarDemo.py - :start-after: SHOW diff --git a/doc/examples/errorbar.rst b/doc/examples/errorbar.rst new file mode 100644 index 0000000..2bad552 --- /dev/null +++ b/doc/examples/errorbar.rst @@ -0,0 +1,7 @@ +Error bar demo +~~~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/errorbar.png + +.. literalinclude:: /../qwt/tests/errorbar.py + :start-after: SHOW diff --git a/doc/examples/event_filter_demo.rst b/doc/examples/event_filter_demo.rst deleted file mode 100644 index cbcb8e7..0000000 --- a/doc/examples/event_filter_demo.rst +++ /dev/null @@ -1,7 +0,0 @@ -Event filter demo -~~~~~~~~~~~~~~~~~ - -.. image:: /images/tests/EventFilterDemo.png - -.. literalinclude:: /../qwt/tests/EventFilterDemo.py - :start-after: SHOW diff --git a/doc/examples/eventfilter.rst b/doc/examples/eventfilter.rst new file mode 100644 index 0000000..8e358c6 --- /dev/null +++ b/doc/examples/eventfilter.rst @@ -0,0 +1,7 @@ +Event filter demo +~~~~~~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/eventfilter.png + +.. literalinclude:: /../qwt/tests/eventfilter.py + :start-after: SHOW diff --git a/doc/examples/image.rst b/doc/examples/image.rst new file mode 100644 index 0000000..18cd0e5 --- /dev/null +++ b/doc/examples/image.rst @@ -0,0 +1,7 @@ +Image plot demo +~~~~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/image.png + +.. literalinclude:: /../qwt/tests/image.py + :start-after: SHOW diff --git a/doc/examples/image_plot_demo.rst b/doc/examples/image_plot_demo.rst deleted file mode 100644 index 339f71e..0000000 --- a/doc/examples/image_plot_demo.rst +++ /dev/null @@ -1,7 +0,0 @@ -Image plot demo -~~~~~~~~~~~~~~~ - -.. image:: /images/tests/ImagePlotDemo.png - -.. literalinclude:: /../qwt/tests/ImagePlotDemo.py - :start-after: SHOW diff --git a/doc/examples/index.rst b/doc/examples/index.rst index 79e11cc..5c38e12 100644 --- a/doc/examples/index.rst +++ b/doc/examples/index.rst @@ -13,7 +13,7 @@ A lot of examples are available in the `qwt.test` module :: The two lines above execute the `PythonQwt` test launcher: -.. image:: /images/tests/__init__.png +.. image:: /../qwt/tests/data/testlauncher.png Tests @@ -24,15 +24,19 @@ Here are some examples from the `qwt.test` module: .. toctree:: :maxdepth: 2 - bode_demo - cartesian_demo - cpu_plot - curve_benchmark - curve_demo1 - curve_styles - data_demo - error_bar - event_filter_demo - image_plot_demo - map_demo - really_simple_demo + bodedemo + cartesian + cpudemo + curvebenchmark1 + curvebenchmark2 + curvedemo1 + curvedemo2 + data + errorbar + eventfilter + image + logcurve + mapdemo + multidemo + simple + vertical diff --git a/doc/examples/logcurve.rst b/doc/examples/logcurve.rst new file mode 100644 index 0000000..c6f5d1d --- /dev/null +++ b/doc/examples/logcurve.rst @@ -0,0 +1,7 @@ +Log curve plot demo +~~~~~~~~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/logcurve.png + +.. literalinclude:: /../qwt/tests/logcurve.py + :start-after: SHOW diff --git a/doc/examples/map_demo.rst b/doc/examples/map_demo.rst deleted file mode 100644 index 9745cf5..0000000 --- a/doc/examples/map_demo.rst +++ /dev/null @@ -1,7 +0,0 @@ -Map demo -~~~~~~~~ - -.. image:: /images/tests/MapDemo.png - -.. literalinclude:: /../qwt/tests/MapDemo.py - :start-after: SHOW diff --git a/doc/examples/mapdemo.rst b/doc/examples/mapdemo.rst new file mode 100644 index 0000000..5a96e2b --- /dev/null +++ b/doc/examples/mapdemo.rst @@ -0,0 +1,7 @@ +Map demo +~~~~~~~~ + +.. image:: /../qwt/tests/data/mapdemo.png + +.. literalinclude:: /../qwt/tests/mapdemo.py + :start-after: SHOW diff --git a/doc/examples/multidemo.rst b/doc/examples/multidemo.rst new file mode 100644 index 0000000..02a9613 --- /dev/null +++ b/doc/examples/multidemo.rst @@ -0,0 +1,7 @@ +Multi demo +~~~~~~~~~~ + +.. image:: /../qwt/tests/data/multidemo.png + +.. literalinclude:: /../qwt/tests/multidemo.py + :start-after: SHOW diff --git a/doc/examples/really_simple_demo.rst b/doc/examples/really_simple_demo.rst deleted file mode 100644 index 5fb54a9..0000000 --- a/doc/examples/really_simple_demo.rst +++ /dev/null @@ -1,7 +0,0 @@ -Really simple demo -~~~~~~~~~~~~~~~~~~ - -.. image:: /images/tests/ReallySimpleDemo.png - -.. literalinclude:: /../qwt/tests/ReallySimpleDemo.py - :start-after: SHOW diff --git a/doc/examples/simple.rst b/doc/examples/simple.rst new file mode 100644 index 0000000..11ebc94 --- /dev/null +++ b/doc/examples/simple.rst @@ -0,0 +1,7 @@ +Really simple demo +~~~~~~~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/simple.png + +.. literalinclude:: /../qwt/tests/simple.py + :start-after: SHOW diff --git a/doc/examples/vertical.rst b/doc/examples/vertical.rst new file mode 100644 index 0000000..96c971b --- /dev/null +++ b/doc/examples/vertical.rst @@ -0,0 +1,7 @@ +Vertical plot demo +~~~~~~~~~~~~~~~~~~ + +.. image:: /../qwt/tests/data/vertical.png + +.. literalinclude:: /../qwt/tests/vertical.py + :start-after: SHOW diff --git a/doc/images/QwtPlot_example.png b/doc/images/QwtPlot_example.png index 08e967f23fa2555ca64075efcf05f139082feb20..b0db19f3d31111442fe5748e752ade561638b076 100644 GIT binary patch literal 6383 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 NF*CBnSK-{^{|^YXyYc`4 literal 11529 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 P=YlR8T{bK+aJ&CM1Hy06 diff --git a/doc/images/test_launcher.png b/doc/images/test_launcher.png deleted file mode 100644 index 44f7cb59299cdc1e25e99034be066f475399b514..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112341 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 diff --git a/doc/images/tests/BodeDemo.png b/doc/images/tests/BodeDemo.png deleted file mode 100644 index 6d4e06231981f5f0609365615b25b6860f871765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33343 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�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

}X$fkiSo7!x#Yl5u3vk^PXCKS$iv}IA)O89QG9g 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 IV*}s+1rDa%$N&HU diff --git a/doc/images/tests/CartesianDemo.png b/doc/images/tests/CartesianDemo.png deleted file mode 100644 index d9536edb01fb528b055d11e2631a43e08e03a501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14765 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 a_|Ju0+)OLK1wOIFQdQDYtdxHp^8Wxk@;zbz diff --git a/doc/images/tests/CurveBenchmark.png b/doc/images/tests/CurveBenchmark.png deleted file mode 100644 index bc861406376b7c1cb541bda01f84547ba222fa60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15595 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 NUobgee%AT+{{g9MFBt#; diff --git a/doc/images/tests/DataDemo.png b/doc/images/tests/DataDemo.png deleted file mode 100644 index 131905ff58da69f1688f453074e9e85aeb2da269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16540 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 diff --git a/doc/images/tests/ErrorBarDemo.png b/doc/images/tests/ErrorBarDemo.png deleted file mode 100644 index e192a14306212d54c7873c627d2a77626b0fd36d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11288 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 z 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∾lcthkmB`HDu6uV1Bg!F)kn>?A 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φY`6f@2g5U-F;b5qtc-P7ccWgYRX<7jmlg68{5m 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 GEB^&B{GT%b diff --git a/doc/images/tests/MapDemo.png b/doc/images/tests/MapDemo.png deleted file mode 100644 index ce7aa7bb849ad1782ff211e177f53ab93f23fe99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49963 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%0D_M|Rk5e!`upGi`*(U4 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 diff --git a/doc/images/tests/ReallySimpleDemo.png b/doc/images/tests/ReallySimpleDemo.png deleted file mode 100644 index 70096401020bd26cf1e5448b739ae6b7a2803fc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12798 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%0Ak;nZ(&fQjP$M;$ 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 PdTO9+qEn=GBlQ0O<+5%5 diff --git a/doc/installation.rst b/doc/installation.rst index ade7c33..88e42ce 100644 --- a/doc/installation.rst +++ b/doc/installation.rst @@ -8,7 +8,6 @@ Requirements: * Python 2.x (x>=6) or 3.x (x>=2) * PyQt4 4.x (x>=3 ; recommended x>=4) or PyQt5 5.x (x>=5) * NumPy 1.x (x>=5) - * guidata >=v1.7 for the test launcher * Sphinx 1.x (x>=1) for documentation generation Installation diff --git a/doc/overview.rst b/doc/overview.rst index d950ab0..7e5be69 100644 --- a/doc/overview.rst +++ b/doc/overview.rst @@ -7,25 +7,37 @@ which is no longer maintained. The idea was to translate the original Qwt C++ code to Python and then to optimize some parts of the code by writing new modules based on NumPy and other libraries. -The ``PythonQwt`` package consists of a single Python package named -`qwt` and of a few other files (examples, doc, ...). - Overview ======== +The ``PythonQwt`` package consists of a single Python package named +`qwt` and of a few other files (examples, doc, ...): + + - The subpackage `qwt.qt` handles compatibility features between PyQt4, PyQt5 and PySide + (source code strongly inspired from the Spyder project). + + - The subpackage `qwt.tests` contains the PythonQwt unit tests: + + - 75% were directly adapted from Qwt/C++ demos (Bode demo, cartesian demo, etc.). + + - 25% were written specifically for PythonQwt. + + - The test launcher is an exclusive PythonQwt feature. + The `qwt` package is a pure Python implementation of `Qwt` C++ library with the following limitations. The following `Qwt` classes won't be reimplemented in `qwt` because more -powerful features already exist in `guiqwt`: `QwtPlotZoomer`, +powerful features already exist in `guiqwt` (and in the forthcoming `plotpy` library, +resulting of the merge of `guidata` and `guiqwt`): `QwtPlotZoomer`, `QwtCounter`, `QwtEventPattern`, `QwtPicker`, `QwtPlotPicker`. Only the following plot items are currently implemented in `qwt` (the -only plot items needed by `guiqwt`): `QwtPlotItem` (base class), +only plot items needed by `guiqwt` and `plotpy`): `QwtPlotItem` (base class), `QwtPlotItem`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`. The `HistogramItem` object implemented in PyQwt's HistogramDemo.py is not -available here (a similar item is already implemented in `guiqwt`). As a +available here (a similar item is already implemented in `guiqwt`/`plotpy`). As a consequence, the following classes are not implemented: `QwtPlotHistogram`, `QwtIntervalSeriesData`, `QwtIntervalSample`. @@ -36,8 +48,7 @@ irrelevant with Python and NumPy: `QwtCPointerData` (as a consequence, method The following sample data type objects are not implemented as they seemed quite specific: `QwtSetSample`, `QwtOHLCSample`. For similar reasons, the `QwtPointPolar` class and the following sample iterator objects are not -implemented: `QwtSetSeriesData`, `QwtTradingChartData` and -`QwtPoint3DSeriesData`. +implemented: `QwtSetSeriesData`, `QwtTradingChartData` and `QwtPoint3DSeriesData`. The following classes are not implemented because they seem inappropriate in the Python/NumPy context: `QwtArraySeriesData`, `QwtPointSeriesData`, @@ -61,7 +72,7 @@ entire curve is still painted (in other words, when working with large amount of data, there is no performance gain when zooming in). The curve fitter feature is not implemented because powerful curve fitting -features are already implemented in `guiqwt`. +features are already implemented in `guiqwt`/`plotpy`. Other API compatibility issues with `Qwt`: diff --git a/doc/plot_example.py b/doc/plot_example.py new file mode 100644 index 0000000..f7cd031 --- /dev/null +++ b/doc/plot_example.py @@ -0,0 +1,25 @@ +from qwt.qt.QtGui import QApplication +from qwt import QwtPlot, QwtPlotCurve +import numpy as np +import os.path as osp + +app = QApplication([]) + +x = np.linspace(-10, 10, 500) +y1, y2 = np.cos(x), np.sin(x) + +my_plot = QwtPlot("Two curves") +curve1, curve2 = QwtPlotCurve("Curve 1"), QwtPlotCurve("Curve 2") +curve1.setData(x, y1) +curve2.setData(x, y2) +curve1.attach(my_plot) +curve2.attach(my_plot) +my_plot.resize(600, 300) +my_plot.replot() +my_plot.show() + +my_plot.grab().save( + osp.join(osp.abspath(osp.dirname(__file__)), "images", "QwtPlot_example.png") +) + +app.exec_() diff --git a/doc/symbol_path_example.py b/doc/symbol_path_example.py new file mode 100644 index 0000000..236ad55 --- /dev/null +++ b/doc/symbol_path_example.py @@ -0,0 +1,53 @@ +from qwt.qt.QtGui import QApplication, QPen, QPainterPath, QTransform +from qwt.qt.QtCore import Qt, QPointF +from qwt import QwtPlot, QwtPlotCurve, QwtSymbol +import numpy as np +import os.path as osp + +app = QApplication([]) + +# --- Construct custom symbol --- + +path = QPainterPath() +path.moveTo(0, 8) +path.lineTo(0, 5) +path.lineTo(-3, 5) +path.lineTo(0, 0) +path.lineTo(3, 5) +path.lineTo(0, 5) + +transform = QTransform() +transform.rotate(-30.0) +path = transform.map(path) + +pen = QPen(Qt.black, 2) +pen.setJoinStyle(Qt.MiterJoin) + +symbol = QwtSymbol() +symbol.setPen(pen) +symbol.setBrush(Qt.red) +symbol.setPath(path) +symbol.setPinPoint(QPointF(0.0, 0.0)) +symbol.setSize(10, 14) + +# --- Test it within a simple plot --- + +curve = QwtPlotCurve() +curve_pen = QPen(Qt.blue) +curve_pen.setStyle(Qt.DotLine) +curve.setPen(curve_pen) +curve.setSymbol(symbol) +x = np.linspace(0, 10, 10) +curve.setData(x, np.sin(x)) + +plot = QwtPlot() +curve.attach(plot) +plot.resize(600, 300) +plot.replot() +plot.show() + +plot.grab().save( + osp.join(osp.abspath(osp.dirname(__file__)), "images", "symbol_path_example.png") +) + +app.exec_() diff --git a/qwt/__init__.py b/qwt/__init__.py index 24c3b81..573eaa2 100644 --- a/qwt/__init__.py +++ b/qwt/__init__.py @@ -17,7 +17,7 @@ It consists of a single Python package named `qwt` which is a pure Python implementation of Qwt C++ library with some limitations. -.. image:: images/test_launcher.png +.. image:: /../qwt/tests/data/testlauncher.png External resources: * Python Package Index: `PyPI`_ @@ -28,8 +28,8 @@ .. _GitHubPage: http://pierreraybaut.github.io/PythonQwt .. _GitHub: https://github.com/PierreRaybaut/PythonQwt """ -__version__ = '0.7.0' -QWT_VERSION_STR = '6.1.5' +__version__ = "0.7.0" +QWT_VERSION_STR = "6.1.5" import warnings @@ -54,8 +54,12 @@ from .scale_draw import QwtAbstractScaleDraw from .painter import QwtPainter -from .plot_series import (QwtSeriesData, QwtPointArrayData, QwtSeriesStore, - QwtPlotSeriesItem) +from .plot_series import ( + QwtSeriesData, + QwtPointArrayData, + QwtSeriesStore, + QwtPlotSeriesItem, +) from .plot_renderer import QwtPlotRenderer @@ -69,63 +73,97 @@ # Remove deprecated QwtPlotCanvas.invalidatePaintCache (replaced by replot) ## ============================================================================ class QwtDoubleInterval(QwtInterval): - def __init__(self, minValue=0., maxValue=-1., borderFlags=None): - warnings.warn("`QwtDoubleInterval` has been removed in Qwt6: "\ - "please use `QwtInterval` instead", RuntimeWarning) + def __init__(self, minValue=0.0, maxValue=-1.0, borderFlags=None): + warnings.warn( + "`QwtDoubleInterval` has been removed in Qwt6: " + "please use `QwtInterval` instead", + RuntimeWarning, + ) super(QwtDoubleInterval, self).__init__(minValue, maxValue, borderFlags) + + ## ============================================================================ class QwtLog10ScaleEngine(QwtLogScaleEngine): def __init__(self): - warnings.warn("`QwtLog10ScaleEngine` has been removed in Qwt6: "\ - "please use `QwtLogScaleEngine` instead", - RuntimeWarning) + warnings.warn( + "`QwtLog10ScaleEngine` has been removed in Qwt6: " + "please use `QwtLogScaleEngine` instead", + RuntimeWarning, + ) super(QwtLog10ScaleEngine, self).__init__(10) + + ## ============================================================================ class QwtPlotPrintFilter(object): def __init__(self): - raise NotImplementedError("`QwtPlotPrintFilter` has been removed in Qwt6: "\ - "please rely on `QwtPlotRenderer` instead") + raise NotImplementedError( + "`QwtPlotPrintFilter` has been removed in Qwt6: " + "please rely on `QwtPlotRenderer` instead" + ) + + ## ============================================================================ class QwtPlotCurve(QPC): @property def Yfx(self): - raise NotImplementedError("`Yfx` attribute has been removed "\ - "(curve types are no longer implemented in Qwt6)") + raise NotImplementedError( + "`Yfx` attribute has been removed " + "(curve types are no longer implemented in Qwt6)" + ) + @property def Xfy(self): - raise NotImplementedError("`Yfx` attribute has been removed "\ - "(curve types are no longer implemented in Qwt6)") + raise NotImplementedError( + "`Yfx` attribute has been removed " + "(curve types are no longer implemented in Qwt6)" + ) + + ## ============================================================================ class QwtSymbol(QSbl): def draw(self, painter, *args): - warnings.warn("`draw` has been removed in Qwt6: "\ - "please rely on `drawSymbol` and `drawSymbols` instead", - RuntimeWarning) + warnings.warn( + "`draw` has been removed in Qwt6: " + "please rely on `drawSymbol` and `drawSymbols` instead", + RuntimeWarning, + ) from .qt.QtCore import QPointF + if len(args) == 2: self.drawSymbols(painter, [QPointF(*args)]) else: self.drawSymbol(painter, *args) + + ## ============================================================================ class QwtPlotGrid(QPG): def majPen(self): - warnings.warn("`majPen` has been removed in Qwt6: "\ - "please use `majorPen` instead", - RuntimeWarning) + warnings.warn( + "`majPen` has been removed in Qwt6: " "please use `majorPen` instead", + RuntimeWarning, + ) return self.majorPen() + def minPen(self): - warnings.warn("`minPen` has been removed in Qwt6: "\ - "please use `minorPen` instead", - RuntimeWarning) + warnings.warn( + "`minPen` has been removed in Qwt6: " "please use `minorPen` instead", + RuntimeWarning, + ) return self.minorPen() + def setMajPen(self, *args): - warnings.warn("`setMajPen` has been removed in Qwt6: "\ - "please use `setMajorPen` instead", - RuntimeWarning) + warnings.warn( + "`setMajPen` has been removed in Qwt6: " "please use `setMajorPen` instead", + RuntimeWarning, + ) return self.setMajorPen(*args) + def setMinPen(self, *args): - warnings.warn("`setMinPen` has been removed in Qwt6: "\ - "please use `setMinorPen` instead", - RuntimeWarning) + warnings.warn( + "`setMinPen` has been removed in Qwt6: " "please use `setMinorPen` instead", + RuntimeWarning, + ) return self.setMinorPen(*args) + + ## ============================================================================ diff --git a/qwt/tests/__init__.py b/qwt/tests/__init__.py index ebdafff..7caa229 100644 --- a/qwt/tests/__init__.py +++ b/qwt/tests/__init__.py @@ -92,6 +92,7 @@ def __init__(self, parent=None): super(TestLauncher, self).__init__(parent) from qwt import __version__ + self.setObjectName("TestLauncher") self.setWindowIcon(self.get_std_icon("FileDialogListView")) self.setWindowTitle("PythonQwt %s - Test Launcher" % __version__) self.setCentralWidget(QWidget()) @@ -173,14 +174,15 @@ def about(self): def run(wait=True): """Run PythonQwt tests or test launcher (requires `guidata`)""" - if os.environ.get("TEST_UNATTENDED") is None: - from qwt.qt.QtGui import QApplication - - app = QApplication([]) - launcher = TestLauncher() - launcher.show() - app.exec_() - else: + app = QApplication([]) + launcher = TestLauncher() + launcher.show() + unattended = os.environ.get("TEST_UNATTENDED") is not None + if unattended: + QTimer.singleShot(100, lambda: take_screenshot(launcher)) + app.exec_() + launcher.close() + if unattended: run_all_tests(wait=wait) diff --git a/qwt/tests/data/testlauncher.png b/qwt/tests/data/testlauncher.png new file mode 100644 index 0000000000000000000000000000000000000000..29d32cfeb2d44a348d5fe898fd6f705366eb7c2e GIT binary patch literal 96546 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 z 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 MSxF_RdN&FCKTzqAg#Z8m literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py index 144d5af..ce20526 100644 --- a/setup.py +++ b/setup.py @@ -23,16 +23,16 @@ import setuptools # analysis:ignore from distutils.core import setup -LIBNAME = 'PythonQwt' -PACKAGE_NAME = 'qwt' +LIBNAME = "PythonQwt" +PACKAGE_NAME = "qwt" from qwt import __version__ as version -DESCRIPTION = 'Qt plotting widgets for Python' +DESCRIPTION = "Qt plotting widgets for Python" LONG_DESCRIPTION = """\ PythonQwt: Qt plotting widgets for Python ========================================= -.. image:: https://raw.githubusercontent.com/PierreRaybaut/PythonQwt/master/doc/images/panorama.png +.. image:: https://raw.githubusercontent.com/PierreRaybaut/PythonQwt/master/qwt/tests/data/testlauncher.png The ``PythonQwt`` package is a 2D-data plotting library using Qt graphical user interfaces for the Python programming language. It is compatible with @@ -58,100 +58,110 @@ .. _PDF: https://pythonqwt.readthedocs.io/_/downloads/en/latest/pdf/ .. _changelog: https://github.com/PierreRaybaut/PythonQwt/blob/master/CHANGELOG.md """ -KEYWORDS = '' +KEYWORDS = "" CLASSIFIERS = [] -if 'beta' in version or 'b' in version: - CLASSIFIERS += ['Development Status :: 4 - Beta'] -elif 'alpha' in version or 'a' in version: - CLASSIFIERS += ['Development Status :: 3 - Alpha'] +if "beta" in version or "b" in version: + CLASSIFIERS += ["Development Status :: 4 - Beta"] +elif "alpha" in version or "a" in version: + CLASSIFIERS += ["Development Status :: 3 - Alpha"] else: - CLASSIFIERS += ['Development Status :: 5 - Production/Stable'] + CLASSIFIERS += ["Development Status :: 5 - Production/Stable"] def get_package_data(name, extlist): """Return data files for package *name* with extensions in *extlist*""" flist = [] # Workaround to replace os.path.relpath (not available until Python 2.6): - offset = len(name)+len(os.pathsep) + offset = len(name) + len(os.pathsep) for dirpath, _dirnames, filenames in os.walk(name): for fname in filenames: - if not fname.startswith('.') and osp.splitext(fname)[1] in extlist: + if not fname.startswith(".") and osp.splitext(fname)[1] in extlist: flist.append(osp.join(dirpath, fname)[offset:]) return flist + def get_subpackages(name): """Return subpackages of package *name*""" splist = [] for dirpath, _dirnames, _filenames in os.walk(name): - if osp.isfile(osp.join(dirpath, '__init__.py')): + if osp.isfile(osp.join(dirpath, "__init__.py")): splist.append(".".join(dirpath.split(os.sep))) return splist + def build_chm_doc(libname): """Return CHM documentation file (on Windows only), which is copied under {PythonInstallDir}\Doc, hence allowing Spyder to add an entry for opening package documentation in "Help" menu. This has no effect on a source distribution.""" - args = ''.join(sys.argv) - if os.name == 'nt' and ('bdist' in args or 'build' in args): + args = "".join(sys.argv) + if os.name == "nt" and ("bdist" in args or "build" in args): try: import sphinx # analysis:ignore except ImportError: - print('Warning: `sphinx` is required to build documentation', - file=sys.stderr) + print( + "Warning: `sphinx` is required to build documentation", file=sys.stderr + ) return - hhc_base = r'C:\Program Files%s\HTML Help Workshop\hhc.exe' - for hhc_exe in (hhc_base % '', hhc_base % ' (x86)'): + hhc_base = r"C:\Program Files%s\HTML Help Workshop\hhc.exe" + for hhc_exe in (hhc_base % "", hhc_base % " (x86)"): if osp.isfile(hhc_exe): break else: - print('Warning: `HTML Help Workshop` is required to build CHM '\ - 'documentation file', file=sys.stderr) + print( + "Warning: `HTML Help Workshop` is required to build CHM " + "documentation file", + file=sys.stderr, + ) return - doctmp_dir = 'doctmp' - subprocess.call('sphinx-build -b htmlhelp doc %s' % doctmp_dir, - shell=True) + doctmp_dir = "doctmp" + subprocess.call("sphinx-build -b htmlhelp doc %s" % doctmp_dir, shell=True) atexit.register(shutil.rmtree, osp.abspath(doctmp_dir)) - fname = osp.abspath(osp.join(doctmp_dir, '%s.chm' % libname)) + fname = osp.abspath(osp.join(doctmp_dir, "%s.chm" % libname)) subprocess.call('"%s" %s' % (hhc_exe, fname), shell=True) if osp.isfile(fname): return fname else: - print('Warning: CHM building process failed', file=sys.stderr) + print("Warning: CHM building process failed", file=sys.stderr) + CHM_DOC = build_chm_doc(LIBNAME) -setup(name=LIBNAME, version=version, - description=DESCRIPTION, long_description=LONG_DESCRIPTION, - packages=get_subpackages(PACKAGE_NAME), - package_data={PACKAGE_NAME: - get_package_data(PACKAGE_NAME, ('.png', '.svg', '.mo'))}, - data_files=[(r'Doc', [CHM_DOC])] if CHM_DOC else [], - install_requires=["NumPy>=1.5"], - extras_require = { - 'Doc': ["Sphinx>=1.1"], - 'Tests': ["guidata>=1.7.0"], - }, - entry_points={'gui_scripts': - ['PythonQwt-tests-py%d = qwt.tests:run [Tests]'\ - % sys.version_info.major,]}, - author = "Pierre Raybaut", - author_email = 'pierre.raybaut@gmail.com', - url = 'https://github.com/PierreRaybaut/%s' % LIBNAME, - platforms = 'Any', - classifiers=CLASSIFIERS + [ - 'License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)', - 'License :: OSI Approved :: MIT License', - 'Topic :: Scientific/Engineering :: Visualization', - 'Topic :: Software Development :: Widget Sets', - 'Operating System :: MacOS', - 'Operating System :: Microsoft :: Windows', - 'Operating System :: OS Independent', - 'Operating System :: POSIX', - 'Operating System :: Unix', - 'Programming Language :: Python :: 2.6', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - ], - ) +setup( + name=LIBNAME, + version=version, + description=DESCRIPTION, + long_description=LONG_DESCRIPTION, + packages=get_subpackages(PACKAGE_NAME), + package_data={ + PACKAGE_NAME: get_package_data(PACKAGE_NAME, (".png", ".svg", ".mo")) + }, + data_files=[(r"Doc", [CHM_DOC])] if CHM_DOC else [], + install_requires=["NumPy>=1.5"], + extras_require={"Doc": ["Sphinx>=1.1"],}, + entry_points={ + "gui_scripts": [ + "PythonQwt-tests-py%d = qwt.tests:run [Tests]" % sys.version_info.major, + ] + }, + author="Pierre Raybaut", + author_email="pierre.raybaut@gmail.com", + url="https://github.com/PierreRaybaut/%s" % LIBNAME, + platforms="Any", + classifiers=CLASSIFIERS + + [ + "License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)", + "License :: OSI Approved :: MIT License", + "Topic :: Scientific/Engineering :: Visualization", + "Topic :: Software Development :: Widget Sets", + "Operating System :: MacOS", + "Operating System :: Microsoft :: Windows", + "Operating System :: OS Independent", + "Operating System :: POSIX", + "Operating System :: Unix", + "Programming Language :: Python :: 2.6", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + ], +) From ee9f306442cd5f903c55d17e34a51ac0c86da4e8 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 15 Aug 2020 23:09:03 +0200 Subject: [PATCH 140/421] Major code cleaning/formatting --- CHANGELOG.md | 1 + qwt/_math.py | 52 +-- qwt/color_map.py | 175 ++++----- qwt/column_symbol.py | 69 ++-- qwt/dyngrid_layout.py | 108 +++--- qwt/graphic.py | 231 +++++++----- qwt/interval.py | 148 ++++---- qwt/legend.py | 276 +++++++------- qwt/null_paintdevice.py | 90 +++-- qwt/painter.py | 168 +++++---- qwt/painter_command.py | 34 +- qwt/plot.py | 569 ++++++++++++++++------------- qwt/plot_canvas.py | 245 ++++++++----- qwt/plot_curve.py | 218 ++++++----- qwt/plot_directpainter.py | 72 ++-- qwt/plot_grid.py | 126 ++++--- qwt/plot_layout.py | 526 +++++++++++++++----------- qwt/plot_marker.py | 152 ++++---- qwt/plot_renderer.py | 220 ++++++----- qwt/plot_series.py | 90 +++-- qwt/scale_div.py | 82 +++-- qwt/scale_draw.py | 318 ++++++++-------- qwt/scale_engine.py | 380 +++++++++---------- qwt/scale_map.py | 107 +++--- qwt/symbol.py | 474 ++++++++++++++---------- qwt/tests/__init__.py | 13 +- qwt/tests/data/curvebenchmark1.png | Bin 40648 -> 40598 bytes qwt/tests/data/curvebenchmark2.png | Bin 114265 -> 114259 bytes qwt/tests/data/curvedemo2.png | Bin 8019 -> 7630 bytes qwt/tests/data/data.png | Bin 13168 -> 13118 bytes qwt/tests/data/mapdemo.png | Bin 21019 -> 22480 bytes qwt/tests/data/testlauncher.png | Bin 96546 -> 97406 bytes qwt/text.py | 332 +++++++++-------- qwt/toqimage.py | 2 +- qwt/transform.py | 35 +- 35 files changed, 2969 insertions(+), 2344 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c0ef3b..21e0af6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ each tick type (minor, medium, major) -- this feature is used with the new flatStyle option - Fixed obvious errors (+ poor implementations) in untested code parts +- Major code cleaning and formatting ### Version 0.6.2 ### diff --git a/qwt/_math.py b/qwt/_math.py index b6659e2..72e0ee2 100644 --- a/qwt/_math.py +++ b/qwt/_math.py @@ -5,13 +5,15 @@ # Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization # (see LICENSE file for more details) +from __future__ import division + from .qt.QtCore import qFuzzyCompare -import numpy as np +import math def qwtFuzzyCompare(value1, value2, intervalSize): - eps = abs(1.e-6*intervalSize) + eps = abs(1.0e-6 * intervalSize) if value2 - value1 > eps: return -1 elif value1 - value2 > eps: @@ -19,50 +21,58 @@ def qwtFuzzyCompare(value1, value2, intervalSize): else: return 0 + def qwtFuzzyGreaterOrEqual(d1, d2): return (d1 >= d2) or qFuzzyCompare(d1, d2) + def qwtFuzzyLessOrEqual(d1, d2): return (d1 <= d2) or qFuzzyCompare(d1, d2) + def qwtSign(x): - if x > 0.: + if x > 0.0: return 1 - elif x < 0.: + elif x < 0.0: return -1 else: return 0 + def qwtSqr(x): - return x**2 + return x ** 2 + def qwtFastAtan(x): - if x < -1.: - return -.5*np.pi - x/(x**2 + .28) - elif x > 1.: - return .5*np.pi - x/(x**2 + .28) + if x < -1.0: + return -0.5 * math.pi - x / (x ** 2 + 0.28) + elif x > 1.0: + return 0.5 * math.pi - x / (x ** 2 + 0.28) else: - return x/(1. + x**2*.28) + return x / (1.0 + x ** 2 * 0.28) + def qwtFastAtan2(y, x): if x > 0: - return qwtFastAtan(y/x) + return qwtFastAtan(y / x) elif x < 0: - d = qwtFastAtan(y/x) + d = qwtFastAtan(y / x) if y >= 0: - return d + np.pi + return d + math.pi else: - return d - np.pi - elif y < 0.: - return -.5*np.pi - elif y > 0.: - return .5*np.pi + return d - math.pi + elif y < 0.0: + return -0.5 * math.pi + elif y > 0.0: + return 0.5 * math.pi else: - return 0. + return 0.0 + def qwtRadians(degrees): - return degrees * np.pi/180. + return degrees * math.pi / 180.0 + def qwtDegrees(radians): - return radians * 180./np.pi + return radians * 180.0 / math.pi diff --git a/qwt/color_map.py b/qwt/color_map.py index bb0ea41..2e57c47 100644 --- a/qwt/color_map.py +++ b/qwt/color_map.py @@ -33,7 +33,7 @@ class ColorStop(object): - def __init__(self, pos=0., color=None): + def __init__(self, pos=0.0, color=None): self.pos = pos if color is None: self.rgb = 0 @@ -43,18 +43,18 @@ def __init__(self, pos=0., color=None): self.g = qGreen(self.rgb) self.b = qBlue(self.rgb) self.a = qAlpha(self.rgb) - - # when mapping a value to rgb we will have to calcualate: + + # when mapping a value to rgb we will have to calcualate: # - const int v = int( ( s1.v0 + ratio * s1.vStep ) + 0.5 ); # Thus adding 0.5 ( for rounding ) can be done in advance self.r0 = self.r + 0.5 self.g0 = self.g + 0.5 self.b0 = self.b + 0.5 self.a0 = self.a + 0.5 - - self.rStep = self.gStep = self.bStep = self.aStep = 0. - self.posStep = 0. - + + self.rStep = self.gStep = self.bStep = self.aStep = 0.0 + self.posStep = 0.0 + def updateSteps(self, nextStop): self.rStep = nextStop.r - self.r self.gStep = nextStop.g - self.g @@ -67,66 +67,67 @@ class ColorStops(object): def __init__(self): self.__doAlpha = False self.__stops = [] - self.stops = [] - + def insert(self, pos, color): - if pos < 0. or pos > 1.: + if pos < 0.0 or pos > 1.0: return if len(self.__stops) == 0: index = 0 self.__stops = [None] else: index = self.findUpper(pos) - if index == len(self.__stops) or\ - abs(self.__stops[index].pos-pos) >= .001: + if ( + index == len(self.__stops) + or abs(self.__stops[index].pos - pos) >= 0.001 + ): self.__stops.append(None) - for i in range(len(self.__stops)-1, index, -1): - self.__stops[i] = self.__stops[i-1] + for i in range(len(self.__stops) - 1, index, -1): + self.__stops[i] = self.__stops[i - 1] self.__stops[index] = ColorStop(pos, color) - if color.alpha() != 255: - self.__doAlpha = True + self.__doAlpha = color.alpha() != 255 if index > 0: - self.__stops[index-1].updateSteps(self.__stops[index]) - if index < len(self.__stops)-1: - self.__stops[index].updateSteps(self.__stops[index+1]) - + self.__stops[index - 1].updateSteps(self.__stops[index]) + if index < len(self.__stops) - 1: + self.__stops[index].updateSteps(self.__stops[index + 1]) + def stops(self): - return [stop.pos for stop in self.__stops] - + if self.__stops: + return [stop.pos for stop in self.__stops] + else: + return [] + def findUpper(self, pos): index = 0 n = len(self.__stops) - - stops = self.__stops - + while n > 0: half = n >> 1 middle = index + half - if stops[middle].pos <= pos: + if self.__stops[middle].pos <= pos: index = middle + 1 n -= half + 1 else: n = half return index - + def rgb(self, mode, pos): - if pos <= 0.: + if pos <= 0.0: return self.__stops[0].rgb if pos >= 1.0: return self.__stops[-1].rgb - + index = self.findUpper(pos) if mode == QwtLinearColorMap.FixedColors: - return self.__stops[index-1].rgb + return self.__stops[index - 1].rgb else: - s1 = self.__stops[index-1] - ratio = (pos-s1.pos)/s1.posStep - r = int(s1.r0 + ratio*s1.rStep) - g = int(s1.g0 + ratio*s1.gStep) - b = int(s1.b0 + ratio*s1.bStep) + s1 = self.__stops[index - 1] + ratio = (pos - s1.pos) / s1.posStep + r = int(s1.r0 + ratio * s1.rStep) + g = int(s1.g0 + ratio * s1.gStep) + b = int(s1.b0 + ratio * s1.bStep) if self.__doAlpha: if s1.aStep: - a = int(s1.a0 + ratio*s1.aStep) + a = int(s1.a0 + ratio * s1.aStep) return qRgba(r, g, b, a) else: return qRgba(r, g, b, s1.a) @@ -155,15 +156,15 @@ class QwtColorMap(object): :py:data:`qwt.QwtScaleWidget` """ - + # enum Format RGB, Indexed = list(range(2)) - + def __init__(self, format_=None): if format_ is None: format_ = self.RGB self.__format = format_ - + def color(self, interval, value): """ Map a value into a color @@ -183,10 +184,10 @@ def color(self, interval, value): else: index = self.colorIndex(interval, value) return self.colorTable(interval)[index] - + def format(self): return self.__format - + def colorTable(self, interval): """ Build and return a color map of 256 colors @@ -199,18 +200,23 @@ def colorTable(self, interval): """ table = [0] * 256 if interval.isValid(): - step = interval.width()/(len(table)-1) + step = interval.width() / (len(table) - 1) for i in range(len(table)): - table[i] = self.rgb(interval, interval.minValue()+step*i) + table[i] = self.rgb(interval, interval.minValue() + step * i) return table + def rgb(self, interval, value): + # To be reimplemented + return QColor().rgb() + def colorIndex(self, interval, value): - raise NotImplementedError + # To be reimplemented + return 0 class QwtLinearColorMap_PrivateData(object): def __init__(self): - self.colorStops = None + self.colorStops = ColorStops() self.mode = None @@ -233,27 +239,29 @@ class QwtLinearColorMap(QwtColorMap): :param QColor color2: color at 1. :param int format_: Preferred format of the color map (:py:data:`QwtColorMap.RGB` or :py:data:`QwtColorMap.Indexed`) """ - + # enum Mode FixedColors, ScaledColors = list(range(2)) - + def __init__(self, *args): color1, color2 = QColor(Qt.blue), QColor(Qt.yellow) format_ = QwtColorMap.RGB if len(args) == 1: - format_, = args + (format_,) = args elif len(args) == 2: color1, color2 = args elif len(args) == 3: color1, color2, format_ = args elif len(args) != 0: - raise TypeError("%s() takes 0, 1, 2 or 3 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) + raise TypeError( + "%s() takes 0, 1, 2 or 3 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) super(QwtLinearColorMap, self).__init__(format_) self.__data = QwtLinearColorMap_PrivateData() self.__data.mode = self.ScaledColors self.setColorInterval(color1, color2) - + def setMode(self, mode): """ Set the mode of the color map @@ -265,7 +273,7 @@ def setMode(self, mode): the colors of the adjacent stops. """ self.__data.mode = mode - + def mode(self): """ :return: the mode of the color map @@ -275,52 +283,53 @@ def mode(self): :py:meth:`QwtLinearColorMap.setMode` """ return self.__data.mode - + def setColorInterval(self, color1, color2): self.__data.colorStops = ColorStops() - self.__data.colorStops.insert(0., QColor(color1)) - self.__data.colorStops.insert(1., QColor(color2)) - + self.__data.colorStops.insert(0.0, QColor(color1)) + self.__data.colorStops.insert(1.0, QColor(color2)) + def addColorStop(self, value, color): - if value >= 0. and value <= 1.: + if value >= 0.0 and value <= 1.0: self.__data.colorStops.insert(value, QColor(color)) - + def colorStops(self): return self.__data.colorStops.stops() - + def color1(self): - return QColor(self.__data.colorStops.rgb(self.__data.mode, 0.)) - + return QColor(self.__data.colorStops.rgb(self.__data.mode, 0.0)) + def color2(self): - return QColor(self.__data.colorStops.rgb(self.__data.mode, 1.)) - + return QColor(self.__data.colorStops.rgb(self.__data.mode, 1.0)) + def rgb(self, interval, value): if qIsNaN(value): return 0 width = interval.width() - if width <= 0.: + if width <= 0.0: return 0 - ratio = (value-interval.minValue())/width + ratio = (value - interval.minValue()) / width return self.__data.colorStops.rgb(self.__data.mode, ratio) - + def colorIndex(self, interval, value): width = interval.width() - if qIsNaN(value) or width <= 0. or value <= interval.minValue(): + if qIsNaN(value) or width <= 0.0 or value <= interval.minValue(): return 0 if value >= interval.maxValue(): return 255 - ratio = (value-interval.minValue())/width + ratio = (value - interval.minValue()) / width if self.__data.mode == self.FixedColors: - return int(ratio*255) + return int(ratio * 255) else: - return int(ratio*255+.5) - + return int(ratio * 255 + 0.5) + class QwtAlphaColorMap_PrivateData(object): def __init__(self): - self.color = None - self.rgb = None - self.rgbMax = None + self.color = QColor() + self.rgb = QColor().rgb() + self.rgbMax = QColor().rgb() + class QwtAlphaColorMap(QwtColorMap): """ @@ -337,7 +346,7 @@ def __init__(self, color): super(QwtAlphaColorMap, self).__init__(QwtColorMap.RGB) self.__data = QwtAlphaColorMap_PrivateData() self.setColor(color) - + def setColor(self, color): """ Set the color of the map @@ -346,8 +355,8 @@ def setColor(self, color): """ self.__data.color = color self.__data.rgb = color.rgb() & qRgba(255, 255, 255, 0) - self.__data.rgbMax = self.__data.rgb | ( 255 << 24 ) - + self.__data.rgbMax = self.__data.rgb | (255 << 24) + def color(self): """ :return: the color of the map @@ -356,20 +365,20 @@ def color(self): :py:meth:`QwtAlphaColorMap.setColor` """ - return self.__data.color() - + return self.__data.color + def rgb(self, interval, value): if qIsNaN(value): return 0 width = interval.width() - if width <= 0.: + if width <= 0.0: return 0 if value <= interval.minValue(): return self.__data.rgb if value >= interval.maxValue(): return self.__data.rgbMax - ratio = (value-interval.minValue())/width - return self.__data.rgb | (int(round(255*ratio)) << 24) - + ratio = (value - interval.minValue()) / width + return self.__data.rgb | (int(round(255 * ratio)) << 24) + def colorIndex(self, interval, value): return 0 diff --git a/qwt/column_symbol.py b/qwt/column_symbol.py index 05376fd..fb89912 100644 --- a/qwt/column_symbol.py +++ b/qwt/column_symbol.py @@ -12,42 +12,42 @@ def qwtDrawBox(p, rect, pal, lw): - if lw > 0.: - if rect.width() == 0.: + if lw > 0.0: + if rect.width() == 0.0: p.setPen(pal.dark().color()) p.drawLine(rect.topLeft(), rect.bottomLeft()) return - if rect.height() == 0.: + if rect.height() == 0.0: p.setPen(pal.dark().color()) p.drawLine(rect.topLeft(), rect.topRight()) return - lw = min([lw, rect.height()/2.-1.]) - lw = min([lw, rect.width()/2.-1.]) + lw = min([lw, rect.height() / 2.0 - 1.0]) + lw = min([lw, rect.width() / 2.0 - 1.0]) outerRect = rect.adjusted(0, 0, 1, 1) polygon = QPolygonF(outerRect) - if outerRect.width() > 2*lw and outerRect.height() > 2*lw: + if outerRect.width() > 2 * lw and outerRect.height() > 2 * lw: innerRect = outerRect.adjusted(lw, lw, -lw, -lw) polygon = polygon.subtracted(innerRect) p.setPen(Qt.NoPen) p.setBrush(pal.dark()) p.drawPolygon(polygon) - windowRect = rect.adjusted(lw, lw, -lw+1, -lw+1) + windowRect = rect.adjusted(lw, lw, -lw + 1, -lw + 1) if windowRect.isValid(): p.fillRect(windowRect, pal.window()) def qwtDrawPanel(painter, rect, pal, lw): - if lw > 0.: - if rect.width() == 0.: + if lw > 0.0: + if rect.width() == 0.0: painter.setPen(pal.window().color()) painter.drawLine(rect.topLeft(), rect.bottomLeft()) return - if rect.height() == 0.: + if rect.height() == 0.0: painter.setPen(pal.window().color()) painter.drawLine(rect.topLeft(), rect.topRight()) return - lw = min([lw, rect.height()/2.-1.]) - lw = min([lw, rect.width()/2.-1.]) + lw = min([lw, rect.height() / 2.0 - 1.0]) + lw = min([lw, rect.width() / 2.0 - 1.0]) outerRect = rect.adjusted(0, 0, 1, 1) innerRect = outerRect.adjusted(lw, lw, -lw, -lw) lines = [QPolygonF(), QPolygonF()] @@ -68,7 +68,7 @@ def qwtDrawPanel(painter, rect, pal, lw): painter.drawPolygon(lines[0]) painter.setBrush(pal.dark()) painter.drawPolygon(lines[1]) - painter.fillRect(rect.adjusted(lw, lw, -lw+1, -lw+1), pal.window()) + painter.fillRect(rect.adjusted(lw, lw, -lw + 1, -lw + 1), pal.window()) class QwtColumnSymbol_PrivateData(object): @@ -78,50 +78,51 @@ def __init__(self): self.lineWidth = 2 self.palette = QPalette(Qt.gray) + class QwtColumnSymbol(object): - + # enum Style NoStyle = -1 Box = 0 UserStyle = 1000 - + # enum FrameStyle NoFrame, Plain, Raised = list(range(3)) - + def __init__(self, style): self.__data = QwtColumnSymbol_PrivateData() self.__data.style = style - + def setStyle(self, style): self.__data.style = style - + def style(self): return self.__data.style - + def setPalette(self, palette): self.__data.palette = palette - + def palette(self): return self.__data.palette def setFrameStyle(self, frameStyle): self.__data.frameStyle = frameStyle - + def frameStyle(self): return self.__data.frameStyle def setLineWidth(self, width): self.__data.lineWidth = width - + def lineWidth(self): return self.__data.lineWidth - + def draw(self, painter, rect): painter.save() if self.__data.style == QwtColumnSymbol.Box: self.drawBox(painter, rect) painter.restore() - + def drawBox(self, painter, rect): r = rect.toRect() if self.__data.frameStyle == QwtColumnSymbol.Raised: @@ -129,24 +130,26 @@ def drawBox(self, painter, rect): elif self.__data.frameStyle == QwtColumnSymbol.Plain: qwtDrawBox(painter, r, self.__data.palette, self.__data.lineWidth) else: - painter.fillRect(r.adjusted(0, 0, 1, 1), - self.__data.palette.window()) + painter.fillRect(r.adjusted(0, 0, 1, 1), self.__data.palette.window()) class QwtColumnRect(object): - + # enum Direction LeftToRight, RightToLeft, BottomToTop, TopToBottom = list(range(4)) - + def __init__(self): self.hInterval = QwtInterval() self.vInterval = QwtInterval() self.direction = 0 - + def toRect(self): - r = QRectF(self.hInterval.minValue(), self.vInterval.minValue(), - self.hInterval.maxValue()-self.hInterval.minValue(), - self.vInterval.maxValue()-self.vInterval.minValue()) + r = QRectF( + self.hInterval.minValue(), + self.vInterval.minValue(), + self.hInterval.maxValue() - self.hInterval.minValue(), + self.vInterval.maxValue() - self.vInterval.minValue(), + ) r = r.normalized() if self.hInterval.borderFlags() & QwtInterval.ExcludeMinimum: r.adjust(1, 0, 0, 0) @@ -157,7 +160,7 @@ def toRect(self): if self.vInterval.borderFlags() & QwtInterval.ExcludeMaximum: r.adjust(0, 0, 0, -1) return r - + def orientation(self): if self.direction in (self.LeftToRight, self.RightToLeft): return Qt.Horizontal diff --git a/qwt/dyngrid_layout.py b/qwt/dyngrid_layout.py index 81b1f36..e385261 100644 --- a/qwt/dyngrid_layout.py +++ b/qwt/dyngrid_layout.py @@ -28,11 +28,12 @@ def __init__(self): self.expanding = Qt.Orientations() self.itemSizeHints = [] self.itemList = [] - + def updateLayoutCache(self): self.itemSizeHints = [it.sizeHint() for it in self.itemList] self.isDirty = False - + + class QwtDynGridLayout(QLayout): """ The `QwtDynGridLayout` class lays out widgets in a grid, @@ -71,60 +72,62 @@ def __init__(self, *args): spacing = args[-1] elif len(args) == 1: if isinstance(args[0], int): - spacing, = args + (spacing,) = args else: - parent, = args + (parent,) = args elif len(args) != 0: - raise TypeError("%s() takes 0, 1, 2 or 3 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) + raise TypeError( + "%s() takes 0, 1, 2 or 3 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) QLayout.__init__(self, parent) self.__data = QwtDynGridLayout_PrivateData() self.setSpacing(spacing) self.setContentsMargins(margin, margin, margin, margin) - + def invalidate(self): """Invalidate all internal caches""" self.__data.isDirty = True QLayout.invalidate(self) - + def setMaxColumns(self, maxColumns): """Limit the number of columns""" self.__data.maxColumns = maxColumns - + def maxColumns(self): """Return the upper limit for the number of columns""" return self.__data.maxColumns - + def addItem(self, item): """Add an item to the next free position""" self.__data.itemList.append(item) self.invalidate() - + def isEmpty(self): """Return true if this layout is empty""" return self.count() == 0 - + def itemCount(self): """Return number of layout items""" return self.count() - + def itemAt(self, index): """Find the item at a specific index""" if index < 0 or index >= len(self.__data.itemList): return return self.__data.itemList[index] - + def takeAt(self, index): """Find the item at a specific index and remove it from the layout""" if index < 0 or index >= len(self.__data.itemList): return self.__data.isDirty = True return self.__data.itemList.pop(index) - + def count(self): """Return Number of items in the layout""" return len(self.__data.itemList) - + def setExpandingDirections(self, expanding): """ Set whether this layout can make use of more space than sizeHint(). @@ -133,7 +136,7 @@ def setExpandingDirections(self, expanding): wants to grow in both dimensions. The default value is 0. """ self.__data.expanding = expanding - + def expandingDirections(self): """ Returns whether this layout can make use of more space than sizeHint(). @@ -142,7 +145,7 @@ def expandingDirections(self): wants to grow in both dimensions. """ return self.__data.expanding - + def setGeometry(self, rect): """ Reorganizes columns and rows and resizes managed items within a @@ -152,13 +155,13 @@ def setGeometry(self, rect): if self.isEmpty(): return self.__data.numColumns = self.columnsForWidth(rect.width()) - self.__data.numRows = self.itemCount()/self.__data.numColumns + self.__data.numRows = self.itemCount() / self.__data.numColumns if self.itemCount() % self.__data.numColumns: self.__data.numRows += 1 itemGeometries = self.layoutItems(rect, self.__data.numColumns) for it, geo in zip(self.__data.itemList, itemGeometries): it.setGeometry(geo) - + def columnsForWidth(self, width): """ Calculate the number of columns for a given width. @@ -173,12 +176,12 @@ def columnsForWidth(self, width): maxColumns = min([self.__data.maxColumns, maxColumns]) if self.maxRowWidth(maxColumns) <= width: return maxColumns - for numColumns in range(2, maxColumns+1): + for numColumns in range(2, maxColumns + 1): rowWidth = self.maxRowWidth(numColumns) if rowWidth > width: - return numColumns-1 + return numColumns - 1 return 1 - + def maxRowWidth(self, numColumns): """Calculate the width of a layout for a given number of columns.""" colWidth = [0] * numColumns @@ -189,8 +192,8 @@ def maxRowWidth(self, numColumns): colWidth[col] = max([colWidth[col], hint.width()]) margins = self.contentsMargins() margin_w = margins.left() + margins.right() - return margin_w+(numColumns-1)*self.spacing()+sum(colWidth) - + return margin_w + (numColumns - 1) * self.spacing() + sum(colWidth) + def maxItemWidth(self): """Return the maximum width of all layout items""" if self.isEmpty(): @@ -198,7 +201,7 @@ def maxItemWidth(self): if self.__data.isDirty: self.__data.updateLayoutCache() return max([hint.width() for hint in self.__data.itemSizeHints]) - + def layoutItems(self, rect, numColumns): """ Calculate the geometries of the layout items for a layout @@ -207,13 +210,13 @@ def layoutItems(self, rect, numColumns): itemGeometries = [] if numColumns == 0 or self.isEmpty(): return itemGeometries - numRows = int(self.itemCount()/numColumns) + numRows = int(self.itemCount() / numColumns) if numColumns % self.itemCount(): numRows += 1 if numRows == 0: return itemGeometries - rowHeight = [0]*numRows - colWidth = [0]*numColumns + rowHeight = [0] * numRows + colWidth = [0] * numColumns self.layoutGrid(numColumns, rowHeight, colWidth) expandH = self.expandingDirections() & Qt.Horizontal expandV = self.expandingDirections() & Qt.Vertical @@ -231,19 +234,18 @@ def layoutItems(self, rect, numColumns): margins = self.contentsMargins() rowY[0] = yOffset + margins.bottom() for r in range(1, numRows): - rowY[r] = rowY[r-1] + rowHeight[r-1] + xySpace + rowY[r] = rowY[r - 1] + rowHeight[r - 1] + xySpace colX[0] = xOffset + margins.left() for c in range(1, numColumns): - colX[c] = colX[c-1] + colWidth[c-1] + xySpace + colX[c] = colX[c - 1] + colWidth[c - 1] + xySpace itemCount = len(self.__data.itemList) for i in range(itemCount): - row = int(i/numColumns) + row = int(i / numColumns) col = i % numColumns - itemGeometry = QRect(colX[col], rowY[row], - colWidth[col], rowHeight[row]) + itemGeometry = QRect(colX[col], rowY[row], colWidth[col], rowHeight[row]) itemGeometries.append(itemGeometry) return itemGeometries - + def layoutGrid(self, numColumns, rowHeight, colWidth): """ Calculate the dimensions for the columns and rows for a grid @@ -254,7 +256,7 @@ def layoutGrid(self, numColumns, rowHeight, colWidth): if self.__data.isDirty: self.__data.updateLayoutCache() for index in range(len(self.__data.itemSizeHints)): - row = int(index/numColumns) + row = int(index / numColumns) col = index % numColumns size = self.__data.itemSizeHints[index] if col == 0: @@ -265,17 +267,17 @@ def layoutGrid(self, numColumns, rowHeight, colWidth): colWidth[col] = size.width() else: colWidth[col] = max([colWidth[col], size.width()]) - + def hasHeightForWidth(self): """Return true: QwtDynGridLayout implements heightForWidth().""" return True - + def heightForWidth(self, width): """Return The preferred height for this layout, given a width.""" if self.isEmpty(): return 0 numColumns = self.columnsForWidth(width) - numRows = int(self.itemCount()/numColumns) + numRows = int(self.itemCount() / numColumns) if self.itemCount() % numColumns: numRows += 1 rowHeight = [0] * numRows @@ -283,8 +285,8 @@ def heightForWidth(self, width): self.layoutGrid(numColumns, rowHeight, colWidth) margins = self.contentsMargins() margin_h = margins.top() + margins.bottom() - return margin_h+(numRows-1)*self.spacing()+sum(rowHeight) - + return margin_h + (numRows - 1) * self.spacing() + sum(rowHeight) + def stretchGrid(self, rect, numColumns, rowHeight, colWidth): """ Stretch columns in case of expanding() & QSizePolicy::Horizontal and @@ -296,27 +298,29 @@ def stretchGrid(self, rect, numColumns, rowHeight, colWidth): expandH = self.expandingDirections() & Qt.Horizontal expandV = self.expandingDirections() & Qt.Vertical if expandH: - xDelta = rect.width()-2*self.margin()-(numColumns-1)*self.spacing() + xDelta = ( + rect.width() - 2 * self.margin() - (numColumns - 1) * self.spacing() + ) for col in range(numColumns): xDelta -= colWidth[col] if xDelta > 0: for col in range(numColumns): - space = xDelta/(numColumns-col) + space = xDelta / (numColumns - col) colWidth[col] += space xDelta -= space if expandV: - numRows = self.itemCount()/numColumns + numRows = self.itemCount() / numColumns if self.itemCount() % numColumns: numRows += 1 - yDelta = rect.height()-2*self.margin()-(numRows-1)*self.spacing() + yDelta = rect.height() - 2 * self.margin() - (numRows - 1) * self.spacing() for row in range(numRows): yDelta -= rowHeight[row] if yDelta > 0: for row in range(numRows): - space = yDelta/(numRows-row) + space = yDelta / (numRows - row) rowHeight[row] += space yDelta -= space - + def sizeHint(self): """ Return the size hint. If maxColumns() > 0 it is the size for @@ -328,7 +332,7 @@ def sizeHint(self): numColumns = self.itemCount() if self.__data.maxColumns > 0: numColumns = min([self.__data.maxColumns, numColumns]) - numRows = int(self.itemCount()/numColumns) + numRows = int(self.itemCount() / numColumns) if self.itemCount() % numColumns: numRows += 1 rowHeight = [0] * numRows @@ -337,14 +341,14 @@ def sizeHint(self): margins = self.contentsMargins() margin_h = margins.top() + margins.bottom() margin_w = margins.left() + margins.right() - h = margin_h+(numRows-1)*self.spacing()+sum(rowHeight) - w = margin_w+(numColumns-1)*self.spacing()+sum(colWidth) + h = margin_h + (numRows - 1) * self.spacing() + sum(rowHeight) + w = margin_w + (numColumns - 1) * self.spacing() + sum(colWidth) return QSize(w, h) - + def numRows(self): """Return Number of rows of the current layout.""" return self.__data.numRows - + def numColumns(self): """Return Number of columns of the current layout.""" return self.__data.numColumns diff --git a/qwt/graphic.py b/qwt/graphic.py index 094427c..361629a 100644 --- a/qwt/graphic.py +++ b/qwt/graphic.py @@ -16,8 +16,14 @@ from .null_paintdevice import QwtNullPaintDevice from .painter_command import QwtPainterCommand -from .qt.QtGui import (QPainter, QPainterPathStroker, QPaintEngine, QPixmap, - QTransform, QImage) +from .qt.QtGui import ( + QPainter, + QPainterPathStroker, + QPaintEngine, + QPixmap, + QTransform, + QImage, +) from .qt.QtCore import Qt, QRectF, QSizeF, QSize, QPointF, QRect import numpy as np @@ -28,7 +34,7 @@ def qwtHasScalablePen(painter): scalablePen = False if pen.style() != Qt.NoPen and pen.brush().style() != Qt.NoBrush: scalablePen = not pen.isCosmetic() - if not scalablePen and pen.widthF() == 0.: + if not scalablePen and pen.widthF() == 0.0: hints = painter.renderHints() if hints & QPainter.NonCosmeticDefaultPen: scalablePen = True @@ -55,10 +61,12 @@ def qwtStrokedPathRect(painter, path): def qwtExecCommand(painter, cmd, renderHints, transform, initialTransform): if cmd.type() == QwtPainterCommand.Path: doMap = False - if bool(renderHints & QwtGraphic.RenderPensUnscaled)\ - and painter.transform().isScaling(): + if ( + bool(renderHints & QwtGraphic.RenderPensUnscaled) + and painter.transform().isScaling() + ): isCosmetic = painter.pen().isCosmetic() - if isCosmetic and painter.pen().widthF() == 0.: + if isCosmetic and painter.pen().widthF() == 0.0: hints = painter.renderHints() if hints & QPainter.NonCosmeticDefaultPen: isCosmetic = False @@ -103,11 +111,13 @@ def qwtExecCommand(painter, cmd, renderHints, transform, initialTransform): if data.flags & QPaintEngine.DirtyClipPath: painter.setClipPath(data.clipPath, data.clipOperation) if data.flags & QPaintEngine.DirtyHints: - for hint in (QPainter.Antialiasing, - QPainter.TextAntialiasing, - QPainter.SmoothPixmapTransform, - QPainter.HighQualityAntialiasing, - QPainter.NonCosmeticDefaultPen): + for hint in ( + QPainter.Antialiasing, + QPainter.TextAntialiasing, + QPainter.SmoothPixmapTransform, + QPainter.HighQualityAntialiasing, + QPainter.NonCosmeticDefaultPen, + ): painter.setRenderHint(hint, bool(data.renderHints & hint)) if data.flags & QPaintEngine.DirtyCompositionMode: painter.setCompositionMode(data.compositionMode) @@ -125,11 +135,13 @@ def __init__(self, *args): self.__boundingRect = boundingRect self.__scalablePen = scalablePen else: - raise TypeError("%s() takes 0 or 3 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) - + raise TypeError( + "%s() takes 0 or 3 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) + def scaledBoundingRect(self, sx, sy, scalePens): - if sx == 1. and sy == 1.: + if sx == 1.0 and sy == 1.0: return self.__boundingRect transform = QTransform() transform.scale(sx, sy) @@ -137,43 +149,51 @@ def scaledBoundingRect(self, sx, sy, scalePens): rect = transform.mapRect(self.__boundingRect) else: rect = transform.mapRect(self.__pointRect) - l = abs(self.__pointRect.left()-self.__boundingRect.left()) - r = abs(self.__pointRect.right()-self.__boundingRect.right()) - t = abs(self.__pointRect.top()-self.__boundingRect.top()) - b = abs(self.__pointRect.bottom()-self.__boundingRect.bottom()) + l = abs(self.__pointRect.left() - self.__boundingRect.left()) + r = abs(self.__pointRect.right() - self.__boundingRect.right()) + t = abs(self.__pointRect.top() - self.__boundingRect.top()) + b = abs(self.__pointRect.bottom() - self.__boundingRect.bottom()) rect.adjust(-l, -t, r, b) return rect - + def scaleFactorX(self, pathRect, targetRect, scalePens): if pathRect.width() <= 0.0: - return 0. + return 0.0 p0 = self.__pointRect.center() - l = abs(pathRect.left()-p0.x()) - r = abs(pathRect.right()-p0.x()) - w = 2.*min([l, r])*targetRect.width()/pathRect.width() + l = abs(pathRect.left() - p0.x()) + r = abs(pathRect.right() - p0.x()) + w = 2.0 * min([l, r]) * targetRect.width() / pathRect.width() if scalePens and self.__scalablePen: - sx = w/self.__boundingRect.width() + sx = w / self.__boundingRect.width() else: - pw = max([abs(self.__boundingRect.left()-self.__pointRect.left()), - abs(self.__boundingRect.right()-self.__pointRect.right())]) - sx = (w-2*pw)/self.__pointRect.width() + pw = max( + [ + abs(self.__boundingRect.left() - self.__pointRect.left()), + abs(self.__boundingRect.right() - self.__pointRect.right()), + ] + ) + sx = (w - 2 * pw) / self.__pointRect.width() return sx - + def scaleFactorY(self, pathRect, targetRect, scalePens): if pathRect.height() <= 0.0: - return 0. + return 0.0 p0 = self.__pointRect.center() - t = abs(pathRect.top()-p0.y()) - b = abs(pathRect.bottom()-p0.y()) - h = 2.*min([t, b])*targetRect.height()/pathRect.height() + t = abs(pathRect.top() - p0.y()) + b = abs(pathRect.bottom() - p0.y()) + h = 2.0 * min([t, b]) * targetRect.height() / pathRect.height() if scalePens and self.__scalablePen: - sy = h/self.__boundingRect.height() + sy = h / self.__boundingRect.height() else: - pw = max([abs(self.__boundingRect.top()-self.__pointRect.top()), - abs(self.__boundingRect.bottom()-self.__pointRect.bottom())]) - sy = (h-2*pw)/self.__pointRect.height() + pw = max( + [ + abs(self.__boundingRect.top() - self.__pointRect.top()), + abs(self.__boundingRect.bottom() - self.__pointRect.bottom()), + ] + ) + sy = (h - 2 * pw) / self.__pointRect.height() return sy - + class QwtGraphic_PrivateData(object): def __init__(self): @@ -252,23 +272,25 @@ class QwtGraphic(QwtNullPaintDevice): :param qwt.graphic.QwtGraphic other: Source """ - + # enum RenderHint RenderPensUnscaled = 0x1 - + def __init__(self, *args): QwtNullPaintDevice.__init__(self) if len(args) == 0: self.setMode(QwtNullPaintDevice.PathMode) self.__data = QwtGraphic_PrivateData() elif len(args) == 1: - other, = args + (other,) = args self.setMode(other.mode()) self.__data = other.__data else: - raise TypeError("%s() takes 0 or 1 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) - + raise TypeError( + "%s() takes 0 or 1 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) + def reset(self): """Clear all stored commands""" self.__data.commands = [] @@ -276,26 +298,26 @@ def reset(self): self.__data.boundingRect = QRectF(0.0, 0.0, -1.0, -1.0) self.__data.pointRect = QRectF(0.0, 0.0, -1.0, -1.0) self.__data.defaultSize = QSizeF() - + def isNull(self): """Return True, when no painter commands have been stored""" return len(self.__data.commands) == 0 - + def isEmpty(self): """Return True, when the bounding rectangle is empty""" return self.__data.boundingRect.isEmpty() - + def setRenderHint(self, hint, on=True): """Toggle an render hint""" if on: self.__data.renderHints |= hint else: self.__data.renderHints &= ~hint - + def testRenderHint(self, hint): """Test a render hint""" return bool(self.__data.renderHints & hint) - + def boundingRect(self): """ The bounding rectangle is the :py:meth:`controlPointRect` @@ -311,7 +333,7 @@ def boundingRect(self): if self.__data.boundingRect.width() < 0: return QRectF() return self.__data.boundingRect - + def controlPointRect(self): """ The control point rectangle is the bounding rectangle @@ -327,7 +349,7 @@ def controlPointRect(self): if self.__data.pointRect.width() < 0: return QRectF() return self.__data.pointRect - + def scaledBoundingRect(self, sx, sy): """ Calculate the target rectangle for scaling the graphic @@ -346,21 +368,22 @@ def scaledBoundingRect(self, sx, sy): :py:meth:`boundingRect()`, :py:meth:`controlPointRect()` """ - if sx == 1. and sy == 1.: + if sx == 1.0 and sy == 1.0: return self.__data.boundingRect transform = QTransform() transform.scale(sx, sy) rect = transform.mapRect(self.__data.pointRect) for pathInfo in self.__data.pathInfos: - rect |= pathInfo.scaledBoundingRect(sx, sy, - not bool(self.__data.renderHints & self.RenderPensUnscaled)) + rect |= pathInfo.scaledBoundingRect( + sx, sy, not bool(self.__data.renderHints & self.RenderPensUnscaled) + ) return rect - + def sizeMetrics(self): """Return Ceiled :py:meth:`defaultSize()`""" sz = self.defaultSize() return QSize(np.ceil(sz.width()), np.ceil(sz.height())) - + def setDefaultSize(self, size): """ The default size is used in all methods rendering the graphic, @@ -374,10 +397,10 @@ def setDefaultSize(self, size): :py:meth:`defaultSize()`, :py:meth:`boundingRect()` """ - w = max([0., size.width()]) - h = max([0., size.height()]) + w = max([0.0, size.width()]) + h = max([0.0, size.height()]) self.__data.defaultSize = QSizeF(w, h) - + def defaultSize(self): """ When a non empty size has been assigned by setDefaultSize() this @@ -396,7 +419,7 @@ def defaultSize(self): if not self.__data.defaultSize.isEmpty(): return self.__data.defaultSize return self.boundingRect().size() - + def render(self, *args): """ .. py:method:: render(painter) @@ -438,21 +461,26 @@ def render(self, *args): :param Qt.AspectRatioMode aspectRatioMode: Mode how to scale """ if len(args) == 1: - painter, = args + (painter,) = args if self.isNull(): return transform = painter.transform() painter.save() for command in self.__data.commands: - qwtExecCommand(painter, command, self.__data.renderHints, - transform, self.__data.initialTransform) + qwtExecCommand( + painter, + command, + self.__data.renderHints, + transform, + self.__data.initialTransform, + ) painter.restore() elif len(args) in (2, 3) and isinstance(args[1], QSizeF): painter, size = args[:2] aspectRatioMode = Qt.IgnoreAspectRatio if len(args) == 3: aspectRatioMode = args[-1] - r = QRectF(0., 0., size.width(), size.height()) + r = QRectF(0.0, 0.0, size.width(), size.height()) self.render(painter, r, aspectRatioMode) elif len(args) in (2, 3) and isinstance(args[1], QRectF): painter, rect = args[:2] @@ -461,19 +489,19 @@ def render(self, *args): aspectRatioMode = args[-1] if self.isEmpty() or rect.isEmpty(): return - sx = 1. - sy = 1. - if self.__data.pointRect.width() > 0.: - sx = rect.width()/self.__data.pointRect.width() - if self.__data.pointRect.height() > 0.: - sy = rect.height()/self.__data.pointRect.height() + sx = 1.0 + sy = 1.0 + if self.__data.pointRect.width() > 0.0: + sx = rect.width() / self.__data.pointRect.width() + if self.__data.pointRect.height() > 0.0: + sy = rect.height() / self.__data.pointRect.height() scalePens = not bool(self.__data.renderHints & self.RenderPensUnscaled) for info in self.__data.pathInfos: ssx = info.scaleFactorX(self.__data.pointRect, rect, scalePens) - if ssx > 0.: + if ssx > 0.0: sx = min([sx, ssx]) ssy = info.scaleFactorY(self.__data.pointRect, rect, scalePens) - if ssy > 0.: + if ssy > 0.0: sy = min([sy, ssy]) if aspectRatioMode == Qt.KeepAspectRatio: s = min([sx, sy]) @@ -484,26 +512,26 @@ def render(self, *args): sx = s sy = s tr = QTransform() - tr.translate(rect.center().x()-.5*sx*self.__data.pointRect.width(), - rect.center().y()-.5*sy*self.__data.pointRect.height()) + tr.translate( + rect.center().x() - 0.5 * sx * self.__data.pointRect.width(), + rect.center().y() - 0.5 * sy * self.__data.pointRect.height(), + ) tr.scale(sx, sy) - tr.translate(-self.__data.pointRect.x(), - -self.__data.pointRect.y()) + tr.translate(-self.__data.pointRect.x(), -self.__data.pointRect.y()) transform = painter.transform() if not scalePens and transform.isScaling(): # we don't want to scale pens according to sx/sy, - # but we want to apply the scaling from the + # but we want to apply the scaling from the # painter transformation later self.__data.initialTransform = QTransform() - self.__data.initialTransform.scale(transform.m11(), - transform.m22()) + self.__data.initialTransform.scale(transform.m11(), transform.m22()) painter.setTransform(tr, True) self.render(painter) painter.setTransform(transform) self.__data.initialTransform = None elif len(args) in (2, 3) and isinstance(args[1], QPointF): painter, pos = args[:2] - alignment = Qt.AlignTop|Qt.AlignLeft + alignment = Qt.AlignTop | Qt.AlignLeft if len(args) == 3: alignment = args[-1] r = QRectF(pos, self.defaultSize()) @@ -521,9 +549,11 @@ def render(self, *args): r.moveBottom(pos.y()) self.render(painter, r) else: - raise TypeError("%s().render() takes 1, 2 or 3 argument(s) (%s "\ - "given)" % (self.__class__.__name__, len(args))) - + raise TypeError( + "%s().render() takes 1, 2 or 3 argument(s) (%s " + "given)" % (self.__class__.__name__, len(args)) + ) + def toPixmap(self, *args): """ Convert the graphic to a `QPixmap` @@ -548,7 +578,7 @@ def toPixmap(self, *args): h = np.ceil(sz.height()) pixmap = QPixmap(w, h) pixmap.fill(Qt.transparent) - r = QRectF(0., 0., sz.width(), sz.height()) + r = QRectF(0.0, 0.0, sz.width(), sz.height()) painter = QPainter(pixmap) self.render(painter, r, Qt.KeepAspectRatio) painter.end() @@ -565,7 +595,7 @@ def toPixmap(self, *args): self.render(painter, r, aspectRatioMode) painter.end() return pixmap - + def toImage(self, *args): """ .. py:method:: toImage() @@ -623,7 +653,7 @@ def toImage(self, *args): painter = QPainter(image) self.render(painter, r, aspectRatioMode) return image - + def drawPath(self, path): """ Store a path command in the command list @@ -642,14 +672,17 @@ def drawPath(self, path): scaledPath = painter.transform().map(path) pointRect = scaledPath.boundingRect() boundingRect = QRectF(pointRect) - if painter.pen().style() != Qt.NoPen\ - and painter.pen().brush().style() != Qt.NoBrush: + if ( + painter.pen().style() != Qt.NoPen + and painter.pen().brush().style() != Qt.NoBrush + ): boundingRect = qwtStrokedPathRect(painter, path) self.updateControlPointRect(pointRect) self.updateBoundingRect(boundingRect) - self.__data.pathInfos += [PathInfo(pointRect, boundingRect, - qwtHasScalablePen(painter))] - + self.__data.pathInfos += [ + PathInfo(pointRect, boundingRect, qwtHasScalablePen(painter)) + ] + def drawPixmap(self, rect, pixmap, subRect): """ Store a pixmap command in the command list @@ -669,7 +702,7 @@ def drawPixmap(self, rect, pixmap, subRect): r = painter.transform().mapRect(rect) self.updateControlPointRect(r) self.updateBoundingRect(r) - + def drawImage(self, rect, image, subRect, flags): """ Store a image command in the command list @@ -690,7 +723,7 @@ def drawImage(self, rect, image, subRect, flags): r = painter.transform().mapRect(rect) self.updateControlPointRect(r) self.updateBoundingRect(r) - + def updateState(self, state): """ Store a state command in the command list @@ -701,9 +734,9 @@ def updateState(self, state): :py:meth:`QPaintEngine.updateState()` """ - #XXX: shall we call the parent's implementation of updateState? + # XXX: shall we call the parent's implementation of updateState? self.__data.commands += [QwtPainterCommand(state)] - + def updateBoundingRect(self, rect): br = QRectF(rect) painter = self.paintEngine().painter() @@ -715,16 +748,16 @@ def updateBoundingRect(self, rect): self.__data.boundingRect = br else: self.__data.boundingRect |= br - + def updateControlPointRect(self, rect): - if self.__data.pointRect.width() < 0.: + if self.__data.pointRect.width() < 0.0: self.__data.pointRect = rect else: self.__data.pointRect |= rect - + def commands(self): return self.__data.commands - + def setCommands(self, commands): self.reset() painter = QPainter(self) diff --git a/qwt/interval.py b/qwt/interval.py index 4670815..8ba30a0 100644 --- a/qwt/interval.py +++ b/qwt/interval.py @@ -28,24 +28,22 @@ class QwtInterval(object): :param float maxValue: Maximum value :param int borderFlags: Include/Exclude borders """ - + # enum BorderFlag IncludeBorders = 0x00 ExcludeMinimum = 0x01 ExcludeMaximum = 0x02 ExcludeBorders = ExcludeMinimum | ExcludeMaximum - - def __init__(self, minValue=0., maxValue=-1., borderFlags=None): + + def __init__(self, minValue=0.0, maxValue=-1.0, borderFlags=None): assert not isinstance(minValue, QwtInterval) assert not isinstance(maxValue, QwtInterval) - self.__minValue = float(minValue) # avoid overflows with NumPy scalars - self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars - if borderFlags is None: - self.__borderFlags = self.IncludeBorders - else: - self.__borderFlags = borderFlags + self.__minValue = None + self.__maxValue = None + self.__borderFlags = None + self.setInterval(minValue, maxValue, borderFlags) - def setInterval(self, minValue, maxValue, borderFlags): + def setInterval(self, minValue, maxValue, borderFlags=None): """ Assign the limits of the interval @@ -55,8 +53,11 @@ def setInterval(self, minValue, maxValue, borderFlags): """ self.__minValue = float(minValue) # avoid overflows with NumPy scalars self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars - self.__borderFlags = borderFlags - + if borderFlags is None: + self.__borderFlags = self.IncludeBorders + else: + self.__borderFlags = borderFlags + def setBorderFlags(self, borderFlags): """ Change the border flags @@ -78,7 +79,7 @@ def borderFlags(self): :py:meth:`setBorderFlags()` """ return self.__borderFlags - + def setMinValue(self, minValue): """ Assign the lower limit of the interval @@ -86,7 +87,7 @@ def setMinValue(self, minValue): :param float minValue: Minimum value """ self.__minValue = float(minValue) # avoid overflows with NumPy scalars - + def setMaxValue(self, maxValue): """ Assign the upper limit of the interval @@ -94,13 +95,13 @@ def setMaxValue(self, maxValue): :param float maxValue: Maximum value """ self.__maxValue = float(maxValue) # avoid overflows with NumPy scalars - + def minValue(self): """ :return: Lower limit of the interval """ return self.__minValue - + def maxValue(self): """ :return: Upper limit of the interval @@ -119,7 +120,7 @@ def isValid(self): return self.__minValue <= self.__maxValue else: return self.__minValue < self.__maxValue - + def width(self): """ The width of invalid intervals is 0.0, otherwise the result is @@ -130,39 +131,41 @@ def width(self): if self.isValid(): return self.__maxValue - self.__minValue else: - return 0. - + return 0.0 + def __and__(self, other): return self.intersect(other) - + def __iand__(self, other): self = self & other return self - + def __or__(self, other): if isinstance(other, QwtInterval): return self.unite(other) else: return self.extend(other) - + def __ior__(self, other): self = self | other return self - + def __eq__(self, other): - return self.__minValue == other.__minValue and\ - self.__maxValue == other.__maxValue and\ - self.__borderFlags == other.__borderFlags + return ( + self.__minValue == other.__minValue + and self.__maxValue == other.__maxValue + and self.__borderFlags == other.__borderFlags + ) def __ne__(self, other): return not self.__eq__(other) - + def isNull(self): """ :return: true, if isValid() && (minValue() >= maxValue()) """ return self.isValid() and self.__minValue >= self.__maxValue - + def invalidate(self): """ The limits are set to interval [0.0, -1.0] @@ -171,9 +174,9 @@ def invalidate(self): :py:meth:`isValid()` """ - self.__minValue = 0. - self.__maxValue = -1. - + self.__minValue = 0.0 + self.__maxValue = -1.0 + def normalized(self): """ Normalize the limits of the interval @@ -188,12 +191,14 @@ def normalized(self): """ if self.__minValue > self.__maxValue: return self.inverted() - elif self.__minValue == self.__maxValue and\ - self.__borderFlags == self.ExcludeMinimum: + elif ( + self.__minValue == self.__maxValue + and self.__borderFlags == self.ExcludeMinimum + ): return self.inverted() else: return self - + def inverted(self): """ Invert the limits of the interval @@ -210,7 +215,7 @@ def inverted(self): if self.__borderFlags & self.ExcludeMaximum: borderFlags |= self.ExcludeMinimum return QwtInterval(self.__maxValue, self.__minValue, borderFlags) - + def contains(self, value): """ Test if a value is inside an interval @@ -222,11 +227,9 @@ def contains(self, value): return False elif value < self.__minValue or value > self.__maxValue: return False - elif value == self.__minValue and\ - self.__borderFlags & self.ExcludeMinimum: + elif value == self.__minValue and self.__borderFlags & self.ExcludeMinimum: return False - elif value == self.__maxValue and\ - self.__borderFlags & self.ExcludeMaximum: + elif value == self.__maxValue and self.__borderFlags & self.ExcludeMaximum: return False else: return True @@ -245,10 +248,10 @@ def unite(self, other): return other elif not other.isValid(): return self - + united = QwtInterval() flags = self.IncludeBorders - + # minimum if self.__minValue < other.minValue(): united.setMinValue(self.__minValue) @@ -258,9 +261,8 @@ def unite(self, other): flags &= other.borderFlags() & self.ExcludeMinimum else: united.setMinValue(self.__minValue) - flags &= (self.__borderFlags & other.borderFlags())\ - & self.ExcludeMinimum - + flags &= (self.__borderFlags & other.borderFlags()) & self.ExcludeMinimum + # maximum if self.__maxValue > other.maxValue(): united.setMaxValue(self.__maxValue) @@ -270,12 +272,11 @@ def unite(self, other): flags &= other.borderFlags() & self.ExcludeMaximum else: united.setMaxValue(self.__maxValue) - flags &= self.__borderFlags & other.borderFlags()\ - & self.ExcludeMaximum - + flags &= self.__borderFlags & other.borderFlags() & self.ExcludeMaximum + united.setBorderFlags(flags) return united - + def intersect(self, other): """ Intersect two intervals @@ -285,30 +286,32 @@ def intersect(self, other): """ if not other.isValid() or not self.isValid(): return QwtInterval() - + i1 = self i2 = other - + if i1.minValue() > i2.minValue(): i1, i2 = i2, i1 elif i1.minValue() == i2.minValue(): if i1.borderFlags() & self.ExcludeMinimum: i1, i2 = i2, i1 - + if i1.maxValue() < i2.maxValue(): return QwtInterval() - + if i1.maxValue() == i2.minValue(): - if i1.borderFlags() & self.ExcludeMaximum or\ - i2.borderFlags() & self.ExcludeMinimum: + if ( + i1.borderFlags() & self.ExcludeMaximum + or i2.borderFlags() & self.ExcludeMinimum + ): return QwtInterval() - + intersected = QwtInterval() flags = self.IncludeBorders - + intersected.setMinValue(i2.minValue()) flags |= i2.borderFlags() & self.ExcludeMinimum - + if i1.maxValue() < i2.maxValue(): intersected.setMaxValue(i1.maxValue()) flags |= i1.borderFlags() & self.ExcludeMaximum @@ -318,10 +321,10 @@ def intersect(self, other): else: # i1.maxValue() == i2.maxValue() intersected.setMaxValue(i1.maxValue()) flags |= i1.borderFlags() & i2.borderFlags() & self.ExcludeMaximum - + intersected.setBorderFlags(flags) return intersected - + def intersects(self, other): """ Test if two intervals overlap @@ -331,23 +334,24 @@ def intersects(self, other): """ if not other.isValid() or not self.isValid(): return False - + i1 = self i2 = other - + if i1.minValue() > i2.minValue(): i1, i2 = i2, i1 - elif i1.minValue() == i2.minValue() and\ - i1.borderFlags() & self.ExcludeMinimum: + elif i1.minValue() == i2.minValue() and i1.borderFlags() & self.ExcludeMinimum: i1, i2 = i2, i1 - + if i1.maxValue() > i2.minValue(): return True elif i1.maxValue() == i2.minValue(): - return i1.borderFlags() & self.ExcludeMaximum and\ - i2.borderFlags() & self.ExcludeMinimum + return ( + i1.borderFlags() & self.ExcludeMaximum + and i2.borderFlags() & self.ExcludeMinimum + ) return False - + def symmetrize(self, value): """ Adjust the limit that is closer to value, so that value becomes @@ -358,9 +362,8 @@ def symmetrize(self, value): """ if not self.isValid(): return self - delta = max([abs(value-self.__maxValue), - abs(value-self.__minValue)]) - return QwtInterval(value-delta, value+delta) + delta = max([abs(value - self.__maxValue), abs(value - self.__minValue)]) + return QwtInterval(value - delta, value + delta) def limited(self, lowerBound, upperBound): """ @@ -377,7 +380,7 @@ def limited(self, lowerBound, upperBound): maxValue = max([self.__maxValue, lowerBound]) maxValue = min([maxValue, upperBound]) return QwtInterval(minValue, maxValue, self.__borderFlags) - + def extend(self, value): """ Extend the interval @@ -392,6 +395,5 @@ def extend(self, value): """ if not self.isValid(): return self - return QwtInterval(min([value, self.__minValue]), - max([value, self.__maxValue])) + return QwtInterval(min([value, self.__minValue]), max([value, self.__maxValue])) diff --git a/qwt/legend.py b/qwt/legend.py index 0524d6c..8261aa3 100644 --- a/qwt/legend.py +++ b/qwt/legend.py @@ -19,11 +19,21 @@ :members: """ -import numpy as np - -from .qt.QtGui import (QFrame, QScrollArea, QWidget, QVBoxLayout, QPalette, - QApplication, QStyleOption, QStyle, QPixmap, - QPainter, qDrawWinButton) +import math + +from .qt.QtGui import ( + QFrame, + QScrollArea, + QWidget, + QVBoxLayout, + QPalette, + QApplication, + QStyleOption, + QStyle, + QPixmap, + QPainter, + qDrawWinButton, +) from .qt.QtCore import Signal, QEvent, QSize, Qt, QRect, QRectF, QPoint from .text import QwtText, QwtTextLabel @@ -52,29 +62,29 @@ class QwtLegendData(object): The stockchart example implements a legend as a tree with checkable items """ - + # enum Mode ReadOnly, Clickable, Checkable = list(range(3)) - + # enum Role ModeRole, TitleRole, IconRole = list(range(3)) UserRole = 32 - + def __init__(self): self.__map = {} - + def setValues(self, map_): """ Set the legend attributes - :param dict map\_: Values + :param dict map_: Values .. seealso:: :py:meth:`values()` """ self.__map = map_ - + def values(self): """ :return: Legend attributes @@ -84,14 +94,14 @@ def values(self): :py:meth:`setValues()` """ return self.__map - + def hasRole(self, role): """ :param int role: Attribute role :return: True, when the internal map has an entry for role """ return role in self.__map - + def setValue(self, role, data): """ Set an attribute value @@ -104,7 +114,7 @@ def setValue(self, role, data): :py:meth:`value()` """ self.__map[role] = data - + def value(self, role): """ :param int role: Attribute role @@ -115,13 +125,13 @@ def value(self, role): :py:meth:`setValue()` """ return self.__map.get(role) - + def isValid(self): """ :return: True, when the internal map is empty """ return len(self.__map) != 0 - + def title(self): """ :return: Value of the TitleRole attribute @@ -132,13 +142,13 @@ def title(self): else: text = QwtText(titleValue) return text - + def icon(self): """ :return: Value of the IconRole attribute """ return self.value(QwtLegendData.IconRole) - + def mode(self): """ :return: Value of the ModeRole attribute @@ -149,7 +159,6 @@ def mode(self): return QwtLegendData.ReadOnly - BUTTONFRAME = 2 MARGIN = 2 @@ -169,22 +178,22 @@ def __init__(self): self.spacing = MARGIN self.legendData = QwtLegendData() self.icon = QPixmap() - + class QwtLegendLabel(QwtTextLabel): """A widget representing something on a QwtLegend.""" - + clicked = Signal() pressed = Signal() released = Signal() checked = Signal(bool) - + def __init__(self, parent=None): QwtTextLabel.__init__(self, parent) self.__data = QwtLegendLabel_PrivateData() self.setMargin(MARGIN) self.setIndent(MARGIN) - + def setData(self, legendData): """ Set the attributes of the legend label @@ -207,7 +216,7 @@ def setData(self, legendData): if doUpdate: self.setUpdatesEnabled(True) self.update() - + def data(self): """ :return: Attributes of the label @@ -217,7 +226,7 @@ def data(self): :py:meth:`setData()`, :py:meth:`qwt.plot.QwtPlotItem.legendData()` """ return self.__data.legendData - + def setText(self, text): """ Set the text to the legend item @@ -228,11 +237,10 @@ def setText(self, text): :py:meth:`text()` """ - flags = Qt.AlignLeft|Qt.AlignVCenter|Qt.TextExpandTabs|Qt.TextWordWrap - txt = text #TODO: WTF? - txt.setRenderFlags(flags) + flags = Qt.AlignLeft | Qt.AlignVCenter | Qt.TextExpandTabs | Qt.TextWordWrap + text.setRenderFlags(flags) QwtTextLabel.setText(self, text) - + def setItemMode(self, mode): """ Set the item mode. @@ -247,11 +255,12 @@ def setItemMode(self, mode): if mode != self.__data.itemMode: self.__data.itemMode = mode self.__data.isDown = False - self.setFocusPolicy(Qt.TabFocus if mode != QwtLegendData.ReadOnly - else Qt.NoFocus) - self.setMargin(BUTTONFRAME+MARGIN) + self.setFocusPolicy( + Qt.TabFocus if mode != QwtLegendData.ReadOnly else Qt.NoFocus + ) + self.setMargin(BUTTONFRAME + MARGIN) self.updateGeometry() - + def itemMode(self): """ :return: Item mode @@ -261,7 +270,7 @@ def itemMode(self): :py:meth:`setItemMode()` """ return self.__data.itemMode - + def setIcon(self, icon): """ Assign the icon @@ -273,11 +282,11 @@ def setIcon(self, icon): :py:meth:`icon()`, :py:meth:`qwt.plot.QwtPlotItem.legendIcon()` """ self.__data.icon = icon - indent = self.margin()+self.__data.spacing + indent = self.margin() + self.__data.spacing if icon.width() > 0: - indent += icon.width()+self.__data.spacing + indent += icon.width() + self.__data.spacing self.setIndent(indent) - + def icon(self): """ :return: Pixmap representing a plot item @@ -287,7 +296,7 @@ def icon(self): :py:meth:`setIcon()` """ return self.__data.icon - + def setSpacing(self, spacing): """ Change the spacing between icon and text @@ -301,11 +310,11 @@ def setSpacing(self, spacing): spacing = max([spacing, 0]) if spacing != self.__data.spacing: self.__data.spacing = spacing - indent = self.margin()+self.__data.spacing + indent = self.margin() + self.__data.spacing if self.__data.icon.width() > 0: - indent += self.__data.icon.width()+self.__data.spacing + indent += self.__data.icon.width() + self.__data.spacing self.setIndent(indent) - + def spacing(self): """ :return: Spacing between icon and text @@ -315,7 +324,7 @@ def spacing(self): :py:meth:`setSpacing()` """ return self.__data.spacing - + def setChecked(self, on): """ Check/Uncheck a the item @@ -331,7 +340,7 @@ def setChecked(self, on): self.blockSignals(True) self.setDown(on) self.blockSignals(isBlocked) - + def isChecked(self): """ :return: true, if the item is checked @@ -341,7 +350,7 @@ def isChecked(self): :py:meth:`setChecked()` """ return self.__data.itemMode == QwtLegendData.Checkable and self.isDown() - + def setDown(self, down): """ Set the item being down @@ -364,7 +373,7 @@ def setDown(self, down): self.clicked.emit() if self.__data.itemMode == QwtLegendData.Checkable: self.checked.emit(self.__data.isDown) - + def isDown(self): """ :return: true, if the item is down @@ -374,25 +383,26 @@ def isDown(self): :py:meth:`setDown()` """ return self.__data.isDown - + def sizeHint(self): """ :return: a size hint """ sz = QwtTextLabel.sizeHint(self) - sz.setHeight(max([sz.height(), self.__data.icon.height()+4])) + sz.setHeight(max([sz.height(), self.__data.icon.height() + 4])) if self.__data.itemMode != QwtLegendData.ReadOnly: sz += buttonShift(self) sz = sz.expandedTo(QApplication.globalStrut()) return sz - + def paintEvent(self, e): cr = self.contentsRect() painter = QPainter(self) painter.setClipRegion(e.region()) if self.__data.isDown: - qDrawWinButton(painter, 0, 0, self.width(), self.height(), - self.palette(), True) + qDrawWinButton( + painter, 0, 0, self.width(), self.height(), self.palette(), True + ) painter.save() if self.__data.isDown: shiftSize = buttonShift(self) @@ -401,12 +411,11 @@ def paintEvent(self, e): self.drawContents(painter) if not self.__data.icon.isNull(): iconRect = QRect(cr) - iconRect.setX(iconRect.x()+self.margin()) + iconRect.setX(iconRect.x() + self.margin()) if self.__data.itemMode != QwtLegendData.ReadOnly: - iconRect.setX(iconRect.x()+BUTTONFRAME) + iconRect.setX(iconRect.x() + BUTTONFRAME) iconRect.setSize(self.__data.icon.size()) - iconRect.moveCenter(QPoint(iconRect.center().x(), - cr.center().y())) + iconRect.moveCenter(QPoint(iconRect.center().x(), cr.center().y())) painter.drawPixmap(iconRect, self.__data.icon) painter.restore() @@ -419,7 +428,7 @@ def mousePressEvent(self, e): self.setDown(not self.isDown()) return QwtTextLabel.mousePressEvent(self, e) - + def mouseReleaseEvent(self, e): if e.button() == Qt.LeftButton: if self.__data.itemMode == QwtLegendData.Clickable: @@ -452,22 +461,21 @@ def keyReleaseEvent(self, e): QwtTextLabel.keyReleaseEvent(self, e) - class QwtAbstractLegend(QFrame): def __init__(self, parent): QFrame.__init__(self, parent) - + def renderLegend(self, painter, rect, fillBackground): raise NotImplementedError - + def isEmpty(self): return 0 - + def scrollExtent(self, orientation): return 0 - + def updateLegend(self, itemInfo, data): - raise NotImplementedError + raise NotImplementedError class Entry(object): @@ -475,13 +483,14 @@ def __init__(self): self.itemInfo = None self.widgets = [] + class QwtLegendMap(object): def __init__(self): self.__entries = [] - + def isEmpty(self): return len(self.__entries) == 0 - + def insert(self, itemInfo, widgets): for entry in self.__entries: if entry.itemInfo == itemInfo: @@ -491,36 +500,35 @@ def insert(self, itemInfo, widgets): newEntry.itemInfo = itemInfo newEntry.widgets = widgets self.__entries += [newEntry] - + def remove(self, itemInfo): for entry in self.__entries[:]: if entry.itemInfo == itemInfo: self.__entries.remove(entry) return - + def removeWidget(self, widget): for entry in self.__entries: while widget in entry.widgets: entry.widgets.remove(widget) - + def itemInfo(self, widget): if widget is not None: for entry in self.__entries: if widget in entry.widgets: return entry.itemInfo - + def legendWidgets(self, itemInfo): if itemInfo is not None: for entry in self.__entries: if entry.itemInfo == itemInfo: return entry.widgets return [] - + class LegendView(QScrollArea): def __init__(self, parent): QScrollArea.__init__(self, parent) - self.gridLayout = None self.contentsWidget = QWidget(self) self.contentsWidget.setObjectName("QwtLegendViewContents") self.setWidget(self.contentsWidget) @@ -528,7 +536,7 @@ def __init__(self, parent): self.viewport().setObjectName("QwtLegendViewport") self.contentsWidget.setAutoFillBackground(False) self.viewport().setAutoFillBackground(False) - + def event(self, event): if event.type() == QEvent.PolishRequest: self.setFocusPolicy(Qt.NoFocus) @@ -541,13 +549,13 @@ def event(self, event): h = self.contentsWidget.heightForWidth(w) self.contentsWidget.resize(w, h) return QScrollArea.event(self, event) - + def viewportEvent(self, event): ok = QScrollArea.viewportEvent(self, event) if event.type() == QEvent.Resize: self.layoutContents() return ok - + def viewportSize(self, w, h): sbHeight = self.horizontalScrollBar().sizeHint().height() sbWidth = self.verticalScrollBar().sizeHint().width() @@ -562,29 +570,30 @@ def viewportSize(self, w, h): if w > vw and vh == ch: vh -= sbHeight return QSize(vw, vh) - + def layoutContents(self): - tl = self.gridLayout - if tl is None: + layout = self.contentsWidget.layout() + if layout is None: return visibleSize = self.viewport().contentsRect().size() - margins = tl.contentsMargins() + margins = layout.contentsMargins() margin_w = margins.left() + margins.right() - minW = int(tl.maxItemWidth()+margin_w) + minW = int(layout.maxItemWidth() + margin_w) w = max([visibleSize.width(), minW]) - h = max([tl.heightForWidth(w), visibleSize.height()]) + h = max([layout.heightForWidth(w), visibleSize.height()]) vpWidth = self.viewportSize(w, h).width() if w > vpWidth: w = max([vpWidth, minW]) - h = max([tl.heightForWidth(w), visibleSize.height()]) + h = max([layout.heightForWidth(w), visibleSize.height()]) self.contentsWidget.resize(w, h) - + class QwtLegend_PrivateData(object): def __init__(self): self.itemMode = QwtLegendData.ReadOnly - self.view = None - self.itemMap = QwtLegendMap() + self.view = QwtDynGridLayout() + self.itemMap = QwtLegendMap() + class QwtLegend(QwtAbstractLegend): """ @@ -634,7 +643,7 @@ class QwtLegend(QwtAbstractLegend): clicked = Signal("PyQt_PyObject", int) checked = Signal("PyQt_PyObject", bool, int) - + def __init__(self, parent=None): QwtAbstractLegend.__init__(self, parent) self.setFrameStyle(QFrame.NoFrame) @@ -643,13 +652,13 @@ def __init__(self, parent=None): self.__data.view.setObjectName("QwtLegendView") self.__data.view.setFrameStyle(QFrame.NoFrame) gridLayout = QwtDynGridLayout(self.__data.view.contentsWidget) - gridLayout.setAlignment(Qt.AlignHCenter|Qt.AlignTop) + gridLayout.setAlignment(Qt.AlignHCenter | Qt.AlignTop) self.__data.view.gridLayout = gridLayout self.__data.view.contentsWidget.installEventFilter(self) layout = QVBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.__data.view) - + def setMaxColumns(self, numColumns): """ Set the maximum number of entries in a row @@ -668,7 +677,7 @@ def setMaxColumns(self, numColumns): if tl is not None: tl.setMaxColumns(numColumns) self.updateGeometry() - + def maxColumns(self): """ :return: Maximum number of entries in a row @@ -682,7 +691,7 @@ def maxColumns(self): if tl is not None: return tl.maxColumns() return 0 - + def setDefaultItemMode(self, mode): """ Set the default mode for legend labels @@ -705,7 +714,7 @@ def setDefaultItemMode(self, mode): Changing the mode doesn't have any effect on existing labels. """ self.__data.itemMode = mode - + def defaultItemMode(self): """ :return: Default item mode @@ -715,7 +724,7 @@ def defaultItemMode(self): :py:meth:`setDefaultItemMode()` """ return self.__data.itemMode - + def contentsWidget(self): """ The contents widget is the only child of the viewport of @@ -725,7 +734,7 @@ def contentsWidget(self): :return: Container widget of the legend items """ return self.__data.view.contentsWidget - + def horizontalScrollBar(self): """ :return: Horizontal scrollbar @@ -735,7 +744,7 @@ def horizontalScrollBar(self): :py:meth:`verticalScrollBar()` """ return self.__data.view.horizontalScrollBar() - + def verticalScrollBar(self): """ :return: Vertical scrollbar @@ -745,7 +754,7 @@ def verticalScrollBar(self): :py:meth:`horizontalScrollBar()` """ return self.__data.view.verticalScrollBar() - + def updateLegend(self, itemInfo, data): """ Update the entries for an item @@ -775,7 +784,7 @@ def updateLegend(self, itemInfo, data): self.updateTabOrder() for i in range(len(data)): self.updateWidget(widgetList[i], data[i]) - + def createWidget(self, data): """ Create a widget to be inserted into the legend @@ -795,7 +804,7 @@ def createWidget(self, data): label.clicked.connect(lambda: self.itemClicked(label)) label.checked.connect(lambda state: self.itemChecked(state, label)) return label - + def updateWidget(self, widget, data): """ Update the widget @@ -811,12 +820,12 @@ def updateWidget(self, widget, data): When widget is no QwtLegendLabel updateWidget() does nothing. """ - label = widget #TODO: cast to QwtLegendLabel! + label = widget # TODO: cast to QwtLegendLabel! if label is not None: label.setData(data) if data.value(QwtLegendData.ModeRole) is None: label.setItemMode(self.defaultItemMode()) - + def updateTabOrder(self): contentsLayout = self.__data.view.gridLayout if contentsLayout is not None: @@ -826,24 +835,24 @@ def updateTabOrder(self): if w is not None and item.widget(): QWidget.setTabOrder(w, item.widget()) w = item.widget() - + def sizeHint(self): """Return a size hint""" hint = self.__data.view.contentsWidget.sizeHint() - hint += QSize(2*self.frameWidth(), 2*self.frameWidth()) + hint += QSize(2 * self.frameWidth(), 2 * self.frameWidth()) return hint - + def heightForWidth(self, width): """ :param int width: Width :return: The preferred height, for a width. """ - width -= 2*self.frameWidth() + width -= 2 * self.frameWidth() h = self.__data.view.contentsWidget.heightForWidth(width) if h >= 0: - h += 2*self.frameWidth() + h += 2 * self.frameWidth() return h - + def eventFilter(self, object_, event): """ Handle QEvent.ChildRemoved andQEvent.LayoutRequest events @@ -855,19 +864,20 @@ def eventFilter(self, object_, event): """ if object_ is self.__data.view.contentsWidget: if event.type() == QEvent.ChildRemoved: - ce = event #TODO: cast to QChildEvent + ce = event # TODO: cast to QChildEvent if ce.child().isWidgetType(): - w = ce.child() #TODO: cast to QWidget + w = ce.child() # TODO: cast to QWidget self.__data.itemMap.removeWidget(w) elif event.type() == QEvent.LayoutRequest: self.__data.view.layoutContents() if self.parentWidget() and self.parentWidget().layout() is None: - QApplication.postEvent(self.parentWidget(), - QEvent(QEvent.LayoutRequest)) + QApplication.postEvent( + self.parentWidget(), QEvent(QEvent.LayoutRequest) + ) return QwtAbstractLegend.eventFilter(self, object_, event) - + def itemClicked(self, widget): -# w = self.sender() #TODO: cast to QWidget + # w = self.sender() #TODO: cast to QWidget w = widget if w is not None: itemInfo = self.__data.itemMap.itemInfo(w) @@ -876,9 +886,9 @@ def itemClicked(self, widget): if w in widgetList: index = widgetList.index(w) self.clicked.emit(itemInfo, index) - + def itemChecked(self, on, widget): -# w = self.sender() #TODO: cast to QWidget + # w = self.sender() #TODO: cast to QWidget w = widget if w is not None: itemInfo = self.__data.itemMap.itemInfo(w) @@ -887,7 +897,7 @@ def itemChecked(self, on, widget): if w in widgetList: index = widgetList.index(w) self.checked.emit(itemInfo, on, index) - + def renderLegend(self, painter, rect, fillBackground): """ Render the legend into a given rectangle. @@ -899,21 +909,17 @@ def renderLegend(self, painter, rect, fillBackground): if self.__data.itemMap.isEmpty(): return if fillBackground: - if self.autoFillBackground() or\ - self.testAttribute(Qt.WA_StyledBackground): + if self.autoFillBackground() or self.testAttribute(Qt.WA_StyledBackground): QwtPainter.drawBackground(painter, rect, self) -# const QwtDynGridLayout *legendLayout = -# qobject_cast( contentsWidget()->layout() ); - #TODO: not the exact same implementation legendLayout = self.__data.view.contentsWidget.layout() if legendLayout is None: return left, right, top, bottom = self.getContentsMargins() layoutRect = QRect() - layoutRect.setLeft(np.ceil(rect.left())+left) - layoutRect.setTop(np.ceil(rect.top())+top) - layoutRect.setRight(np.ceil(rect.right())-right) - layoutRect.setBottom(np.ceil(rect.bottom())-bottom) + layoutRect.setLeft(math.ceil(rect.left()) + left) + layoutRect.setTop(math.ceil(rect.top()) + top) + layoutRect.setRight(math.ceil(rect.right()) - right) + layoutRect.setBottom(math.ceil(rect.bottom()) - bottom) numCols = legendLayout.columnsForWidth(layoutRect.width()) itemRects = legendLayout.layoutItems(layoutRect, numCols) index = 0 @@ -926,7 +932,7 @@ def renderLegend(self, painter, rect, fillBackground): self.renderItem(painter, w, itemRects[index], fillBackground) index += 1 painter.restore() - + def renderItem(self, painter, widget, rect, fillBackground): """ Render a legend entry into a given rectangle. @@ -937,23 +943,27 @@ def renderItem(self, painter, widget, rect, fillBackground): :param bool fillBackground: When true, fill rect with the widget background """ if fillBackground: - if widget.autoFillBackground() or\ - widget.testAttribute(Qt.WA_StyledBackground): + if widget.autoFillBackground() or widget.testAttribute( + Qt.WA_StyledBackground + ): QwtPainter.drawBackground(painter, rect, widget) - label = widget #TODO: cast to QwtLegendLabel + label = widget # TODO: cast to QwtLegendLabel if label is not None: icon = label.data().icon() sz = icon.defaultSize() - iconRect = QRectF(rect.x()+label.margin(), - rect.center().y()-.5*sz.height(), - sz.width(), sz.height()) + iconRect = QRectF( + rect.x() + label.margin(), + rect.center().y() - 0.5 * sz.height(), + sz.width(), + sz.height(), + ) icon.render(painter, iconRect, Qt.KeepAspectRatio) titleRect = QRectF(rect) - titleRect.setX(iconRect.right()+2*label.spacing()) + titleRect.setX(iconRect.right() + 2 * label.spacing()) painter.setFont(label.font()) painter.setPen(label.palette().color(QPalette.Text)) - label.drawText(painter, titleRect) #TODO: cast label to QwtLegendLabel - + label.drawText(painter, titleRect) # TODO: cast label to QwtLegendLabel + def legendWidgets(self, itemInfo): """ List of widgets associated to a item @@ -961,7 +971,7 @@ def legendWidgets(self, itemInfo): :param QVariant itemInfo: Info about an item """ return self.__data.itemMap.legendWidgets(itemInfo) - + def legendWidget(self, itemInfo): """ First widget in the list of widgets associated to an item @@ -971,7 +981,7 @@ def legendWidget(self, itemInfo): list_ = self.__data.itemMap.legendWidgets(itemInfo) if list_: return list_[0] - + def itemInfo(self, widget): """ Find the item that is associated to a widget @@ -980,6 +990,6 @@ def itemInfo(self, widget): :return: Associated item info """ return self.__data.itemMap.itemInfo(widget) - + def isEmpty(self): return self.__data.itemMap.isEmpty() diff --git a/qwt/null_paintdevice.py b/qwt/null_paintdevice.py index 9fa0f54..790da46 100644 --- a/qwt/null_paintdevice.py +++ b/qwt/null_paintdevice.py @@ -23,21 +23,20 @@ def __init__(self): class QwtNullPaintDevice_PaintEngine(QPaintEngine): def __init__(self, paintdevice): - super(QwtNullPaintDevice_PaintEngine, self - ).__init__(QPaintEngine.AllFeatures) + super(QwtNullPaintDevice_PaintEngine, self).__init__(QPaintEngine.AllFeatures) self.__paintdevice = paintdevice - + def begin(self, paintdevice): self.setActive(True) return True - + def end(self): self.setActive(False) return True - + def type(self): return QPaintEngine.User - + def drawRects(self, rects, rectCount=None): if rectCount is None: rectCount = len(rects) @@ -52,7 +51,7 @@ def drawRects(self, rects, rectCount=None): QPaintEngine.drawRects(self, rects) return device.drawRects(rects, rectCount) - + def drawLines(self, lines, lineCount=None): if lineCount is None: lineCount = len(lines) @@ -67,7 +66,7 @@ def drawLines(self, lines, lineCount=None): QPaintEngine.drawLines(self, lines) return device.drawLines(lines, lineCount) - + def drawEllipse(self, rect): device = self.nullDevice() if device is None: @@ -76,13 +75,13 @@ def drawEllipse(self, rect): QPaintEngine.drawEllipse(rect) return device.drawEllipse(rect) - + def drawPath(self, path): device = self.nullDevice() if device is None: return device.drawPath(path) - + def drawPoints(self, points, pointCount=None): if pointCount is None: pointCount = len(points) @@ -97,7 +96,7 @@ def drawPoints(self, points, pointCount=None): QPaintEngine.drawPoints(self, points) return device.drawPoints(points, pointCount) - + def drawPolygon(self, *args): if len(args) == 3: points, pointCount, mode = args @@ -120,13 +119,13 @@ def drawPolygon(self, *args): device.drawPath(path) return device.drawPolygon(points, pointCount, mode) - + def drawPixmap(self, rect, pm, subRect): device = self.nullDevice() if device is None: return device.drawPixmap(rect, pm, subRect) - + def drawTextItem(self, pos, textItem): device = self.nullDevice() if device is None: @@ -135,7 +134,7 @@ def drawTextItem(self, pos, textItem): QPaintEngine.drawTextItem(pos, textItem) return device.drawTextItem(pos, textItem) - + def drawTiledPixmap(self, rect, pixmap, subRect): device = self.nullDevice() if device is None: @@ -144,7 +143,7 @@ def drawTiledPixmap(self, rect, pixmap, subRect): QPaintEngine.drawTiledPixmap(rect, pixmap, subRect) return device.drawTiledPixmap(rect, pixmap, subRect) - + def drawImage(self, rect, image, subRect, flags): device = self.nullDevice() if device is None: @@ -156,7 +155,7 @@ def updateState(self, state): if device is None: return device.updateState(state) - + def nullDevice(self): if not self.isActive(): return @@ -205,15 +204,15 @@ class QwtNullPaintDevice(QPaintDevice): - `drawPixmap()` - `drawImage()` """ - + # enum Mode NormalMode, PolygonPathMode, PathMode = list(range(3)) - + def __init__(self): super(QwtNullPaintDevice, self).__init__() self.__engine = None self.__data = QwtNullPaintDevice_PrivateData() - + def setMode(self, mode): """ Set the render mode @@ -225,7 +224,7 @@ def setMode(self, mode): :py:meth:`mode()` """ self.__data.mode = mode - + def mode(self): """ :return: Render mode @@ -235,63 +234,74 @@ def mode(self): :py:meth:`setMode()` """ return self.__data.mode - + def paintEngine(self): if self.__engine is None: self.__engine = QwtNullPaintDevice_PaintEngine(self) return self.__engine - + def metric(self, deviceMetric): if deviceMetric == QPaintDevice.PdmWidth: value = self.sizeMetrics().width() elif deviceMetric == QPaintDevice.PdmHeight: value = self.sizeMetrics().height() elif deviceMetric == QPaintDevice.PdmNumColors: - value = 0xffffffff + value = 0xFFFFFFFF elif deviceMetric == QPaintDevice.PdmDepth: value = 32 - elif deviceMetric in (QPaintDevice.PdmPhysicalDpiX, - QPaintDevice.PdmPhysicalDpiY, - QPaintDevice.PdmDpiY, QPaintDevice.PdmDpiX): + elif deviceMetric in ( + QPaintDevice.PdmPhysicalDpiX, + QPaintDevice.PdmPhysicalDpiY, + QPaintDevice.PdmDpiY, + QPaintDevice.PdmDpiX, + ): value = 72 elif deviceMetric == QPaintDevice.PdmWidthMM: - value = round(self.metric(QPaintDevice.PdmWidth)*25.4/self.metric(QPaintDevice.PdmDpiX)) + value = round( + self.metric(QPaintDevice.PdmWidth) + * 25.4 + / self.metric(QPaintDevice.PdmDpiX) + ) elif deviceMetric == QPaintDevice.PdmHeightMM: - value = round(self.metric(QPaintDevice.PdmHeight)*25.4/self.metric(QPaintDevice.PdmDpiY)) + value = round( + self.metric(QPaintDevice.PdmHeight) + * 25.4 + / self.metric(QPaintDevice.PdmDpiY) + ) else: value = 0 return value - + def drawRects(self, rects, rectCount): pass - + def drawLines(self, lines, lineCount): pass - + def drawEllipse(self, rect): pass - + def drawPath(self, path): pass - + def drawPoints(self, points, pointCount): pass - + def drawPolygon(self, points, pointCount, mode): pass - + def drawPixmap(self, rect, pm, subRect): pass - + def drawTextItem(self, pos, textItem): pass - + def drawTiledPixmap(self, rect, pm, subRect): pass - + def drawImage(self, rect, image, subRect, flags): pass - + def updateState(self, state): pass - \ No newline at end of file + diff --git a/qwt/painter.py b/qwt/painter.py index 8d9c2c4..1615c8a 100644 --- a/qwt/painter.py +++ b/qwt/painter.py @@ -16,12 +16,25 @@ from .color_map import QwtColorMap from .scale_map import QwtScaleMap -from .qt.QtGui import (QPaintEngine, QFrame, QPixmap, QPainter, QPalette, - QStyle, QPen, QStyleOptionFocusRect, QBrush, QRegion, - QLinearGradient, QPainterPath, QColor, QStyleOption) +from .qt.QtGui import ( + QPaintEngine, + QFrame, + QPixmap, + QPainter, + QPalette, + QStyle, + QPen, + QStyleOptionFocusRect, + QBrush, + QRegion, + QLinearGradient, + QPainterPath, + QColor, + QStyleOption, +) from .qt.QtCore import Qt, QRect, QPoint, QT_VERSION, QRectF -QWIDGETSIZE_MAX = (1<<24)-1 +QWIDGETSIZE_MAX = (1 << 24) - 1 def isX11GraphicsSystem(): @@ -31,6 +44,7 @@ def isX11GraphicsSystem(): del painter return isX11 + def qwtFillRect(widget, painter, rect, brush): if brush.style() == Qt.TexturePattern: painter.save() @@ -48,29 +62,29 @@ def qwtFillRect(widget, painter, rect, brush): class QwtPainterClass(object): """A collection of `QPainter` workarounds""" - + def drawImage(self, painter, rect, image): alignedRect = rect.toAlignedRect() if alignedRect != rect: - clipRect = rect.adjusted(0., 0., -1., -1.) + clipRect = rect.adjusted(0.0, 0.0, -1.0, -1.0) painter.save() painter.setClipRect(clipRect, Qt.IntersectClip) painter.drawImage(alignedRect, image) painter.restore() else: painter.drawImage(alignedRect, image) - + def drawPixmap(self, painter, rect, pixmap): alignedRect = rect.toAlignedRect() if alignedRect != rect: - clipRect = rect.adjusted(0., 0., -1., -1.) + clipRect = rect.adjusted(0.0, 0.0, -1.0, -1.0) painter.save() painter.setClipRect(clipRect, Qt.IntersectClip) painter.drawPixmap(alignedRect, pixmap) painter.restore() else: painter.drawPixmap(alignedRect, pixmap) - + def drawFocusRect(self, *args): if len(args) == 2: painter, widget = args @@ -83,12 +97,13 @@ def drawFocusRect(self, *args): opt.state |= QStyle.State_HasFocus palette = widget.palette() opt.backgroundColor = palette.color(widget.backgroundRole()) - widget.style().drawPrimitive(QStyle.PE_FrameFocusRect, - opt, painter, widget) + widget.style().drawPrimitive(QStyle.PE_FrameFocusRect, opt, painter, widget) else: - raise TypeError("QwtPainter.drawFocusRect() takes 2 or 3 argument"\ - "(s) (%s given)" % len(args)) - + raise TypeError( + "QwtPainter.drawFocusRect() takes 2 or 3 argument" + "(s) (%s given)" % len(args) + ) + def drawRoundFrame(self, painter, rect, palette, lineWidth, frameStyle): """ Draw a round frame @@ -105,7 +120,7 @@ def drawRoundFrame(self, painter, rect, palette, lineWidth, frameStyle): style = Sunken elif (frameStyle & QFrame.Raised) == QFrame.Raised: style = Raised - lw2 = .5*lineWidth + lw2 = 0.5 * lineWidth r = rect.adjusted(lw2, lw2, -lw2, -lw2) if style != Plain: c1 = palette.color(QPalette.Light) @@ -113,8 +128,8 @@ def drawRoundFrame(self, painter, rect, palette, lineWidth, frameStyle): if style == Sunken: c1, c2 = c2, c1 gradient = QLinearGradient(r.topLeft(), r.bottomRight()) - gradient.setColorAt(0., c1) - gradient.setColorAt(1., c2) + gradient.setColorAt(0.0, c1) + gradient.setColorAt(1.0, c2) brush = QBrush(gradient) else: brush = palette.brush(QPalette.WindowText) @@ -122,9 +137,17 @@ def drawRoundFrame(self, painter, rect, palette, lineWidth, frameStyle): painter.setPen(QPen(brush, lineWidth)) painter.drawEllipse(r) painter.restore() - - def drawFrame(self, painter, rect, palette, foregroundRole, - frameWidth, midLineWidth, frameStyle): + + def drawFrame( + self, + painter, + rect, + palette, + foregroundRole, + frameWidth, + midLineWidth, + frameStyle, + ): """ Draw a rectangular frame @@ -141,9 +164,10 @@ def drawFrame(self, painter, rect, palette, foregroundRole, shadow = frameStyle & QFrame.Shadow_Mask painter.save() if shadow == QFrame.Plain: - outerRect = rect.adjusted(0., 0., -1., -1.) + outerRect = rect.adjusted(0.0, 0.0, -1.0, -1.0) innerRect = outerRect.adjusted( - frameWidth, frameWidth, -frameWidth, -frameWidth) + frameWidth, frameWidth, -frameWidth, -frameWidth + ) path = QPainterPath() path.addRect(outerRect) path.addRect(innerRect) @@ -153,13 +177,16 @@ def drawFrame(self, painter, rect, palette, foregroundRole, else: shape = frameStyle & QFrame.Shape_Mask if shape == QFrame.Box: - outerRect = rect.adjusted(0., 0., -1., -1.) + outerRect = rect.adjusted(0.0, 0.0, -1.0, -1.0) midRect1 = outerRect.adjusted( - frameWidth, frameWidth, -frameWidth, -frameWidth) + frameWidth, frameWidth, -frameWidth, -frameWidth + ) midRect2 = midRect1.adjusted( - midLineWidth, midLineWidth, -midLineWidth, -midLineWidth) + midLineWidth, midLineWidth, -midLineWidth, -midLineWidth + ) innerRect = midRect2.adjusted( - frameWidth, frameWidth, -frameWidth, -frameWidth) + frameWidth, frameWidth, -frameWidth, -frameWidth + ) path1 = QPainterPath() path1.moveTo(outerRect.bottomLeft()) path1.lineTo(outerRect.topLeft()) @@ -205,9 +232,13 @@ def drawFrame(self, painter, rect, palette, foregroundRole, painter.setBrush(palette.mid()) painter.drawPath(path5) else: - outerRect = rect.adjusted(0., 0., -1., -1.) - innerRect = outerRect.adjusted(frameWidth-1., frameWidth-1., - -(frameWidth-1.), -(frameWidth-1.)) + outerRect = rect.adjusted(0.0, 0.0, -1.0, -1.0) + innerRect = outerRect.adjusted( + frameWidth - 1.0, + frameWidth - 1.0, + -(frameWidth - 1.0), + -(frameWidth - 1.0), + ) path1 = QPainterPath() path1.moveTo(outerRect.bottomLeft()) path1.lineTo(outerRect.topLeft()) @@ -232,9 +263,10 @@ def drawFrame(self, painter, rect, palette, foregroundRole, painter.setBrush(brush2) painter.drawPath(path2) painter.restore() - - def drawRoundedFrame(self, painter, rect, xRadius, yRadius, - palette, lineWidth, frameStyle): + + def drawRoundedFrame( + self, painter, rect, xRadius, yRadius, palette, lineWidth, frameStyle + ): """ Draw a rectangular frame with rounded borders @@ -249,7 +281,7 @@ def drawRoundedFrame(self, painter, rect, xRadius, yRadius, painter.save() painter.setRenderHint(QPainter.Antialiasing, True) painter.setBrush(Qt.NoBrush) - lw2 = lineWidth*.5 + lw2 = lineWidth * 0.5 r = rect.adjusted(lw2, lw2, -lw2, -lw2) path = QPainterPath() path.addRoundedRect(r, xRadius, yRadius) @@ -262,23 +294,28 @@ def drawRoundedFrame(self, painter, rect, xRadius, yRadius, if style != Plain and path.elementCount() == 17: pathList = [QPainterPath() for _i in range(8)] for i in range(4): - j = i*4+1 - pathList[2*i].moveTo(path.elementAt(j-1).x, - path.elementAt(j-1).y) - pathList[2*i].cubicTo( - path.elementAt(j+0).x, path.elementAt(j+0).y, - path.elementAt(j+1).x, path.elementAt(j+1).y, - path.elementAt(j+2).x, path.elementAt(j+2).y) - pathList[2*i+1].moveTo(path.elementAt(j+2).x, - path.elementAt(j+2).y) - pathList[2*i+1].lineTo(path.elementAt(j+3).x, - path.elementAt(j+3).y) + j = i * 4 + 1 + pathList[2 * i].moveTo(path.elementAt(j - 1).x, path.elementAt(j - 1).y) + pathList[2 * i].cubicTo( + path.elementAt(j + 0).x, + path.elementAt(j + 0).y, + path.elementAt(j + 1).x, + path.elementAt(j + 1).y, + path.elementAt(j + 2).x, + path.elementAt(j + 2).y, + ) + pathList[2 * i + 1].moveTo( + path.elementAt(j + 2).x, path.elementAt(j + 2).y + ) + pathList[2 * i + 1].lineTo( + path.elementAt(j + 3).x, path.elementAt(j + 3).y + ) c1 = QColor(palette.color(QPalette.Dark)) c2 = QColor(palette.color(QPalette.Light)) if style == Raised: c1, c2 = c2, c1 for i in range(5): - r = pathList[2*i].controlPointRect() + r = pathList[2 * i].controlPointRect() arcPen = QPen() arcPen.setCapStyle(Qt.FlatCap) arcPen.setWidth(lineWidth) @@ -292,8 +329,8 @@ def drawRoundedFrame(self, painter, rect, xRadius, yRadius, gradient = QLinearGradient() gradient.setStart(r.topLeft()) gradient.setFinalStop(r.bottomRight()) - gradient.setColorAt(0., c1) - gradient.setColorAt(1., c2) + gradient.setColorAt(0.0, c1) + gradient.setColorAt(1.0, c2) arcPen.setBrush(gradient) linePen.setColor(c2) elif i == 2: @@ -303,22 +340,21 @@ def drawRoundedFrame(self, painter, rect, xRadius, yRadius, gradient = QLinearGradient() gradient.setStart(r.bottomRight()) gradient.setFinalStop(r.topLeft()) - gradient.setColorAt(0., c2) - gradient.setColorAt(1., c1) + gradient.setColorAt(0.0, c2) + gradient.setColorAt(1.0, c1) arcPen.setBrush(gradient) linePen.setColor(c1) painter.setPen(arcPen) - painter.drawPath(pathList[2*i]) + painter.drawPath(pathList[2 * i]) painter.setPen(linePen) - painter.drawPath(pathList[2*i+1]) + painter.drawPath(pathList[2 * i + 1]) else: pen = QPen(palette.color(QPalette.WindowText), lineWidth) painter.setPen(pen) painter.drawPath(path) painter.restore() - - def drawColorBar(self, painter, colorMap, interval, scaleMap, - orientation, rect): + + def drawColorBar(self, painter, colorMap, interval, scaleMap, orientation, rect): """ Draw a color bar into a rectangle @@ -341,7 +377,7 @@ def drawColorBar(self, painter, colorMap, interval, scaleMap, if orientation == Qt.Horizontal: sMap = QwtScaleMap(scaleMap) sMap.setPaintInterval(rect.left(), rect.right()) - for x in range(devRect.left(), devRect.right()+1): + for x in range(devRect.left(), devRect.right() + 1): value = sMap.invTransform(x) if colorMap.format() == QwtColorMap.RGB: c.setRgba(colorMap.rgb(interval, value)) @@ -352,7 +388,7 @@ def drawColorBar(self, painter, colorMap, interval, scaleMap, else: sMap = QwtScaleMap(scaleMap) sMap.setPaintInterval(rect.bottom(), rect.top()) - for y in range(devRect.top(), devRect.bottom()+1): + for y in range(devRect.top(), devRect.bottom() + 1): value = sMap.invTransform(y) if colorMap.format() == QwtColorMap.RGB: c.setRgba(colorMap.rgb(interval, value)) @@ -362,7 +398,7 @@ def drawColorBar(self, painter, colorMap, interval, scaleMap, pmPainter.drawLine(devRect.left(), y, devRect.right(), y) pmPainter.end() self.drawPixmap(painter, rect, pixmap) - + def fillPixmap(self, widget, pixmap, offset=None): """ Fill a pixmap with the content of a widget @@ -394,9 +430,8 @@ def fillPixmap(self, widget, pixmap, offset=None): painter.setClipRegion(QRegion(rect)) opt = QStyleOption() opt.initFrom(widget) - widget.style().drawPrimitive(QStyle.PE_Widget, opt, - painter, widget) - + widget.style().drawPrimitive(QStyle.PE_Widget, opt, painter, widget) + def drawBackground(self, painter, rect, widget): """ Fill rect with the background of a widget @@ -413,12 +448,11 @@ def drawBackground(self, painter, rect, widget): opt = QStyleOption() opt.initFrom(widget) opt.rect = QRectF(rect).toAlignedRect() - widget.style().drawPrimitive(QStyle.PE_Widget, opt, - painter, widget) + widget.style().drawPrimitive(QStyle.PE_Widget, opt, painter, widget) else: brush = widget.palette().brush(widget.backgroundRole()) painter.fillRect(rect, brush) - + def backingStore(self, widget, size): """ :param QWidget widget: Widget, for which the backinstore is intended @@ -426,17 +460,18 @@ def backingStore(self, widget, size): :return: A pixmap that can be used as backing store """ if QT_VERSION >= 0x050000: - pixelRatio = 1. + pixelRatio = 1.0 if widget and widget.windowHandle(): pixelRatio = widget.windowHandle().devicePixelRatio() else: from .qt.QtGui import qApp + if qApp is not None: try: pixelRatio = qApp.devicePixelRatio() except RuntimeError: pass - pm = QPixmap(size*pixelRatio) + pm = QPixmap(size * pixelRatio) pm.setDevicePixelRatio(pixelRatio) else: pm = QPixmap(size) @@ -445,4 +480,5 @@ def backingStore(self, widget, size): pm.x11SetScreen(widget.x11Info().screen()) return pm -QwtPainter = QwtPainterClass() \ No newline at end of file + +QwtPainter = QwtPainterClass() diff --git a/qwt/painter_command.py b/qwt/painter_command.py index 7d9c080..8194549 100644 --- a/qwt/painter_command.py +++ b/qwt/painter_command.py @@ -14,6 +14,7 @@ """ from .qt.QtGui import QPainterPath, QPaintEngine +import copy class PixmapData(object): @@ -22,6 +23,7 @@ def __init__(self): self.pixmap = None self.subRect = None + class ImageData(object): def __init__(self): self.rect = None @@ -29,6 +31,7 @@ def __init__(self): self.subRect = None self.flags = None + class StateData(object): def __init__(self): self.flags = None @@ -48,6 +51,7 @@ def __init__(self): self.compositionMode = None self.opacity = None + class QwtPainterCommand(object): """ `QwtPainterCommand` represents the attributes of a paint operation @@ -94,16 +98,16 @@ class QwtPainterCommand(object): :param QPaintEngineState state: Paint engine state """ - + # enum Type Invalid = -1 Path, Pixmap, Image, State = list(range(4)) - + def __init__(self, *args): if len(args) == 0: self.__type = self.Invalid elif len(args) == 1: - arg, = args + (arg,) = args if isinstance(arg, QPainterPath): path = arg self.__type = self.Path @@ -159,34 +163,36 @@ def __init__(self, *args): self.__imageData.subRect = subRect self.__imageData.flags = flags else: - raise TypeError("%s() takes 0, 1, 3 or 4 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) - + raise TypeError( + "%s() takes 0, 1, 3 or 4 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) + def copy(self, other): self.__type = other.__type if other.__type == self.Path: self.__path = QPainterPath(other.__path) elif other.__type == self.Pixmap: - self.__pixmapData = PixmapData(other.__pixmapData) + self.__pixmapData = copy.deepcopy(other.__pixmapData) elif other.__type == self.Image: - self.__imageData = ImageData(other.__imageData) + self.__imageData = copy.deepcopy(other.__imageData) elif other.__type == self.State: - self.__stateData == StateData(other.__stateData) - + self.__stateData == copy.deepcopy(other.__stateData) + def reset(self): self.__type = self.Invalid def type(self): return self.__type - + def path(self): return self.__path - + def pixmapData(self): return self.__pixmapData - + def imageData(self): return self.__imageData - + def stateData(self): return self.__stateData diff --git a/qwt/plot.py b/qwt/plot.py index fe00884..cf7e269 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -19,8 +19,16 @@ :members: """ -from .qt.QtGui import (QWidget, QFont, QSizePolicy, QFrame, QApplication, - QPainter, QPalette, QColor) +from .qt.QtGui import ( + QWidget, + QFont, + QSizePolicy, + QFrame, + QApplication, + QPainter, + QPalette, + QColor, +) from .qt.QtCore import Qt, Signal, QEvent, QSize, QRectF from .text import QwtText, QwtTextLabel @@ -43,6 +51,7 @@ def qwtEnableLegendItems(plot, on): else: plot.legendDataChanged.disconnect(plot.updateLegendItems) + def qwtSetTabOrder(first, second, with_children): tab_chain = [first, second] if with_children: @@ -53,9 +62,9 @@ def qwtSetTabOrder(first, second, with_children): children.remove(w) tab_chain += [w] w = w.nextInFocusChain() - for idx in range(len(tab_chain)-1): + for idx in range(len(tab_chain) - 1): w_from = tab_chain[idx] - w_to = tab_chain[idx+1] + w_to = tab_chain[idx + 1] policy1, policy2 = w_from.focusPolicy(), w_to.focusPolicy() proxy1, proxy2 = w_from.focusProxy(), w_to.focusProxy() for w in (w_from, w_to): @@ -74,7 +83,7 @@ def sortItems(self): def insertItem(self, obj): self.append(obj) self.sortItems() - + def removeItem(self, obj): self.remove(obj) self.sortItems() @@ -101,9 +110,10 @@ class QwtPlotDict(object): :py:meth:`QwtPlotItem.attach()`, :py:meth:`QwtPlotItem.detach()`, :py:meth:`QwtPlotItem.z()` """ + def __init__(self): self.__data = QwtPlotDict_PrivateData() - + def setAutoDelete(self, autoDelete): """ En/Disable Auto deletion @@ -118,7 +128,7 @@ def setAutoDelete(self, autoDelete): :py:meth:`autoDelete()`, :py:meth:`insertItem()` """ self.__data.autoDelete = autoDelete - + def autoDelete(self): """ :return: true if auto deletion is enabled @@ -128,7 +138,7 @@ def autoDelete(self): :py:meth:`setAutoDelete()`, :py:meth:`insertItem()` """ return self.__data.autoDelete - + def insertItem(self, item): """ Insert a plot item @@ -140,7 +150,7 @@ def insertItem(self, item): :py:meth:`removeItem()` """ self.__data.itemList.insertItem(item) - + def removeItem(self, item): """ Remove a plot item @@ -205,9 +215,9 @@ def __init__(self): self.maxMajor = None self.maxMinor = None self.isValid = None - self.scaleDiv = None # QwtScaleDiv - self.scaleEngine = None # QwtScaleEngine - self.scaleWidget = None # QwtScaleWidget + self.scaleDiv = None # QwtScaleDiv + self.scaleEngine = None # QwtScaleEngine + self.scaleWidget = None # QwtScaleWidget class QwtPlot(QFrame, QwtPlotDict): @@ -273,66 +283,69 @@ class QwtPlot(QFrame, QwtPlotDict): :param data: Attributes of the entries (usually <= 1) for the plot item. """ - + itemAttached = Signal("PyQt_PyObject", bool) legendDataChanged = Signal("PyQt_PyObject", "PyQt_PyObject") # enum Axis AXES = yLeft, yRight, xBottom, xTop = list(range(4)) axisCnt = len(AXES) # Not necessary but ensure compatibility with PyQwt - + # enum LegendPosition LeftLegend, RightLegend, BottomLegend, TopLegend = list(range(4)) - + def __init__(self, *args): if len(args) == 0: title, parent = "", None elif len(args) == 1: if isinstance(args[0], QWidget) or args[0] is None: title = "" - parent, = args + (parent,) = args else: - title, = args + (title,) = args parent = None elif len(args) == 2: title, parent = args else: - raise TypeError("%s() takes 0, 1 or 2 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) + raise TypeError( + "%s() takes 0, 1 or 2 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) QwtPlotDict.__init__(self) QFrame.__init__(self, parent) - + self.__layout_state = None - + self.__data = QwtPlot_PrivateData() from .plot_layout import QwtPlotLayout + self.__data.layout = QwtPlotLayout() self.__data.autoReplot = False - + self.setAutoReplot(True) self.setPlotLayout(self.__data.layout) - + # title self.__data.titleLabel = QwtTextLabel(self) self.__data.titleLabel.setObjectName("QwtPlotTitle") text = QwtText(title) - text.setRenderFlags(Qt.AlignCenter|Qt.TextWordWrap) + text.setRenderFlags(Qt.AlignCenter | Qt.TextWordWrap) self.__data.titleLabel.setText(text) - + # footer self.__data.footerLabel = QwtTextLabel(self) self.__data.footerLabel.setObjectName("QwtPlotFooter") footer = QwtText() - footer.setRenderFlags(Qt.AlignCenter|Qt.TextWordWrap) + footer.setRenderFlags(Qt.AlignCenter | Qt.TextWordWrap) self.__data.footerLabel.setText(footer) - + # legend self.__data.legend = None - + # axis self.__axisData = [] self.initAxesData() - + # canvas self.__data.canvas = QwtPlotCanvas(self) self.__data.canvas.setObjectName("QwtPlotCanvas") @@ -340,31 +353,37 @@ def __init__(self, *args): # plot style self.setFlatStyle(True) - - self.setSizePolicy(QSizePolicy.MinimumExpanding, - QSizePolicy.MinimumExpanding) - + + self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) + self.resize(200, 200) - - focusChain = [self, self.__data.titleLabel, self.axisWidget(self.xTop), - self.axisWidget(self.yLeft), self.__data.canvas, - self.axisWidget(self.yRight), - self.axisWidget(self.xBottom), self.__data.footerLabel] - - for idx in range(len(focusChain)-1): - qwtSetTabOrder(focusChain[idx], focusChain[idx+1], False) - + + focusChain = [ + self, + self.__data.titleLabel, + self.axisWidget(self.xTop), + self.axisWidget(self.yLeft), + self.__data.canvas, + self.axisWidget(self.yRight), + self.axisWidget(self.xBottom), + self.__data.footerLabel, + ] + + for idx in range(len(focusChain) - 1): + qwtSetTabOrder(focusChain[idx], focusChain[idx + 1], False) + qwtEnableLegendItems(self, True) def __del__(self): self.setAutoReplot(False) - #XXX Is is really necessary in Python? (pure transcription of C++) - # The following line have been commented to avoid crashing Python + # XXX Is is really necessary in Python? (pure transcription of C++) + # The following line have been commented to avoid crashing Python # when exiting interpreter (Python 3 only) -# self.detachItems(QwtPlotItem.Rtti_PlotItem, self.autoDelete()) -# self.__data.layout = None -# self.deleteAxesData() -# self.__data = None + + # self.detachItems(QwtPlotItem.Rtti_PlotItem, self.autoDelete()) + # self.__data.layout = None + # self.deleteAxesData() + # self.__data = None def setFlatStyle(self, state): """ @@ -383,18 +402,22 @@ def setFlatStyle(self, state): :py:meth:`flatStyle()` """ + def make_font(family=None, size=None, delta_size=None, weight=None): finfo = self.fontInfo() family = finfo.family() if family is None else family weight = -1 if weight is None else weight - size = size if delta_size is None else finfo.pointSize()+delta_size + size = size if delta_size is None else finfo.pointSize() + delta_size return QFont(family, size, weight) + if state: # New PythonQwt-exclusive flat style - plot_title_font = make_font(family="Helvetica", delta_size=4, - weight=QFont.Bold) - axis_title_font = make_font(family="Helvetica", delta_size=2, - weight=QFont.Bold) + plot_title_font = make_font( + family="Helvetica", delta_size=4, weight=QFont.Bold + ) + axis_title_font = make_font( + family="Helvetica", delta_size=2, weight=QFont.Bold + ) axis_label_font = make_font(family="Helvetica", delta_size=0) tick_lighter_factors = (150, 125, 100) scale_margin = scale_spacing = 0 @@ -409,7 +432,7 @@ def make_font(family=None, size=None, delta_size=None, weight=None): axis_label_font = make_font(size=10) tick_lighter_factors = (100, 100, 100) scale_margin = scale_spacing = 2 - canvas_frame_style = QFrame.Panel|QFrame.Sunken + canvas_frame_style = QFrame.Panel | QFrame.Sunken plot_layout_canvas_margin = 4 plot_layout_spacing = 5 ticks_color = labels_color = Qt.black @@ -435,7 +458,7 @@ def make_font(family=None, size=None, delta_size=None, weight=None): plot_title.setFont(plot_title_font) self.setTitle(plot_title) self.__data.flatStyle = state - + def flatStyle(self): """ :return: True if the flatStyle option is set. @@ -449,25 +472,25 @@ def flatStyle(self): def initAxesData(self): """Initialize axes""" self.__axisData = [AxisData() for axisId in self.AXES] - - self.__axisData[self.yLeft].scaleWidget = \ - QwtScaleWidget(QwtScaleDraw.LeftScale, self) - self.__axisData[self.yRight].scaleWidget = \ - QwtScaleWidget(QwtScaleDraw.RightScale, self) - self.__axisData[self.xTop].scaleWidget = \ - QwtScaleWidget(QwtScaleDraw.TopScale, self) - self.__axisData[self.xBottom].scaleWidget = \ - QwtScaleWidget(QwtScaleDraw.BottomScale, self) - - self.__axisData[self.yLeft - ].scaleWidget.setObjectName("QwtPlotAxisYLeft") - self.__axisData[self.yRight - ].scaleWidget.setObjectName("QwtPlotAxisYRight") - self.__axisData[self.xTop - ].scaleWidget.setObjectName("QwtPlotAxisXTop") - self.__axisData[self.xBottom - ].scaleWidget.setObjectName("QwtPlotAxisXBottom") - + + self.__axisData[self.yLeft].scaleWidget = QwtScaleWidget( + QwtScaleDraw.LeftScale, self + ) + self.__axisData[self.yRight].scaleWidget = QwtScaleWidget( + QwtScaleDraw.RightScale, self + ) + self.__axisData[self.xTop].scaleWidget = QwtScaleWidget( + QwtScaleDraw.TopScale, self + ) + self.__axisData[self.xBottom].scaleWidget = QwtScaleWidget( + QwtScaleDraw.BottomScale, self + ) + + self.__axisData[self.yLeft].scaleWidget.setObjectName("QwtPlotAxisYLeft") + self.__axisData[self.yRight].scaleWidget.setObjectName("QwtPlotAxisYRight") + self.__axisData[self.xTop].scaleWidget.setObjectName("QwtPlotAxisXTop") + self.__axisData[self.xBottom].scaleWidget.setObjectName("QwtPlotAxisXBottom") + for axisId in self.AXES: d = self.__axisData[axisId] @@ -478,22 +501,22 @@ def initAxesData(self): text = d.scaleWidget.title() d.scaleWidget.setTitle(text) - + d.doAutoScale = True d.minValue = 0.0 d.maxValue = 1000.0 - d.stepSize = 0.0 + d.stepSize = 0.0 d.maxMinor = 5 d.maxMajor = 8 d.isValid = False - + self.__axisData[self.yLeft].isEnabled = True self.__axisData[self.yRight].isEnabled = False self.__axisData[self.xBottom].isEnabled = True self.__axisData[self.xTop].isEnabled = False def deleteAxesData(self): - #XXX Is is really necessary in Python? (pure transcription of C++) + # XXX Is is really necessary in Python? (pure transcription of C++) for axisId in self.AXES: self.__axisData[axisId].scaleEngine = None self.__axisData[axisId] = None @@ -505,7 +528,7 @@ def axisWidget(self, axisId): """ if self.axisValid(axisId): return self.__axisData[axisId].scaleWidget - + def setAxisScaleEngine(self, axisId, scaleEngine): """ Change the scale engine for an axis @@ -521,10 +544,11 @@ def setAxisScaleEngine(self, axisId, scaleEngine): d = self.__axisData[axisId] d.scaleEngine = scaleEngine self.__axisData[axisId].scaleWidget.setTransformation( - scaleEngine.transformation()) + scaleEngine.transformation() + ) d.isValid = False self.autoRefresh() - + def axisScaleEngine(self, axisId): """ :param int axisId: Axis index @@ -544,7 +568,7 @@ def axisAutoScale(self, axisId): """ if self.axisValid(axisId): return self.__axisData[axisId].doAutoScale - + def axisEnabled(self, axisId): """ :param int axisId: Axis index @@ -552,7 +576,7 @@ def axisEnabled(self, axisId): """ if self.axisValid(axisId): return self.__axisData[axisId].isEnabled - + def axisFont(self, axisId): """ :param int axisId: Axis index @@ -562,7 +586,7 @@ def axisFont(self, axisId): return self.axisWidget(axisId).font() else: return QFont() - + def axisMaxMajor(self, axisId): """ :param int axisId: Axis index @@ -592,7 +616,7 @@ def axisMaxMinor(self, axisId): return self.axisWidget(axisId).maxMinor else: return 0 - + def axisScaleDiv(self, axisId): """ :param int axisId: Axis index @@ -608,7 +632,7 @@ def axisScaleDiv(self, axisId): :py:meth:`qwt.scale_engine.QwtScaleEngine.divideScale()` """ return self.__axisData[axisId].scaleDiv - + def axisScaleDraw(self, axisId): """ :param int axisId: Axis index @@ -633,7 +657,7 @@ def axisStepSize(self, axisId): return self.axisWidget(axisId).stepSize else: return 0 - + def axisInterval(self, axisId): """ :param int axisId: Axis index @@ -660,7 +684,7 @@ def axisTitle(self, axisId): return self.axisWidget(axisId).title() else: return QwtText() - + def enableAxis(self, axisId, tf=True): """ Enable or disable a specified axis @@ -678,7 +702,7 @@ def enableAxis(self, axisId, tf=True): if self.axisValid(axisId) and tf != self.__axisData[axisId].isEnabled: self.__axisData[axisId].isEnabled = tf self.updateLayout() - + def invTransform(self, axisId, pos): """ Transform the x or y coordinate of a position in the @@ -695,8 +719,8 @@ def invTransform(self, axisId, pos): if self.axisValid(axisId): return self.canvasMap(axisId).invTransform(pos) else: - return 0. - + return 0.0 + def transform(self, axisId, value): """ Transform a value into a coordinate in the plotting region @@ -708,7 +732,7 @@ def transform(self, axisId, value): if self.axisValid(axisId): return self.canvasMap(axisId).transform(value) else: - return 0. + return 0.0 def setAxisFont(self, axisId, font): """ @@ -724,7 +748,7 @@ def setAxisFont(self, axisId, font): """ if self.axisValid(axisId): return self.axisWidget(axisId).setFont(font) - + def setAxisAutoScale(self, axisId, on=True): """ Enable autoscaling for a specified axis @@ -748,7 +772,7 @@ def setAxisAutoScale(self, axisId, on=True): if self.axisValid(axisId) and self.__axisData[axisId].doAutoScale != on: self.__axisData[axisId].doAutoScale = on self.autoRefresh() - + def setAxisScale(self, axisId, min_, max_, stepSize=0): """ Disable autoscaling and specify a fixed scale for a selected axis. @@ -776,7 +800,7 @@ def setAxisScale(self, axisId, min_, max_, stepSize=0): d.maxValue = max_ d.stepSize = stepSize self.autoRefresh() - + def setAxisScaleDiv(self, axisId, scaleDiv): """ Disable autoscaling and specify a fixed scale for a selected axis. @@ -798,7 +822,7 @@ def setAxisScaleDiv(self, axisId, scaleDiv): d.scaleDiv = scaleDiv d.isValid = True self.autoRefresh() - + def setAxisScaleDraw(self, axisId, scaleDraw): """ Set a scale draw @@ -824,7 +848,7 @@ def setAxisScaleDraw(self, axisId, scaleDraw): if self.axisValid(axisId): self.axisWidget(axisId).setScaleDraw(scaleDraw) self.autoRefresh() - + def setAxisLabelAlignment(self, axisId, alignment): """ Change the alignment of the tick labels @@ -838,7 +862,7 @@ def setAxisLabelAlignment(self, axisId, alignment): """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelAlignment(alignment) - + def setAxisLabelRotation(self, axisId, rotation): """ Rotate all tick labels @@ -852,7 +876,7 @@ def setAxisLabelRotation(self, axisId, rotation): """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelRotation(rotation) - + def setAxisLabelAutoSize(self, axisId, state): """ Set tick labels automatic size option (default: on) @@ -866,7 +890,7 @@ def setAxisLabelAutoSize(self, axisId, state): """ if self.axisValid(axisId): self.axisWidget(axisId).setLabelAutoSize(state) - + def setAxisMaxMinor(self, axisId, maxMinor): """ Set the maximum number of minor scale intervals for a specified axis @@ -954,9 +978,9 @@ def updateAxes(self): continue if self.axisAutoScale(item.xAxis()) or self.axisAutoScale(item.yAxis()): rect = item.boundingRect() - if rect.width() >= 0.: + if rect.width() >= 0.0: intv[item.xAxis()] |= QwtInterval(rect.left(), rect.right()) - if rect.height() >= 0.: + if rect.height() >= 0.0: intv[item.yAxis()] |= QwtInterval(rect.top(), rect.bottom()) for axisId in self.AXES: d = self.__axisData[axisId] @@ -969,14 +993,15 @@ def updateAxes(self): maxValue = intv[axisId].maxValue() d.scaleEngine.autoScale(d.maxMajor, minValue, maxValue, stepSize) if not d.isValid: - d.scaleDiv = d.scaleEngine.divideScale(minValue, maxValue, - d.maxMajor, d.maxMinor, stepSize) + d.scaleDiv = d.scaleEngine.divideScale( + minValue, maxValue, d.maxMajor, d.maxMinor, stepSize + ) d.isValid = True scaleWidget = self.axisWidget(axisId) scaleWidget.setScaleDiv(d.scaleDiv) # It is *really* necessary to update border dist! - # Otherwise, when tick labels are large enough, the ticks + # Otherwise, when tick labels are large enough, the ticks # may not be aligned with canvas grid. # See the following issues for more details: # https://github.com/PierreRaybaut/guiqwt/issues/57 @@ -986,9 +1011,10 @@ def updateAxes(self): for item in itmList: if item.testItemInterest(QwtPlotItem.ScaleInterest): - item.updateScaleDiv(self.axisScaleDiv(item.xAxis()), - self.axisScaleDiv(item.yAxis())) - + item.updateScaleDiv( + self.axisScaleDiv(item.xAxis()), self.axisScaleDiv(item.yAxis()) + ) + def setCanvas(self, canvas): """ Set the drawing canvas of the plot widget. @@ -1009,7 +1035,7 @@ def setCanvas(self, canvas): canvas.installEventFilter(self) if self.isVisible(): canvas.show() - + def event(self, event): ok = QFrame.event(self, event) if event.type() == QEvent.LayoutRequest: @@ -1022,15 +1048,15 @@ def eventFilter(self, obj, event): if obj is self.__data.canvas: if event.type() == QEvent.Resize: self.updateCanvasMargins() - elif event.type() == 178:#QEvent.ContentsRectChange: + elif event.type() == 178: # QEvent.ContentsRectChange: self.updateLayout() return QFrame.eventFilter(self, obj, event) - + def autoRefresh(self): """Replots the plot if :py:meth:`autoReplot()` is True.""" if self.__data.autoReplot: self.replot() - + def setAutoReplot(self, tf=True): """ Set or reset the autoReplot option @@ -1052,7 +1078,7 @@ def setAutoReplot(self, tf=True): :py:meth:`autoReplot()` """ self.__data.autoReplot = tf - + def autoReplot(self): """ :return: True if the autoReplot option is set. @@ -1062,7 +1088,7 @@ def autoReplot(self): :py:meth:`setAutoReplot()` """ return self.__data.autoReplot - + def setTitle(self, title): """ Change the plot's title @@ -1081,7 +1107,7 @@ def setTitle(self, title): return self.__data.titleLabel.setText(title) self.updateLayout() - + def title(self): """ :return: Title of the plot @@ -1091,13 +1117,13 @@ def title(self): :py:meth:`setTitle()` """ return self.__data.titleLabel.text() - + def titleLabel(self): """ :return: Title label widget. """ return self.__data.titleLabel - + def setFooter(self, text): """ Change the text the footer @@ -1116,7 +1142,7 @@ def setFooter(self, text): return self.__data.footerLabel.setText(text) self.updateLayout() - + def footer(self): """ :return: Text of the footer @@ -1126,7 +1152,7 @@ def footer(self): :py:meth:`setFooter()` """ return self.__data.footerLabel.text() - + def footerLabel(self): """ :return: Footer label widget. @@ -1147,7 +1173,7 @@ def setPlotLayout(self, layout): if layout != self.__data.layout: self.__data.layout = layout self.updateLayout() - + def plotLayout(self): """ :return: the plot's layout @@ -1157,7 +1183,7 @@ def plotLayout(self): :py:meth:`setPlotLayout()` """ return self.__data.layout - + def legend(self): """ :return: the plot's legend @@ -1167,13 +1193,13 @@ def legend(self): :py:meth:`insertLegend()` """ return self.__data.legend - + def canvas(self): """ :return: the plot's canvas """ return self.__data.canvas - + def sizeHint(self): """ :return: Size hint for the plot widget @@ -1190,27 +1216,31 @@ def sizeHint(self): scaleDiv = scaleWidget.scaleDraw().scaleDiv() majCnt = len(scaleDiv.ticks(QwtScaleDiv.MajorTick)) if axisId in (self.yLeft, self.yRight): - hDiff = (majCnt-1)*niceDist-scaleWidget.minimumSizeHint().height() + hDiff = ( + majCnt - 1 + ) * niceDist - scaleWidget.minimumSizeHint().height() if hDiff > dh: dh = hDiff else: - wDiff = (majCnt-1)*niceDist-scaleWidget.minimumSizeHint().width() + wDiff = ( + majCnt - 1 + ) * niceDist - scaleWidget.minimumSizeHint().width() if wDiff > dw: dw = wDiff return self.minimumSizeHint() + QSize(dw, dh) - + def minimumSizeHint(self): """ :return: Return a minimum size hint """ hint = self.__data.layout.minimumSizeHint(self) - hint += QSize(2*self.frameWidth(), 2*self.frameWidth()) + hint += QSize(2 * self.frameWidth(), 2 * self.frameWidth()) return hint - + def resizeEvent(self, e): QFrame.resizeEvent(self, e) self.updateLayout() - + def replot(self): """ Redraw the plot @@ -1226,27 +1256,32 @@ def replot(self): doAutoReplot = self.autoReplot() self.setAutoReplot(False) self.updateAxes() - + # Maybe the layout needs to be updated, because of changed # axes labels. We need to process them here before painting # to avoid that scales and canvas get out of sync. QApplication.sendPostedEvents(self, QEvent.LayoutRequest) - + if self.__data.canvas: try: self.__data.canvas.replot() except (AttributeError, TypeError): self.__data.canvas.update(self.__data.canvas.contentsRect()) - + self.setAutoReplot(doAutoReplot) def get_layout_state(self): - return (self.contentsRect(), - self.__data.titleLabel.text(), self.__data.footerLabel.text(), - [(self.axisEnabled(axisId), self.axisTitle(axisId).text()) - for axisId in self.AXES], - self.__data.legend) - + return ( + self.contentsRect(), + self.__data.titleLabel.text(), + self.__data.footerLabel.text(), + [ + (self.axisEnabled(axisId), self.axisTitle(axisId).text()) + for axisId in self.AXES + ], + self.__data.legend, + ) + def updateLayout(self): """ Adjust plot content to its current size. @@ -1255,21 +1290,22 @@ def updateLayout(self): :py:meth:`resizeEvent()` """ -# state = self.get_layout_state() -# if self.__layout_state is not None and\ -# state == self.__layout_state: -# return -# self.__layout_state = state + # state = self.get_layout_state() + # if self.__layout_state is not None and\ + # state == self.__layout_state: + # return + # self.__layout_state = state self.__data.layout.activate(self, self.contentsRect()) - + titleRect = self.__data.layout.titleRect().toRect() footerRect = self.__data.layout.footerRect().toRect() - scaleRect = [self.__data.layout.scaleRect(axisId).toRect() - for axisId in self.AXES] + scaleRect = [ + self.__data.layout.scaleRect(axisId).toRect() for axisId in self.AXES + ] legendRect = self.__data.layout.legendRect().toRect() canvasRect = self.__data.layout.canvasRect().toRect() - + if self.__data.titleLabel.text(): self.__data.titleLabel.setGeometry(titleRect) if not self.__data.titleLabel.isVisibleTo(self): @@ -1283,7 +1319,7 @@ def updateLayout(self): self.__data.footerLabel.show() else: self.__data.footerLabel.hide() - + for axisId in self.AXES: scaleWidget = self.axisWidget(axisId) if self.axisEnabled(axisId): @@ -1291,11 +1327,11 @@ def updateLayout(self): scaleWidget.setGeometry(scaleRect[axisId]) startDist, endDist = scaleWidget.getBorderDistHint() scaleWidget.setBorderDist(startDist, endDist) - - #------------------------------------------------------------- - #XXX: The following was commented to fix issue #35 - # Note: the same code part in Qwt's original source code is - # annotated with the mention "do we need this code any + + # ------------------------------------------------------------- + # XXX: The following was commented to fix issue #35 + # Note: the same code part in Qwt's original source code is + # annotated with the mention "do we need this code any # longer ???"... I guess not :) # if axisId in (self.xBottom, self.xTop): # r = QRegion(scaleRect[axisId]) @@ -1304,23 +1340,23 @@ def updateLayout(self): # if self.axisEnabled(self.yRight): # r = r.subtracted(QRegion(scaleRect[self.yRight])) # r.translate(-scaleRect[axisId].x(), -scaleRect[axisId].y()) - # scaleWidget.setMask(r) - #------------------------------------------------------------- + # scaleWidget.setMask(r) + # ------------------------------------------------------------- if not scaleWidget.isVisibleTo(self): scaleWidget.show() else: scaleWidget.hide() - + if self.__data.legend: if self.__data.legend.isEmpty(): self.__data.legend.hide() else: self.__data.legend.setGeometry(legendRect) self.__data.legend.show() - + self.__data.canvas.setGeometry(canvasRect) - + def getCanvasMarginsHint(self, maps, canvasRect): """ Calculate the canvas margins @@ -1335,19 +1371,20 @@ def getCanvasMarginsHint(self, maps, canvasRect): :py:meth:`updateCanvasMargins()`, :py:meth:`getCanvasMarginHint()` """ - left = top = right = bottom = -1. + left = top = right = bottom = -1.0 for item in self.itemList(): if item.testItemAttribute(QwtPlotItem.Margins): - m = item.getCanvasMarginHint(maps[item.xAxis()], - maps[item.yAxis()], canvasRect) + m = item.getCanvasMarginHint( + maps[item.xAxis()], maps[item.yAxis()], canvasRect + ) left = max([left, m[self.yLeft]]) top = max([top, m[self.xTop]]) right = max([right, m[self.yRight]]) bottom = max([bottom, m[self.xBottom]]) return left, top, right, bottom - + def updateCanvasMargins(self): """ Update the canvas margins @@ -1362,18 +1399,18 @@ def updateCanvasMargins(self): """ maps = [self.canvasMap(axisId) for axisId in self.AXES] margins = self.getCanvasMarginsHint(maps, self.canvas().contentsRect()) - + doUpdate = False - + for axisId in self.AXES: - if margins[axisId] >= 0.: + if margins[axisId] >= 0.0: m = np.ceil(margins[axisId]) self.plotLayout().setCanvasMargin(m, axisId) doUpdate = True - + if doUpdate: self.updateLayout() - + def drawCanvas(self, painter): """ Redraw the canvas. @@ -1393,7 +1430,7 @@ def drawCanvas(self, painter): """ maps = [self.canvasMap(axisId) for axisId in self.AXES] self.drawItems(painter, self.__data.canvas.contentsRect(), maps) - + def drawItems(self, painter, canvasRect, maps): """ Redraw the canvas. @@ -1412,12 +1449,15 @@ def drawItems(self, painter, canvasRect, maps): for item in self.itemList(): if item and item.isVisible(): painter.save() - painter.setRenderHint(QPainter.Antialiasing, - item.testRenderHint(QwtPlotItem.RenderAntialiased)) - painter.setRenderHint(QPainter.HighQualityAntialiasing, - item.testRenderHint(QwtPlotItem.RenderAntialiased)) - item.draw(painter, maps[item.xAxis()], maps[item.yAxis()], - canvasRect) + painter.setRenderHint( + QPainter.Antialiasing, + item.testRenderHint(QwtPlotItem.RenderAntialiased), + ) + painter.setRenderHint( + QPainter.HighQualityAntialiasing, + item.testRenderHint(QwtPlotItem.RenderAntialiased), + ) + item.draw(painter, maps[item.xAxis()], maps[item.yAxis()], canvasRect) painter.restore() def canvasMap(self, axisId): @@ -1433,21 +1473,21 @@ def canvasMap(self, axisId): map_ = QwtScaleMap() if not self.__data.canvas: return map_ - + map_.setTransformation(self.axisScaleEngine(axisId).transformation()) sd = self.axisScaleDiv(axisId) map_.setScaleInterval(sd.lowerBound(), sd.upperBound()) - + if self.axisEnabled(axisId): s = self.axisWidget(axisId) if axisId in (self.yLeft, self.yRight): y = s.y() + s.startBorderDist() - self.__data.canvas.y() h = s.height() - s.startBorderDist() - s.endBorderDist() - map_.setPaintInterval(y+h, y) + map_.setPaintInterval(y + h, y) else: x = s.x() + s.startBorderDist() - self.__data.canvas.x() w = s.width() - s.startBorderDist() - s.endBorderDist() - map_.setPaintInterval(x, x+w) + map_.setPaintInterval(x, x + w) else: canvasRect = self.__data.canvas.contentsRect() if axisId in (self.yLeft, self.yRight): @@ -1457,8 +1497,9 @@ def canvasMap(self, axisId): bottom = 0 if not self.plotLayout().alignCanvasToScale(self.xBottom): bottom = self.plotLayout().canvasMargin(self.xBottom) - map_.setPaintInterval(canvasRect.bottom()-bottom, - canvasRect.top()+top) + map_.setPaintInterval( + canvasRect.bottom() - bottom, canvasRect.top() + top + ) else: left = 0 if not self.plotLayout().alignCanvasToScale(self.yLeft): @@ -1466,10 +1507,11 @@ def canvasMap(self, axisId): right = 0 if not self.plotLayout().alignCanvasToScale(self.yRight): right = self.plotLayout().canvasMargin(self.yRight) - map_.setPaintInterval(canvasRect.left()+left, - canvasRect.right()-right) + map_.setPaintInterval( + canvasRect.left() + left, canvasRect.right() - right + ) return map_ - + def setCanvasBackground(self, brush): """ Change the background of the plotting area @@ -1487,7 +1529,7 @@ def setCanvasBackground(self, brush): pal = self.__data.canvas.palette() pal.setBrush(QPalette.Window, brush) self.canvas().setPalette(pal) - + def canvasBackground(self): """ :return: Background brush of the plotting area. @@ -1497,14 +1539,14 @@ def canvasBackground(self): :py:meth:`setCanvasBackground()` """ return self.canvas().palette().brush(QPalette.Normal, QPalette.Window) - + def axisValid(self, axis_id): """ :param int axis_id: Axis :return: True if the specified axis exists, otherwise False """ return axis_id in QwtPlot.AXES - + def insertLegend(self, legend, pos=None, ratio=-1): """ Insert a legend @@ -1557,11 +1599,11 @@ def insertLegend(self, legend, pos=None, ratio=-1): self.legendDataChanged.connect(self.__data.legend.updateLegend) if self.__data.legend.parent() is not self: self.__data.legend.setParent(self) - + qwtEnableLegendItems(self, False) self.updateLegend() qwtEnableLegendItems(self, True) - + lpos = self.__data.layout.legendPosition() if legend is not None: @@ -1570,7 +1612,7 @@ def insertLegend(self, legend, pos=None, ratio=-1): legend.setMaxColumns(1) elif lpos in (self.TopLegend, self.BottomLegend): legend.setMaxColumns(0) - + previousInChain = None if lpos == self.LeftLegend: previousInChain = self.axisWidget(QwtPlot.xTop) @@ -1580,12 +1622,12 @@ def insertLegend(self, legend, pos=None, ratio=-1): previousInChain = self.axisWidget(QwtPlot.yRight) elif lpos == self.BottomLegend: previousInChain = self.footerLabel() - + if previousInChain is not None: qwtSetTabOrder(previousInChain, legend, True) - + self.updateLayout() - + def updateLegend(self, plotItem=None): """ If plotItem is None, emit QwtPlot.legendDataChanged for all @@ -1628,7 +1670,7 @@ def updateLegendItems(self, plotItem, legendData): for item in self.itemList(): if item.testItemInterest(QwtPlotItem.LegendInterest): item.updateLegend(plotItem, legendData) - + def attachItem(self, plotItem, on): """ Attach/Detach a plot item @@ -1642,22 +1684,22 @@ def attachItem(self, plotItem, on): if on and item.testItemAttribute(QwtPlotItem.Legend): legendData = item.legendData() plotItem.updateLegend(item, legendData) - + if on: self.insertItem(plotItem) else: self.removeItem(plotItem) - + self.itemAttached.emit(plotItem, on) - + if plotItem.testItemAttribute(QwtPlotItem.Legend): if on: self.updateLegend(plotItem) else: self.legendDataChanged.emit(plotItem, []) - + self.autoRefresh() - + def print_(self, printer): """ Print plot to printer @@ -1666,11 +1708,13 @@ def print_(self, printer): :type printer: QPaintDevice or QPrinter or QSvgGenerator """ from .plot_renderer import QwtPlotRenderer + renderer = QwtPlotRenderer(self) renderer.renderTo(self, printer) - - def exportTo(self, filename, size=(800, 600), size_mm=None, - resolution=72., format_=None): + + def exportTo( + self, filename, size=(800, 600), size_mm=None, resolution=72.0, format_=None + ): """ Export plot to PDF or image file (SVG, PNG, ...) @@ -1681,8 +1725,9 @@ def exportTo(self, filename, size=(800, 600), size_mm=None, :param str format_: File format (PDF, SVG, PNG, ...) """ if size_mm is None: - size_mm = tuple(25.4*np.array(size)/resolution) + size_mm = tuple(25.4 * np.array(size) / resolution) from .plot_renderer import QwtPlotRenderer + renderer = QwtPlotRenderer(self) renderer.renderDocument(self, filename, size_mm, resolution, format_) @@ -1694,11 +1739,11 @@ def __init__(self): self.attributes = 0 self.interests = 0 self.renderHints = 0 - self.z = 0. + self.z = 0.0 self.xAxis = QwtPlot.xBottom self.yAxis = QwtPlot.yLeft self.legendIconSize = QSize(8, 8) - self.title = None # QwtText + self.title = None # QwtText class QwtPlotItem(object): @@ -1746,33 +1791,46 @@ class QwtPlotItem(object): :param title: Title of the item :type title: qwt.text.QwtText or str """ - + # enum RttiValues - (Rtti_PlotItem, Rtti_PlotGrid, Rtti_PlotScale, Rtti_PlotLegend, - Rtti_PlotMarker, Rtti_PlotCurve, Rtti_PlotSpectroCurve, - Rtti_PlotIntervalCurve, Rtti_PlotHistogram, Rtti_PlotSpectrogram, - Rtti_PlotSVG, Rtti_PlotTradingCurve, Rtti_PlotBarChart, - Rtti_PlotMultiBarChart, Rtti_PlotShape, Rtti_PlotTextLabel, - Rtti_PlotZone) = list(range(17)) + ( + Rtti_PlotItem, + Rtti_PlotGrid, + Rtti_PlotScale, + Rtti_PlotLegend, + Rtti_PlotMarker, + Rtti_PlotCurve, + Rtti_PlotSpectroCurve, + Rtti_PlotIntervalCurve, + Rtti_PlotHistogram, + Rtti_PlotSpectrogram, + Rtti_PlotSVG, + Rtti_PlotTradingCurve, + Rtti_PlotBarChart, + Rtti_PlotMultiBarChart, + Rtti_PlotShape, + Rtti_PlotTextLabel, + Rtti_PlotZone, + ) = list(range(17)) Rtti_PlotUserItem = 1000 - + # enum ItemAttribute Legend = 0x01 AutoScale = 0x02 Margins = 0x04 - + # enum ItemInterest ScaleInterest = 0x01 LegendInterest = 0x02 - + # enum RenderHint RenderAntialiased = 0x1 - + def __init__(self, title=None): """title: QwtText""" if title is None: title = QwtText("") - if hasattr(title, 'capitalize'): # avoids dealing with Py3K compat. + if hasattr(title, "capitalize"): # avoids dealing with Py3K compat. title = QwtText(title) assert isinstance(title, QwtText) self.__data = QwtPlotItem_PrivateData() @@ -1795,15 +1853,15 @@ def attach(self, plot): """ if plot is self.__data.plot: return - + if self.__data.plot: self.__data.plot.attachItem(self, False) - + self.__data.plot = plot - + if self.__data.plot: self.__data.plot.attachItem(self, True) - + def detach(self): """ Detach the item from a plot. @@ -1816,7 +1874,7 @@ def detach(self): :py:meth:`attach()` """ self.attach(None) - + def rtti(self): """ Return rtti for the specific class represented. `QwtPlotItem` is @@ -1827,13 +1885,13 @@ def rtti(self): :return: rtti value """ return self.Rtti_PlotItem - + def plot(self): """ :return: attached plot """ return self.__data.plot - + def z(self): """ Plot items are painted in increasing z-order. @@ -1845,7 +1903,7 @@ def z(self): :py:meth:`setZ()`, :py:meth:`QwtPlotDict.itemList()` """ return self.__data.z - + def setZ(self, z): """ Set the z value @@ -1865,7 +1923,7 @@ def setZ(self, z): if self.__data.plot: self.__data.plot.attachItem(self, True) self.itemChanged() - + def setTitle(self, title): """ Set a new title @@ -1882,7 +1940,7 @@ def setTitle(self, title): if self.__data.title != title: self.__data.title = title self.legendChanged() - + def title(self): """ :return: Title of the item @@ -1892,7 +1950,7 @@ def title(self): :py:meth:`setTitle()` """ return self.__data.title - + def setItemAttribute(self, attribute, on=True): """ Toggle an item attribute @@ -1912,7 +1970,7 @@ def setItemAttribute(self, attribute, on=True): if attribute == QwtPlotItem.Legend: self.legendChanged() self.itemChanged() - + def testItemAttribute(self, attribute): """ Test an item attribute @@ -1925,7 +1983,7 @@ def testItemAttribute(self, attribute): :py:meth:`setItemAttribute()` """ return bool(self.__data.attributes & attribute) - + def setItemInterest(self, interest, on=True): """ Toggle an item interest @@ -1943,7 +2001,7 @@ def setItemInterest(self, interest, on=True): else: self.__data.interests &= ~interest self.itemChanged() - + def testItemInterest(self, interest): """ Test an item interest @@ -1956,7 +2014,7 @@ def testItemInterest(self, interest): :py:meth:`setItemInterest()` """ return bool(self.__data.interests & interest) - + def setRenderHint(self, hint, on=True): """ Toggle a render hint @@ -1974,7 +2032,7 @@ def setRenderHint(self, hint, on=True): else: self.__data.renderHints &= ~hint self.itemChanged() - + def testRenderHint(self, hint): """ Test a render hint @@ -1987,7 +2045,7 @@ def testRenderHint(self, hint): :py:meth:`setRenderHint()` """ return bool(self.__data.renderHints & hint) - + def setLegendIconSize(self, size): """ Set the size of the legend icon @@ -2003,7 +2061,7 @@ def setLegendIconSize(self, size): if self.__data.legendIconSize != size: self.__data.legendIconSize = size self.legendChanged() - + def legendIconSize(self): """ :return: Legend icon size @@ -2013,7 +2071,7 @@ def legendIconSize(self): :py:meth:`setLegendIconSize()`, :py:meth:`legendIcon()` """ return self.__data.legendIconSize - + def legendIcon(self, index, size): """ :param int index: Index of the legend entry (usually there is only one) @@ -2027,7 +2085,7 @@ def legendIcon(self, index, size): :py:meth:`setLegendIconSize()`, :py:meth:`legendData()` """ return QwtGraphic() - + def defaultIcon(self, brush, size): """ Return a default icon from a brush @@ -2046,15 +2104,15 @@ def defaultIcon(self, brush, size): painter = QPainter(icon) painter.fillRect(r, brush) return icon - + def show(self): """Show the item""" self.setVisible(True) - + def hide(self): """Hide the item""" self.setVisible(False) - + def setVisible(self, on): """ Show/Hide the item @@ -2068,7 +2126,7 @@ def setVisible(self, on): if on != self.__data.isVisible: self.__data.isVisible = on self.itemChanged() - + def isVisible(self): """ :return: True if visible @@ -2078,7 +2136,7 @@ def isVisible(self): :py:meth:`setVisible()`, :py:meth:`show()`, :py:meth:`hide()` """ return self.__data.isVisible - + def itemChanged(self): """ Update the legend and call `QwtPlot.autoRefresh()` for the @@ -2090,7 +2148,7 @@ def itemChanged(self): """ if self.__data.plot: self.__data.plot.autoRefresh() - + def legendChanged(self): """ Update the legend of the parent plot. @@ -2101,7 +2159,7 @@ def legendChanged(self): """ if self.testItemAttribute(QwtPlotItem.Legend) and self.__data.plot: self.__data.plot.updateLegend(self) - + def setAxes(self, xAxis, yAxis): """ Set X and Y axis @@ -2132,10 +2190,13 @@ def setAxis(self, xAxis, yAxis): :py:meth:`setAxes()` instead """ import warnings - warnings.warn("`setAxis` has been removed in Qwt6: "\ - "please use `setAxes` instead", RuntimeWarning) + + warnings.warn( + "`setAxis` has been removed in Qwt6: " "please use `setAxes` instead", + RuntimeWarning, + ) self.setAxes(xAxis, yAxis) - + def setXAxis(self, axis): """ Set the X axis @@ -2152,7 +2213,7 @@ def setXAxis(self, axis): if axis in (QwtPlot.xBottom, QwtPlot.xTop): self.__data.xAxis = axis self.itemChanged() - + def setYAxis(self, axis): """ Set the Y axis @@ -2175,13 +2236,13 @@ def xAxis(self): :return: xAxis """ return self.__data.xAxis - + def yAxis(self): """ :return: yAxis """ return self.__data.yAxis - + def boundingRect(self): """ :return: An invalid bounding rect: QRectF(1.0, 1.0, -2.0, -2.0) @@ -2191,7 +2252,7 @@ def boundingRect(self): A width or height < 0.0 is ignored by the autoscaler """ return QRectF(1.0, 1.0, -2.0, -2.0) - + def getCanvasMarginHint(self, xMap, yMap, canvasRect): """ Calculate a hint for the canvas margin @@ -2212,9 +2273,9 @@ def getCanvasMarginHint(self, xMap, yMap, canvasRect): :py:meth:`QwtPlot.getCanvasMarginsHint()`, :py:meth:`QwtPlot.updateCanvasMargins()`, """ - left = top = right = bottom = 0. + left = top = right = bottom = 0.0 return left, top, right, bottom - + def legendData(self): """ Return all information, that is needed to represent @@ -2243,7 +2304,7 @@ def legendData(self): if not graphic.isNull(): data.setValue(QwtLegendData.IconRole, graphic) return [data] - + def updateLegend(self, item, data): """ Update the item to changes of the legend info @@ -2274,7 +2335,7 @@ def scaleRect(self, xMap, yMap): :return: Bounding scale rect of the scale maps, not normalized """ return QRectF(xMap.s1(), yMap.s1(), xMap.sDist(), yMap.sDist()) - + def paintRect(self, xMap, yMap): """ Calculate the bounding paint rectangle of 2 maps diff --git a/qwt/plot_canvas.py b/qwt/plot_canvas.py index ede9ffb..1d1b79f 100644 --- a/qwt/plot_canvas.py +++ b/qwt/plot_canvas.py @@ -17,9 +17,23 @@ from .painter import QwtPainter from .qt import PYQT5 -from .qt.QtGui import (QFrame, QPaintEngine, QPen, QBrush, QRegion, QImage, - QPainterPath, QPixmap, QGradient, QPainter, qAlpha, - QPolygonF, QStyleOption, QStyle, QStyleOptionFrame) +from .qt.QtGui import ( + QFrame, + QPaintEngine, + QPen, + QBrush, + QRegion, + QImage, + QPainterPath, + QPixmap, + QGradient, + QPainter, + qAlpha, + QPolygonF, + QStyleOption, + QStyle, + QStyleOptionFrame, +) from .qt.QtCore import Qt, QSizeF, QT_VERSION, QEvent, QPointF, QRectF @@ -47,7 +61,7 @@ def __init__(self, size): self.clipRects = [] self.border = Border() self.background = Background() - + def updateState(self, state): if state.state() & QPaintEngine.DirtyPen: self.__pen = state.pen() @@ -55,13 +69,13 @@ def updateState(self, state): self.__brush = state.brush() if state.state() & QPaintEngine.DirtyBrushOrigin: self.__origin = state.brushOrigin() - + def drawRects(self, rects, count): for i in range(count): self.border.rectList += [rects[i]] - + def drawPath(self, path): - rect = QRectF(QPointF(0., 0.), self.__size) + rect = QRectF(QPointF(0.0, 0.0), self.__size) if path.controlPointRect().contains(rect.center()): self.setCornerRects(path) self.alignCornerRects(rect) @@ -70,13 +84,12 @@ def drawPath(self, path): self.background.origin = self.__origin else: self.border.pathlist += [path] - + def setCornerRects(self, path): - pos = QPointF(0., 0.) + pos = QPointF(0.0, 0.0) for i in range(path.elementCount()): el = path.elementAt(i) - if el.type in (QPainterPath.MoveToElement, - QPainterPath.LineToElement): + if el.type in (QPainterPath.MoveToElement, QPainterPath.LineToElement): pos.setX(el.x) pos.setY(el.y) elif el.type == QPainterPath.CurveToElement: @@ -87,15 +100,17 @@ def setCornerRects(self, path): elif el.type == QPainterPath.CurveToDataElement: if self.clipRects: r = self.clipRects[-1] - r.setCoords(min([r.left(), el.x]), - min([r.top(), el.y]), - max([r.right(), el.x]), - max([r.bottom(), el.y])) + r.setCoords( + min([r.left(), el.x]), + min([r.top(), el.y]), + max([r.right(), el.x]), + max([r.bottom(), el.y]), + ) self.clipRects[-1] = r.normalized() - + def sizeMetrics(self): return self.__size - + def alignCornerRects(self, rect): for r in self.clipRects: if r.center().x() < rect.center().x(): @@ -109,13 +124,14 @@ def alignCornerRects(self, rect): def _rects_conv_PyQt5(rects): - # PyQt5 compatibility: the conversion from QRect to QRectF should not + # PyQt5 compatibility: the conversion from QRect to QRectF should not # be necessary but it seems to be anyway... PyQt5 bug? if PYQT5: return [QRectF(rect) for rect in rects] else: return rects + def qwtDrawBackground(painter, canvas): painter.save() borderClip = canvas.borderPath(canvas.rect()) @@ -172,19 +188,19 @@ def qwtRevertPath(path): def qwtCombinePathList(rect, pathList): if not pathList: return QPainterPath() - + ordered = [None] * 8 for subPath in pathList: index = -1 br = subPath.controlPointRect() if br.center().x() < rect.center().x(): if br.center().y() < rect.center().y(): - if abs(br.top()-rect.top()) < abs(br.left()-rect.left()): + if abs(br.top() - rect.top()) < abs(br.left() - rect.left()): index = 1 else: index = 0 else: - if abs(br.bottom()-rect.bottom) < abs(br.left()-rect.left()): + if abs(br.bottom() - rect.bottom) < abs(br.left() - rect.left()): index = 6 else: index = 7 @@ -192,12 +208,12 @@ def qwtCombinePathList(rect, pathList): qwtRevertPath(subPath) else: if br.center().y() < rect.center().y(): - if abs(br.top()-rect.top()) < abs(br.right()-rect.right()): + if abs(br.top() - rect.top()) < abs(br.right() - rect.right()): index = 2 else: index = 3 else: - if abs(br.bottom()-rect.bottom()) < abs(br.right()-rect.right()): + if abs(br.bottom() - rect.bottom()) < abs(br.right() - rect.right()): index = 5 else: index = 4 @@ -205,16 +221,16 @@ def qwtCombinePathList(rect, pathList): qwtRevertPath(subPath) ordered[index] = subPath for i in range(4): - if ordered[2*i].isEmpty() != ordered[2*i+1].isEmpty(): + if ordered[2 * i].isEmpty() != ordered[2 * i + 1].isEmpty(): return QPainterPath() corners = QPolygonF(rect) path = QPainterPath() for i in range(4): - if ordered[2*i].isEmpty(): + if ordered[2 * i].isEmpty(): path.lineTo(corners[i]) else: - path.connectPath(ordered[2*i]) - path.connectPath(ordered[2*i+1]) + path.connectPath(ordered[2 * i]) + path.connectPath(ordered[2 * i + 1]) path.closeSubpath() return path @@ -261,18 +277,20 @@ def qwtFillBackground(*args): else: r = canvas.rect() radius = canvas.borderRadius() - if radius > 0.: + if radius > 0.0: sz = QSizeF(radius, radius) - rects += [QRectF(r.topLeft(), sz), - QRectF(r.topRight()-QPointF(radius, 0), sz), - QRectF(r.bottomRight()-QPointF(radius, radius), sz), - QRectF(r.bottomLeft()-QPointF(0, radius), sz)] + rects += [ + QRectF(r.topLeft(), sz), + QRectF(r.topRight() - QPointF(radius, 0), sz), + QRectF(r.bottomRight() - QPointF(radius, radius), sz), + QRectF(r.bottomLeft() - QPointF(0, radius), sz), + ] qwtFillBackground(painter, canvas, rects) elif len(args) == 3: painter, widget, fillRects = args - + if not fillRects: return if painter.hasClipping(): @@ -284,12 +302,16 @@ def qwtFillBackground(*args): rect = QRectF(fillRect).toAlignedRect() if clipRegion.intersects(rect): pm = QPixmap(rect.size()) - QwtPainter.fillPixmap(bgWidget, pm, widget.mapTo(bgWidget, rect.topLeft())) + QwtPainter.fillPixmap( + bgWidget, pm, widget.mapTo(bgWidget, rect.topLeft()) + ) painter.drawPixmap(rect, pm) - + else: - raise TypeError("%s() takes 2 or 3 argument(s) (%s given)"\ - % ("qwtFillBackground", len(args))) + raise TypeError( + "%s() takes 2 or 3 argument(s) (%s given)" + % ("qwtFillBackground", len(args)) + ) class StyleSheetBackground(object): @@ -297,13 +319,15 @@ def __init__(self): self.brush = QBrush() self.origin = QPointF() + class StyleSheet(object): def __init__(self): self.hasBorder = False self.borderPath = QPainterPath() self.cornerRects = [] self.background = StyleSheetBackground() - + + class QwtPlotCanvas_PrivateData(object): def __init__(self): self.focusIndicator = QwtPlotCanvas.NoFocusIndicator @@ -407,20 +431,20 @@ class QwtPlotCanvas(QFrame): :py:meth:`qwt.plot.QwtPlot.setCanvas()` """ - + # enum PaintAttribute BackingStore = 1 Opaque = 2 HackStyledBackground = 4 ImmediatePaint = 8 - + # enum FocusIndicator NoFocusIndicator, CanvasFocusIndicator, ItemFocusIndicator = list(range(3)) - + def __init__(self, plot=None): super(QwtPlotCanvas, self).__init__(plot) self.__plot = plot - self.setFrameStyle(QFrame.Panel|QFrame.Sunken) + self.setFrameStyle(QFrame.Panel | QFrame.Sunken) self.setLineWidth(2) self.__data = QwtPlotCanvas_PrivateData() self.setCursor(Qt.CrossCursor) @@ -428,13 +452,13 @@ def __init__(self, plot=None): self.setPaintAttribute(QwtPlotCanvas.BackingStore, False) self.setPaintAttribute(QwtPlotCanvas.Opaque, True) self.setPaintAttribute(QwtPlotCanvas.HackStyledBackground, True) - + def plot(self): """ :return: Parent plot widget """ return self.__plot - + def setPaintAttribute(self, attribute, on=True): """ Changing the paint attributes @@ -467,8 +491,7 @@ def setPaintAttribute(self, attribute, on=True): if QT_VERSION >= 0x050000: self.__data.backingStore = self.grab(self.rect()) else: - self.__data.backingStore = QPixmap.grabWidget(self, - self.rect()) + self.__data.backingStore = QPixmap.grabWidget(self, self.rect()) else: self.__data.backingStore = None elif attribute == self.Opaque: @@ -476,7 +499,7 @@ def setPaintAttribute(self, attribute, on=True): self.setAttribute(Qt.WA_OpaquePaintEvent, True) elif attribute in (self.HackStyledBackground, self.ImmediatePaint): pass - + def testPaintAttribute(self, attribute): """ Test whether a paint attribute is enabled @@ -489,18 +512,18 @@ def testPaintAttribute(self, attribute): :py:meth:`setPaintAttribute()` """ return self.__data.paintAttributes & attribute - + def backingStore(self): """ :return: Backing store, might be None """ return self.__data.backingStore - + def invalidateBackingStore(self): """Invalidate the internal backing store""" if self.__data.backingStore: self.__data.backingStore = QPixmap() - + def setFocusIndicator(self, focusIndicator): """ Set the focus indicator @@ -518,7 +541,7 @@ def setFocusIndicator(self, focusIndicator): :py:meth:`focusIndicator()` """ self.__data.focusIndicator = focusIndicator - + def focusIndicator(self): """ :return: Focus indicator @@ -528,7 +551,7 @@ def focusIndicator(self): :py:meth:`setFocusIndicator()` """ return self.__data.focusIndicator - + def setBorderRadius(self, radius): """ Set the radius for the corners of the border frame @@ -539,8 +562,8 @@ def setBorderRadius(self, radius): :py:meth:`borderRadius()` """ - self.__data.borderRadius = max([0., radius]) - + self.__data.borderRadius = max([0.0, radius]) + def borderRadius(self): """ :return: Radius for the corners of the border frame @@ -550,7 +573,7 @@ def borderRadius(self): :py:meth:`setBorderRadius()` """ return self.__data.borderRadius - + def event(self, event): if event.type() == QEvent.PolishRequest: if self.testPaintAttribute(self.Opaque): @@ -558,18 +581,20 @@ def event(self, event): if event.type() in (QEvent.PolishRequest, QEvent.StyleChange): self.updateStyleSheetInfo() return QFrame.event(self, event) - + def paintEvent(self, event): painter = QPainter(self) painter.setClipRegion(event.region()) - if self.testPaintAttribute(self.BackingStore) and\ - self.__data.backingStore is not None: + if ( + self.testPaintAttribute(self.BackingStore) + and self.__data.backingStore is not None + ): bs = self.__data.backingStore if QT_VERSION >= 0x050000: pixelRatio = bs.devicePixelRatio() else: - pixelRatio = 1. - if bs.size() != self.size()*pixelRatio: + pixelRatio = 1.0 + if bs.size() != self.size() * pixelRatio: bs = QwtPainter.backingStore(self, self.size()) if self.testAttribute(Qt.WA_StyledBackground): p = QPainter(bs) @@ -577,8 +602,8 @@ def paintEvent(self, event): self.drawCanvas(p, True) else: p = QPainter() - if self.__data.borderRadius <= 0.: -# print('**DEBUG: QwtPlotCanvas.paintEvent') + if self.__data.borderRadius <= 0.0: + # print('**DEBUG: QwtPlotCanvas.paintEvent') QwtPainter.fillPixmap(self, bs) p.begin(bs) self.drawCanvas(p, False) @@ -603,7 +628,7 @@ def paintEvent(self, event): qwtFillBackground(painter, self) qwtDrawBackground(painter, self) else: - if self.borderRadius() > 0.: + if self.borderRadius() > 0.0: clipPath = QPainterPath() clipPath.addRect(self.rect()) clipPath = clipPath.subtracted(self.borderPath(self.rect())) @@ -617,13 +642,16 @@ def paintEvent(self, event): self.drawBorder(painter) if self.hasFocus() and self.focusIndicator() == self.CanvasFocusIndicator: self.drawFocusIndicator(painter) - + def drawCanvas(self, painter, withBackground): hackStyledBackground = False - if withBackground and self.testAttribute(Qt.WA_StyledBackground) and\ - self.testPaintAttribute(self.HackStyledBackground): + if ( + withBackground + and self.testAttribute(Qt.WA_StyledBackground) + and self.testPaintAttribute(self.HackStyledBackground) + ): # Antialiasing rounded borders is done by - # inserting pixels with colors between the + # inserting pixels with colors between the # border color and the color on the canvas, # When the border is painted before the plot items # these colors are interpolated for the canvas @@ -633,8 +661,10 @@ def drawCanvas(self, painter, withBackground): # borders this is noticeable. # The only way to avoid these annoying "artefacts" # is to paint the border on top of the plot items. - if self.__data.styleSheet.hasBorder and\ - not self.__data.styleSheet.borderPath.isEmpty(): + if ( + self.__data.styleSheet.hasBorder + and not self.__data.styleSheet.borderPath.isEmpty() + ): # We have a border with at least one rounded corner hackStyledBackground = True if withBackground: @@ -652,7 +682,7 @@ def drawCanvas(self, painter, withBackground): elif self.autoFillBackground(): painter.setPen(Qt.NoPen) painter.setBrush(self.palette().brush(self.backgroundRole())) - if self.__data.borderRadius > 0. and self.rect() == self.frameRect(): + if self.__data.borderRadius > 0.0 and self.rect() == self.frameRect(): if self.frameWidth() > 0: painter.setClipPath(self.borderPath(self.rect())) painter.drawRect(self.rect()) @@ -664,14 +694,12 @@ def drawCanvas(self, painter, withBackground): painter.restore() painter.save() if not self.__data.styleSheet.borderPath.isEmpty(): - painter.setClipPath(self.__data.styleSheet.borderPath, - Qt.IntersectClip) + painter.setClipPath(self.__data.styleSheet.borderPath, Qt.IntersectClip) else: - if self.__data.borderRadius > 0.: - painter.setClipPath(self.borderPath(self.frameRect()), - Qt.IntersectClip) + if self.__data.borderRadius > 0.0: + painter.setClipPath(self.borderPath(self.frameRect()), Qt.IntersectClip) else: -# print('**DEBUG: QwtPlotCanvas.drawCanvas') + # print('**DEBUG: QwtPlotCanvas.drawCanvas') painter.setClipRect(self.contentsRect(), Qt.IntersectClip) self.plot().drawCanvas(painter) painter.restore() @@ -680,7 +708,7 @@ def drawCanvas(self, painter, withBackground): opt = QStyleOptionFrame() opt.initFrom(self) self.style().drawPrimitive(QStyle.PE_Frame, opt, painter, self) - + def drawBorder(self, painter): """ Draw the border of the plot canvas @@ -693,23 +721,33 @@ def drawBorder(self, painter): """ if self.__data.borderRadius > 0: if self.frameWidth() > 0: - QwtPainter.drawRoundedFrame(painter, QRectF(self.frameRect()), - self.__data.borderRadius, self.__data.borderRadius, - self.palette(), self.frameWidth(), self.frameStyle()) + QwtPainter.drawRoundedFrame( + painter, + QRectF(self.frameRect()), + self.__data.borderRadius, + self.__data.borderRadius, + self.palette(), + self.frameWidth(), + self.frameStyle(), + ) else: if QT_VERSION >= 0x040500: if PYQT5: from .qt.QtGui import QStyleOptionFrame else: - from .qt.QtGui import QStyleOptionFrameV3 as\ - QStyleOptionFrame + from .qt.QtGui import QStyleOptionFrameV3 as QStyleOptionFrame opt = QStyleOptionFrame() opt.initFrom(self) frameShape = self.frameStyle() & QFrame.Shape_Mask frameShadow = self.frameStyle() & QFrame.Shadow_Mask - opt.frameShape = QFrame.Shape(int(opt.frameShape)|frameShape) - if frameShape in (QFrame.Box, QFrame.HLine, QFrame.VLine, - QFrame.StyledPanel, QFrame.Panel): + opt.frameShape = QFrame.Shape(int(opt.frameShape) | frameShape) + if frameShape in ( + QFrame.Box, + QFrame.HLine, + QFrame.VLine, + QFrame.StyledPanel, + QFrame.Panel, + ): opt.lineWidth = self.lineWidth() opt.midLineWidth = self.midLineWidth() else: @@ -721,11 +759,11 @@ def drawBorder(self, painter): self.style().drawControl(QStyle.CE_ShapedFrame, opt, painter, self) else: self.drawFrame(painter) - + def resizeEvent(self, event): QFrame.resizeEvent(self, event) self.updateStyleSheetInfo() - + def drawFocusIndicator(self, painter): """ Draw the focus indication @@ -734,10 +772,14 @@ def drawFocusIndicator(self, painter): """ margin = 1 focusRect = self.contentsRect() - focusRect.setRect(focusRect.x()+margin, focusRect.y()+margin, - focusRect.width()-2*margin, focusRect.height()-2*margin) + focusRect.setRect( + focusRect.x() + margin, + focusRect.y() + margin, + focusRect.width() - 2 * margin, + focusRect.height() - 2 * margin, + ) QwtPainter.drawFocusRect(painter, self, focusRect) - + def replot(self): """ Invalidate the paint cache and repaint the canvas @@ -747,11 +789,14 @@ def replot(self): self.repaint(self.contentsRect()) else: self.update(self.contentsRect()) - + def invalidatePaintCache(self): import warnings - warnings.warn("`invalidatePaintCache` has been removed: "\ - "please use `replot` instead", RuntimeWarning) + + warnings.warn( + "`invalidatePaintCache` has been removed: " "please use `replot` instead", + RuntimeWarning, + ) self.replot() def updateStyleSheetInfo(self): @@ -770,13 +815,14 @@ def updateStyleSheetInfo(self): self.__data.styleSheet.cornerRects = recorder.clipRects if recorder.background.path.isEmpty(): if self.__data.styleSheet.hasBorder: - self.__data.styleSheet.borderPath =\ - qwtCombinePathList(self.rect(), recorder.border.pathlist) + self.__data.styleSheet.borderPath = qwtCombinePathList( + self.rect(), recorder.border.pathlist + ) else: self.__data.styleSheet.borderPath = recorder.background.path self.__data.styleSheet.background.brush = recorder.background.brush self.__data.styleSheet.background.origin = recorder.background.origin - + def borderPath(self, rect): """ Calculate the painter path for a styled or rounded border @@ -799,11 +845,10 @@ def borderPath(self, rect): return recorder.background.path if len(recorder.border.rectList) > 0: return qwtCombinePathList(rect, recorder.border.pathlist) - elif self.__data.borderRadius > 0.: - fw2 = self.frameWidth()*.5 + elif self.__data.borderRadius > 0.0: + fw2 = self.frameWidth() * 0.5 r = QRectF(rect).adjusted(fw2, fw2, -fw2, -fw2) path = QPainterPath() - path.addRoundedRect(r, self.__data.borderRadius, - self.__data.borderRadius) + path.addRoundedRect(r, self.__data.borderRadius, self.__data.borderRadius) return path return QPainterPath() diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index fd6ee6c..d9ceb7f 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -17,8 +17,12 @@ from .plot import QwtPlotItem, QwtPlotItem_PrivateData from ._math import qwtSqr from .graphic import QwtGraphic -from .plot_series import (QwtPlotSeriesItem, QwtSeriesStore, QwtSeriesData, - QwtPointArrayData) +from .plot_series import ( + QwtPlotSeriesItem, + QwtSeriesStore, + QwtSeriesData, + QwtPointArrayData, +) from .symbol import QwtSymbol from .plot_directpainter import QwtPlotDirectPainter @@ -29,52 +33,54 @@ def qwtUpdateLegendIconSize(curve): - if curve.symbol() and\ - curve.testLegendAttribute(QwtPlotCurve.LegendShowSymbol): + if curve.symbol() and curve.testLegendAttribute(QwtPlotCurve.LegendShowSymbol): sz = curve.symbol().boundingRect().size() sz += QSize(2, 2) if curve.testLegendAttribute(QwtPlotCurve.LegendShowLine): - w = np.ceil(1.5*sz.width()) + w = np.ceil(1.5 * sz.width()) if w % 2: w += 1 sz.setWidth(max([8, w])) curve.setLegendIconSize(sz) + def qwtVerifyRange(size, i1, i2): if size < 1: return 0 - i1 = max([0, min([i1, size-1])]) - i2 = max([0, min([i2, size-1])]) + i1 = max([0, min([i1, size - 1])]) + i2 = max([0, min([i2, size - 1])]) if i1 > i2: i1, i2 = i2, i1 - return i2-i1+1 + return i2 - i1 + 1 def series_to_polyline(xMap, yMap, series, from_, to): """ Convert series data to QPolygon(F) polyline """ - polyline = QPolygonF(to-from_+1) + polyline = QPolygonF(to - from_ + 1) pointer = polyline.data() dtype, tinfo = np.float, np.finfo # integers: = np.int, np.iinfo - pointer.setsize(2*polyline.size()*tinfo(dtype).dtype.itemsize) + pointer.setsize(2 * polyline.size() * tinfo(dtype).dtype.itemsize) memory = np.frombuffer(pointer, dtype) - memory[:(to-from_)*2+1:2] = xMap.transform(series.xData()[from_:to+1]) - memory[1:(to-from_)*2+2:2] = yMap.transform(series.yData()[from_:to+1]) - return polyline + memory[: (to - from_) * 2 + 1 : 2] = xMap.transform(series.xData()[from_ : to + 1]) + memory[1 : (to - from_) * 2 + 2 : 2] = yMap.transform( + series.yData()[from_ : to + 1] + ) + return polyline class QwtPlotCurve_PrivateData(QwtPlotItem_PrivateData): def __init__(self): QwtPlotItem_PrivateData.__init__(self) self.style = QwtPlotCurve.Lines - self.baseline = 0. + self.baseline = 0.0 self.symbol = None self.attributes = 0 self.legendAttributes = QwtPlotCurve.LegendShowLine self.pen = QPen(Qt.black) self.brush = QBrush() - + class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): """ @@ -158,21 +164,21 @@ class QwtPlotCurve(QwtPlotSeriesItem, QwtSeriesStore): :param title: Curve title :type title: qwt.text.QwtText or str or None """ - + # enum CurveStyle NoCurve = -1 Lines, Sticks, Steps, Dots = list(range(4)) UserCurve = 100 - + # enum CurveAttribute Inverted = 0x01 - + # enum LegendAttribute LegendNoAttribute = 0x00 LegendShowLine = 0x01 LegendShowSymbol = 0x02 LegendShowBrush = 0x04 - + def __init__(self, title=None): if title is None: title = QwtText("") @@ -182,19 +188,19 @@ def __init__(self, title=None): QwtPlotSeriesItem.__init__(self, title) QwtSeriesStore.__init__(self) self.init() - + def init(self): """Initialize internal members""" self.__data = QwtPlotCurve_PrivateData() self.setItemAttribute(QwtPlotItem.Legend) self.setItemAttribute(QwtPlotItem.AutoScale) self.setData(QwtPointArrayData()) - self.setZ(20.) - + self.setZ(20.0) + def rtti(self): """:return: `QwtPlotItem.Rtti_PlotCurve`""" return QwtPlotItem.Rtti_PlotCurve - + def setLegendAttribute(self, attribute, on=True): """ Specify an attribute how to draw the legend icon @@ -220,7 +226,7 @@ def setLegendAttribute(self, attribute, on=True): self.__data.legendAttributes &= ~attribute qwtUpdateLegendIconSize(self) self.legendChanged() - + def testLegendAttribute(self, attribute): """ :param int attribute: Legend attribute @@ -231,7 +237,7 @@ def testLegendAttribute(self, attribute): :py:meth:`setLegendAttribute()` """ return self.__data.legendAttributes & attribute - + def setStyle(self, style): """ Set the curve's drawing style @@ -255,7 +261,7 @@ def setStyle(self, style): self.__data.style = style self.legendChanged() self.itemChanged() - + def style(self): """ :return: Style of the curve @@ -265,7 +271,7 @@ def style(self): :py:meth:`setStyle()` """ return self.__data.style - + def setSymbol(self, symbol): """ Assign a symbol @@ -285,7 +291,7 @@ def setSymbol(self, symbol): qwtUpdateLegendIconSize(self) self.legendChanged() self.itemChanged() - + def symbol(self): """ :return: Current symbol or None, when no symbol has been assigned @@ -295,7 +301,7 @@ def symbol(self): :py:meth:`setSymbol()` """ return self.__data.symbol - + def setPen(self, *args): """ Build and/or assign a pen, depending on the arguments. @@ -326,10 +332,12 @@ def setPen(self, *args): color, width, style = args pen = QPen(color, width, style) elif len(args) == 1: - pen, = args + (pen,) = args else: - raise TypeError("%s().setPen() takes 1 or 3 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) + raise TypeError( + "%s().setPen() takes 1 or 3 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) if pen != self.__data.pen: if isinstance(pen, QColor): pen = QPen(pen) @@ -338,7 +346,7 @@ def setPen(self, *args): self.__data.pen = pen self.legendChanged() self.itemChanged() - + def pen(self): """ :return: Pen used to draw the lines @@ -348,7 +356,7 @@ def pen(self): :py:meth:`setPen()`, :py:meth:`brush()` """ return self.__data.pen - + def setBrush(self, brush): """ Assign a brush. @@ -377,7 +385,7 @@ def setBrush(self, brush): self.__data.brush = brush self.legendChanged() self.itemChanged() - + def brush(self): """ :return: Brush used to fill the area between lines and the baseline @@ -388,7 +396,7 @@ def brush(self): :py:meth:`baseline()` """ return self.__data.brush - + def directPaint(self, from_, to): """ When observing a measurement while it is running, new points have @@ -408,7 +416,7 @@ def directPaint(self, from_, to): """ directPainter = QwtPlotDirectPainter(self.plot()) directPainter.drawSeries(self, from_, to) - + def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): """ Draw an interval of the curve @@ -428,20 +436,21 @@ def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): if not painter or numSamples <= 0: return if to < 0: - to = numSamples-1 + to = numSamples - 1 if qwtVerifyRange(numSamples, from_, to) > 0: painter.save() painter.setPen(self.__data.pen) - self.drawCurve(painter, self.__data.style, xMap, yMap, canvasRect, - from_, to) + self.drawCurve( + painter, self.__data.style, xMap, yMap, canvasRect, from_, to + ) painter.restore() - if self.__data.symbol and\ - self.__data.symbol.style() != QwtSymbol.NoSymbol: + if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol: painter.save() - self.drawSymbols(painter, self.__data.symbol, - xMap, yMap, canvasRect, from_, to) + self.drawSymbols( + painter, self.__data.symbol, xMap, yMap, canvasRect, from_, to + ) painter.restore() - + def drawCurve(self, painter, style, xMap, yMap, canvasRect, from_, to): """ Draw the line part (without symbols) of a curve interval. @@ -467,7 +476,7 @@ def drawCurve(self, painter, style, xMap, yMap, canvasRect, from_, to): self.drawSteps(painter, xMap, yMap, canvasRect, from_, to) elif style == self.Dots: self.drawDots(painter, xMap, yMap, canvasRect, from_, to) - + def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): """ Draw lines @@ -486,13 +495,15 @@ def drawLines(self, painter, xMap, yMap, canvasRect, from_, to): """ if from_ > to: return - doFill = self.__data.brush.style() != Qt.NoBrush\ - and self.__data.brush.color().alpha() > 0 + doFill = ( + self.__data.brush.style() != Qt.NoBrush + and self.__data.brush.color().alpha() > 0 + ) polyline = series_to_polyline(xMap, yMap, self.data(), from_, to) painter.drawPolyline(polyline) if doFill: self.fillCurve(painter, xMap, yMap, canvasRect, polyline) - + def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): """ Draw sticks @@ -515,7 +526,7 @@ def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): y0 = yMap.transform(self.__data.baseline) o = self.orientation() series = self.data() - for i in range(from_, to+1): + for i in range(from_, to + 1): sample = series.sample(i) xi = xMap.transform(sample.x()) yi = yMap.transform(sample.y()) @@ -524,7 +535,7 @@ def drawSticks(self, painter, xMap, yMap, canvasRect, from_, to): else: painter.drawLine(x0, yi, xi, yi) painter.restore() - + def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): """ Draw dots @@ -541,13 +552,15 @@ def drawDots(self, painter, xMap, yMap, canvasRect, from_, to): :py:meth:`draw()`, :py:meth:`drawSticks()`, :py:meth:`drawSteps()`, :py:meth:`drawLines()` """ - doFill = self.__data.brush.style() != Qt.NoBrush\ - and self.__data.brush.color().alpha() > 0 + doFill = ( + self.__data.brush.style() != Qt.NoBrush + and self.__data.brush.color().alpha() > 0 + ) polyline = series_to_polyline(xMap, yMap, self.data(), from_, to) painter.drawPoints(polyline) if doFill: self.fillCurve(painter, xMap, yMap, canvasRect, polyline) - + def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): """ Draw steps @@ -564,28 +577,28 @@ def drawSteps(self, painter, xMap, yMap, canvasRect, from_, to): :py:meth:`draw()`, :py:meth:`drawSticks()`, :py:meth:`drawDots()`, :py:meth:`drawLines()` """ - polygon = QPolygonF(2*(to-from_)+1) + polygon = QPolygonF(2 * (to - from_) + 1) inverted = self.orientation() == Qt.Vertical if self.__data.attributes & self.Inverted: inverted = not inverted series = self.data() ip = 0 - for i in range(from_, to+1): + for i in range(from_, to + 1): sample = series.sample(i) xi = xMap.transform(sample.x()) yi = yMap.transform(sample.y()) if ip > 0: - p0 = polygon[ip-2] + p0 = polygon[ip - 2] if inverted: - polygon[ip-1] = QPointF(p0.x(), yi) + polygon[ip - 1] = QPointF(p0.x(), yi) else: - polygon[ip-1] = QPointF(xi, p0.y()) + polygon[ip - 1] = QPointF(xi, p0.y()) polygon[ip] = QPointF(xi, yi) ip += 2 painter.drawPolyline(polygon) if self.__data.brush.style() != Qt.NoBrush: self.fillCurve(painter, xMap, yMap, canvasRect, polygon) - + def setCurveAttribute(self, attribute, on=True): """ Specify an attribute for drawing the curve @@ -608,7 +621,7 @@ def setCurveAttribute(self, attribute, on=True): else: self.__data.attributes &= ~attribute self.itemChanged() - + def testCurveAttribute(self, attribute): """ :return: True, if attribute is enabled @@ -618,7 +631,7 @@ def testCurveAttribute(self, attribute): :py:meth:`setCurveAttribute()` """ return self.__data.attributes & attribute - + def fillCurve(self, painter, xMap, yMap, canvasRect, polygon): """ Fill the area between the curve and the baseline with @@ -648,7 +661,7 @@ def fillCurve(self, painter, xMap, yMap, canvasRect, polygon): painter.setBrush(brush) painter.drawPolygon(polygon) painter.restore() - + def closePolyline(self, painter, xMap, yMap, polygon): """ Complete a polygon to be a closed polygon including the @@ -674,7 +687,7 @@ def closePolyline(self, painter, xMap, yMap, polygon): refX = xMap.transform(baseline) polygon += QPointF(refX, polygon.last().y()) polygon += QPointF(refX, polygon.first().y()) - + def drawSymbols(self, painter, symbol, xMap, yMap, canvasRect, from_, to): """ Draw symbols @@ -693,12 +706,12 @@ def drawSymbols(self, painter, symbol, xMap, yMap, canvasRect, from_, to): :py:meth:`drawCurve()` """ chunkSize = 500 - for i in range(from_, to+1, chunkSize): - n = min([chunkSize, to-i+1]) - points = series_to_polyline(xMap, yMap, self.data(), i, i+n-1) + for i in range(from_, to + 1, chunkSize): + n = min([chunkSize, to - i + 1]) + points = series_to_polyline(xMap, yMap, self.data(), i, i + n - 1) if points.size() > 0: symbol.drawSymbols(painter, points) - + def setBaseline(self, value): """ Set the value of the baseline @@ -723,7 +736,7 @@ def setBaseline(self, value): if self.__data.baseline != value: self.__data.baseline = value self.itemChanged() - + def baseline(self): """ :return: Value of the baseline @@ -733,7 +746,7 @@ def baseline(self): :py:meth:`setBaseline()` """ return self.__data.baseline - + def closestPoint(self, pos): """ Find the closest curve point for a specific position @@ -760,15 +773,15 @@ def closestPoint(self, pos): dmin = 1.0e10 for i in range(numSamples): sample = series.sample(i) - cx = xMap.transform(sample.x())-pos.x() - cy = yMap.transform(sample.y())-pos.y() - f = qwtSqr(cx)+qwtSqr(cy) + cx = xMap.transform(sample.x()) - pos.x() + cy = yMap.transform(sample.y()) - pos.y() + f = qwtSqr(cx) + qwtSqr(cy) if f < dmin: index = i dmin = f dist = np.sqrt(dmin) return index, dist - + def legendIcon(self, index, size): """ :param int index: Index of the legend entry (ignored as there is only one) @@ -786,16 +799,20 @@ def legendIcon(self, index, size): graphic.setDefaultSize(size) graphic.setRenderHint(QwtGraphic.RenderPensUnscaled, True) painter = QPainter(graphic) - painter.setRenderHint(QPainter.Antialiasing, - self.testRenderHint(QwtPlotItem.RenderAntialiased)) - if self.__data.legendAttributes == 0 or\ - (self.__data.legendAttributes & QwtPlotCurve.LegendShowBrush): + painter.setRenderHint( + QPainter.Antialiasing, self.testRenderHint(QwtPlotItem.RenderAntialiased) + ) + if self.__data.legendAttributes == 0 or ( + self.__data.legendAttributes & QwtPlotCurve.LegendShowBrush + ): brush = self.__data.brush if brush.style() == Qt.NoBrush and self.__data.legendAttributes == 0: if self.style() != QwtPlotCurve.NoCurve: brush = QBrush(self.pen().color()) - elif self.__data.symbol and\ - self.__data.symbol.style() != QwtSymbol.NoSymbol: + elif ( + self.__data.symbol + and self.__data.symbol.style() != QwtSymbol.NoSymbol + ): brush = QBrush(self.__data.symbol.pen().color()) if brush.style() != Qt.NoBrush: r = QRectF(0, 0, size.width(), size.height()) @@ -803,15 +820,15 @@ def legendIcon(self, index, size): if self.__data.legendAttributes & QwtPlotCurve.LegendShowLine: if self.pen() != Qt.NoPen: pn = self.pen() -# pn.setCapStyle(Qt.FlatCap) + # pn.setCapStyle(Qt.FlatCap) painter.setPen(pn) - y = .5*size.height() - painter.drawLine(0., y, size.width(), y) + y = 0.5 * size.height() + painter.drawLine(0.0, y, size.width(), y) if self.__data.legendAttributes & QwtPlotCurve.LegendShowSymbol: if self.__data.symbol: r = QRectF(0, 0, size.width(), size.height()) self.__data.symbol.drawSymbol(painter, r) - return graphic + return graphic def setData(self, *args, **kwargs): """ @@ -845,9 +862,11 @@ def setData(self, *args, **kwargs): elif len(args) in (2, 3, 4): self.setSamples(*args, **kwargs) else: - raise TypeError("%s().setData() takes 1, 2, 3 or 4 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) - + raise TypeError( + "%s().setData() takes 1, 2, 3 or 4 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) + def setSamples(self, *args, **kwargs): """ Initialize data with an array of points. @@ -879,7 +898,7 @@ def setSamples(self, *args, **kwargs): :py:class:`.plot_series.QwtPointArrayData` """ if len(args) == 1 and not kwargs: - samples, = args + (samples,) = args if isinstance(samples, QwtSeriesData): self.setData(samples) else: @@ -887,25 +906,28 @@ def setSamples(self, *args, **kwargs): elif len(args) >= 2: xData, yData = args[:2] try: - size = kwargs.pop('size') + size = kwargs.pop("size") except KeyError: size = None try: - finite = kwargs.pop('finite') + finite = kwargs.pop("finite") except KeyError: finite = None if kwargs: - raise TypeError("%s().setSamples(): unknown %s keyword "\ - "argument(s)"\ - % (self.__class__.__name__, - ", ".join(list(kwargs.keys())))) + raise TypeError( + "%s().setSamples(): unknown %s keyword " + "argument(s)" + % (self.__class__.__name__, ", ".join(list(kwargs.keys()))) + ) for arg in args[2:]: if isinstance(arg, bool): finite = arg elif isinstance(arg, int): size = arg - self.setData(QwtPointArrayData(xData, yData, - size=size, finite=finite)) + self.setData(QwtPointArrayData(xData, yData, size=size, finite=finite)) else: - raise TypeError("%s().setSamples() takes 1, 2 or 3 argument(s) "\ - "(%s given)" % (self.__class__.__name__, len(args))) + raise TypeError( + "%s().setSamples() takes 1, 2 or 3 argument(s) " + "(%s given)" % (self.__class__.__name__, len(args)) + ) + diff --git a/qwt/plot_directpainter.py b/qwt/plot_directpainter.py index 25cd885..d60b026 100644 --- a/qwt/plot_directpainter.py +++ b/qwt/plot_directpainter.py @@ -21,18 +21,20 @@ def qwtRenderItem(painter, canvasRect, seriesItem, from_, to): - #TODO: A minor performance improvement is possible with caching the maps + # TODO: A minor performance improvement is possible with caching the maps plot = seriesItem.plot() xMap = plot.canvasMap(seriesItem.xAxis()) yMap = plot.canvasMap(seriesItem.yAxis()) - painter.setRenderHint(QPainter.Antialiasing, - seriesItem.testRenderHint(QwtPlotItem.RenderAntialiased)) + painter.setRenderHint( + QPainter.Antialiasing, seriesItem.testRenderHint(QwtPlotItem.RenderAntialiased) + ) seriesItem.drawSeries(painter, xMap, yMap, canvasRect, from_, to) def qwtHasBackingStore(canvas): - return canvas.testPaintAttribute(QwtPlotCanvas.BackingStore)\ - and canvas.backingStore() + return ( + canvas.testPaintAttribute(QwtPlotCanvas.BackingStore) and canvas.backingStore() + ) class QwtPlotDirectPainter_PrivateData(object): @@ -92,16 +94,16 @@ class QwtPlotDirectPainter(QObject): This flag can also be useful for settings, where Qt fills the the clip region with the widget background. """ - + # enum Attribute AtomicPainter = 0x01 FullRepaint = 0x02 CopyBackingStore = 0x04 - + def __init__(self, parent=None): QObject.__init__(self, parent) self.__data = QwtPlotDirectPainter_PrivateData() - + def setAttribute(self, attribute, on=True): """ Change an attribute @@ -119,7 +121,7 @@ def setAttribute(self, attribute, on=True): self.__data.attributes &= ~attribute if attribute == self.AtomicPainter and on: self.reset() - + def testAttribute(self, attribute): """ :param int attribute: Attribute to be tested @@ -130,7 +132,7 @@ def testAttribute(self, attribute): :py:meth:`setAttribute()` """ return self.__data.attributes & attribute - + def setClipping(self, enable): """ En/Disables clipping @@ -143,7 +145,7 @@ def setClipping(self, enable): :py:meth:`setClipRegion()` """ self.__data.hasClipping = enable - + def hasClipping(self): """ :return: Return true, when clipping is enabled @@ -154,7 +156,7 @@ def hasClipping(self): :py:meth:`setClipRegion()` """ return self.__data.hasClipping - + def setClipRegion(self, region): """ Assign a clip region and enable clipping @@ -173,7 +175,7 @@ def setClipRegion(self, region): """ self.__data.clipRegion = region self.__data.hasClipping = True - + def clipRegion(self): """ :return: Return Currently set clip region. @@ -184,7 +186,7 @@ def clipRegion(self): :py:meth:`setClipRegion()` """ return self.__data.clipRegion - + def drawSeries(self, seriesItem, from_, to): """ Draw a set of points of a seriesItem. @@ -205,9 +207,11 @@ def drawSeries(self, seriesItem, from_, to): return canvas = seriesItem.plot().canvas() canvasRect = canvas.contentsRect() - plotCanvas = canvas #XXX: cast to QwtPlotCanvas + plotCanvas = canvas # XXX: cast to QwtPlotCanvas if plotCanvas and qwtHasBackingStore(plotCanvas): - painter = QPainter(plotCanvas.backingStore()) #XXX: cast plotCanvas.backingStore() to QPixmap + painter = QPainter( + plotCanvas.backingStore() + ) # XXX: cast plotCanvas.backingStore() to QPixmap if self.__data.hasClipping: painter.setClipRegion(self.__data.clipRegion) qwtRenderItem(painter, canvasRect, seriesItem, from_, to) @@ -217,8 +221,9 @@ def drawSeries(self, seriesItem, from_, to): return immediatePaint = True if not canvas.testAttribute(Qt.WA_WState_InPaintEvent): - if QT_VERSION >= 0x050000 or\ - not canvas.testAttribute(Qt.WA_PaintOutsidePaintEvent): + if QT_VERSION >= 0x050000 or not canvas.testAttribute( + Qt.WA_PaintOutsidePaintEvent + ): immediatePaint = False if immediatePaint: if not self.__data.painter.isActive(): @@ -227,11 +232,11 @@ def drawSeries(self, seriesItem, from_, to): canvas.installEventFilter(self) if self.__data.hasClipping: self.__data.painter.setClipRegion( - QRegion(canvasRect) & self.__data.clipRegion) + QRegion(canvasRect) & self.__data.clipRegion + ) elif not self.__data.painter.hasClipping(): self.__data.painter.setClipRect(canvasRect) - qwtRenderItem(self.__data.painter, - canvasRect, seriesItem, from_, to) + qwtRenderItem(self.__data.painter, canvasRect, seriesItem, from_, to) if self.__data.attributes & self.AtomicPainter: self.reset() elif self.__data.hasClipping: @@ -248,34 +253,39 @@ def drawSeries(self, seriesItem, from_, to): canvas.repaint(clipRegion) canvas.removeEventFilter(self) self.__data.seriesItem = None - + def reset(self): """Close the internal QPainter""" if self.__data.painter.isActive(): - w = self.__data.painter.device() #XXX: cast to QWidget + w = self.__data.painter.device() # XXX: cast to QWidget if w: w.removeEventFilter(self) self.__data.painter.end() - + def eventFilter(self, obj_, event): if event.type() == QEvent.Paint: self.reset() if self.__data.seriesItem: - pe = event #XXX: cast to QPaintEvent + pe = event # XXX: cast to QPaintEvent canvas = self.__data.seriesItem.plot().canvas() painter = QPainter(canvas) painter.setClipRegion(pe.region()) doCopyCache = self.testAttribute(self.CopyBackingStore) if doCopyCache: - plotCanvas = canvas #XXX: cast to QwtPlotCanvas + plotCanvas = canvas # XXX: cast to QwtPlotCanvas if plotCanvas: doCopyCache = qwtHasBackingStore(plotCanvas) if doCopyCache: - painter.drawPixmap(plotCanvas.rect().topLeft(), - plotCanvas.backingStore()) + painter.drawPixmap( + plotCanvas.rect().topLeft(), plotCanvas.backingStore() + ) if not doCopyCache: - qwtRenderItem(painter, canvas.contentsRect(), - self.__data.seriesItem, - self.__data.from_, self.__data.to) + qwtRenderItem( + painter, + canvas.contentsRect(), + self.__data.seriesItem, + self.__data.from_, + self.__data.to, + ) return True return False diff --git a/qwt/plot_grid.py b/qwt/plot_grid.py index 29e169d..2c6db30 100644 --- a/qwt/plot_grid.py +++ b/qwt/plot_grid.py @@ -46,19 +46,19 @@ class QwtPlotGrid(QwtPlotItem): The `draw()` member draws the grid within a bounding rectangle. """ - + def __init__(self): QwtPlotItem.__init__(self, QwtText("Grid")) self.__data = QwtPlotGrid_PrivateData() self.setItemInterest(QwtPlotItem.ScaleInterest, True) - self.setZ(10.) - + self.setZ(10.0) + def rtti(self): """ :return: Return `QwtPlotItem.Rtti_PlotGrid` """ return QwtPlotItem.Rtti_PlotGrid - + def enableX(self, on): """ Enable or disable vertical grid lines @@ -73,7 +73,7 @@ def enableX(self, on): self.__data.xEnabled = on self.legendChanged() self.itemChanged() - + def enableY(self, on): """ Enable or disable horizontal grid lines @@ -88,7 +88,7 @@ def enableY(self, on): self.__data.yEnabled = on self.legendChanged() self.itemChanged() - + def enableXMin(self, on): """ Enable or disable minor vertical grid lines. @@ -103,7 +103,7 @@ def enableXMin(self, on): self.__data.xMinEnabled = on self.legendChanged() self.itemChanged() - + def enableYMin(self, on): """ Enable or disable minor horizontal grid lines. @@ -169,15 +169,17 @@ def setPen(self, *args): color, width, style = args self.setPen(QPen(color, width, style)) elif len(args) == 1: - pen, = args + (pen,) = args if self.__data.majorPen != pen or self.__data.minorPen != pen: self.__data.majorPen = pen self.__data.minorPen = pen self.legendChanged() self.itemChanged() else: - raise TypeError("%s().setPen() takes 1 or 3 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) + raise TypeError( + "%s().setPen() takes 1 or 3 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) def setMajorPen(self, *args): """ @@ -210,14 +212,16 @@ def setMajorPen(self, *args): color, width, style = args self.setMajorPen(QPen(color, width, style)) elif len(args) == 1: - pen, = args + (pen,) = args if self.__data.majorPen != pen: self.__data.majorPen = pen self.legendChanged() self.itemChanged() else: - raise TypeError("%s().setMajorPen() takes 1 or 3 argument(s) (%s "\ - "given)" % (self.__class__.__name__, len(args))) + raise TypeError( + "%s().setMajorPen() takes 1 or 3 argument(s) (%s " + "given)" % (self.__class__.__name__, len(args)) + ) def setMinorPen(self, *args): """ @@ -250,15 +254,17 @@ def setMinorPen(self, *args): color, width, style = args self.setMinorPen(QPen(color, width, style)) elif len(args) == 1: - pen, = args + (pen,) = args if self.__data.minorPen != pen: self.__data.minorPen = pen self.legendChanged() self.itemChanged() else: - raise TypeError("%s().setMinorPen() takes 1 or 3 argument(s) (%s "\ - "given)" % (self.__class__.__name__, len(args))) - + raise TypeError( + "%s().setMinorPen() takes 1 or 3 argument(s) (%s " + "given)" % (self.__class__.__name__, len(args)) + ) + def draw(self, painter, xMap, yMap, canvasRect): """ Draw the grid @@ -277,41 +283,69 @@ def draw(self, painter, xMap, yMap, canvasRect): minorPen.setCapStyle(Qt.FlatCap) painter.setPen(minorPen) if self.__data.xEnabled and self.__data.xMinEnabled: - self.drawLines(painter, canvasRect, Qt.Vertical, xMap, - self.__data.xScaleDiv.ticks(QwtScaleDiv.MinorTick)) - self.drawLines(painter, canvasRect, Qt.Vertical, xMap, - self.__data.xScaleDiv.ticks(QwtScaleDiv.MediumTick)) + self.drawLines( + painter, + canvasRect, + Qt.Vertical, + xMap, + self.__data.xScaleDiv.ticks(QwtScaleDiv.MinorTick), + ) + self.drawLines( + painter, + canvasRect, + Qt.Vertical, + xMap, + self.__data.xScaleDiv.ticks(QwtScaleDiv.MediumTick), + ) if self.__data.yEnabled and self.__data.yMinEnabled: - self.drawLines(painter, canvasRect, Qt.Horizontal, yMap, - self.__data.yScaleDiv.ticks(QwtScaleDiv.MinorTick)) - self.drawLines(painter, canvasRect, Qt.Horizontal, yMap, - self.__data.yScaleDiv.ticks(QwtScaleDiv.MediumTick)) + self.drawLines( + painter, + canvasRect, + Qt.Horizontal, + yMap, + self.__data.yScaleDiv.ticks(QwtScaleDiv.MinorTick), + ) + self.drawLines( + painter, + canvasRect, + Qt.Horizontal, + yMap, + self.__data.yScaleDiv.ticks(QwtScaleDiv.MediumTick), + ) majorPen = QPen(self.__data.majorPen) majorPen.setCapStyle(Qt.FlatCap) painter.setPen(majorPen) if self.__data.xEnabled: - self.drawLines(painter, canvasRect, Qt.Vertical, xMap, - self.__data.xScaleDiv.ticks(QwtScaleDiv.MajorTick)) + self.drawLines( + painter, + canvasRect, + Qt.Vertical, + xMap, + self.__data.xScaleDiv.ticks(QwtScaleDiv.MajorTick), + ) if self.__data.yEnabled: - self.drawLines(painter, canvasRect, Qt.Horizontal, yMap, - self.__data.yScaleDiv.ticks(QwtScaleDiv.MajorTick)) - + self.drawLines( + painter, + canvasRect, + Qt.Horizontal, + yMap, + self.__data.yScaleDiv.ticks(QwtScaleDiv.MajorTick), + ) + def drawLines(self, painter, canvasRect, orientation, scaleMap, values): x1 = canvasRect.left() - x2 = canvasRect.right()-1. + x2 = canvasRect.right() - 1.0 y1 = canvasRect.top() - y2 = canvasRect.bottom()-1. + y2 = canvasRect.bottom() - 1.0 for val in values: value = scaleMap.transform(val) if orientation == Qt.Horizontal: - if qwtFuzzyGreaterOrEqual(value, y1) and\ - qwtFuzzyLessOrEqual(value, y2): + if qwtFuzzyGreaterOrEqual(value, y1) and qwtFuzzyLessOrEqual(value, y2): painter.drawLine(x1, value, x2, value) else: - if qwtFuzzyGreaterOrEqual(value, x1) and\ - qwtFuzzyLessOrEqual(value, x2): + if qwtFuzzyGreaterOrEqual(value, x1) and qwtFuzzyLessOrEqual(value, x2): painter.drawLine(value, y1, value, y2) - + def majorPen(self): """ :return: the pen for the major grid lines @@ -322,7 +356,7 @@ def majorPen(self): :py:meth:`setPen()` """ return self.__data.majorPen - + def minorPen(self): """ :return: the pen for the minor grid lines @@ -333,7 +367,7 @@ def minorPen(self): :py:meth:`setPen()` """ return self.__data.minorPen - + def xEnabled(self): """ :return: True if vertical grid lines are enabled @@ -343,7 +377,7 @@ def xEnabled(self): :py:meth:`enableX()` """ return self.__data.xEnabled - + def yEnabled(self): """ :return: True if horizontal grid lines are enabled @@ -353,7 +387,7 @@ def yEnabled(self): :py:meth:`enableY()` """ return self.__data.yEnabled - + def xMinEnabled(self): """ :return: True if minor vertical grid lines are enabled @@ -363,7 +397,7 @@ def xMinEnabled(self): :py:meth:`enableXMin()` """ return self.__data.xMinEnabled - + def yMinEnabled(self): """ :return: True if minor horizontal grid lines are enabled @@ -373,19 +407,19 @@ def yMinEnabled(self): :py:meth:`enableYMin()` """ return self.__data.yMinEnabled - + def xScaleDiv(self): """ :return: the scale division of the x axis """ return self.__data.xScaleDiv - + def yScaleDiv(self): """ :return: the scale division of the y axis """ return self.__data.yScaleDiv - + def updateScaleDiv(self, xScaleDiv, yScaleDiv): """ Update the grid to changes of the axes scale division @@ -399,4 +433,4 @@ def updateScaleDiv(self, xScaleDiv, yScaleDiv): """ self.setXDiv(xScaleDiv) self.setYDiv(yScaleDiv) - \ No newline at end of file + diff --git a/qwt/plot_layout.py b/qwt/plot_layout.py index 6a32ef2..e8d30b1 100644 --- a/qwt/plot_layout.py +++ b/qwt/plot_layout.py @@ -23,7 +23,7 @@ import numpy as np -QWIDGETSIZE_MAX = (1<<24)-1 +QWIDGETSIZE_MAX = (1 << 24) - 1 class LegendData(object): @@ -33,16 +33,19 @@ def __init__(self): self.vScrollExtent = None self.hint = QSize() + class TitleData(object): def __init__(self): self.text = QwtText() self.frameWidth = None + class FooterData(object): def __init__(self): self.text = QwtText() self.frameWidth = None + class ScaleData(object): def __init__(self): self.isEnabled = None @@ -54,10 +57,12 @@ def __init__(self): self.tickOffset = None self.dimWithoutTitle = None + class CanvasData(object): def __init__(self): self.contentsMargins = [0 for _i in QwtPlot.AXES] + class QwtPlotLayout_LayoutData(object): def __init__(self): self.legend = LegendData() @@ -65,7 +70,7 @@ def __init__(self): self.footer = FooterData() self.scale = [ScaleData() for _i in QwtPlot.AXES] self.canvas = CanvasData() - + def init(self, plot, rect): """Extract all layout relevant data from the plot components""" # legend @@ -110,18 +115,22 @@ def init(self, plot, rect): self.scale[axis].baseLineOffset = scaleWidget.margin() self.scale[axis].tickOffset = scaleWidget.margin() if scaleWidget.scaleDraw().hasComponent(QwtAbstractScaleDraw.Ticks): - self.scale[axis].tickOffset += scaleWidget.scaleDraw().maxTickLength() + self.scale[ + axis + ].tickOffset += scaleWidget.scaleDraw().maxTickLength() self.scale[axis].dimWithoutTitle = scaleWidget.dimForLength( - QWIDGETSIZE_MAX, self.scale[axis].scaleFont) + QWIDGETSIZE_MAX, self.scale[axis].scaleFont + ) if not scaleWidget.title().isEmpty(): - self.scale[axis].dimWithoutTitle -= \ - scaleWidget.titleHeightForWidth(QWIDGETSIZE_MAX) + self.scale[axis].dimWithoutTitle -= scaleWidget.titleHeightForWidth( + QWIDGETSIZE_MAX + ) else: self.scale[axis].isEnabled = False self.scale[axis].start = 0 self.scale[axis].end = 0 self.scale[axis].baseLineOffset = 0 - self.scale[axis].tickOffset = 0. + self.scale[axis].tickOffset = 0.0 self.scale[axis].dimWithoutTitle = 0 self.canvas.contentsMargins = plot.canvas().getContentsMargins() @@ -162,7 +171,7 @@ class QwtPlotLayout(object): * `QwtPlotLayout.IgnoreTitle`: Ignore the title. * `QwtPlotLayout.IgnoreFooter`: Ignore the footer. """ - + # enum Option AlignScales = 0x01 IgnoreScrollbars = 0x02 @@ -170,14 +179,14 @@ class QwtPlotLayout(object): IgnoreLegend = 0x08 IgnoreTitle = 0x10 IgnoreFooter = 0x20 - + def __init__(self): self.__data = QwtPlotLayout_PrivateData() self.setLegendPosition(QwtPlot.BottomLegend) self.setCanvasMargin(4) self.setAlignCanvasToScales(False) self.invalidate() - + def setCanvasMargin(self, margin, axis=-1): """ Change a margin of the canvas. The margin is the space @@ -202,7 +211,7 @@ def setCanvasMargin(self, margin, axis=-1): self.__data.canvasMargin[axis] = margin elif axis in QwtPlot.AXES: self.__data.canvasMargin[axis] = margin - + def canvasMargin(self, axisId): """ :param int axisId: Axis index @@ -215,7 +224,7 @@ def canvasMargin(self, axisId): if axisId not in QwtPlot.AXES: return 0 return self.__data.canvasMargin[axisId] - + def setAlignCanvasToScales(self, *args): """ Change the align-canvas-to-axis-scales setting. @@ -248,7 +257,7 @@ def setAlignCanvasToScales(self, *args): :py:meth:`alignCanvasToScale()` """ if len(args) == 1: - on, = args + (on,) = args for axis in QwtPlot.AXES: self.__data.alignCanvasToScales[axis] = on elif len(args) == 2: @@ -256,9 +265,10 @@ def setAlignCanvasToScales(self, *args): if axisId in QwtPlot.AXES: self.__data.alignCanvasToScales[axisId] = on else: - raise TypeError("%s().setAlignCanvasToScales() takes 1 or 2 "\ - "argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) + raise TypeError( + "%s().setAlignCanvasToScales() takes 1 or 2 " + "argument(s) (%s given)" % (self.__class__.__name__, len(args)) + ) def alignCanvasToScale(self, axisId): """ @@ -278,7 +288,7 @@ def alignCanvasToScale(self, axisId): if axisId not in QwtPlot.AXES: return False return self.__data.alignCanvasToScales[axisId] - + def setSpacing(self, spacing): """ Change the spacing of the plot. The spacing is the distance @@ -291,7 +301,7 @@ def setSpacing(self, spacing): :py:meth:`setCanvasMargin()`, :py:meth:`spacing()` """ self.__data.spacing = max([0, spacing]) - + def spacing(self): """ :return: Spacing @@ -301,7 +311,7 @@ def spacing(self): :py:meth:`margin()`, :py:meth:`setSpacing()` """ return self.__data.spacing - + def setLegendPosition(self, *args): """ Specify the position of the legend @@ -331,25 +341,27 @@ def setLegendPosition(self, *args): """ if len(args) == 2: pos, ratio = args - if ratio > 1.: - ratio = 1. + if ratio > 1.0: + ratio = 1.0 if pos in (QwtPlot.TopLegend, QwtPlot.BottomLegend): - if ratio <= 0.: - ratio = .33 + if ratio <= 0.0: + ratio = 0.33 self.__data.legendRatio = ratio self.__data.legendPos = pos elif pos in (QwtPlot.LeftLegend, QwtPlot.RightLegend): - if ratio <= 0.: - ratio = .5 + if ratio <= 0.0: + ratio = 0.5 self.__data.legendRatio = ratio self.__data.legendPos = pos elif len(args) == 1: - pos, = args - self.setLegendPosition(pos, 0.) + (pos,) = args + self.setLegendPosition(pos, 0.0) else: - raise TypeError("%s().setLegendPosition() takes 1 or 2 argument(s)"\ - "(%s given)" % (self.__class__.__name__, len(args))) - + raise TypeError( + "%s().setLegendPosition() takes 1 or 2 argument(s)" + "(%s given)" % (self.__class__.__name__, len(args)) + ) + def legendPosition(self): """ :return: Position of the legend @@ -359,7 +371,7 @@ def legendPosition(self): :py:meth:`legendPosition()` """ return self.__data.legendPos - + def setLegendRatio(self, ratio): """ Specify the relative size of the legend in the plot @@ -376,7 +388,7 @@ def setLegendRatio(self, ratio): :py:meth:`legendRatio()` """ self.setLegendPosition(self.legendPosition(), ratio) - + def legendRatio(self): """ :return: The relative size of the legend in the plot. @@ -386,7 +398,7 @@ def legendRatio(self): :py:meth:`setLegendRatio()` """ return self.__data.legendRatio - + def setTitleRect(self, rect): """ Set the geometry for the title @@ -401,7 +413,7 @@ def setTitleRect(self, rect): :py:meth:`titleRect()`, :py:meth:`activate()` """ self.__data.titleRect = rect - + def titleRect(self): """ :return: Geometry for the title @@ -411,7 +423,7 @@ def titleRect(self): :py:meth:`invalidate()`, :py:meth:`activate()` """ return self.__data.titleRect - + def setFooterRect(self, rect): """ Set the geometry for the footer @@ -426,7 +438,7 @@ def setFooterRect(self, rect): :py:meth:`footerRect()`, :py:meth:`activate()` """ self.__data.footerRect = rect - + def footerRect(self): """ :return: Geometry for the footer @@ -436,7 +448,7 @@ def footerRect(self): :py:meth:`invalidate()`, :py:meth:`activate()` """ return self.__data.footerRect - + def setLegendRect(self, rect): """ Set the geometry for the legend @@ -451,7 +463,7 @@ def setLegendRect(self, rect): :py:meth:`footerRect()`, :py:meth:`activate()` """ self.__data.legendRect = rect - + def legendRect(self): """ :return: Geometry for the legend @@ -461,7 +473,7 @@ def legendRect(self): :py:meth:`invalidate()`, :py:meth:`activate()` """ return self.__data.legendRect - + def setScaleRect(self, axis, rect): """ Set the geometry for an axis @@ -478,7 +490,7 @@ def setScaleRect(self, axis, rect): """ if axis in QwtPlot.AXES: self.__data.scaleRect[axis] = rect - + def scaleRect(self, axis): """ :param int axisId: Axis index @@ -491,7 +503,7 @@ def scaleRect(self, axis): if axis not in QwtPlot.AXES: return QRectF() return self.__data.scaleRect[axis] - + def setCanvasRect(self, rect): """ Set the geometry for the canvas @@ -506,7 +518,7 @@ def setCanvasRect(self, rect): :py:meth:`canvasRect()`, :py:meth:`activate()` """ self.__data.canvasRect = rect - + def canvasRect(self): """ :return: Geometry for the canvas @@ -516,7 +528,7 @@ def canvasRect(self): :py:meth:`invalidate()`, :py:meth:`activate()` """ return self.__data.canvasRect - + def invalidate(self): """ Invalidate the geometry of all components. @@ -531,7 +543,7 @@ def invalidate(self): self.__data.canvasRect = QRectF() for axis in QwtPlot.AXES: self.__data.scaleRect[axis] = QRectF() - + def minimumSizeHint(self, plot): """ :param qwt.plot.QwtPlot plot: Plot widget @@ -541,6 +553,7 @@ def minimumSizeHint(self, plot): :py:meth:`qwt.plot.QwtPlot.minimumSizeHint()` """ + class _ScaleData(object): def __init__(self): self.w = 0 @@ -548,6 +561,7 @@ def __init__(self): self.minLeft = 0 self.minRight = 0 self.tickOffset = 0 + scaleData = [_ScaleData() for _i in QwtPlot.AXES] canvasBorder = [0 for _i in QwtPlot.AXES] fw, _, _, _ = plot.canvas().getContentsMargins() @@ -566,27 +580,35 @@ def __init__(self): for axis in QwtPlot.AXES: sd = scaleData[axis] if sd.w and axis in (QwtPlot.xBottom, QwtPlot.xTop): - if sd.minLeft > canvasBorder[QwtPlot.yLeft]\ - and scaleData[QwtPlot.yLeft].w: + if ( + sd.minLeft > canvasBorder[QwtPlot.yLeft] + and scaleData[QwtPlot.yLeft].w + ): shiftLeft = sd.minLeft - canvasBorder[QwtPlot.yLeft] if shiftLeft > scaleData[QwtPlot.yLeft].w: shiftLeft = scaleData[QwtPlot.yLeft].w sd.w -= shiftLeft - if sd.minRight > canvasBorder[QwtPlot.yRight]\ - and scaleData[QwtPlot.yRight].w: + if ( + sd.minRight > canvasBorder[QwtPlot.yRight] + and scaleData[QwtPlot.yRight].w + ): shiftRight = sd.minRight - canvasBorder[QwtPlot.yRight] if shiftRight > scaleData[QwtPlot.yRight].w: shiftRight = scaleData[QwtPlot.yRight].w sd.w -= shiftRight if sd.h and axis in (QwtPlot.yLeft, QwtPlot.yRight): - if sd.minLeft > canvasBorder[QwtPlot.xBottom]\ - and scaleData[QwtPlot.xBottom].h: + if ( + sd.minLeft > canvasBorder[QwtPlot.xBottom] + and scaleData[QwtPlot.xBottom].h + ): shiftBottom = sd.minLeft - canvasBorder[QwtPlot.xBottom] if shiftBottom > scaleData[QwtPlot.xBottom].tickOffset: shiftBottom = scaleData[QwtPlot.xBottom].tickOffset sd.h -= shiftBottom - if sd.minLeft > canvasBorder[QwtPlot.xTop]\ - and scaleData[QwtPlot.xTop].h: + if ( + sd.minLeft > canvasBorder[QwtPlot.xTop] + and scaleData[QwtPlot.xTop].h + ): shiftTop = sd.minRight - canvasBorder[QwtPlot.xTop] if shiftTop > scaleData[QwtPlot.xTop].tickOffset: shiftTop = scaleData[QwtPlot.xTop].tickOffset @@ -595,52 +617,60 @@ def __init__(self): left, top, right, bottom = canvas.getContentsMargins() minCanvasSize = canvas.minimumSize() w = scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w - cw = max([scaleData[QwtPlot.xBottom].w, - scaleData[QwtPlot.xTop].w]) + left + 1 + right + 1 + cw = ( + max([scaleData[QwtPlot.xBottom].w, scaleData[QwtPlot.xTop].w]) + + left + + 1 + + right + + 1 + ) w += max([cw, minCanvasSize.width()]) h = scaleData[QwtPlot.xBottom].h + scaleData[QwtPlot.xTop].h - ch = max([scaleData[QwtPlot.yLeft].h, - scaleData[QwtPlot.yRight].h]) + top + 1 + bottom + 1 + ch = ( + max([scaleData[QwtPlot.yLeft].h, scaleData[QwtPlot.yRight].h]) + + top + + 1 + + bottom + + 1 + ) h += max([ch, minCanvasSize.height()]) for label in [plot.titleLabel(), plot.footerLabel()]: if label and not label.text().isEmpty(): - centerOnCanvas = not plot.axisEnabled(QwtPlot.yLeft)\ - and plot.axisEnabled(QwtPlot.yRight) + centerOnCanvas = not plot.axisEnabled( + QwtPlot.yLeft + ) and plot.axisEnabled(QwtPlot.yRight) labelW = w if centerOnCanvas: - labelW -= scaleData[QwtPlot.yLeft].w +\ - scaleData[QwtPlot.yRight].w + labelW -= scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w labelH = label.heightForWidth(labelW) if labelH > labelW: w = labelW = labelH if centerOnCanvas: - w += scaleData[QwtPlot.yLeft].w +\ - scaleData[QwtPlot.yRight].w + w += scaleData[QwtPlot.yLeft].w + scaleData[QwtPlot.yRight].w labelH = label.heightForWidth(labelW) h += labelH + self.__data.spacing legend = plot.legend() if legend and not legend.isEmpty(): - if self.__data.legendPos in (QwtPlot.LeftLegend, - QwtPlot.RightLegend): + if self.__data.legendPos in (QwtPlot.LeftLegend, QwtPlot.RightLegend): legendW = legend.sizeHint().width() legendH = legend.heightForWidth(legendW) if legend.frameWidth() > 0: w += self.__data.spacing if legendH > h: legendW += legend.scrollExtent(Qt.Horizontal) - if self.__data.legendRatio < 1.: - legendW = min([legendW, int(w/(1.-self.__data.legendRatio))]) + if self.__data.legendRatio < 1.0: + legendW = min([legendW, int(w / (1.0 - self.__data.legendRatio))]) w += legendW + self.__data.spacing else: legendW = min([legend.sizeHint().width(), w]) legendH = legend.heightForWidth(legendW) if legend.frameWidth() > 0: h += self.__data.spacing - if self.__data.legendRatio < 1.: - legendH = min([legendH, int(h/(1.-self.__data.legendRatio))]) + if self.__data.legendRatio < 1.0: + legendH = min([legendH, int(h / (1.0 - self.__data.legendRatio))]) h += legendH + self.__data.spacing return QSize(w, h) - + def layoutLegend(self, options, rect): """ Find the geometry for the legend @@ -651,26 +681,26 @@ def layoutLegend(self, options, rect): """ hint = self.__data.layoutData.legend.hint if self.__data.legendPos in (QwtPlot.LeftLegend, QwtPlot.RightLegend): - dim = min([hint.width(), int(rect.width()*self.__data.legendRatio)]) + dim = min([hint.width(), int(rect.width() * self.__data.legendRatio)]) if not (options & self.IgnoreScrollbars): if hint.height() > rect.height(): dim += self.__data.layoutData.legend.hScrollExtent else: - dim = min([hint.height(), int(rect.height()*self.__data.legendRatio)]) + dim = min([hint.height(), int(rect.height() * self.__data.legendRatio)]) dim = max([dim, self.__data.layoutData.legend.vScrollExtent]) legendRect = QRectF(rect) if self.__data.legendPos == QwtPlot.LeftLegend: legendRect.setWidth(dim) elif self.__data.legendPos == QwtPlot.RightLegend: - legendRect.setX(rect.right()-dim) + legendRect.setX(rect.right() - dim) legendRect.setWidth(dim) elif self.__data.legendPos == QwtPlot.TopLegend: legendRect.setHeight(dim) elif self.__data.legendPos == QwtPlot.BottomLegend: - legendRect.setY(rect.bottom()-dim) + legendRect.setY(rect.bottom() - dim) legendRect.setHeight(dim) return legendRect - + def alignLegend(self, canvasRect, legendRect): """ Align the legend to the canvas @@ -689,7 +719,7 @@ def alignLegend(self, canvasRect, legendRect): alignedRect.setY(canvasRect.y()) alignedRect.setHeight(canvasRect.height()) return alignedRect - + def expandLineBreaks(self, options, rect): """ Expand all line breaks in text labels, and calculate the height @@ -710,7 +740,9 @@ def expandLineBreaks(self, options, rect): backboneOffset = [0 for _i in QwtPlot.AXES] for axis in QwtPlot.AXES: if not (options & self.IgnoreFrames): - backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[axis] + backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[ + axis + ] if not self.__data.alignCanvasToScales[axis]: backboneOffset[axis] += self.__data.canvasMargin[axis] done = False @@ -723,27 +755,35 @@ def expandLineBreaks(self, options, rect): # width and results in shrinking the width of a horizontal # axis what might result in a line break of a horizontal # axis ... . So we loop as long until no size changes. - if not ((options & self.IgnoreTitle) or \ - self.__data.layoutData.title.text.isEmpty()): + if not ( + (options & self.IgnoreTitle) + or self.__data.layoutData.title.text.isEmpty() + ): w = rect.width() - if self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled !=\ - self.__data.layoutData.scale[QwtPlot.yRight].isEnabled: - w -= dimAxes[QwtPlot.yLeft]+dimAxes[QwtPlot.yRight] + if ( + self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled + != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled + ): + w -= dimAxes[QwtPlot.yLeft] + dimAxes[QwtPlot.yRight] d = np.ceil(self.__data.layoutData.title.text.heightForWidth(w)) if not (options & self.IgnoreFrames): - d += 2*self.__data.layoutData.title.frameWidth + d += 2 * self.__data.layoutData.title.frameWidth if d > dimTitle: dimTitle = d done = False - if not ((options & self.IgnoreFooter) or \ - self.__data.layoutData.footer.text.isEmpty()): + if not ( + (options & self.IgnoreFooter) + or self.__data.layoutData.footer.text.isEmpty() + ): w = rect.width() - if self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled !=\ - self.__data.layoutData.scale[QwtPlot.yRight].isEnabled: - w -= dimAxes[QwtPlot.yLeft]+dimAxes[QwtPlot.yRight] + if ( + self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled + != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled + ): + w -= dimAxes[QwtPlot.yLeft] + dimAxes[QwtPlot.yRight] d = np.ceil(self.__data.layoutData.footer.text.heightForWidth(w)) if not (options & self.IgnoreFrames): - d += 2*self.__data.layoutData.footer.frameWidth + d += 2 * self.__data.layoutData.footer.frameWidth if d > dimFooter: dimFooter = d done = False @@ -751,16 +791,32 @@ def expandLineBreaks(self, options, rect): scaleData = self.__data.layoutData.scale[axis] if scaleData.isEnabled: if axis in (QwtPlot.xTop, QwtPlot.xBottom): - length = rect.width()-dimAxes[QwtPlot.yLeft]-dimAxes[QwtPlot.yRight] + length = ( + rect.width() + - dimAxes[QwtPlot.yLeft] + - dimAxes[QwtPlot.yRight] + ) length -= scaleData.start + scaleData.end if dimAxes[QwtPlot.yRight] > 0: length -= 1 - length += min([dimAxes[QwtPlot.yLeft], - scaleData.start-backboneOffset[QwtPlot.yLeft]]) - length += min([dimAxes[QwtPlot.yRight], - scaleData.end-backboneOffset[QwtPlot.yRight]]) + length += min( + [ + dimAxes[QwtPlot.yLeft], + scaleData.start - backboneOffset[QwtPlot.yLeft], + ] + ) + length += min( + [ + dimAxes[QwtPlot.yRight], + scaleData.end - backboneOffset[QwtPlot.yRight], + ] + ) else: - length = rect.height()-dimAxes[QwtPlot.xTop]-dimAxes[QwtPlot.xBottom] + length = ( + rect.height() + - dimAxes[QwtPlot.xTop] + - dimAxes[QwtPlot.xBottom] + ) length -= scaleData.start + scaleData.end length -= 1 if dimAxes[QwtPlot.xBottom] <= 0: @@ -768,11 +824,26 @@ def expandLineBreaks(self, options, rect): if dimAxes[QwtPlot.xTop] <= 0: length -= 1 if dimAxes[QwtPlot.xBottom] > 0: - length += min([self.__data.layoutData.scale[QwtPlot.xBottom].tickOffset, - float(scaleData.start-backboneOffset[QwtPlot.xBottom])]) + length += min( + [ + self.__data.layoutData.scale[ + QwtPlot.xBottom + ].tickOffset, + float( + scaleData.start + - backboneOffset[QwtPlot.xBottom] + ), + ] + ) if dimAxes[QwtPlot.xTop] > 0: - length += min([self.__data.layoutData.scale[QwtPlot.xTop].tickOffset, - float(scaleData.end-backboneOffset[QwtPlot.xTop])]) + length += min( + [ + self.__data.layoutData.scale[ + QwtPlot.xTop + ].tickOffset, + float(scaleData.end - backboneOffset[QwtPlot.xTop]), + ] + ) if dimTitle > 0: length -= dimTitle + self.__data.spacing d = scaleData.dimWithoutTitle @@ -782,7 +853,7 @@ def expandLineBreaks(self, options, rect): dimAxes[axis] = d done = False return dimTitle, dimFooter, dimAxes - + def alignScales(self, options, canvasRect, scaleRect): """ Align the ticks of the axis to the canvas borders using @@ -798,7 +869,9 @@ def alignScales(self, options, canvasRect, scaleRect): if not self.__data.alignCanvasToScales[axis]: backboneOffset[axis] += self.__data.canvasMargin[axis] if not options & self.IgnoreFrames: - backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[axis] + backboneOffset[axis] += self.__data.layoutData.canvas.contentsMargins[ + axis + ] for axis in QwtPlot.AXES: if not scaleRect[axis].isValid(): continue @@ -807,93 +880,114 @@ def alignScales(self, options, canvasRect, scaleRect): axisRect = scaleRect[axis] if axis in (QwtPlot.xTop, QwtPlot.xBottom): leftScaleRect = scaleRect[QwtPlot.yLeft] - leftOffset = backboneOffset[QwtPlot.yLeft]-startDist + leftOffset = backboneOffset[QwtPlot.yLeft] - startDist if leftScaleRect.isValid(): dx = leftOffset + leftScaleRect.width() - if self.__data.alignCanvasToScales[QwtPlot.yLeft] and dx < 0.: + if self.__data.alignCanvasToScales[QwtPlot.yLeft] and dx < 0.0: cLeft = canvasRect.left() - canvasRect.setLeft(max([cLeft, axisRect.left()-dx])) + canvasRect.setLeft(max([cLeft, axisRect.left() - dx])) else: minLeft = leftScaleRect.left() - left = axisRect.left()+leftOffset + left = axisRect.left() + leftOffset axisRect.setLeft(max([left, minLeft])) else: - if self.__data.alignCanvasToScales[QwtPlot.yLeft] and leftOffset < 0: - canvasRect.setLeft(max([canvasRect.left(), - axisRect.left()-leftOffset])) + if ( + self.__data.alignCanvasToScales[QwtPlot.yLeft] + and leftOffset < 0 + ): + canvasRect.setLeft( + max([canvasRect.left(), axisRect.left() - leftOffset]) + ) else: if leftOffset > 0: - axisRect.setLeft(axisRect.left()+leftOffset) + axisRect.setLeft(axisRect.left() + leftOffset) rightScaleRect = scaleRect[QwtPlot.yRight] - rightOffset = backboneOffset[QwtPlot.yRight]-endDist+1 + rightOffset = backboneOffset[QwtPlot.yRight] - endDist + 1 if rightScaleRect.isValid(): - dx = rightOffset+rightScaleRect.width() + dx = rightOffset + rightScaleRect.width() if self.__data.alignCanvasToScales[QwtPlot.yRight] and dx < 0: cRight = canvasRect.right() - canvasRect.setRight(min([cRight, axisRect.right()+dx])) + canvasRect.setRight(min([cRight, axisRect.right() + dx])) maxRight = rightScaleRect.right() - right = axisRect.right()-rightOffset + right = axisRect.right() - rightOffset axisRect.setRight(min([right, maxRight])) else: - if self.__data.alignCanvasToScales[QwtPlot.yRight] and rightOffset < 0: - canvasRect.setRight(min([canvasRect.right(), - axisRect.right()+rightOffset])) + if ( + self.__data.alignCanvasToScales[QwtPlot.yRight] + and rightOffset < 0 + ): + canvasRect.setRight( + min([canvasRect.right(), axisRect.right() + rightOffset]) + ) else: if rightOffset > 0: - axisRect.setRight(axisRect.right()-rightOffset) + axisRect.setRight(axisRect.right() - rightOffset) else: bottomScaleRect = scaleRect[QwtPlot.xBottom] - bottomOffset = backboneOffset[QwtPlot.xBottom]-endDist+1 + bottomOffset = backboneOffset[QwtPlot.xBottom] - endDist + 1 if bottomScaleRect.isValid(): - dy = bottomOffset+bottomScaleRect.height() + dy = bottomOffset + bottomScaleRect.height() if self.__data.alignCanvasToScales[QwtPlot.xBottom] and dy < 0: cBottom = canvasRect.bottom() - canvasRect.setBottom(min([cBottom, axisRect.bottom()+dy])) + canvasRect.setBottom(min([cBottom, axisRect.bottom() + dy])) else: - maxBottom = bottomScaleRect.top()+\ - self.__data.layoutData.scale[QwtPlot.xBottom].tickOffset - bottom = axisRect.bottom()-bottomOffset + maxBottom = ( + bottomScaleRect.top() + + self.__data.layoutData.scale[QwtPlot.xBottom].tickOffset + ) + bottom = axisRect.bottom() - bottomOffset axisRect.setBottom(min([bottom, maxBottom])) else: - if self.__data.alignCanvasToScales[QwtPlot.xBottom] and bottomOffset < 0: - canvasRect.setBottom(min([canvasRect.bottom(), - axisRect.bottom()+bottomOffset])) + if ( + self.__data.alignCanvasToScales[QwtPlot.xBottom] + and bottomOffset < 0 + ): + canvasRect.setBottom( + min([canvasRect.bottom(), axisRect.bottom() + bottomOffset]) + ) else: if bottomOffset > 0: - axisRect.setBottom(axisRect.bottom()-bottomOffset) + axisRect.setBottom(axisRect.bottom() - bottomOffset) topScaleRect = scaleRect[QwtPlot.xTop] - topOffset = backboneOffset[QwtPlot.xTop]-startDist + topOffset = backboneOffset[QwtPlot.xTop] - startDist if topScaleRect.isValid(): - dy = topOffset+topScaleRect.height() + dy = topOffset + topScaleRect.height() if self.__data.alignCanvasToScales[QwtPlot.xTop] and dy < 0: cTop = canvasRect.top() - canvasRect.setTop(max([cTop, axisRect.top()-dy])) + canvasRect.setTop(max([cTop, axisRect.top() - dy])) else: - minTop = topScaleRect.bottom()-\ - self.__data.layoutData.scale[QwtPlot.xTop].tickOffset - top = axisRect.top()+topOffset + minTop = ( + topScaleRect.bottom() + - self.__data.layoutData.scale[QwtPlot.xTop].tickOffset + ) + top = axisRect.top() + topOffset axisRect.setTop(max([top, minTop])) else: if self.__data.alignCanvasToScales[QwtPlot.xTop] and topOffset < 0: - canvasRect.setTop(max([canvasRect.top(), - axisRect.top()-topOffset])) + canvasRect.setTop( + max([canvasRect.top(), axisRect.top() - topOffset]) + ) else: if topOffset > 0: - axisRect.setTop(axisRect.top()+topOffset) + axisRect.setTop(axisRect.top() + topOffset) for axis in QwtPlot.AXES: sRect = scaleRect[axis] if not sRect.isValid(): continue if axis in (QwtPlot.xBottom, QwtPlot.xTop): if self.__data.alignCanvasToScales[QwtPlot.yLeft]: - y = canvasRect.left()-self.__data.layoutData.scale[axis].start + y = canvasRect.left() - self.__data.layoutData.scale[axis].start if not options & self.IgnoreFrames: - y += self.__data.layoutData.canvas.contentsMargins[QwtPlot.yLeft] + y += self.__data.layoutData.canvas.contentsMargins[ + QwtPlot.yLeft + ] sRect.setLeft(y) if self.__data.alignCanvasToScales[QwtPlot.yRight]: - y = canvasRect.right()-1+self.__data.layoutData.scale[axis].end + y = canvasRect.right() - 1 + self.__data.layoutData.scale[axis].end if not options & self.IgnoreFrames: - y -= self.__data.layoutData.canvas.contentsMargins[QwtPlot.yRight] + y -= self.__data.layoutData.canvas.contentsMargins[ + QwtPlot.yRight + ] sRect.setRight(y) if self.__data.alignCanvasToScales[axis]: if axis == QwtPlot.xTop: @@ -902,21 +996,23 @@ def alignScales(self, options, canvasRect, scaleRect): sRect.setTop(canvasRect.bottom()) else: if self.__data.alignCanvasToScales[QwtPlot.xTop]: - x = canvasRect.top()-self.__data.layoutData.scale[axis].start + x = canvasRect.top() - self.__data.layoutData.scale[axis].start if not options & self.IgnoreFrames: x += self.__data.layoutData.canvas.contentsMargins[QwtPlot.xTop] sRect.setTop(x) if self.__data.alignCanvasToScales[QwtPlot.xBottom]: - x = canvasRect.bottom()-1+self.__data.layoutData.scale[axis].end + x = canvasRect.bottom() - 1 + self.__data.layoutData.scale[axis].end if not options & self.IgnoreFrames: - x -= self.__data.layoutData.canvas.contentsMargins[QwtPlot.xBottom] + x -= self.__data.layoutData.canvas.contentsMargins[ + QwtPlot.xBottom + ] sRect.setBottom(x) if self.__data.alignCanvasToScales[axis]: if axis == QwtPlot.yLeft: sRect.setRight(canvasRect.left()) else: sRect.setLeft(canvasRect.right()) - + def activate(self, plot, plotRect, options=0x00): """ Recalculate the geometry of all components. @@ -928,35 +1024,39 @@ def activate(self, plot, plotRect, options=0x00): self.invalidate() rect = QRectF(plotRect) self.__data.layoutData.init(plot, rect) - if not (options & self.IgnoreLegend) and plot.legend() and\ - not plot.legend().isEmpty(): + if ( + not (options & self.IgnoreLegend) + and plot.legend() + and not plot.legend().isEmpty() + ): self.__data.legendRect = self.layoutLegend(options, rect) region = QRegion(rect.toRect()) - rect = region.subtracted(QRegion(self.__data.legendRect.toRect()) - ).boundingRect() + rect = region.subtracted( + QRegion(self.__data.legendRect.toRect()) + ).boundingRect() if self.__data.legendPos == QwtPlot.LeftLegend: - rect.setLeft(rect.left()+self.__data.spacing) + rect.setLeft(rect.left() + self.__data.spacing) elif self.__data.legendPos == QwtPlot.RightLegend: - rect.setRight(rect.right()-self.__data.spacing) + rect.setRight(rect.right() - self.__data.spacing) elif self.__data.legendPos == QwtPlot.TopLegend: - rect.setTop(rect.top()+self.__data.spacing) + rect.setTop(rect.top() + self.__data.spacing) elif self.__data.legendPos == QwtPlot.BottomLegend: - rect.setBottom(rect.bottom()-self.__data.spacing) - -# +---+-----------+---+ -# | Title | -# +---+-----------+---+ -# | | Axis | | -# +---+-----------+---+ -# | A | | A | -# | x | Canvas | x | -# | i | | i | -# | s | | s | -# +---+-----------+---+ -# | | Axis | | -# +---+-----------+---+ -# | Footer | -# +---+-----------+---+ + rect.setBottom(rect.bottom() - self.__data.spacing) + + # +---+-----------+---+ + # | Title | + # +---+-----------+---+ + # | | Axis | | + # +---+-----------+---+ + # | A | | A | + # | x | Canvas | x | + # | i | | i | + # | s | | s | + # +---+-----------+---+ + # | | Axis | | + # +---+-----------+---+ + # | Footer | + # +---+-----------+---+ # title, footer and axes include text labels. The height of each # label depends on its line breaks, that depend on the width @@ -967,35 +1067,44 @@ def activate(self, plot, plotRect, options=0x00): dimTitle, dimFooter, dimAxes = self.expandLineBreaks(options, rect) if dimTitle > 0: - self.__data.titleRect.setRect(rect.left(), rect.top(), - rect.width(), dimTitle) - rect.setTop(self.__data.titleRect.bottom()+self.__data.spacing) - if self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled !=\ - self.__data.layoutData.scale[QwtPlot.yRight].isEnabled: - self.__data.titleRect.setX(rect.left()+dimAxes[QwtPlot.yLeft]) - self.__data.titleRect.setWidth(rect.width()\ - -dimAxes[QwtPlot.yLeft]-dimAxes[QwtPlot.yRight]) + self.__data.titleRect.setRect( + rect.left(), rect.top(), rect.width(), dimTitle + ) + rect.setTop(self.__data.titleRect.bottom() + self.__data.spacing) + if ( + self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled + != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled + ): + self.__data.titleRect.setX(rect.left() + dimAxes[QwtPlot.yLeft]) + self.__data.titleRect.setWidth( + rect.width() - dimAxes[QwtPlot.yLeft] - dimAxes[QwtPlot.yRight] + ) if dimFooter > 0: - self.__data.footerRect.setRect(rect.left(), - rect.bottom()-dimFooter, rect.width(), dimFooter) - rect.setBottom(self.__data.footerRect.top()-self.__data.spacing) - if self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled !=\ - self.__data.layoutData.scale[QwtPlot.yRight].isEnabled: - self.__data.footerRect.setX(rect.left()+dimAxes[QwtPlot.yLeft]) - self.__data.footerRect.setWidth(rect.width()\ - -dimAxes[QwtPlot.yLeft]-dimAxes[QwtPlot.yRight]) + self.__data.footerRect.setRect( + rect.left(), rect.bottom() - dimFooter, rect.width(), dimFooter + ) + rect.setBottom(self.__data.footerRect.top() - self.__data.spacing) + if ( + self.__data.layoutData.scale[QwtPlot.yLeft].isEnabled + != self.__data.layoutData.scale[QwtPlot.yRight].isEnabled + ): + self.__data.footerRect.setX(rect.left() + dimAxes[QwtPlot.yLeft]) + self.__data.footerRect.setWidth( + rect.width() - dimAxes[QwtPlot.yLeft] - dimAxes[QwtPlot.yRight] + ) self.__data.canvasRect.setRect( - rect.x()+dimAxes[QwtPlot.yLeft], - rect.y()+dimAxes[QwtPlot.xTop], - rect.width()-dimAxes[QwtPlot.yRight]-dimAxes[QwtPlot.yLeft], - rect.height()-dimAxes[QwtPlot.xBottom]-dimAxes[QwtPlot.xTop]) + rect.x() + dimAxes[QwtPlot.yLeft], + rect.y() + dimAxes[QwtPlot.xTop], + rect.width() - dimAxes[QwtPlot.yRight] - dimAxes[QwtPlot.yLeft], + rect.height() - dimAxes[QwtPlot.xBottom] - dimAxes[QwtPlot.xTop], + ) for axis in QwtPlot.AXES: if dimAxes[axis]: dim = dimAxes[axis] scaleRect = self.__data.scaleRect[axis] scaleRect.setRect(*self.__data.canvasRect.getRect()) if axis == QwtPlot.yLeft: - scaleRect.setX(self.__data.canvasRect.left()-dim) + scaleRect.setX(self.__data.canvasRect.left() - dim) scaleRect.setWidth(dim) elif axis == QwtPlot.yRight: scaleRect.setX(self.__data.canvasRect.right()) @@ -1004,32 +1113,33 @@ def activate(self, plot, plotRect, options=0x00): scaleRect.setY(self.__data.canvasRect.bottom()) scaleRect.setHeight(dim) elif axis == QwtPlot.xTop: - scaleRect.setY(self.__data.canvasRect.top()-dim) + scaleRect.setY(self.__data.canvasRect.top() - dim) scaleRect.setHeight(dim) scaleRect = scaleRect.normalized() - -# +---+-----------+---+ -# | <- Axis -> | -# +-^-+-----------+-^-+ -# | | | | | | -# | | | | -# | A | | A | -# | x | Canvas | x | -# | i | | i | -# | s | | s | -# | | | | -# | | | | | | -# +-V-+-----------+-V-+ -# | <- Axis -> | -# +---+-----------+---+ + + # +---+-----------+---+ + # | <- Axis -> | + # +-^-+-----------+-^-+ + # | | | | | | + # | | | | + # | A | | A | + # | x | Canvas | x | + # | i | | i | + # | s | | s | + # | | | | + # | | | | | | + # +-V-+-----------+-V-+ + # | <- Axis -> | + # +---+-----------+---+ # The ticks of the axes - not the labels above - should # be aligned to the canvas. So we try to use the empty # corners to extend the axes, so that the label texts # left/right of the min/max ticks are moved into them. - - self.alignScales(options, self.__data.canvasRect, - self.__data.scaleRect) + + self.alignScales(options, self.__data.canvasRect, self.__data.scaleRect) if not self.__data.legendRect.isEmpty(): - self.__data.legendRect = self.alignLegend(self.__data.canvasRect, - self.__data.legendRect) + self.__data.legendRect = self.alignLegend( + self.__data.canvasRect, self.__data.legendRect + ) + diff --git a/qwt/plot_marker.py b/qwt/plot_marker.py index e49e596..75e0a76 100644 --- a/qwt/plot_marker.py +++ b/qwt/plot_marker.py @@ -30,8 +30,8 @@ def __init__(self): self.spacing = 2 self.symbol = None self.style = QwtPlotMarker.NoLine - self.xValue = 0. - self.yValue = 0. + self.xValue = 0.0 + self.yValue = 0.0 self.label = QwtText() self.pen = QPen() @@ -63,10 +63,10 @@ class QwtPlotMarker(QwtPlotItem): * `QwtPlotMarker.VLine`: A vertical line * `QwtPlotMarker.Cross`: A crosshair """ - + # enum LineStyle NoLine, HLine, VLine, Cross = list(range(4)) - + def __init__(self, title=None): if title is None: title = "" @@ -74,24 +74,24 @@ def __init__(self, title=None): title = QwtText(title) QwtPlotItem.__init__(self, title) self.__data = QwtPlotMarker_PrivateData() - self.setZ(30.) - + self.setZ(30.0) + def rtti(self): """:return: `QwtPlotItem.Rtti_PlotMarker`""" return QwtPlotItem.Rtti_PlotMarker - + def value(self): """:return: Value""" return QPointF(self.__data.xValue, self.__data.yValue) - + def xValue(self): """:return: x Value""" return self.__data.xValue - + def yValue(self): """:return: y Value""" return self.__data.yValue - + def setValue(self, *args): """ Set Value @@ -106,7 +106,7 @@ def setValue(self, *args): :param float y: y position """ if len(args) == 1: - pos, = args + (pos,) = args self.setValue(pos.x(), pos.y()) elif len(args) == 2: x, y = args @@ -115,8 +115,10 @@ def setValue(self, *args): self.__data.yValue = y self.itemChanged() else: - raise TypeError("%s() takes 1 or 2 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) + raise TypeError( + "%s() takes 1 or 2 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) def setXValue(self, x): """ @@ -125,7 +127,7 @@ def setXValue(self, x): :param float x: x position """ self.setValue(x, self.__data.yValue) - + def setYValue(self, y): """ Set Y Value @@ -133,7 +135,7 @@ def setYValue(self, y): :param float y: y position """ self.setValue(self.__data.xValue, y) - + def draw(self, painter, xMap, yMap, canvasRect): """ Draw the marker @@ -143,18 +145,19 @@ def draw(self, painter, xMap, yMap, canvasRect): :param qwt.scale_map.QwtScaleMap yMap: y Scale Map :param QRectF canvasRect: Contents rectangle of the canvas in painter coordinates """ - pos = QPointF(xMap.transform(self.__data.xValue), - yMap.transform(self.__data.yValue)) + pos = QPointF( + xMap.transform(self.__data.xValue), yMap.transform(self.__data.yValue) + ) self.drawLines(painter, canvasRect, pos) - if self.__data.symbol and\ - self.__data.symbol.style() != QwtSymbol.NoSymbol: + if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol: sz = self.__data.symbol.size() - clipRect = QRectF(canvasRect.adjusted(-sz.width(), -sz.height(), - sz.width(), sz.height())) + clipRect = QRectF( + canvasRect.adjusted(-sz.width(), -sz.height(), sz.width(), sz.height()) + ) if clipRect.contains(pos): self.__data.symbol.drawSymbols(painter, [pos]) self.drawLabel(painter, canvasRect, pos) - + def drawLines(self, painter, canvasRect, pos): """ Draw the lines marker @@ -173,11 +176,11 @@ def drawLines(self, painter, canvasRect, pos): painter.setPen(self.__data.pen) if self.__data.style in (QwtPlotMarker.HLine, QwtPlotMarker.Cross): y = pos.y() - painter.drawLine(canvasRect.left(), y, canvasRect.right()-1., y) + painter.drawLine(canvasRect.left(), y, canvasRect.right() - 1.0, y) if self.__data.style in (QwtPlotMarker.VLine, QwtPlotMarker.Cross): x = pos.x() - painter.drawLine(x, canvasRect.top(), x, canvasRect.bottom()-1.) - + painter.drawLine(x, canvasRect.top(), x, canvasRect.bottom() - 1.0) + def drawLabel(self, painter, canvasRect, pos): """ Align and draw the text label of the marker @@ -206,7 +209,7 @@ def drawLabel(self, painter, canvasRect, pos): elif bool(self.__data.labelAlignment & Qt.AlignBottom): # In HLine-style the x-position is pointless and # the alignment flags are relative to the canvas - alignPos.setY(canvasRect.bottom()-1) + alignPos.setY(canvasRect.bottom() - 1) align &= ~Qt.AlignBottom align |= Qt.AlignTop else: @@ -217,55 +220,54 @@ def drawLabel(self, painter, canvasRect, pos): align &= ~Qt.AlignLeft align |= Qt.AlignRight elif bool(self.__data.labelAlignment & Qt.AlignRight): - alignPos.setX(canvasRect.right()-1) + alignPos.setX(canvasRect.right() - 1) align &= ~Qt.AlignRight align |= Qt.AlignLeft else: alignPos.setX(canvasRect.center().x()) else: - if self.__data.symbol and\ - self.__data.symbol.style() != QwtSymbol.NoSymbol: - symbolOff = self.__data.symbol.size()+QSizeF(1, 1) + if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol: + symbolOff = self.__data.symbol.size() + QSizeF(1, 1) symbolOff /= 2 - pw2 = self.__data.pen.widthF()/2. - if pw2 == 0.: - pw2 = .5 + pw2 = self.__data.pen.widthF() / 2.0 + if pw2 == 0.0: + pw2 = 0.5 spacing = self.__data.spacing xOff = max([pw2, symbolOff.width()]) yOff = max([pw2, symbolOff.height()]) textSize = self.__data.label.textSize(painter.font()) if align & Qt.AlignLeft: - alignPos.setX(alignPos.x()-(xOff+spacing)) + alignPos.setX(alignPos.x() - (xOff + spacing)) if self.__data.labelOrientation == Qt.Vertical: - alignPos.setX(alignPos.x()-textSize.height()) + alignPos.setX(alignPos.x() - textSize.height()) else: - alignPos.setX(alignPos.x()-textSize.width()) + alignPos.setX(alignPos.x() - textSize.width()) elif align & Qt.AlignRight: - alignPos.setX(alignPos.x()+xOff+spacing) + alignPos.setX(alignPos.x() + xOff + spacing) else: if self.__data.labelOrientation == Qt.Vertical: - alignPos.setX(alignPos.x()-textSize.height()/2) + alignPos.setX(alignPos.x() - textSize.height() / 2) else: - alignPos.setX(alignPos.x()-textSize.width()/2) + alignPos.setX(alignPos.x() - textSize.width() / 2) if align & Qt.AlignTop: - alignPos.setY(alignPos.y()-(yOff+spacing)) + alignPos.setY(alignPos.y() - (yOff + spacing)) if self.__data.labelOrientation != Qt.Vertical: - alignPos.setY(alignPos.y()-textSize.height()) + alignPos.setY(alignPos.y() - textSize.height()) elif align & Qt.AlignBottom: - alignPos.setY(alignPos.y()+yOff+spacing) + alignPos.setY(alignPos.y() + yOff + spacing) if self.__data.labelOrientation == Qt.Vertical: - alignPos.setY(alignPos.y()+textSize.width()) + alignPos.setY(alignPos.y() + textSize.width()) else: if self.__data.labelOrientation == Qt.Vertical: - alignPos.setY(alignPos.y()+textSize.width()/2) + alignPos.setY(alignPos.y() + textSize.width() / 2) else: - alignPos.setY(alignPos.y()-textSize.height()/2) + alignPos.setY(alignPos.y() - textSize.height() / 2) painter.translate(alignPos.x(), alignPos.y()) if self.__data.labelOrientation == Qt.Vertical: - painter.rotate(-90.) + painter.rotate(-90.0) textRect = QRectF(0, 0, textSize.width(), textSize.height()) self.__data.label.draw(painter, textRect) - + def setLineStyle(self, style): """ Set the line style @@ -287,7 +289,7 @@ def setLineStyle(self, style): self.__data.style = style self.legendChanged() self.itemChanged() - + def lineStyle(self): """ :return: the line style @@ -297,7 +299,7 @@ def lineStyle(self): :py:meth:`setLineStyle()` """ return self.__data.style - + def setSymbol(self, symbol): """ Assign a symbol @@ -314,7 +316,7 @@ def setSymbol(self, symbol): self.setLegendIconSize(symbol.boundingRect().size()) self.legendChanged() self.itemChanged() - + def symbol(self): """ :return: the symbol @@ -324,7 +326,7 @@ def symbol(self): :py:meth:`setSymbol()` """ return self.__data.symbol - + def setLabel(self, label): """ Set the label @@ -339,7 +341,7 @@ def setLabel(self, label): if label != self.__data.label: self.__data.label = label self.itemChanged() - + def label(self): """ :return: the label @@ -349,7 +351,7 @@ def label(self): :py:meth:`setLabel()` """ return self.__data.label - + def setLabelAlignment(self, align): """ Set the alignment of the label @@ -371,7 +373,7 @@ def setLabelAlignment(self, align): if align != self.__data.labelAlignment: self.__data.labelAlignment = align self.itemChanged() - + def labelAlignment(self): """ :return: the label alignment @@ -381,7 +383,7 @@ def labelAlignment(self): :py:meth:`setLabelAlignment()`, :py:meth:`setLabelOrientation()` """ return self.__data.labelAlignment - + def setLabelOrientation(self, orientation): """ Set the orientation of the label @@ -398,7 +400,7 @@ def setLabelOrientation(self, orientation): if orientation != self.__data.labelOrientation: self.__data.labelOrientation = orientation self.itemChanged() - + def labelOrientation(self): """ :return: the label orientation @@ -408,7 +410,7 @@ def labelOrientation(self): :py:meth:`setLabelOrientation()`, :py:meth:`labelAlignment()` """ return self.__data.labelOrientation - + def setSpacing(self, spacing): """ Set the spacing @@ -427,7 +429,7 @@ def setSpacing(self, spacing): if spacing != self.__data.spacing: self.__data.spacing = spacing self.itemChanged() - + def spacing(self): """ :return: the spacing @@ -438,7 +440,6 @@ def spacing(self): """ return self.__data.spacing - def setLinePen(self, *args): """ Build and/or assigna a line pen, depending on the arguments. @@ -466,10 +467,10 @@ def setLinePen(self, *args): :py:meth:`pen()`, :py:meth:`brush()` """ if len(args) == 1 and isinstance(args[0], QPen): - pen, = args + (pen,) = args elif len(args) in (1, 2, 3): color = args[0] - width = 0. + width = 0.0 style = Qt.SolidLine if len(args) > 1: width = args[1] @@ -478,13 +479,15 @@ def setLinePen(self, *args): pen = QPen(color, width, style) self.setLinePen(pen) else: - raise TypeError("%s().setLinePen() takes 1, 2 or 3 argument(s) "\ - "(%s given)" % (self.__class__.__name__, len(args))) + raise TypeError( + "%s().setLinePen() takes 1, 2 or 3 argument(s) " + "(%s given)" % (self.__class__.__name__, len(args)) + ) if pen != self.__data.pen: self.__data.pen = pen self.legendChanged() self.itemChanged() - + def linePen(self): """ :return: the line pen @@ -497,12 +500,12 @@ def linePen(self): def boundingRect(self): if self.__data.style == QwtPlotMarker.HLine: - return QRectF(self.__data.xValue, self.__data.yValue, -1., 0.) + return QRectF(self.__data.xValue, self.__data.yValue, -1.0, 0.0) elif self.__data.style == QwtPlotMarker.VLine: - return QRectF(self.__data.xValue, self.__data.yValue, 0., -1.) + return QRectF(self.__data.xValue, self.__data.yValue, 0.0, -1.0) else: - return QRectF(self.__data.xValue, self.__data.yValue, 0., 0.) - + return QRectF(self.__data.xValue, self.__data.yValue, 0.0, 0.0) + def legendIcon(self, index, size): """ :param int index: Index of the legend entry (ignored as there is only one) @@ -520,16 +523,17 @@ def legendIcon(self, index, size): icon.setDefaultSize(size) icon.setRenderHint(QwtGraphic.RenderPensUnscaled, True) painter = QPainter(icon) - painter.setRenderHint(QPainter.Antialiasing, - self.testRenderHint(QwtPlotItem.RenderAntialiased)) + painter.setRenderHint( + QPainter.Antialiasing, self.testRenderHint(QwtPlotItem.RenderAntialiased) + ) if self.__data.style != QwtPlotMarker.NoLine: painter.setPen(self.__data.pen) if self.__data.style in (QwtPlotMarker.HLine, QwtPlotMarker.Cross): - y = .5*size.height() - painter.drawLine(0., y, size.width(), y) + y = 0.5 * size.height() + painter.drawLine(0.0, y, size.width(), y) if self.__data.style in (QwtPlotMarker.VLine, QwtPlotMarker.Cross): - x = .5*size.width() - painter.drawLine(x, 0., x, size.height()) + x = 0.5 * size.width() + painter.drawLine(x, 0.0, x, size.height()) if self.__data.symbol: r = QRect(0, 0, size.width(), size.height()) self.__data.symbol.drawSymbol(painter, r) diff --git a/qwt/plot_renderer.py b/qwt/plot_renderer.py index ab33643..a7be5da 100644 --- a/qwt/plot_renderer.py +++ b/qwt/plot_renderer.py @@ -21,14 +21,24 @@ from .scale_draw import QwtScaleDraw from .scale_map import QwtScaleMap -from .qt.QtGui import (QPrinter, QPainter, QImageWriter, QImage, QColor, - QPaintDevice, QTransform, QPalette, QFileDialog, - QPainterPath, QPen) +from .qt.QtGui import ( + QPrinter, + QPainter, + QImageWriter, + QImage, + QColor, + QPaintDevice, + QTransform, + QPalette, + QFileDialog, + QPainterPath, + QPen, +) from .qt.QtCore import Qt, QRect, QRectF, QObject, QSizeF from .qt.QtSvg import QSvgGenerator from .qt.compat import getsavefilename -import numpy as np +import math import os.path as osp @@ -38,11 +48,11 @@ def qwtCanvasClip(canvas, canvasRect): To avoid too much rounding errors better calculate it in target device resolution """ - x1 = np.ceil(canvasRect.left()) - x2 = np.floor(canvasRect.right()) - y1 = np.ceil(canvasRect.top()) - y2 = np.floor(canvasRect.bottom()) - r = QRect(x1, y1, x2-x1-1, y2-y1-1) + x1 = math.ceil(canvasRect.left()) + x2 = math.floor(canvasRect.right()) + y1 = math.ceil(canvasRect.top()) + y2 = math.floor(canvasRect.bottom()) + r = QRect(x1, y1, x2 - x1 - 1, y2 - y1 - 1) return canvas.borderPath(r) @@ -51,6 +61,7 @@ def __init__(self): self.discardFlags = QwtPlotRenderer.DiscardNone self.layoutFlags = QwtPlotRenderer.DefaultLayout + class QwtPlotRenderer(QObject): """ Renderer for exporting a plot to a document, a printer @@ -76,7 +87,7 @@ class QwtPlotRenderer(QObject): * `QwtPlotRenderer.DefaultLayout`: Use the default layout as on screen * `QwtPlotRenderer.FrameWithScales`: Instead of the scales a box is painted around the plot canvas, where the scale ticks are aligned to. """ - + # enum DiscardFlag DiscardNone = 0x00 DiscardBackground = 0x01 @@ -85,15 +96,15 @@ class QwtPlotRenderer(QObject): DiscardCanvasBackground = 0x08 DiscardFooter = 0x10 DiscardCanvasFrame = 0x20 - + # enum LayoutFlag DefaultLayout = 0x00 FrameWithScales = 0x01 - + def __init__(self, parent=None): QObject.__init__(self, parent) self.__data = QwtPlotRenderer_PrivateData() - + def setDiscardFlag(self, flag, on=True): """ Change a flag, indicating what to discard from rendering @@ -110,7 +121,7 @@ def setDiscardFlag(self, flag, on=True): self.__data.discardFlags |= flag else: self.__data.discardFlags &= ~flag - + def testDiscardFlag(self, flag): """ :param int flag: Flag to be tested @@ -122,7 +133,7 @@ def testDiscardFlag(self, flag): :py:meth:`discardFlags()` """ return self.__data.discardFlags & flag - + def setDiscardFlags(self, flags): """ Set the flags, indicating what to discard from rendering @@ -135,7 +146,7 @@ def setDiscardFlags(self, flags): :py:meth:`discardFlags()` """ self.__data.discardFlags = flags - + def discardFlags(self): """ :return: Flags, indicating what to discard from rendering @@ -146,7 +157,7 @@ def discardFlags(self): :py:meth:`testDiscardFlag()` """ return self.__data.discardFlags - + def setLayoutFlag(self, flag, on=True): """ Change a layout flag @@ -162,7 +173,7 @@ def setLayoutFlag(self, flag, on=True): self.__data.layoutFlags |= flag else: self.__data.layoutFlags &= ~flag - + def testLayoutFlag(self, flag): """ :param int flag: Flag to be tested @@ -187,7 +198,7 @@ def setLayoutFlags(self, flags): :py:meth:`layoutFlags()` """ self.__data.layoutFlags = flags - + def layoutFlags(self): """ :return: Layout flags @@ -198,9 +209,10 @@ def layoutFlags(self): :py:meth:`testLayoutFlag()` """ return self.__data.layoutFlags - - def renderDocument(self, plot, filename, sizeMM=(300, 200), resolution=85, - format_=None): + + def renderDocument( + self, plot, filename, sizeMM=(300, 200), resolution=85, format_=None + ): """ Render a plot to a file @@ -224,7 +236,7 @@ def renderDocument(self, plot, filename, sizeMM=(300, 200), resolution=85, title = plot.title().text() if not title: title = "Plot Document" - mmToInch = 1./25.4 + mmToInch = 1.0 / 25.4 size = sizeMM * mmToInch * resolution documentRect = QRectF(0.0, 0.0, size.width(), size.height()) fmt = format_.lower() @@ -254,7 +266,7 @@ def renderDocument(self, plot, filename, sizeMM=(300, 200), resolution=85, painter.end() elif fmt in QImageWriter.supportedImageFormats(): imageRect = documentRect.toRect() - dotsPerMeter = int(round(resolution*mmToInch*1000.)) + dotsPerMeter = int(round(resolution * mmToInch * 1000.0)) image = QImage(imageRect.size(), QImage.Format_ARGB32) image.setDotsPerMeterX(dotsPerMeter) image.setDotsPerMeterY(dotsPerMeter) @@ -296,9 +308,9 @@ def renderTo(self, plot, dest): w = dest.width() h = dest.height() rect = QRectF(0, 0, w, h) - aspect = rect.width()/rect.height() - if aspect < 1.: - rect.setHeight(aspect*rect.width()) + aspect = rect.width() / rect.height() + if aspect < 1.0: + rect.setHeight(aspect * rect.width()) elif isinstance(dest, QSvgGenerator): rect = dest.viewBoxF() if rect.isEmpty(): @@ -309,7 +321,7 @@ def renderTo(self, plot, dest): raise TypeError("Unsupported destination type %s" % type(dest)) p = QPainter(dest) self.render(plot, p, rect) - + def render(self, plot, painter, plotRect): """ Paint the contents of a QwtPlot instance into a given rectangle. @@ -324,8 +336,12 @@ def render(self, plot, painter, plotRect): :py:meth:`renderDocument()`, :py:meth:`renderTo()`, :py:meth:`qwt.painter.QwtPainter.setRoundingAlignment()` """ - if painter == 0 or not painter.isActive() or not plotRect.isValid()\ - or plot.size().isNull(): + if ( + painter == 0 + or not painter.isActive() + or not plotRect.isValid() + or plot.size().isNull() + ): return if not self.__data.discardFlags & self.DiscardBackground: QwtPainter.drawBackground(painter, plotRect, plot) @@ -334,9 +350,11 @@ def render(self, plot, painter, plotRect): # by the Qt layout system. Therefore we need to calculate the # layout in screen coordinates and paint with a scaled painter. transform = QTransform() - transform.scale(float(painter.device().logicalDpiX())/plot.logicalDpiX(), - float(painter.device().logicalDpiY())/plot.logicalDpiY()) - + transform.scale( + float(painter.device().logicalDpiX()) / plot.logicalDpiX(), + float(painter.device().logicalDpiY()) / plot.logicalDpiY(), + ) + invtrans, _ok = transform.inverted() layoutRect = invtrans.mapRect(plotRect) if not (self.__data.discardFlags & self.DiscardBackground): @@ -368,18 +386,20 @@ def render(self, plot, painter, plotRect): # Calculate the layout for the document. layoutOptions = QwtPlotLayout.IgnoreScrollbars - - if self.__data.layoutFlags & self.FrameWithScales or\ - self.__data.discardFlags & self.DiscardCanvasFrame: + + if ( + self.__data.layoutFlags & self.FrameWithScales + or self.__data.discardFlags & self.DiscardCanvasFrame + ): layoutOptions |= QwtPlotLayout.IgnoreFrames - + if self.__data.discardFlags & self.DiscardLegend: layoutOptions |= QwtPlotLayout.IgnoreLegend if self.__data.discardFlags & self.DiscardTitle: layoutOptions |= QwtPlotLayout.IgnoreTitle if self.__data.discardFlags & self.DiscardFooter: layoutOptions |= QwtPlotLayout.IgnoreFooter - + layout.activate(plot, layoutRect, layoutOptions) maps = self.buildCanvasMaps(plot, layout.canvasRect()) @@ -388,34 +408,44 @@ def render(self, plot, painter, plotRect): # have been changed layout.activate(plot, layoutRect, layoutOptions) maps = self.buildCanvasMaps(plot, layout.canvasRect()) - + painter.save() painter.setWorldTransform(transform, True) - + self.renderCanvas(plot, painter, layout.canvasRect(), maps) - - if (not self.__data.discardFlags & self.DiscardTitle) and\ - plot.titleLabel().text(): + + if ( + not self.__data.discardFlags & self.DiscardTitle + ) and plot.titleLabel().text(): self.renderTitle(plot, painter, layout.titleRect()) - - if (not self.__data.discardFlags & self.DiscardFooter) and\ - plot.titleLabel().text(): + + if ( + not self.__data.discardFlags & self.DiscardFooter + ) and plot.titleLabel().text(): self.renderFooter(plot, painter, layout.footerRect()) - - if (not self.__data.discardFlags & self.DiscardLegend) and\ - plot.titleLabel().text(): + + if ( + not self.__data.discardFlags & self.DiscardLegend + ) and plot.titleLabel().text(): self.renderLegend(plot, painter, layout.legendRect()) - + for axisId in QwtPlot.AXES: scaleWidget = plot.axisWidget(axisId) if scaleWidget: baseDist = scaleWidget.margin() startDist, endDist = scaleWidget.getBorderDistHint() - self.renderScale(plot, painter, axisId, startDist, endDist, - baseDist, layout.scaleRect(axisId)) - + self.renderScale( + plot, + painter, + axisId, + startDist, + endDist, + baseDist, + layout.scaleRect(axisId), + ) + painter.restore() - + for axisId in QwtPlot.AXES: if self.__data.layoutFlags & self.FrameWithScales: scaleWidget = plot.axisWidget(axisId) @@ -424,7 +454,7 @@ def render(self, plot, painter, plotRect): layout.setCanvasMargin(canvasMargins[axisId]) layout.invalidate() - + def renderTitle(self, plot, painter, rect): """ Render the title into a given rectangle. @@ -437,7 +467,7 @@ def renderTitle(self, plot, painter, rect): color = plot.titleLabel().palette().color(QPalette.Active, QPalette.Text) painter.setPen(color) plot.titleLabel().text().draw(painter, rect) - + def renderFooter(self, plot, painter, rect): """ Render the footer into a given rectangle. @@ -450,7 +480,7 @@ def renderFooter(self, plot, painter, rect): color = plot.footerLabel().palette().color(QPalette.Active, QPalette.Text) painter.setPen(color) plot.footerLabel().text().draw(painter, rect) - + def renderLegend(self, plot, painter, rect): """ Render the legend into a given rectangle. @@ -462,9 +492,8 @@ def renderLegend(self, plot, painter, rect): if plot.legend(): fillBackground = not self.__data.discardFlags & self.DiscardBackground plot.legend().renderLegend(painter, rect, fillBackground) - - def renderScale(self, plot, painter, axisId, startDist, endDist, - baseDist, rect): + + def renderScale(self, plot, painter, axisId, startDist, endDist, baseDist, rect): """ Paint a scale into a given rectangle. Paint the scale into a given rectangle. @@ -504,7 +533,7 @@ def renderScale(self, plot, painter, axisId, startDist, endDist, y = rect.top() + baseDist w = rect.width() - startDist - endDist align = QwtScaleDraw.BottomScale - + scaleWidget.drawTitle(painter, align, rect) painter.setFont(scaleWidget.font()) sd = scaleWidget.scaleDraw() @@ -518,7 +547,7 @@ def renderScale(self, plot, painter, axisId, startDist, endDist, sd.move(sdPos) sd.setLength(sdLength) painter.restore() - + def renderCanvas(self, plot, painter, canvasRect, maps): """ Render the canvas into a given rectangle. @@ -529,10 +558,10 @@ def renderCanvas(self, plot, painter, canvasRect, maps): :param QRectF rect: Bounding rectangle """ canvas = plot.canvas() - r = canvasRect.adjusted(0., 0., -1., 1.) + r = canvasRect.adjusted(0.0, 0.0, -1.0, 1.0) if self.__data.layoutFlags & self.FrameWithScales: painter.save() - r.adjust(-1., -1., 1., 1.) + r.adjust(-1.0, -1.0, 1.0, 1.0) painter.setPen(QPen(Qt.black)) if not (self.__data.discardFlags & self.DiscardCanvasBackground): bgBrush = canvas.palette().brush(plot.backgroundRole()) @@ -563,8 +592,9 @@ def renderCanvas(self, plot, painter, canvasRect, maps): if not self.__data.discardFlags & self.DiscardCanvasFrame: frameWidth = canvas.frameWidth() clipPath = qwtCanvasClip(canvas, canvasRect) - innerRect = canvasRect.adjusted(frameWidth, frameWidth, - -frameWidth, -frameWidth) + innerRect = canvasRect.adjusted( + frameWidth, frameWidth, -frameWidth, -frameWidth + ) painter.save() if clipPath.isEmpty(): painter.setClipRect(innerRect) @@ -578,16 +608,27 @@ def renderCanvas(self, plot, painter, canvasRect, maps): painter.save() frameStyle = canvas.frameShadow() | canvas.frameShape() radius = canvas.borderRadius() - if radius > 0.: - QwtPainter.drawRoundedFrame(painter, canvasRect, - radius, radius, - canvas.palette(), frameWidth, - frameStyle) + if radius > 0.0: + QwtPainter.drawRoundedFrame( + painter, + canvasRect, + radius, + radius, + canvas.palette(), + frameWidth, + frameStyle, + ) else: midLineWidth = canvas.midLineWidth() - QwtPainter.drawFrame(painter, canvasRect, canvas.palette(), - canvas.foregroundRole(), frameWidth, - midLineWidth, frameStyle) + QwtPainter.drawFrame( + painter, + canvasRect, + canvas.palette(), + canvas.foregroundRole(), + frameWidth, + midLineWidth, + frameStyle, + ) painter.restore() def buildCanvasMaps(self, plot, canvasRect): @@ -601,8 +642,7 @@ def buildCanvasMaps(self, plot, canvasRect): maps = [] for axisId in QwtPlot.AXES: map_ = QwtScaleMap() - map_.setTransformation( - plot.axisScaleEngine(axisId).transformation()) + map_.setTransformation(plot.axisScaleEngine(axisId).transformation()) sd = plot.axisScaleDiv(axisId) map_.setScaleInterval(sd.lowerBound(), sd.upperBound()) if plot.axisEnabled(axisId): @@ -627,17 +667,17 @@ def buildCanvasMaps(self, plot, canvasRect): map_.setPaintInterval(from_, to) maps.append(map_) return maps - + def updateCanvasMargins(self, plot, canvasRect, maps): margins = plot.getCanvasMarginsHint(maps, canvasRect) marginsChanged = False for axisId in QwtPlot.AXES: - if margins[axisId] >= 0.: - m = np.ceil(margins[axisId]) + if margins[axisId] >= 0.0: + m = math.ceil(margins[axisId]) plot.plotLayout().setCanvasMargin(m, axisId) marginsChanged = True return marginsChanged - + def exportTo(self, plot, documentname, sizeMM=None, resolution=85): """ Execute a file dialog and render the plot to the selected file @@ -658,21 +698,27 @@ def exportTo(self, plot, documentname, sizeMM=None, resolution=85): sizeMM = QSizeF(300, 200) filename = documentname imageFormats = QImageWriter.supportedImageFormats() - filter_ = ["PDF documents (*.pdf)", - "SVG documents (*.svg)", - "Postscript documents (*.ps)"] + filter_ = [ + "PDF documents (*.pdf)", + "SVG documents (*.svg)", + "Postscript documents (*.ps)", + ] if imageFormats: imageFilter = "Images" imageFilter += " (" for idx, fmt in enumerate(imageFormats): if idx > 0: imageFilter += " " - imageFilter += "*."+str(fmt) + imageFilter += "*." + str(fmt) imageFilter += ")" filter_ += [imageFilter] - filename, _s = getsavefilename(plot, "Export File Name", filename, - ";;".join(filter_), - options=QFileDialog.DontConfirmOverwrite) + filename, _s = getsavefilename( + plot, + "Export File Name", + filename, + ";;".join(filter_), + options=QFileDialog.DontConfirmOverwrite, + ) if not filename: return False self.renderDocument(plot, filename, sizeMM, resolution) diff --git a/qwt/plot_series.py b/qwt/plot_series.py index a307da6..0b844e7 100644 --- a/qwt/plot_series.py +++ b/qwt/plot_series.py @@ -52,13 +52,14 @@ class QwtPlotSeriesItem(QwtPlotItem): """ Base class for plot items representing a series of samples """ + def __init__(self, title): if not isinstance(title, QwtText): title = QwtText(title) QwtPlotItem.__init__(self, title) self.__data = QwtPlotSeriesItem_PrivateData() self.setItemInterest(QwtPlotItem.ScaleInterest, True) - + def setOrientation(self, orientation): """ Set the orientation of the item. Default is `Qt.Horizontal`. @@ -75,7 +76,7 @@ def setOrientation(self, orientation): self.__data.orientation = orientation self.legendChanged() self.itemChanged() - + def orientation(self): """ :return: Orientation of the plot item @@ -85,7 +86,7 @@ def orientation(self): :py:meth`setOrientation()` """ return self.__data.orientation - + def draw(self, painter, xMap, yMap, canvasRect): """ Draw the complete series @@ -96,20 +97,42 @@ def draw(self, painter, xMap, yMap, canvasRect): :param QRectF canvasRect: Contents rectangle of the canvas """ self.drawSeries(painter, xMap, yMap, canvasRect, 0, -1) - + + def drawSeries(self, painter, xMap, yMap, canvasRect, from_, to): + """ + Draw a subset of the samples + + :param QPainter painter: Painter + :param qwt.scale_map.QwtScaleMap xMap: Maps x-values into pixel coordinates. + :param qwt.scale_map.QwtScaleMap yMap: Maps y-values into pixel coordinates. + :param QRectF canvasRect: Contents rectangle of the canvas + :param int from_: Index of the first point to be painted + :param int to: Index of the last point to be painted. If to < 0 the curve will be painted to its last point. + + .. seealso:: + + This method is implemented in `qwt.plot_curve.QwtPlotCurve` + """ + raise NotImplementedError + def boundingRect(self): - return self.dataRect() - + return self.dataRect() # dataRect method is implemented in QwtSeriesStore + def updateScaleDiv(self, xScaleDiv, yScaleDiv): - rect = QRectF(xScaleDiv.lowerBound(), yScaleDiv.lowerBound(), - xScaleDiv.range(), yScaleDiv.range()) - self.setRectOfInterest(rect) - + rect = QRectF( + xScaleDiv.lowerBound(), + yScaleDiv.lowerBound(), + xScaleDiv.range(), + yScaleDiv.range(), + ) + self.setRectOfInterest( + rect + ) # setRectOfInterest method is implemented in QwtSeriesData + def dataChanged(self): self.itemChanged() - class QwtSeriesData(object): """ Abstract interface for iterating over samples @@ -138,9 +161,10 @@ class QwtSeriesData(object): The member `_boundingRect` is intended for caching the calculated rectangle. """ + def __init__(self): self._boundingRect = QRectF(0.0, 0.0, -1.0, -1.0) - + def setRectOfInterest(self, rect): """ Set a the "rect of interest" @@ -154,13 +178,13 @@ def setRectOfInterest(self, rect): :param QRectF rect: Rectangle of interest """ pass - + def size(self): """ :return: Number of samples """ pass - + def sample(self, i): """ Return a sample @@ -169,7 +193,7 @@ def sample(self, i): :return: Sample at position i """ pass - + def boundingRect(self): """ Calculate the bounding rect of all samples @@ -195,6 +219,7 @@ class QwtPointArrayData(QwtSeriesData): :param int size: Size of the x and y arrays :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements """ + def __init__(self, x=None, y=None, size=None, finite=None): QwtSeriesData.__init__(self) if x is None and y is not None: @@ -210,8 +235,8 @@ def __init__(self, x=None, y=None, size=None, finite=None): if isinstance(y, (tuple, list)): y = np.array(y) if size is not None: - x = np.resize(x, (size, )) - y = np.resize(y, (size, )) + x = np.resize(x, (size,)) + y = np.resize(y, (size,)) if finite if finite is not None else True: indexes = np.logical_and(np.isfinite(x), np.isfinite(y)) self.__x = x[indexes] @@ -219,7 +244,7 @@ def __init__(self, x=None, y=None, size=None, finite=None): else: self.__x = x self.__y = y - + def boundingRect(self): """ Calculate the bounding rectangle @@ -233,27 +258,27 @@ def boundingRect(self): xmax = self.__x.max() ymin = self.__y.min() ymax = self.__y.max() - return QRectF(xmin, ymin, xmax-xmin, ymax-ymin) - + return QRectF(xmin, ymin, xmax - xmin, ymax - ymin) + def size(self): """ :return: Size of the data set """ return min([self.__x.size, self.__y.size]) - + def sample(self, index): """ :param int index: Index :return: Sample at position `index` """ return QPointF(self.__x[index], self.__y[index]) - + def xData(self): """ :return: Array of the x-values """ return self.__x - + def yData(self): """ :return: Array of the y-values @@ -261,7 +286,6 @@ def yData(self): return self.__y - class QwtSeriesStore(object): """ Class storing a `QwtSeriesData` object @@ -269,9 +293,10 @@ class QwtSeriesStore(object): `QwtSeriesStore` and `QwtPlotSeriesItem` are intended as base classes for all plot items iterating over a series of samples. """ + def __init__(self): self.__series = None - + def setData(self, series): """ Assign a series of samples @@ -286,13 +311,16 @@ def setData(self, series): if self.__series != series: self.__series = series self.dataChanged() - + + def dataChanged(self): + raise NotImplementedError + def data(self): """ :return: the series data """ return self.__series - + def sample(self, index): """ :param int index: Index @@ -302,7 +330,7 @@ def sample(self, index): return self.__series.sample(index) else: return - + def dataSize(self): """ :return: Number of samples of the series @@ -315,7 +343,7 @@ def dataSize(self): if self.__series is None: return 0 return self.__series.size() - + def dataRect(self): """ :return: Bounding rectangle of the series or an invalid rectangle, when no series is stored @@ -327,7 +355,7 @@ def dataRect(self): if self.__series is None or self.dataSize() == 0: return QRectF(1.0, 1.0, -2.0, -2.0) return self.__series.boundingRect() - + def setRectOfInterest(self, rect): """ Set a the "rect of interest" for the series @@ -340,7 +368,7 @@ def setRectOfInterest(self, rect): """ if self.__series: self.__series.setRectOfInterest(rect) - + def swapData(self, series): """ Replace a series without deleting the previous one diff --git a/qwt/scale_div.py b/qwt/scale_div.py index a7ec03b..7ac2090 100644 --- a/qwt/scale_div.py +++ b/qwt/scale_div.py @@ -75,11 +75,11 @@ class QwtScaleDiv(object): lowerBound might be greater than upperBound for inverted scales """ - + # enum TickType NoTick = -1 MinorTick, MediumTick, MajorTick, NTickTypes = list(range(4)) - + def __init__(self, *args): self.__ticks = None if len(args) == 2 and isinstance(args[1], (tuple, list)): @@ -93,17 +93,24 @@ def __init__(self, *args): self.__lowerBound, self.__upperBound, ticks = args self.__ticks = ticks[:] elif len(args) == 5: - (self.__lowerBound, self.__upperBound, - minorTicks, mediumTicks, majorTicks) = args + ( + self.__lowerBound, + self.__upperBound, + minorTicks, + mediumTicks, + majorTicks, + ) = args self.__ticks[self.MinorTick] = minorTicks self.__ticks[self.MediumTick] = mediumTicks self.__ticks[self.MajorTick] = majorTicks elif len(args) == 0: - self.__lowerBound, self.__upperBound = 0., 0. + self.__lowerBound, self.__upperBound = 0.0, 0.0 else: - raise TypeError("%s() takes 0, 2, 3 or 5 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) - + raise TypeError( + "%s() takes 0, 2, 3 or 5 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) + def setInterval(self, *args): """ Change the interval @@ -124,19 +131,21 @@ def setInterval(self, *args): if len(args) == 2: self.__lowerBound, self.__upperBound = args elif len(args) == 1: - interval, = args + (interval,) = args self.__lowerBound = interval.minValue() self.__upperBound = interval.maxValue() else: - raise TypeError("%s().setInterval() takes 1 or 2 argument(s) (%s "\ - "given)" % (self.__class__.__name__, len(args))) - + raise TypeError( + "%s().setInterval() takes 1 or 2 argument(s) (%s " + "given)" % (self.__class__.__name__, len(args)) + ) + def interval(self): """ :return: Interval """ return QwtInterval(self.__lowerBound, self.__upperBound) - + def setLowerBound(self, lowerBound): """ Set the first boundary @@ -148,7 +157,7 @@ def setLowerBound(self, lowerBound): :py:meth:`lowerBound()`, :py:meth:`setUpperBound()` """ self.__lowerBound = lowerBound - + def lowerBound(self): """ :return: the first boundary @@ -158,7 +167,7 @@ def lowerBound(self): :py:meth:`upperBound()` """ return self.__lowerBound - + def setUpperBound(self, upperBound): """ Set the second boundary @@ -170,7 +179,7 @@ def setUpperBound(self, upperBound): :py:meth:`upperBound()`, :py:meth:`setLowerBound()` """ self.__upperBound = upperBound - + def upperBound(self): """ :return: the second boundary @@ -180,36 +189,38 @@ def upperBound(self): :py:meth:`lowerBound()` """ return self.__upperBound - + def range(self): """ :return: upperBound() - lowerBound() """ return self.__upperBound - self.__lowerBound - + def __eq__(self, other): if self.__ticks is None: return False - if self.__lowerBound != other.__lowerBound or\ - self.__upperBound != other.__upperBound: + if ( + self.__lowerBound != other.__lowerBound + or self.__upperBound != other.__upperBound + ): return False return self.__ticks == other.__ticks - + def __ne__(self, other): return not self.__eq__(other) - + def isEmpty(self): """ Check if the scale division is empty( lowerBound() == upperBound() ) """ return self.__lowerBound == self.__upperBound - + def isIncreasing(self): """ Check if the scale division is increasing( lowerBound() <= upperBound() ) """ return self.__lowerBound <= self.__upperBound - + def contains(self, value): """ Return if a value is between lowerBound() and upperBound() @@ -220,7 +231,7 @@ def contains(self, value): min_ = min([self.__lowerBound, self.__upperBound]) max_ = max([self.__lowerBound, self.__upperBound]) return value >= min_ and value <= max_ - + def invert(self): """ Invert the scale division @@ -229,11 +240,10 @@ def invert(self): :py:meth:`inverted()` """ - (self.__lowerBound, - self.__upperBound) = self.__upperBound, self.__lowerBound + (self.__lowerBound, self.__upperBound) = self.__upperBound, self.__lowerBound for index in range(self.NTickTypes): self.__ticks[index].reverse() - + def inverted(self): """ :return: A scale division with inverted boundaries and ticks @@ -245,7 +255,7 @@ def inverted(self): other = copy.deepcopy(self) other.invert() return other - + def bounded(self, lowerBound, upperBound): """ Return a scale division with an interval [lowerBound, upperBound] @@ -264,10 +274,16 @@ def bounded(self, lowerBound, upperBound): sd = QwtScaleDiv() sd.setInterval(lowerBound, upperBound) for tickType in range(self.NTickTypes): - sd.setTicks(tickType, [tick for tick in self.__ticks[tickType] - if tick >= min_ and tick <= max_]) + sd.setTicks( + tickType, + [ + tick + for tick in self.__ticks[tickType] + if tick >= min_ and tick <= max_ + ], + ) return sd - + def setTicks(self, tickType, ticks): """ Assign ticks @@ -277,7 +293,7 @@ def setTicks(self, tickType, ticks): """ if tickType in range(self.NTickTypes): self.__ticks[tickType] = ticks - + def ticks(self, tickType): """ Return a list of ticks diff --git a/qwt/scale_draw.py b/qwt/scale_draw.py index df19b3f..7325d52 100644 --- a/qwt/scale_draw.py +++ b/qwt/scale_draw.py @@ -25,8 +25,7 @@ from ._math import qwtRadians from .qt.QtGui import QPalette, QFontMetrics, QTransform -from .qt.QtCore import (Qt, qFuzzyCompare, QLocale, QRectF, QPointF, QRect, - QPoint) +from .qt.QtCore import Qt, qFuzzyCompare, QLocale, QRectF, QPointF, QRect, QPoint import numpy as np @@ -35,23 +34,29 @@ class QwtAbstractScaleDraw_PrivateData(object): def __init__(self): self.spacing = 4 self.penWidth = 0 - self.minExtent = 0. - - self.components = QwtAbstractScaleDraw.Backbone|\ - QwtAbstractScaleDraw.Ticks|\ - QwtAbstractScaleDraw.Labels - self.tick_length = {QwtScaleDiv.MinorTick: 4., - QwtScaleDiv.MediumTick: 6., - QwtScaleDiv.MajorTick: 8.} - self.tick_lighter_factor = {QwtScaleDiv.MinorTick: 100, - QwtScaleDiv.MediumTick: 100, - QwtScaleDiv.MajorTick: 100} - + self.minExtent = 0.0 + + self.components = ( + QwtAbstractScaleDraw.Backbone + | QwtAbstractScaleDraw.Ticks + | QwtAbstractScaleDraw.Labels + ) + self.tick_length = { + QwtScaleDiv.MinorTick: 4.0, + QwtScaleDiv.MediumTick: 6.0, + QwtScaleDiv.MajorTick: 8.0, + } + self.tick_lighter_factor = { + QwtScaleDiv.MinorTick: 100, + QwtScaleDiv.MediumTick: 100, + QwtScaleDiv.MajorTick: 100, + } + self.map = QwtScaleMap() self.scaleDiv = QwtScaleDiv() - + self.labelCache = {} - + class QwtAbstractScaleDraw(object): """ @@ -74,11 +79,12 @@ class QwtAbstractScaleDraw(object): The spacing (distance between ticks and labels) is set to 4, the tick lengths are set to 4,6 and 8 pixels """ - + # enum ScaleComponent Backbone = 0x01 Ticks = 0x02 Labels = 0x04 + def __init__(self): self.__data = QwtAbstractScaleDraw_PrivateData() @@ -97,7 +103,7 @@ def extent(self, font): :py:meth:`setMinimumExtent()`, :py:meth:`minimumExtent()` """ - return 0. + return 0.0 def drawTick(self, painter, value, len_): """ @@ -137,7 +143,7 @@ def drawLabel(self, painter, value): :py:meth:`drawTick()`, :py:meth:`drawBackbone()` """ pass - + def enableComponent(self, component, enable): """ En/Disable a component of the scale @@ -153,7 +159,7 @@ def enableComponent(self, component, enable): self.__data.components |= component else: self.__data.components &= ~component - + def hasComponent(self, component): """ Check if a component is enabled @@ -166,7 +172,7 @@ def hasComponent(self, component): :py:meth:`enableComponent()` """ return self.__data.components & component - + def setScaleDiv(self, scaleDiv): """ Change the scale division @@ -174,10 +180,9 @@ def setScaleDiv(self, scaleDiv): :param qwt.scale_div.QwtScaleDiv scaleDiv: New scale division """ self.__data.scaleDiv = scaleDiv - self.__data.map.setScaleInterval(scaleDiv.lowerBound(), - scaleDiv.upperBound()) + self.__data.map.setScaleInterval(scaleDiv.lowerBound(), scaleDiv.upperBound()) self.__data.labelCache.clear() - + def setTransformation(self, transformation): """ Change the transformation of the scale @@ -185,19 +190,19 @@ def setTransformation(self, transformation): :param qwt.transform.QwtTransform transformation: New scale transformation """ self.__data.map.setTransformation(transformation) - + def scaleMap(self): """ :return: Map how to translate between scale and pixel values """ return self.__data.map - + def scaleDiv(self): """ :return: scale division """ return self.__data.scaleDiv - + def setPenWidth(self, width): """ Specify the width of the scale pen @@ -222,7 +227,7 @@ def penWidth(self): :py:meth:`setPenWidth()` """ return self.__data.penWidth - + def draw(self, painter, palette): """ Draw the scale @@ -231,12 +236,12 @@ def draw(self, painter, palette): :param QPalette palette: Palette, text color is used for the labels, foreground color for ticks and backbone """ painter.save() - + pen = painter.pen() pen.setWidth(self.__data.penWidth) pen.setCosmetic(False) painter.setPen(pen) - + if self.hasComponent(QwtAbstractScaleDraw.Labels): painter.save() painter.setPen(palette.color(QPalette.Text)) @@ -245,7 +250,7 @@ def draw(self, painter, palette): if self.__data.scaleDiv.contains(v): self.drawLabel(painter, v) painter.restore() - + if self.hasComponent(QwtAbstractScaleDraw.Ticks): painter.save() pen = painter.pen() @@ -253,7 +258,7 @@ def draw(self, painter, palette): default_color = palette.color(QPalette.WindowText) for tickType in range(QwtScaleDiv.NTickTypes): tickLen = self.__data.tick_length[tickType] - if tickLen <= 0.: + if tickLen <= 0.0: continue factor = self.__data.tick_lighter_factor[tickType] pen.setColor(default_color.lighter(factor)) @@ -263,7 +268,7 @@ def draw(self, painter, palette): if self.__data.scaleDiv.contains(v): self.drawTick(painter, v, tickLen) painter.restore() - + if self.hasComponent(QwtAbstractScaleDraw.Backbone): painter.save() pen = painter.pen() @@ -272,9 +277,9 @@ def draw(self, painter, palette): painter.setPen(pen) self.drawBackbone(painter) painter.restore() - + painter.restore() - + def setSpacing(self, spacing): """ Set the spacing between tick and labels @@ -291,7 +296,7 @@ def setSpacing(self, spacing): if spacing < 0: spacing = 0 self.__data.spacing = spacing - + def spacing(self): """ Get the spacing @@ -306,7 +311,7 @@ def spacing(self): :py:meth:`setSpacing()` """ return self.__data.spacing - + def setMinimumExtent(self, minExtent): """ Set a minimum for the extent @@ -323,10 +328,10 @@ def setMinimumExtent(self, minExtent): :py:meth:`extent()`, :py:meth:`minimumExtent()` """ - if minExtent < 0.: - minExtent = 0. + if minExtent < 0.0: + minExtent = 0.0 self.__data.minExtent = minExtent - + def minimumExtent(self): """ Get the minimum extent @@ -338,7 +343,7 @@ def minimumExtent(self): :py:meth:`extent()`, :py:meth:`setMinimumExtent()` """ return self.__data.minExtent - + def setTickLength(self, tick_type, length): """ Set the length of the ticks @@ -352,8 +357,8 @@ def setTickLength(self, tick_type, length): """ if tick_type not in self.__data.tick_length: raise ValueError("Invalid tick type: %r" % tick_type) - self.__data.tick_length[tick_type] = min([1000., max([0., length])]) - + self.__data.tick_length[tick_type] = min([1000.0, max([0.0, length])]) + def tickLength(self, tick_type): """ :param int tick_type: Tick type @@ -366,7 +371,7 @@ def tickLength(self, tick_type): if tick_type not in self.__data.tick_length: raise ValueError("Invalid tick type: %r" % tick_type) return self.__data.tick_length[tick_type] - + def maxTickLength(self): """ :return: Length of the longest tick @@ -377,8 +382,8 @@ def maxTickLength(self): :py:meth:`tickLength()`, :py:meth:`setTickLength()` """ - return max([0.] + list(self.__data.tick_length.values())) - + return max([0.0] + list(self.__data.tick_length.values())) + def setTickLighterFactor(self, tick_type, factor): """ Set the color lighter factor of the ticks @@ -389,7 +394,7 @@ def setTickLighterFactor(self, tick_type, factor): if tick_type not in self.__data.tick_length: raise ValueError("Invalid tick type: %r" % tick_type) self.__data.tick_lighter_factor[tick_type] = min([0, factor]) - + def tickLighterFactor(self, tick_type): """ :param int tick_type: Tick type @@ -402,7 +407,7 @@ def tickLighterFactor(self, tick_type): if tick_type not in self.__data.tick_length: raise ValueError("Invalid tick type: %r" % tick_type) return self.__data.tick_lighter_factor[tick_type] - + def label(self, value): """ Convert a value into its representing label @@ -416,7 +421,7 @@ def label(self, value): :return: Label string """ return QLocale().toString(value) - + def tickLabel(self, font, value): """ Convert a value into its representing label and cache it. @@ -438,7 +443,7 @@ def tickLabel(self, font, value): lbl.textSize(font) self.__data.labelCache[value] = lbl return lbl - + def invalidateCache(self): """ Invalidate the cache used by `tickLabel()` @@ -448,7 +453,6 @@ def invalidateCache(self): `invalidateCache()` needs to be called manually. """ self.__data.labelCache.clear() - class QwtScaleDraw_PrivateData(object): @@ -456,7 +460,7 @@ def __init__(self): self.len = 0 self.alignment = QwtScaleDraw.BottomScale self.labelAlignment = 0 - self.labelRotation = 0. + self.labelRotation = 0.0 self.labelAutoSize = True self.pos = QPointF() @@ -487,22 +491,22 @@ class QwtScaleDraw(QwtAbstractScaleDraw): The position is at (0, 0) with a length of 100. The orientation is `QwtAbstractScaleDraw.Bottom`. """ - + # enum Alignment BottomScale, TopScale, LeftScale, RightScale = list(range(4)) Flags = ( - Qt.AlignHCenter|Qt.AlignBottom, # BottomScale - Qt.AlignHCenter|Qt.AlignTop, # TopScale - Qt.AlignLeft|Qt.AlignVCenter, # LeftScale - Qt.AlignRight|Qt.AlignVCenter, # RightScale - ) - + Qt.AlignHCenter | Qt.AlignBottom, # BottomScale + Qt.AlignHCenter | Qt.AlignTop, # TopScale + Qt.AlignLeft | Qt.AlignVCenter, # LeftScale + Qt.AlignRight | Qt.AlignVCenter, # RightScale + ) + def __init__(self): QwtAbstractScaleDraw.__init__(self) self.__data = QwtScaleDraw_PrivateData() self.setLength(100) self._max_label_sizes = {} - + def alignment(self): """ :return: Alignment of the scale @@ -512,7 +516,7 @@ def alignment(self): :py:meth:`setAlignment()` """ return self.__data.alignment - + def setAlignment(self, align): """ Set the alignment of the scale @@ -533,7 +537,7 @@ def setAlignment(self, align): :py:meth:`alignment()` """ self.__data.alignment = align - + def orientation(self): """ Return the orientation @@ -551,7 +555,7 @@ def orientation(self): return Qt.Horizontal elif self.__data.alignment in (self.LeftScale, self.RightScale): return Qt.Vertical - + def getBorderDistHint(self, font): """ Determine the minimum border distance @@ -567,20 +571,20 @@ def getBorderDistHint(self, font): * start: Start border distance * end: End border distance """ - start, end = 0, 1. - + start, end = 0, 1.0 + if not self.hasComponent(QwtAbstractScaleDraw.Labels): return start, end - + ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if len(ticks) == 0: return start, end - + minTick = ticks[0] minPos = self.scaleMap().transform(minTick) maxTick = minTick maxPos = minPos - + for tick in ticks: tickPos = self.scaleMap().transform(tick) if tickPos < minPos: @@ -589,25 +593,25 @@ def getBorderDistHint(self, font): if tickPos > self.scaleMap().transform(maxTick): maxTick = tick maxPos = tickPos - - s = 0. - e = 0. + + s = 0.0 + e = 0.0 if self.orientation() == Qt.Vertical: s = -self.labelRect(font, minTick).top() s -= abs(minPos - round(self.scaleMap().p2())) - + e = self.labelRect(font, maxTick).bottom() e -= abs(maxPos - self.scaleMap().p1()) else: s = -self.labelRect(font, minTick).left() s -= abs(minPos - self.scaleMap().p1()) - + e = self.labelRect(font, maxTick).right() e -= abs(maxPos - self.scaleMap().p2()) - + start, end = np.ceil(np.nan_to_num(np.array([s, e])).clip(0, None)) return start, end - + def minLabelDist(self, font): """ Determine the minimum distance between two labels, that is necessary @@ -622,60 +626,58 @@ def minLabelDist(self, font): """ if not self.hasComponent(QwtAbstractScaleDraw.Labels): return 0 - + ticks = self.scaleDiv().ticks(QwtScaleDiv.MajorTick) if not ticks: return 0 - + fm = QFontMetrics(font) vertical = self.orientation() == Qt.Vertical - + bRect1 = QRectF() bRect2 = self.labelRect(font, ticks[0]) if vertical: - bRect2.setRect(-bRect2.bottom(), 0., - bRect2.height(), bRect2.width()) - - maxDist = 0. - + bRect2.setRect(-bRect2.bottom(), 0.0, bRect2.height(), bRect2.width()) + + maxDist = 0.0 + for tick in ticks: bRect1 = bRect2 bRect2 = self.labelRect(font, tick) if vertical: - bRect2.setRect(-bRect2.bottom(), 0., - bRect2.height(), bRect2.width()) - + bRect2.setRect(-bRect2.bottom(), 0.0, bRect2.height(), bRect2.width()) + dist = fm.leading() if bRect1.right() > 0: dist += bRect1.right() if bRect2.left() < 0: dist += -bRect2.left() - + if dist > maxDist: maxDist = dist - + angle = qwtRadians(self.labelRotation()) if vertical: - angle += np.pi/2 - + angle += np.pi / 2 + sinA = np.sin(angle) - if qFuzzyCompare(sinA+1., 1.): + if qFuzzyCompare(sinA + 1.0, 1.0): return np.ceil(maxDist) - - fmHeight = fm.ascent()-2 - - labelDist = fmHeight/np.sin(angle)*np.cos(angle) + + fmHeight = fm.ascent() - 2 + + labelDist = fmHeight / np.sin(angle) * np.cos(angle) if labelDist < 0: labelDist = -labelDist - + if labelDist > maxDist: labelDist = maxDist - + if labelDist < fmHeight: labelDist = fmHeight - + return np.ceil(labelDist) - + def extent(self, font): """ Calculate the width/height that is needed for a @@ -692,7 +694,7 @@ def extent(self, font): :py:meth:`minLength()` """ - d = 0. + d = 0.0 if self.hasComponent(QwtAbstractScaleDraw.Labels): if self.orientation() == Qt.Vertical: d = self.maxLabelWidth(font) @@ -706,7 +708,7 @@ def extent(self, font): pw = max([1, self.penWidth()]) d += pw return max([d, self.minimumExtent()]) - + def minLength(self, font): """ Calculate the minimum length that is needed to draw the scale @@ -720,18 +722,19 @@ def minLength(self, font): """ startDist, endDist = self.getBorderDistHint(font) sd = self.scaleDiv() - minorCount = len(sd.ticks(QwtScaleDiv.MinorTick))+\ - len(sd.ticks(QwtScaleDiv.MediumTick)) + minorCount = len(sd.ticks(QwtScaleDiv.MinorTick)) + len( + sd.ticks(QwtScaleDiv.MediumTick) + ) majorCount = len(sd.ticks(QwtScaleDiv.MajorTick)) lengthForLabels = 0 if self.hasComponent(QwtAbstractScaleDraw.Labels): - lengthForLabels = self.minLabelDist(font)*majorCount + lengthForLabels = self.minLabelDist(font) * majorCount lengthForTicks = 0 if self.hasComponent(QwtAbstractScaleDraw.Ticks): pw = max([1, self.penWidth()]) - lengthForTicks = np.ceil((majorCount+minorCount)*(pw+1.)) + lengthForTicks = np.ceil((majorCount + minorCount) * (pw + 1.0)) return startDist + endDist + max([lengthForLabels, lengthForTicks]) - + def labelPosition(self, value): """ Find the position, where to paint a label @@ -748,7 +751,7 @@ def labelPosition(self, value): dist += max([1, self.penWidth()]) if self.hasComponent(QwtAbstractScaleDraw.Ticks): dist += self.tickLength(QwtScaleDiv.MajorTick) - + px = 0 py = 0 if self.alignment() == self.RightScale: @@ -763,9 +766,9 @@ def labelPosition(self, value): elif self.alignment() == self.TopScale: px = tval py = self.__data.pos.y() - dist - + return QPointF(px, py) - + def drawTick(self, painter, value, len_): """ Draw a tick @@ -800,7 +803,7 @@ def drawTick(self, painter, value, len_): y1 = pos.y() + a y2 = pos.y() - pw - len_ + a painter.drawLine(tval, y1, tval, y2) - + def drawBackbone(self, painter): """ Draws the baseline of the scale @@ -813,20 +816,20 @@ def drawBackbone(self, painter): """ pos = self.__data.pos len_ = self.__data.len - off = .5*self.penWidth() + off = 0.5 * self.penWidth() if self.alignment() == self.LeftScale: x = pos.x() - off - painter.drawLine(x, pos.y(), x, pos.y()+len_) + painter.drawLine(x, pos.y(), x, pos.y() + len_) elif self.alignment() == self.RightScale: x = pos.x() + off - painter.drawLine(x, pos.y(), x, pos.y()+len_) + painter.drawLine(x, pos.y(), x, pos.y() + len_) elif self.alignment() == self.TopScale: y = pos.y() - off - painter.drawLine(pos.x(), y, pos.x()+len_, y) + painter.drawLine(pos.x(), y, pos.x() + len_, y) elif self.alignment() == self.BottomScale: y = pos.y() + off - painter.drawLine(pos.x(), y, pos.x()+len_, y) - + painter.drawLine(pos.x(), y, pos.x() + len_, y) + def move(self, *args): """ Move the position of the scale @@ -874,13 +877,15 @@ def move(self, *args): x, y = args self.move(QPointF(x, y)) elif len(args) == 1: - pos, = args + (pos,) = args self.__data.pos = pos self.updateMap() else: - raise TypeError("%s().move() takes 1 or 2 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) - + raise TypeError( + "%s().move() takes 1 or 2 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) + def pos(self): """ :return: Origin of the scale @@ -890,7 +895,7 @@ def pos(self): :py:meth:`pos()`, :py:meth:`setLength()` """ return self.__data.pos - + def setLength(self, length): """ Set the length of the backbone. @@ -909,7 +914,7 @@ def setLength(self, length): length = -10 self.__data.len = length self.updateMap() - + def length(self): """ :return: the length of the backbone @@ -919,7 +924,7 @@ def length(self): :py:meth:`setLength()`, :py:meth:`pos()` """ return self.__data.len - + def drawLabel(self, painter, value): """ Draws the label for a major scale tick @@ -942,7 +947,7 @@ def drawLabel(self, painter, value): painter.setWorldTransform(transform, True) lbl.draw(painter, QRect(QPoint(0, 0), labelSize.toSize())) painter.restore() - + def boundingLabelRect(self, font, value): """ Find the bounding rectangle for the label. @@ -965,7 +970,7 @@ def boundingLabelRect(self, font, value): labelSize = lbl.textSize(font) transform = self.labelTransformation(pos, labelSize) return transform.mapRect(QRect(QPoint(0, 0), labelSize.toSize())) - + def labelTransformation(self, pos, size): """ Calculate the transformation that is needed to paint a label @@ -982,29 +987,29 @@ def labelTransformation(self, pos, size): transform = QTransform() transform.translate(pos.x(), pos.y()) transform.rotate(self.labelRotation()) - + flags = self.labelAlignment() if flags == 0: flags = self.Flags[self.alignment()] - + if flags & Qt.AlignLeft: x = -size.width() elif flags & Qt.AlignRight: - x = 0. + x = 0.0 else: - x = -(.5*size.width()) - + x = -(0.5 * size.width()) + if flags & Qt.AlignTop: y = -size.height() elif flags & Qt.AlignBottom: y = 0 else: - y = -(.5*size.height()) - + y = -(0.5 * size.height()) + transform.translate(x, y) - + return transform - + def labelRect(self, font, value): """ Find the bounding rectangle for the label. The coordinates of @@ -1017,14 +1022,14 @@ def labelRect(self, font, value): """ lbl = self.tickLabel(font, value) if not lbl or lbl.isEmpty(): - return QRectF(0., 0., 0., 0.) + return QRectF(0.0, 0.0, 0.0, 0.0) pos = self.labelPosition(value) labelSize = lbl.textSize(font) transform = self.labelTransformation(pos, labelSize) br = transform.mapRect(QRectF(QPointF(0, 0), labelSize)) br.translate(-pos.x(), -pos.y()) return br - + def labelSize(self, font, value): """ Calculate the size that is needed to draw a label @@ -1034,7 +1039,7 @@ def labelSize(self, font, value): :return: Size that is needed to draw a label """ return self.labelRect(font, value).size() - + def setLabelRotation(self, rotation): """ Rotate all labels. @@ -1051,7 +1056,7 @@ def setLabelRotation(self, rotation): :py:meth:`labelAlignment()` """ self.__data.labelRotation = rotation - + def labelRotation(self): """ :return: the label rotation @@ -1061,7 +1066,7 @@ def labelRotation(self): :py:meth:`setLabelRotation()`, :py:meth:`labelAlignment()` """ return self.__data.labelRotation - + def setLabelAlignment(self, alignment): """ Change the label flags @@ -1095,7 +1100,7 @@ def setLabelAlignment(self, alignment): `QwtAbstractScaleDraw.label()`. """ self.__data.labelAlignment = alignment - + def labelAlignment(self): """ :return: the label flags @@ -1106,7 +1111,7 @@ def labelAlignment(self): """ return self.__data.labelAlignment - def setLabelAutoSize(self, state): + def setLabelAutoSize(self, state): """ Set label automatic size option state @@ -1128,7 +1133,7 @@ def setLabelAutoSize(self, state): :py:meth:`labelAutoSize()` """ self.__data.labelAutoSize = state - + def labelAutoSize(self): """ :return: True if automatic size option is enabled for labels @@ -1143,13 +1148,13 @@ def _get_max_label_size(self, font): key = (font.toString(), self.labelRotation()) size = self._max_label_sizes.get(key) if size is None: - size = self.labelSize(font, -999999) # -999999 is the biggest label + size = self.labelSize(font, -999999) # -999999 is the biggest label size.setWidth(np.ceil(size.width())) size.setHeight(np.ceil(size.height())) return self._max_label_sizes.setdefault(key, size) else: return size - + def maxLabelWidth(self, font): """ :param QFont font: Font @@ -1159,15 +1164,17 @@ def maxLabelWidth(self, font): if not ticks: return 0 if self.labelAutoSize(): - vmax = sorted([v for v in ticks if self.scaleDiv().contains(v)], - key=lambda obj: len(QLocale().toString(obj)))[-1] + vmax = sorted( + [v for v in ticks if self.scaleDiv().contains(v)], + key=lambda obj: len(QLocale().toString(obj)), + )[-1] return np.ceil(self.labelSize(font, vmax).width()) ## Original implementation (closer to Qwt's C++ code, but slower): - #return np.ceil(max([self.labelSize(font, v).width() + # return np.ceil(max([self.labelSize(font, v).width() # for v in ticks if self.scaleDiv().contains(v)])) else: return self._get_max_label_size(font).width() - + def maxLabelHeight(self, font): """ :param QFont font: Font @@ -1177,20 +1184,23 @@ def maxLabelHeight(self, font): if not ticks: return 0 if self.labelAutoSize(): - vmax = sorted([v for v in ticks if self.scaleDiv().contains(v)], - key=lambda obj: len(QLocale().toString(obj)))[-1] + vmax = sorted( + [v for v in ticks if self.scaleDiv().contains(v)], + key=lambda obj: len(QLocale().toString(obj)), + )[-1] return np.ceil(self.labelSize(font, vmax).height()) ## Original implementation (closer to Qwt's C++ code, but slower): - #return np.ceil(max([self.labelSize(font, v).height() + # return np.ceil(max([self.labelSize(font, v).height() # for v in ticks if self.scaleDiv().contains(v)])) else: return self._get_max_label_size(font).height() - + def updateMap(self): pos = self.__data.pos len_ = self.__data.len sm = self.scaleMap() if self.orientation() == Qt.Vertical: - sm.setPaintInterval(pos.y()+len_, pos.y()) + sm.setPaintInterval(pos.y() + len_, pos.y()) else: - sm.setPaintInterval(pos.x(), pos.x()+len_) + sm.setPaintInterval(pos.x(), pos.x() + len_) + diff --git a/qwt/scale_engine.py b/qwt/scale_engine.py index d723f62..acfadf7 100644 --- a/qwt/scale_engine.py +++ b/qwt/scale_engine.py @@ -45,28 +45,38 @@ def qwtLogInterval(base, interval): - return QwtInterval(math.log(interval.minValue(), base), - math.log(interval.maxValue(), base)) + return QwtInterval( + math.log(interval.minValue(), base), math.log(interval.maxValue(), base) + ) + def qwtPowInterval(base, interval): - return QwtInterval(math.pow(base, interval.minValue()), - math.pow(base, interval.maxValue())) + return QwtInterval( + math.pow(base, interval.minValue()), math.pow(base, interval.maxValue()) + ) + def qwtStepSize(intervalSize, maxSteps, base): """this version often doesn't find the best ticks: f.e for 15: 5, 10""" minStep = divideInterval(intervalSize, maxSteps, base) - if minStep != 0.: + if minStep != 0.0: # # ticks per interval - numTicks = math.ceil(abs(intervalSize/minStep))-1 + numTicks = math.ceil(abs(intervalSize / minStep)) - 1 # Do the minor steps fit into the interval? - if qwtFuzzyCompare((numTicks+1)*abs(minStep), - abs(intervalSize), intervalSize) > 0: + if ( + qwtFuzzyCompare( + (numTicks + 1) * abs(minStep), abs(intervalSize), intervalSize + ) + > 0 + ): # The minor steps doesn't fit into the interval - return .5*intervalSize + return 0.5 * intervalSize return minStep + EPS = 1.0e-6 + def ceilEps(value, intervalSize): """ Ceil a value, relative to an interval @@ -79,9 +89,10 @@ def ceilEps(value, intervalSize): :py:func:`qwt.scale_engine.floorEps()` """ - eps = EPS*intervalSize - value = (value-eps)/intervalSize - return math.ceil(value)*intervalSize + eps = EPS * intervalSize + value = (value - eps) / intervalSize + return math.ceil(value) * intervalSize + def floorEps(value, intervalSize): """ @@ -95,9 +106,10 @@ def floorEps(value, intervalSize): :py:func:`qwt.scale_engine.ceilEps()` """ - eps = EPS*intervalSize - value = (value+eps)/intervalSize - return math.floor(value)*intervalSize + eps = EPS * intervalSize + value = (value + eps) / intervalSize + return math.floor(value) * intervalSize + def divideEps(intervalSize, numSteps): """ @@ -109,9 +121,10 @@ def divideEps(intervalSize, numSteps): :param float numSteps: Number of steps :return: Step size """ - if numSteps == 0. or intervalSize == 0.: - return 0. - return (intervalSize-(EPS*intervalSize))/numSteps + if numSteps == 0.0 or intervalSize == 0.0: + return 0.0 + return (intervalSize - (EPS * intervalSize)) / numSteps + def divideInterval(intervalSize, numSteps, base): """ @@ -123,31 +136,31 @@ def divideInterval(intervalSize, numSteps, base): :return: Calculated step size """ if numSteps <= 0: - return 0. + return 0.0 v = divideEps(intervalSize, numSteps) - if v == 0.: - return 0. + if v == 0.0: + return 0.0 lx = math.log(abs(v), base) p = math.floor(lx) - fraction = math.pow(base, lx-p) + fraction = math.pow(base, lx - p) n = base - while n > 1 and fraction <= n//2: + while n > 1 and fraction <= n // 2: n //= 2 - - stepSize = n*math.pow(base, p) + + stepSize = n * math.pow(base, p) if v < 0: stepSize = -stepSize - + return stepSize class QwtScaleEngine_PrivateData(object): def __init__(self): self.attributes = QwtScaleEngine.NoAttribute - self.lowerMargin = 0. - self.upperMargin = 0. - self.referenceValue = 0. + self.lowerMargin = 0.0 + self.upperMargin = 0.0 + self.referenceValue = 0.0 self.base = 10 self.transform = None # QwtTransform @@ -176,18 +189,18 @@ class QwtScaleEngine(object): scale will be integer multiples of the step size. * `QwtScaleEngine.Inverted`: Turn the scale upside down """ - + # enum Attribute NoAttribute = 0x00 IncludeReference = 0x01 Symmetric = 0x02 Floating = 0x04 Inverted = 0x08 - + def __init__(self, base=10): self.__data = QwtScaleEngine_PrivateData() self.setBase(base) - + def autoScale(self, maxNumSteps, x1, x2, stepSize): """ Align and divide an interval @@ -199,8 +212,8 @@ def autoScale(self, maxNumSteps, x1, x2, stepSize): :return: tuple (x1, x2, stepSize) """ pass - - def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): + + def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0): """ Calculate a scale division @@ -212,7 +225,7 @@ def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): :return: Calculated scale division """ pass - + def setTransformation(self, transform): """ Assign a transformation @@ -231,7 +244,7 @@ def setTransformation(self, transform): assert transform is None or isinstance(transform, QwtTransform) if transform != self.__data.transform: self.__data.transform = transform - + def transformation(self): """ Create and return a clone of the transformation @@ -246,7 +259,7 @@ def transformation(self): """ if self.__data.transform: return self.__data.transform.copy() - + def lowerMargin(self): """ :return: the margin at the lower end of the scale @@ -258,7 +271,7 @@ def lowerMargin(self): :py:meth:`setMargins()` """ return self.__data.lowerMargin - + def upperMargin(self): """ :return: the margin at the upper end of the scale @@ -270,7 +283,7 @@ def upperMargin(self): :py:meth:`setMargins()` """ return self.__data.upperMargin - + def setMargins(self, lower, upper): """ Specify margins at the scale's endpoints @@ -290,9 +303,9 @@ def setMargins(self, lower, upper): :py:meth:`upperMargin()`, :py:meth:`lowerMargin()` """ - self.__data.lowerMargin = max([lower, 0.]) - self.__data.upperMargin = max([upper, 0.]) - + self.__data.lowerMargin = max([lower, 0.0]) + self.__data.upperMargin = max([upper, 0.0]) + def divideInterval(self, intervalSize, numSteps): """ Calculate a step size for a given interval @@ -302,7 +315,7 @@ def divideInterval(self, intervalSize, numSteps): :return: Step size """ return divideInterval(intervalSize, numSteps, self.__data.base) - + def contains(self, interval, value): """ Check if an interval "contains" a value @@ -319,7 +332,7 @@ def contains(self, interval, value): return False else: return True - + def strip(self, ticks, interval): """ Remove ticks from a list, that are not inside an interval @@ -330,12 +343,10 @@ def strip(self, ticks, interval): """ if not interval.isValid() or not ticks: return [] - if self.contains(interval, ticks[0]) and\ - self.contains(interval, ticks[-1]): + if self.contains(interval, ticks[0]) and self.contains(interval, ticks[-1]): return ticks - return [tick for tick in ticks - if self.contains(interval, tick)] - + return [tick for tick in ticks if self.contains(interval, tick)] + def buildInterval(self, value): """ Build an interval around a value @@ -346,16 +357,16 @@ def buildInterval(self, value): :param float value: Initial value :return: Calculated interval """ - if value == 0.: - delta = .5 + if value == 0.0: + delta = 0.5 else: - delta = abs(.5*value) - if DBL_MAX-delta < value: - return QwtInterval(DBL_MAX-delta, DBL_MAX) - if -DBL_MAX+delta > value: - return QwtInterval(-DBL_MAX, -DBL_MAX+delta) - return QwtInterval(value-delta, value+delta) - + delta = abs(0.5 * value) + if DBL_MAX - delta < value: + return QwtInterval(DBL_MAX - delta, DBL_MAX) + if -DBL_MAX + delta > value: + return QwtInterval(-DBL_MAX, -DBL_MAX + delta) + return QwtInterval(value - delta, value + delta) + def setAttribute(self, attribute, on=True): """ Change a scale attribute @@ -372,7 +383,7 @@ def setAttribute(self, attribute, on=True): self.__data.attributes |= attribute else: self.__data.attributes &= ~attribute - + def testAttribute(self, attribute): """ :param int attribute: Attribute to be tested @@ -383,7 +394,7 @@ def testAttribute(self, attribute): :py:meth:`setAttribute()` """ return self.__data.attributes & attribute - + def setAttributes(self, attributes): """ Change the scale attribute @@ -395,7 +406,7 @@ def setAttributes(self, attributes): :py:meth:`attributes()` """ self.__data.attributes = attributes - + def attributes(self): """ :return: Scale attributes @@ -405,7 +416,7 @@ def attributes(self): :py:meth:`setAttributes()`, :py:meth:`testAttribute()` """ return self.__data.attributes - + def setReference(self, r): """ Specify a reference point @@ -416,7 +427,7 @@ def setReference(self, r): `Symmetric` are active. Its default value is 0.0. """ self.__data.referenceValue = r - + def reference(self): """ :return: the reference value @@ -426,7 +437,7 @@ def reference(self): :py:meth:`setReference()`, :py:meth:`setAttribute()` """ return self.__data.referenceValue - + def setBase(self, base): """ Set the base of the scale engine @@ -443,7 +454,7 @@ def setBase(self, base): :py:meth:`base()` """ self.__data.base = max([base, 2]) - + def base(self): """ :return: Base of the scale engine @@ -462,10 +473,10 @@ class QwtLinearScaleEngine(QwtScaleEngine): The step size will fit into the pattern \f$\left\{ 1,2,5\right\} \cdot 10^{n}\f$, where n is an integer. """ - + def __init__(self, base=10): super(QwtLinearScaleEngine, self).__init__(base) - + def autoScale(self, maxNumSteps, x1, x2, stepSize): """ Align and divide an interval @@ -482,16 +493,15 @@ def autoScale(self, maxNumSteps, x1, x2, stepSize): """ interval = QwtInterval(x1, x2) interval = interval.normalized() - interval.setMinValue(interval.minValue()-self.lowerMargin()) - interval.setMaxValue(interval.maxValue()+self.upperMargin()) + interval.setMinValue(interval.minValue() - self.lowerMargin()) + interval.setMaxValue(interval.maxValue() + self.upperMargin()) if self.testAttribute(QwtScaleEngine.Symmetric): interval = interval.symmetrize(self.reference()) if self.testAttribute(QwtScaleEngine.IncludeReference): interval = interval.extend(self.reference()) - if interval.width() == 0.: + if interval.width() == 0.0: interval = self.buildInterval(interval.minValue()) - stepSize = divideInterval(interval.width(), - max([maxNumSteps, 1]), self.base()) + stepSize = divideInterval(interval.width(), max([maxNumSteps, 1]), self.base()) if not self.testAttribute(QwtScaleEngine.Floating): interval = self.align(interval, stepSize) x1 = interval.minValue() @@ -500,8 +510,8 @@ def autoScale(self, maxNumSteps, x1, x2, stepSize): x1, x2 = x2, x1 stepSize = -stepSize return x1, x2, stepSize - - def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): + + def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0): """ Calculate a scale division for an interval @@ -516,19 +526,18 @@ def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): if interval.width() <= 0: return QwtScaleDiv() stepSize = abs(stepSize) - if stepSize == 0.: + if stepSize == 0.0: if maxMajorSteps < 1: maxMajorSteps = 1 - stepSize = divideInterval(interval.width(), maxMajorSteps, - self.base()) + stepSize = divideInterval(interval.width(), maxMajorSteps, self.base()) scaleDiv = QwtScaleDiv() - if stepSize != 0.: + if stepSize != 0.0: ticks = self.buildTicks(interval, stepSize, maxMinorSteps) scaleDiv = QwtScaleDiv(interval, ticks) if x1 > x2: scaleDiv.invert() return scaleDiv - + def buildTicks(self, interval, stepSize, maxMinorSteps): """ Calculate ticks for an interval @@ -540,17 +549,16 @@ def buildTicks(self, interval, stepSize, maxMinorSteps): """ ticks = [[] for _i in range(QwtScaleDiv.NTickTypes)] boundingInterval = self.align(interval, stepSize) - ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, - stepSize) + ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, stepSize) if maxMinorSteps > 0: self.buildMinorTicks(ticks, maxMinorSteps, stepSize) for i in range(QwtScaleDiv.NTickTypes): ticks[i] = self.strip(ticks[i], interval) for j in range(len(ticks[i])): - if qwtFuzzyCompare(ticks[i][j], 0., stepSize) == 0: - ticks[i][j] = 0. + if qwtFuzzyCompare(ticks[i][j], 0.0, stepSize) == 0: + ticks[i][j] = 0.0 return ticks - + def buildMajorTicks(self, interval, stepSize): """ Calculate major ticks for an interval @@ -559,15 +567,15 @@ def buildMajorTicks(self, interval, stepSize): :param float stepSize: Step size :return: Calculated ticks """ - numTicks = min([round(interval.width()/stepSize)+1, 10000]) + numTicks = min([round(interval.width() / stepSize) + 1, 10000]) if np.isnan(numTicks): numTicks = 0 ticks = [interval.minValue()] - for i in range(1, int(numTicks-1)): - ticks += [interval.minValue()+i*stepSize] + for i in range(1, int(numTicks - 1)): + ticks += [interval.minValue() + i * stepSize] ticks += [interval.maxValue()] return ticks - + def buildMinorTicks(self, ticks, maxMinorSteps, stepSize): """ Calculate minor ticks for an interval @@ -577,23 +585,23 @@ def buildMinorTicks(self, ticks, maxMinorSteps, stepSize): :param float stepSize: Step size """ minStep = qwtStepSize(stepSize, maxMinorSteps, self.base()) - if minStep == 0.: + if minStep == 0.0: return - numTicks = int(math.ceil(abs(stepSize/minStep))-1) + numTicks = int(math.ceil(abs(stepSize / minStep)) - 1) medIndex = -1 if numTicks % 2: - medIndex = numTicks/2 + medIndex = numTicks / 2 for val in ticks[QwtScaleDiv.MajorTick]: for k in range(numTicks): val += minStep alignedValue = val - if qwtFuzzyCompare(val, 0., stepSize) == 0: - alignedValue = 0. + if qwtFuzzyCompare(val, 0.0, stepSize) == 0: + alignedValue = 0.0 if k == medIndex: ticks[QwtScaleDiv.MediumTick] += [alignedValue] else: ticks[QwtScaleDiv.MinorTick] += [alignedValue] - + def align(self, interval, stepSize): """ Align an interval to a step size @@ -607,12 +615,12 @@ def align(self, interval, stepSize): """ x1 = interval.minValue() x2 = interval.maxValue() - eps = .000000000001 - if -DBL_MAX+stepSize <= x1: + eps = 0.000000000001 + if -DBL_MAX + stepSize <= x1: x = floorEps(x1, stepSize) if abs(x) <= eps or not qFuzzyCompare(x1, x): x1 = x - if DBL_MAX-stepSize >= x2: + if DBL_MAX - stepSize >= x2: x = ceilEps(x2, stepSize) if abs(x) <= eps or not qFuzzyCompare(x2, x): x2 = x @@ -631,10 +639,11 @@ class QwtLogScaleEngine(QwtScaleEngine): The step size as well as the margins are measured in *decades*. """ + def __init__(self, base=10): super(QwtLogScaleEngine, self).__init__(base) self.setTransformation(QwtLogTransform()) - + def autoScale(self, maxNumSteps, x1, x2, stepSize): """ Align and divide an interval @@ -652,63 +661,64 @@ def autoScale(self, maxNumSteps, x1, x2, stepSize): if x1 > x2: x1, x2 = x2, x1 logBase = self.base() - interval = QwtInterval(x1/math.pow(logBase, self.lowerMargin()), - x2*math.pow(logBase, self.upperMargin())) + interval = QwtInterval( + x1 / math.pow(logBase, self.lowerMargin()), + x2 * math.pow(logBase, self.upperMargin()), + ) interval = interval.limited(LOG_MIN, LOG_MAX) - if interval.maxValue()/interval.minValue() < logBase: + if interval.maxValue() / interval.minValue() < logBase: linearScaler = QwtLinearScaleEngine() linearScaler.setAttributes(self.attributes()) linearScaler.setReference(self.reference()) linearScaler.setMargins(self.lowerMargin(), self.upperMargin()) - - x1, x2, stepSize = linearScaler.autoScale(maxNumSteps, - x1, x2, stepSize) - + + x1, x2, stepSize = linearScaler.autoScale(maxNumSteps, x1, x2, stepSize) + linearInterval = QwtInterval(x1, x2).normalized() linearInterval = linearInterval.limited(LOG_MIN, LOG_MAX) - - if linearInterval.maxValue()/linearInterval.minValue() < logBase: - if stepSize < 0.: + + if linearInterval.maxValue() / linearInterval.minValue() < logBase: + if stepSize < 0.0: stepSize = -math.log(abs(stepSize), logBase) else: stepSize = math.log(stepSize, logBase) return x1, x2, stepSize - - logRef = 1. - if self.reference() > LOG_MIN/2: - logRef = min([self.reference(), LOG_MAX/2]) - + + logRef = 1.0 + if self.reference() > LOG_MIN / 2: + logRef = min([self.reference(), LOG_MAX / 2]) + if self.testAttribute(QwtScaleEngine.Symmetric): - delta = max([interval.maxValue()/logRef, - logRef/interval.minValue()]) - interval.setInterval(logRef/delta, logRef*delta) - + delta = max([interval.maxValue() / logRef, logRef / interval.minValue()]) + interval.setInterval(logRef / delta, logRef * delta) + if self.testAttribute(QwtScaleEngine.IncludeReference): interval = interval.extend(logRef) - interval = interval.limited(LOG_MIN, LOG_MAX) - - if interval.width() == 0.: + interval = interval.limited(LOG_MIN, LOG_MAX) + + if interval.width() == 0.0: interval = self.buildInterval(interval.minValue()) - + stepSize = self.divideInterval( - qwtLogInterval(logBase, interval).width(), max([maxNumSteps, 1])) - if stepSize < 1.: - stepSize = 1. - + qwtLogInterval(logBase, interval).width(), max([maxNumSteps, 1]) + ) + if stepSize < 1.0: + stepSize = 1.0 + if not self.testAttribute(QwtScaleEngine.Floating): interval = self.align(interval, stepSize) - + x1 = interval.minValue() x2 = interval.maxValue() - + if self.testAttribute(QwtScaleEngine.Inverted): x1, x2 = x2, x1 stepSize = -stepSize return x1, x2, stepSize - - def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): + + def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.0): """ Calculate a scale division for an interval @@ -721,39 +731,41 @@ def divideScale(self, x1, x2, maxMajorSteps, maxMinorSteps, stepSize=0.): """ interval = QwtInterval(x1, x2).normalized() interval = interval.limited(LOG_MIN, LOG_MAX) - + if interval.width() <= 0: return QwtScaleDiv() - + logBase = self.base() - - if interval.maxValue()/interval.minValue() < logBase: + + if interval.maxValue() / interval.minValue() < logBase: linearScaler = QwtLinearScaleEngine() linearScaler.setAttributes(self.attributes()) linearScaler.setReference(self.reference()) linearScaler.setMargins(self.lowerMargin(), self.upperMargin()) - return linearScaler.divideScale(x1, x2, maxMajorSteps, - maxMinorSteps, stepSize) - + return linearScaler.divideScale( + x1, x2, maxMajorSteps, maxMinorSteps, stepSize + ) + stepSize = abs(stepSize) - if stepSize == 0.: + if stepSize == 0.0: if maxMajorSteps < 1: maxMajorSteps = 1 stepSize = self.divideInterval( - qwtLogInterval(logBase, interval).width(), maxMajorSteps) - if stepSize < 1.: - stepSize = 1. - + qwtLogInterval(logBase, interval).width(), maxMajorSteps + ) + if stepSize < 1.0: + stepSize = 1.0 + scaleDiv = QwtScaleDiv() - if stepSize != 0.: + if stepSize != 0.0: ticks = self.buildTicks(interval, stepSize, maxMinorSteps) scaleDiv = QwtScaleDiv(interval, ticks) - + if x1 > x2: scaleDiv.invert() - + return scaleDiv - + def buildTicks(self, interval, stepSize, maxMinorSteps): """ Calculate ticks for an interval @@ -765,14 +777,13 @@ def buildTicks(self, interval, stepSize, maxMinorSteps): """ ticks = [[] for _i in range(QwtScaleDiv.NTickTypes)] boundingInterval = self.align(interval, stepSize) - ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, - stepSize) + ticks[QwtScaleDiv.MajorTick] = self.buildMajorTicks(boundingInterval, stepSize) if maxMinorSteps > 0: self.buildMinorTicks(ticks, maxMinorSteps, stepSize) for i in range(QwtScaleDiv.NTickTypes): ticks[i] = self.strip(ticks[i], interval) return ticks - + def buildMajorTicks(self, interval, stepSize): """ Calculate major ticks for an interval @@ -782,15 +793,15 @@ def buildMajorTicks(self, interval, stepSize): :return: Calculated ticks """ width = qwtLogInterval(self.base(), interval).width() - numTicks = min([int(round(width/stepSize))+1, 10000]) + numTicks = min([int(round(width / stepSize)) + 1, 10000]) lxmin = math.log(interval.minValue()) lxmax = math.log(interval.maxValue()) - lstep = (lxmax-lxmin)/float(numTicks-1) + lstep = (lxmax - lxmin) / float(numTicks - 1) ticks = [interval.minValue()] - for i in range(1, numTicks-1): - ticks += [math.exp(lxmin+float(i)*lstep)] + for i in range(1, numTicks - 1): + ticks += [math.exp(lxmin + float(i) * lstep)] ticks += [interval.maxValue()] return ticks @@ -803,55 +814,55 @@ def buildMinorTicks(self, ticks, maxMinorSteps, stepSize): :param float stepSize: Step size """ logBase = self.base() - + if stepSize < 1.1: - minStep = self.divideInterval(stepSize, maxMinorSteps+1) - if minStep == 0.: + minStep = self.divideInterval(stepSize, maxMinorSteps + 1) + if minStep == 0.0: return - - numSteps = int(round(stepSize/minStep)) - + + numSteps = int(round(stepSize / minStep)) + mediumTickIndex = -1 if numSteps > 2 and numSteps % 2 == 0: - mediumTickIndex = numSteps/2 - + mediumTickIndex = numSteps / 2 + for v in ticks[QwtScaleDiv.MajorTick]: - s = logBase/numSteps - if s >= 1.: - if not qFuzzyCompare(s, 1.): - ticks[QwtScaleDiv.MinorTick] += [v*s] + s = logBase / numSteps + if s >= 1.0: + if not qFuzzyCompare(s, 1.0): + ticks[QwtScaleDiv.MinorTick] += [v * s] for j in range(2, numSteps): - ticks[QwtScaleDiv.MinorTick] += [v*j*s] + ticks[QwtScaleDiv.MinorTick] += [v * j * s] else: for j in range(1, numSteps): - tick = v + j*v*(logBase-1)/numSteps + tick = v + j * v * (logBase - 1) / numSteps if j == mediumTickIndex: ticks[QwtScaleDiv.MediumTick] += [tick] else: ticks[QwtScaleDiv.MinorTick] += [tick] - + else: minStep = self.divideInterval(stepSize, maxMinorSteps) - if minStep == 0.: + if minStep == 0.0: return - - if minStep < 1.: - minStep = 1. - - numTicks = int(round(stepSize/minStep))-1 - - if qwtFuzzyCompare((numTicks+1)*minStep, stepSize, stepSize) > 0: + + if minStep < 1.0: + minStep = 1.0 + + numTicks = int(round(stepSize / minStep)) - 1 + + if qwtFuzzyCompare((numTicks + 1) * minStep, stepSize, stepSize) > 0: numTicks = 0 - + if numTicks < 1: return - + mediumTickIndex = -1 if numTicks > 2 and numTicks % 2: - mediumTickIndex = numTicks/2 - + mediumTickIndex = numTicks / 2 + minFactor = max([math.pow(logBase, minStep), float(logBase)]) - + for tick in ticks[QwtScaleDiv.MajorTick]: for j in range(numTicks): tick *= minFactor @@ -872,15 +883,14 @@ def align(self, interval, stepSize): :return: Aligned interval """ intv = qwtLogInterval(self.base(), interval) - + x1 = floorEps(intv.minValue(), stepSize) if qwtFuzzyCompare(interval.minValue(), x1, stepSize) == 0: x1 = interval.minValue() - + x2 = ceilEps(intv.maxValue(), stepSize) if qwtFuzzyCompare(interval.maxValue(), x2, stepSize) == 0: x2 = interval.maxValue() - + return qwtPowInterval(self.base(), QwtInterval(x1, x2)) - - + diff --git a/qwt/scale_map.py b/qwt/scale_map.py index 41d6b14..94a27fb 100644 --- a/qwt/scale_map.py +++ b/qwt/scale_map.py @@ -43,15 +43,16 @@ class QwtScaleMap(object): :param float s1: First border of the scale interval :param float s2: Second border of the scale interval """ + def __init__(self, *args): - self.__transform = None # QwtTransform - self.__s1 = 0. - self.__s2 = 1. - self.__p1 = 0. - self.__p2 = 1. + self.__transform = None # QwtTransform + self.__s1 = 0.0 + self.__s2 = 1.0 + self.__p1 = 0.0 + self.__p2 = 1.0 other = None if len(args) == 1: - other, = args + (other,) = args elif len(args) == 4: p1, p2, s1, s2 = args self.__s1 = s1 @@ -59,11 +60,13 @@ def __init__(self, *args): self.__p1 = p1 self.__p2 = p2 elif len(args) != 0: - raise TypeError("%s() takes 0, 1, or 4 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) + raise TypeError( + "%s() takes 0, 1, or 4 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) if other is None: - self.__cnv = 1. - self.__ts1 = 0. + self.__cnv = 1.0 + self.__ts1 = 0.0 else: self.__s1 = other.__s1 self.__s2 = other.__s2 @@ -75,43 +78,45 @@ def __init__(self, *args): self.__transform = other.__transform.copy() def __eq__(self, other): - return self.__s1 == other.__s1 and\ - self.__s2 == other.__s2 and\ - self.__p1 == other.__p1 and\ - self.__p2 == other.__p2 and\ - self.__cnv == other.__cnv and\ - self.__ts1 == other.__ts1 + return ( + self.__s1 == other.__s1 + and self.__s2 == other.__s2 + and self.__p1 == other.__p1 + and self.__p2 == other.__p2 + and self.__cnv == other.__cnv + and self.__ts1 == other.__ts1 + ) def s1(self): """ :return: First border of the scale interval """ return self.__s1 - + def s2(self): """ :return: Second border of the scale interval """ return self.__s2 - + def p1(self): """ :return: First border of the paint interval """ return self.__p1 - + def p2(self): """ :return: Second border of the paint interval """ return self.__p2 - + def pDist(self): """ :return: `abs(p2() - p1())` """ return abs(self.__p2 - self.__p1) - + def sDist(self): """ :return: `abs(s2() - s1())` @@ -132,8 +137,8 @@ def transform_scalar(self, s): """ if self.__transform: s = self.__transform.transform(s) - return self.__p1 + (s - self.__ts1)*self.__cnv - + return self.__p1 + (s - self.__ts1) * self.__cnv + def invTransform_scalar(self, p): """ Transform an paint device value into a value in the @@ -149,17 +154,17 @@ def invTransform_scalar(self, p): if self.__cnv == 0: s = self.__ts1 # avoid divide by zero else: - s = self.__ts1 + ( p - self.__p1 ) / self.__cnv + s = self.__ts1 + (p - self.__p1) / self.__cnv if self.__transform: s = self.__transform.invTransform(s) return s - + def isInverting(self): """ :return: True, when ( p1() < p2() ) != ( s1() < s2() ) """ - return ( self.__p1 < self.__p2 ) != ( self.__s1 < self.__s2 ) - + return (self.__p1 < self.__p2) != (self.__s1 < self.__s2) + def setTransformation(self, transform): """ Initialize the map with a transformation @@ -169,13 +174,13 @@ def setTransformation(self, transform): if self.__transform != transform: self.__transform = transform self.setScaleInterval(self.__s1, self.__s2) - + def transformation(self): """ :return: the transformation """ return self.__transform - + def setScaleInterval(self, s1, s2): """ Specify the borders of the scale interval @@ -204,17 +209,17 @@ def setPaintInterval(self, p1, p2): self.__p1 = p1 self.__p2 = p2 self.updateFactor() - + def updateFactor(self): self.__ts1 = self.__s1 ts2 = self.__s2 if self.__transform: self.__ts1 = self.__transform.transform(self.__ts1) ts2 = self.__transform.transform(ts2) - self.__cnv = 1. + self.__cnv = 1.0 if self.__ts1 != ts2: - self.__cnv = (self.__p2 - self.__p1)/(ts2 - self.__ts1) - + self.__cnv = (self.__p2 - self.__p1) / (ts2 - self.__ts1) + def transform(self, *args): """ Transform a rectangle from scale to paint coordinates @@ -252,8 +257,7 @@ def transform(self, *args): return self.transform_scalar(args[0]) elif len(args) == 3 and isinstance(args[2], QPointF): xMap, yMap, pos = args - return QPointF(xMap.transform(pos.x()), - yMap.transform(pos.y())) + return QPointF(xMap.transform(pos.x()), yMap.transform(pos.y())) elif len(args) == 3 and isinstance(args[2], QRectF): xMap, yMap, rect = args x1 = xMap.transform(rect.left()) @@ -264,18 +268,20 @@ def transform(self, *args): x1, x2 = x2, x1 if y2 < y1: y1, y2 = y2, y1 - if qwtFuzzyCompare(x1, 0., x2-x1) == 0: - x1 = 0. - if qwtFuzzyCompare(x2, 0., x2-x1) == 0: - x2 = 0. - if qwtFuzzyCompare(y1, 0., y2-y1) == 0: - y1 = 0. - if qwtFuzzyCompare(y2, 0., y2-y1) == 0: - y2 = 0. - return QRectF(x1, y1, x2-x1+1, y2-y1+1) + if qwtFuzzyCompare(x1, 0.0, x2 - x1) == 0: + x1 = 0.0 + if qwtFuzzyCompare(x2, 0.0, x2 - x1) == 0: + x2 = 0.0 + if qwtFuzzyCompare(y1, 0.0, y2 - y1) == 0: + y1 = 0.0 + if qwtFuzzyCompare(y2, 0.0, y2 - y1) == 0: + y2 = 0.0 + return QRectF(x1, y1, x2 - x1 + 1, y2 - y1 + 1) else: - raise TypeError("%s().transform() takes 1 or 3 argument(s) (%s "\ - "given)" % (self.__class__.__name__, len(args))) + raise TypeError( + "%s().transform() takes 1 or 3 argument(s) (%s " + "given)" % (self.__class__.__name__, len(args)) + ) def invTransform(self, *args): """Transform from paint to scale coordinates @@ -289,13 +295,12 @@ def invTransform(self, *args): return self.invTransform_scalar(args[0]) elif isinstance(args[2], QPointF): xMap, yMap, pos = args - return QPointF(xMap.invTransform(pos.x()), - yMap.invTransform(pos.y())) + return QPointF(xMap.invTransform(pos.x()), yMap.invTransform(pos.y())) elif isinstance(args[2], QRectF): xMap, yMap, rect = args x1 = xMap.invTransform(rect.left()) - x2 = xMap.invTransform(rect.right()-1) + x2 = xMap.invTransform(rect.right() - 1) y1 = yMap.invTransform(rect.top()) - y2 = yMap.invTransform(rect.bottom()-1) - r = QRectF(x1, y1, x2-x1, y2-y1) + y2 = yMap.invTransform(rect.bottom() - 1) + r = QRectF(x1, y1, x2 - x1, y2 - y1) return r.normalized() diff --git a/qwt/symbol.py b/qwt/symbol.py index e5d685b..b9cb06e 100644 --- a/qwt/symbol.py +++ b/qwt/symbol.py @@ -16,8 +16,15 @@ from .graphic import QwtGraphic from .painter import QwtPainter -from .qt.QtGui import (QPainter, QTransform, QPixmap, QPen, QPolygonF, - QPainterPath, QBrush) +from .qt.QtGui import ( + QPainter, + QTransform, + QPixmap, + QPen, + QPolygonF, + QPainterPath, + QBrush, +) from .qt.QtCore import QSize, QRect, QPointF, QRectF, QSizeF, Qt, QPoint from .qt.QtSvg import QSvgRenderer @@ -25,7 +32,7 @@ class QwtTriangle(object): - + # enum Type Left, Right, Up, Down = list(range(4)) @@ -46,12 +53,12 @@ def qwtScaleBoundingRect(graphic, size): if scaledSize.isEmpty(): scaledSize = graphic.defaultSize() sz = graphic.controlPointRect().size() - sx = 1. - if sz.width() > 0.: - sx = scaledSize.width()/sz.width() - sy = 1. - if sz.height() > 0.: - sy = scaledSize.height()/sz.height() + sx = 1.0 + if sz.width() > 0.0: + sx = scaledSize.width() / sz.width() + sy = 1.0 + if sz.height() > 0.0: + sy = scaledSize.height() / sz.height() return graphic.scaledBoundingRect(sx, sy) @@ -66,14 +73,14 @@ def qwtDrawPixmapSymbols(painter, points, numPoints, symbol): pm = QPixmap(symbol.pixmap()) if pm.size() != size: pm = pm.scaled(size) - pinPoint = QPointF(.5*size.width(), .5*size.height()) + pinPoint = QPointF(0.5 * size.width(), 0.5 * size.height()) if symbol.isPinPointEnabled(): pinPoint = symbol.pinPoint() painter.resetTransform() for pos in points: - pos = QPointF(transform.map(pos))-pinPoint - QwtPainter.drawPixmap(painter, QRect(pos.toPoint(), pm.size(), pm)) - + pos = QPointF(transform.map(pos)) - pinPoint + QwtPainter.drawPixmap(painter, QRect(pos.toPoint(), pm.size()), pm) + def qwtDrawSvgSymbols(painter, points, numPoints, renderer, symbol): if renderer is None or not renderer.isValid(): @@ -84,16 +91,16 @@ def qwtDrawSvgSymbols(painter, points, numPoints, renderer, symbol): sz = QSizeF(symbol.size()) if not sz.isValid(): sz = viewBox.size() - sx = sz.width()/viewBox.width() - sy = sz.height()/viewBox.height() + sx = sz.width() / viewBox.width() + sy = sz.height() / viewBox.height() pinPoint = QPointF(viewBox.center()) if symbol.isPinPointEnabled(): pinPoint = symbol.pinPoint() - dx = sx*(pinPoint.x()-viewBox.left()) - dy = sy*(pinPoint.y()-viewBox.top()) + dx = sx * (pinPoint.x() - viewBox.left()) + dy = sy * (pinPoint.y() - viewBox.top()) for pos in points: - x = pos.x()-dx - y = pos.y()-dy + x = pos.x() - dx + y = pos.y() - dy renderer.render(painter, QRectF(x, y, sz.width(), sz.height())) @@ -101,12 +108,12 @@ def qwtDrawGraphicSymbols(painter, points, numPoint, graphic, symbol): pointRect = QRectF(graphic.controlPointRect()) if pointRect.isEmpty(): return - sx = 1. - sy = 1. + sx = 1.0 + sy = 1.0 sz = symbol.size() if sz.isValid(): - sx = sz.width()/pointRect.width() - sy = sz.height()/pointRect.height() + sx = sz.width() / pointRect.width() + sy = sz.height() / pointRect.height() pinPoint = QPointF(pointRect.center()) if symbol.isPinPointEnabled(): pinPoint = symbol.pinPoint() @@ -124,15 +131,15 @@ def qwtDrawGraphicSymbols(painter, points, numPoint, graphic, symbol): def qwtDrawEllipseSymbols(painter, points, numPoints, symbol): painter.setBrush(symbol.brush()) painter.setPen(symbol.pen()) - size =symbol.size() + size = symbol.size() sw = size.width() sh = size.height() - sw2 = .5*size.width() - sh2 = .5*size.height() + sw2 = 0.5 * size.width() + sh2 = 0.5 * size.height() for pos in points: x = pos.x() y = pos.y() - r = QRectF(x-sw2, y-sh2, sw, sh) + r = QRectF(x - sw2, y - sh2, sw, sh) painter.drawEllipse(r) @@ -145,26 +152,26 @@ def qwtDrawRectSymbols(painter, points, numPoints, symbol): painter.setRenderHint(QPainter.Antialiasing, False) sw = size.width() sh = size.height() - sw2 = .5*size.width() - sh2 = .5*size.height() + sw2 = 0.5 * size.width() + sh2 = 0.5 * size.height() for pos in points: x = pos.x() y = pos.y() - r = QRectF(x-sw2, y-sh2, sw, sh) + r = QRectF(x - sw2, y - sh2, sw, sh) painter.drawRect(r) def qwtDrawDiamondSymbols(painter, points, numPoints, symbol): - size =symbol.size() + size = symbol.size() pen = QPen(symbol.pen()) pen.setJoinStyle(Qt.MiterJoin) painter.setPen(pen) painter.setBrush(symbol.brush()) for pos in points: - x1 = pos.x()-.5*size.width() - y1 = pos.y()-.5*size.height() - x2 = x1+size.width() - y2 = y1+size.height() + x1 = pos.x() - 0.5 * size.width() + y1 = pos.y() - 0.5 * size.height() + x2 = x1 + size.width() + y2 = y1 + size.height() polygon = QPolygonF() polygon += QPointF(pos.x(), y1) polygon += QPointF(x1, pos.y()) @@ -174,20 +181,20 @@ def qwtDrawDiamondSymbols(painter, points, numPoints, symbol): def qwtDrawTriangleSymbols(painter, type, points, numPoint, symbol): - size =symbol.size() + size = symbol.size() pen = QPen(symbol.pen()) pen.setJoinStyle(Qt.MiterJoin) painter.setPen(pen) painter.setBrush(symbol.brush()) - sw2 = .5*size.width() - sh2 = .5*size.height() + sw2 = 0.5 * size.width() + sh2 = 0.5 * size.height() for pos in points: x = pos.x() y = pos.y() - x1 = x-sw2 - x2 = x1+size.width() - y1 = y-sh2 - y2 = y1+size.height() + x1 = x - sw2 + x2 = x1 + size.width() + y1 = y - sh2 + y2 = y1 + size.height() if type == QwtTriangle.Left: triangle = [QPointF(x2, y1), QPointF(x1, y), QPointF(x2, y2)] elif type == QwtTriangle.Right: @@ -202,7 +209,7 @@ def qwtDrawTriangleSymbols(painter, type, points, numPoint, symbol): def qwtDrawLineSymbols(painter, orientations, points, numPoints, symbol): - size =symbol.size() + size = symbol.size() pen = QPen(symbol.pen()) if pen.width() > 1: pen.setCapStyle(Qt.FlatCap) @@ -210,49 +217,49 @@ def qwtDrawLineSymbols(painter, orientations, points, numPoints, symbol): painter.setRenderHint(QPainter.Antialiasing, False) sw = size.width() sh = size.height() - sw2 = .5*size.width() - sh2 = .5*size.height() + sw2 = 0.5 * size.width() + sh2 = 0.5 * size.height() for pos in points: if orientations & Qt.Horizontal: - x = round(pos.x())-sw2 + x = round(pos.x()) - sw2 y = round(pos.y()) - painter.drawLine(x, y, x+sw, y) + painter.drawLine(x, y, x + sw, y) if orientations & Qt.Vertical: x = round(pos.x()) - y = round(pos.y())-sh2 - painter.drawLine(x, y, x, y+sh) + y = round(pos.y()) - sh2 + painter.drawLine(x, y, x, y + sh) def qwtDrawXCrossSymbols(painter, points, numPoints, symbol): - size =symbol.size() + size = symbol.size() pen = QPen(symbol.pen()) if pen.width() > 1: pen.setCapStyle(Qt.FlatCap) painter.setPen(pen) sw = size.width() sh = size.height() - sw2 = .5*size.width() - sh2 = .5*size.height() + sw2 = 0.5 * size.width() + sh2 = 0.5 * size.height() for pos in points: - x1 = pos.x()-sw2 - x2 = x1+sw - y1 = pos.y()-sh2 - y2 = y1+sh + x1 = pos.x() - sw2 + x2 = x1 + sw + y1 = pos.y() - sh2 + y2 = y1 + sh painter.drawLine(x1, y1, x2, y2) painter.drawLine(x2, y1, x1, y2) def qwtDrawStar1Symbols(painter, points, numPoints, symbol): - size =symbol.size() + size = symbol.size() painter.setPen(symbol.pen()) - sqrt1_2 = np.sqrt(.5) + sqrt1_2 = np.sqrt(0.5) r = QRectF(0, 0, size.width(), size.height()) for pos in points: r.moveCenter(pos.toPoint()) c = QPointF(r.center()) - d1 = r.width()/2.*(1.-sqrt1_2) - painter.drawLine(r.left()+d1, r.top()+d1, r.right()-d1, r.bottom()-d1) - painter.drawLine(r.left()+d1, r.bottom()-d1, r.right()-d1, r.top()+d1) + d1 = r.width() / 2.0 * (1.0 - sqrt1_2) + painter.drawLine(r.left() + d1, r.top() + d1, r.right() - d1, r.bottom() - d1) + painter.drawLine(r.left() + d1, r.bottom() - d1, r.right() - d1, r.top() + d1) painter.drawLine(c.x(), r.top(), c.x(), r.bottom()) painter.drawLine(r.left(), c.y(), r.right(), c.y()) @@ -264,54 +271,70 @@ def qwtDrawStar2Symbols(painter, points, numPoints, symbol): pen.setJoinStyle(Qt.MiterJoin) painter.setPen(pen) painter.setBrush(symbol.brush()) - cos30 = np.cos(30*np.pi/180.) - dy = .25*symbol.size().height() - dx = .5*symbol.size().width()*cos30/3. + cos30 = np.cos(30 * np.pi / 180.0) + dy = 0.25 * symbol.size().height() + dx = 0.5 * symbol.size().width() * cos30 / 3.0 for pos in points: x = pos.x() y = pos.y() - x1 = x-3*dx - y1 = y-2*dy - x2 = x1+1*dx - x3 = x1+2*dx - x4 = x1+3*dx - x5 = x1+4*dx - x6 = x1+5*dx - x7 = x1+6*dx - y2 = y1+1*dy - y3 = y1+2*dy - y4 = y1+3*dy - y5 = y1+4*dy - star = [QPointF(x4, y1), QPointF(x5, y2), QPointF(x7, y2), - QPointF(x6, y3), QPointF(x7, y4), QPointF(x5, y4), - QPointF(x4, y5), QPointF(x3, y4), QPointF(x1, y4), - QPointF(x2, y3), QPointF(x1, y2), QPointF(x3, y2)] + x1 = x - 3 * dx + y1 = y - 2 * dy + x2 = x1 + 1 * dx + x3 = x1 + 2 * dx + x4 = x1 + 3 * dx + x5 = x1 + 4 * dx + x6 = x1 + 5 * dx + x7 = x1 + 6 * dx + y2 = y1 + 1 * dy + y3 = y1 + 2 * dy + y4 = y1 + 3 * dy + y5 = y1 + 4 * dy + star = [ + QPointF(x4, y1), + QPointF(x5, y2), + QPointF(x7, y2), + QPointF(x6, y3), + QPointF(x7, y4), + QPointF(x5, y4), + QPointF(x4, y5), + QPointF(x3, y4), + QPointF(x1, y4), + QPointF(x2, y3), + QPointF(x1, y2), + QPointF(x3, y2), + ] painter.drawPolygon(QPolygonF(star)) def qwtDrawHexagonSymbols(painter, points, numPoints, symbol): painter.setBrush(symbol.brush()) painter.setPen(symbol.pen()) - cos30 = np.cos(30*np.pi/180.) - dx = .5*(symbol.size().width()-cos30) - dy = .25*symbol.size().height() + cos30 = np.cos(30 * np.pi / 180.0) + dx = 0.5 * (symbol.size().width() - cos30) + dy = 0.25 * symbol.size().height() for pos in points: x = pos.x() y = pos.y() - x1 = x-dx - y1 = y-2*dy - x2 = x1+1*dx - x3 = x1+2*dx - y2 = y1+1*dy - y3 = y1+3*dy - y4 = y1+4*dy - hexa = [QPointF(x2, y1), QPointF(x3, y2), QPointF(x3, y3), - QPointF(x2, y4), QPointF(x1, y3), QPointF(x1, y2)] + x1 = x - dx + y1 = y - 2 * dy + x2 = x1 + 1 * dx + x3 = x1 + 2 * dx + y2 = y1 + 1 * dy + y3 = y1 + 3 * dy + y4 = y1 + 4 * dy + hexa = [ + QPointF(x2, y1), + QPointF(x3, y2), + QPointF(x3, y3), + QPointF(x2, y4), + QPointF(x1, y3), + QPointF(x1, y2), + ] painter.drawPolygon(QPolygonF(hexa)) class QwtSymbol_PrivateData(object): - def __init__(self, st, br, pn ,sz): + def __init__(self, st, br, pn, sz): self.style = st self.size = sz self.brush = br @@ -323,27 +346,32 @@ class Path(object): def __init__(self): self.path = QPainterPath() self.graphic = QwtGraphic() + self.path = Path() - + class Pixmap(object): def __init__(self): self.pixmap = QPixmap() - self.pixmap = None #Pixmap() - + + self.pixmap = None # Pixmap() + class Graphic(object): def __init__(self): self.graphic = QwtGraphic() + self.graphic = Graphic() - + class SVG(object): def __init__(self): self.renderer = QSvgRenderer() + self.svg = SVG() - + class PaintCache(object): def __init__(self): self.policy = 0 - self.pixmap = None #QPixmap() + self.pixmap = None # QPixmap() + self.cache = PaintCache() @@ -458,37 +486,57 @@ class QwtSymbol(object): :py:meth:`setPath()`, :py:meth:`setBrush()`, :py:meth:`setPen()`, :py:meth:`setSize()` """ - + # enum Style Style = int NoSymbol = -1 - (Ellipse, Rect, Diamond, Triangle, DTriangle, UTriangle, LTriangle, - RTriangle, Cross, XCross, HLine, VLine, Star1, Star2, Hexagon, Path, - Pixmap, Graphic, SvgDocument) = list(range(19)) + ( + Ellipse, + Rect, + Diamond, + Triangle, + DTriangle, + UTriangle, + LTriangle, + RTriangle, + Cross, + XCross, + HLine, + VLine, + Star1, + Star2, + Hexagon, + Path, + Pixmap, + Graphic, + SvgDocument, + ) = list(range(19)) UserStyle = 1000 - + # enum CachePolicy NoCache, Cache, AutoCache = list(range(3)) - + def __init__(self, *args): if len(args) in (0, 1): if args: - style, = args + (style,) = args else: style = QwtSymbol.NoSymbol - self.__data = QwtSymbol_PrivateData(style, QBrush(Qt.gray), - QPen(Qt.black, 0), QSize()) + self.__data = QwtSymbol_PrivateData( + style, QBrush(Qt.gray), QPen(Qt.black, 0), QSize() + ) elif len(args) == 4: style, brush, pen, size = args self.__data = QwtSymbol_PrivateData(style, brush, pen, size) elif len(args) == 3: path, brush, pen = args - self.__data = QwtSymbol_PrivateData(QwtSymbol.Path, brush, pen, - QSize()) + self.__data = QwtSymbol_PrivateData(QwtSymbol.Path, brush, pen, QSize()) self.setPath(path) else: - raise TypeError("%s() takes 1, 3, or 4 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) + raise TypeError( + "%s() takes 1, 3, or 4 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) def setCachePolicy(self, policy): """ @@ -505,7 +553,7 @@ def setCachePolicy(self, policy): if self.__data.cache.policy != policy: self.__data.cache.policy = policy self.invalidateCache() - + def cachePolicy(self): """ :return: Cache policy @@ -515,7 +563,7 @@ def cachePolicy(self): :py:meth:`setCachePolicy()` """ return self.__data.cache.policy - + def setPath(self, path): """ Set a painter path as symbol @@ -590,7 +638,7 @@ def setPath(self, path): self.__data.style = QwtSymbol.Path self.__data.path.path = path self.__data.path.graphic.reset() - + def path(self): """ :return: Painter path for displaying the symbol @@ -600,7 +648,7 @@ def path(self): :py:meth:`setPath()` """ return self.__data.path.path - + def setPixmap(self, pixmap): """ Set a pixmap as symbol @@ -621,7 +669,7 @@ def setPixmap(self, pixmap): """ self.__data.style = QwtSymbol.Pixmap self.__data.pixmap.pixmap = pixmap - + def pixmap(self): """ :return: Assigned pixmap @@ -631,7 +679,7 @@ def pixmap(self): :py:meth:`setPixmap()` """ return self.__data.pixmap.pixmap - + def setGraphic(self, graphic): """ Set a graphic as symbol @@ -652,7 +700,7 @@ def setGraphic(self, graphic): """ self.__data.style = QwtSymbol.Graphic self.__data.graphic.graphic = graphic - + def graphic(self): """ :return: Assigned graphic @@ -662,7 +710,7 @@ def graphic(self): :py:meth:`setGraphic()` """ return self.__data.graphic.graphic - + def setSvgDocument(self, svgDocument): """ Set a SVG icon as symbol @@ -685,7 +733,7 @@ def setSvgDocument(self, svgDocument): if self.__data.svg.renderer is None: self.__data.svg.renderer = QSvgRenderer() self.__data.svg.renderer.load(svgDocument) - + def setSize(self, *args): """ Specify the symbol's size @@ -710,17 +758,19 @@ def setSize(self, *args): self.setSize(QSize(width, height)) elif len(args) == 1: if isinstance(args[0], QSize): - size, = args + (size,) = args if size.isValid() and size != self.__data.size: self.__data.size = size self.invalidateCache() else: - width, = args + (width,) = args self.setSize(width, -1) else: - raise TypeError("%s().setSize() takes 1 or 2 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) - + raise TypeError( + "%s().setSize() takes 1 or 2 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) + def size(self): """ :return: Size @@ -730,7 +780,7 @@ def size(self): :py:meth:`setSize()` """ return self.__data.size - + def setBrush(self, brush): """ Assign a brush @@ -748,7 +798,7 @@ def setBrush(self, brush): self.invalidateCache() if self.__data.style == QwtSymbol.Path: self.__data.path.graphic.reset() - + def brush(self): """ :return: Brush @@ -758,7 +808,7 @@ def brush(self): :py:meth:`setBrush()` """ return self.__data.brush - + def setPen(self, *args): """ Build and/or assign a pen, depending on the arguments. @@ -789,15 +839,17 @@ def setPen(self, *args): color, width, style = args self.setPen(QPen(color, width, style)) elif len(args) == 1: - pen, = args + (pen,) = args if pen != self.__data.pen: self.__data.pen = pen self.invalidateCache() if self.__data.style == QwtSymbol.Path: self.__data.path.graphic.reset() else: - raise TypeError("%s().setPen() takes 1 or 3 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) + raise TypeError( + "%s().setPen() takes 1 or 3 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) def pen(self): """ @@ -808,7 +860,7 @@ def pen(self): :py:meth:`setPen()`, :py:meth:`brush()` """ return self.__data.pen - + def setColor(self, color): """ Set the color of the symbol @@ -823,27 +875,37 @@ def setColor(self, color): :py:meth:`setPen()`, :py:meth:`setBrush()`, :py:meth:`brush()`, :py:meth:`pen()` """ - if self.__data.style in (QwtSymbol.Ellipse, QwtSymbol.Rect, - QwtSymbol.Diamond, QwtSymbol.Triangle, - QwtSymbol.UTriangle, QwtSymbol.DTriangle, - QwtSymbol.RTriangle, QwtSymbol.LTriangle, - QwtSymbol.Star2, QwtSymbol.Hexagon): + if self.__data.style in ( + QwtSymbol.Ellipse, + QwtSymbol.Rect, + QwtSymbol.Diamond, + QwtSymbol.Triangle, + QwtSymbol.UTriangle, + QwtSymbol.DTriangle, + QwtSymbol.RTriangle, + QwtSymbol.LTriangle, + QwtSymbol.Star2, + QwtSymbol.Hexagon, + ): if self.__data.brush.color() != color: self.__data.brush.setColor(color) self.invalidateCache() - elif self.__data.style in (QwtSymbol.Cross, QwtSymbol.XCross, - QwtSymbol.HLine, QwtSymbol.VLine, - QwtSymbol.Star1): + elif self.__data.style in ( + QwtSymbol.Cross, + QwtSymbol.XCross, + QwtSymbol.HLine, + QwtSymbol.VLine, + QwtSymbol.Star1, + ): if self.__data.pen.color() != color: self.__data.pen.setColor(color) self.invalidateCache() else: - if self.__data.brush.color() != color or\ - self.__data.pen.color() != color: + if self.__data.brush.color() != color or self.__data.pen.color() != color: self.invalidateCache() self.__data.brush.setColor(color) self.__data.pen.setColor(color) - + def setPinPoint(self, pos, enable=True): """ Set and enable a pin point @@ -866,7 +928,7 @@ def setPinPoint(self, pos, enable=True): if self.__data.isPinPointEnabled: self.invalidateCache() self.setPinPointEnabled(enable) - + def pinPoint(self): """ :return: Pin point @@ -876,7 +938,7 @@ def pinPoint(self): :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()` """ return self.__data.pinPoint - + def setPinPointEnabled(self, on): """ En/Disable the pin point alignment @@ -890,7 +952,7 @@ def setPinPointEnabled(self, on): if self.__data.isPinPointEnabled != on: self.__data.isPinPointEnabled = on self.invalidateCache() - + def isPinPointEnabled(self): """ :return: True, when the pin point translation is enabled @@ -900,7 +962,7 @@ def isPinPointEnabled(self): :py:meth:`setPinPoint()`, :py:meth:`setPinPointEnabled()` """ return self.__data.isPinPointEnabled - + def drawSymbols(self, painter, points, numPoints=None): """ Render an array of symbols @@ -912,13 +974,13 @@ def drawSymbols(self, painter, points, numPoints=None): :param QPainter painter: Painter :param QPolygonF points: Positions of the symbols in screen coordinates """ - #TODO: remove argument numPoints (not necessary in `PythonQwt`) + # TODO: remove argument numPoints (not necessary in `PythonQwt`) if numPoints is not None and numPoints <= 0: return painter.save() self.renderSymbols(painter, points, numPoints) painter.restore() - + def drawSymbol(self, painter, point_or_rect): """ Draw the symbol into a rectangle @@ -942,12 +1004,12 @@ def drawSymbol(self, painter, point_or_rect): if self.__data.style == QwtSymbol.NoSymbol: return if self.__data.style == QwtSymbol.Graphic: - self.__data.graphic.graphic.render(painter, rect, - Qt.KeepAspectRatio) + self.__data.graphic.graphic.render(painter, rect, Qt.KeepAspectRatio) elif self.__data.style == QwtSymbol.Path: if self.__data.path.graphic.isNull(): self.__data.path.graphic = qwtPathGraphic( - self.__data.path.path, self.__data.pen, self.__data.brush) + self.__data.path.path, self.__data.pen, self.__data.brush + ) self.__data.path.graphic.render(painter, rect, Qt.KeepAspectRatio) return elif self.__data.style == QwtSymbol.SvgDocument: @@ -963,7 +1025,7 @@ def drawSymbol(self, painter, point_or_rect): self.__data.svg.renderer.render(painter, scaledRect) else: br = QRect(self.boundingRect()) - ratio = min([rect.width()/br.width(), rect.height()/br.height()]) + ratio = min([rect.width() / br.width(), rect.height() / br.height()]) painter.save() painter.translate(rect.center()) painter.scale(ratio, ratio) @@ -973,7 +1035,7 @@ def drawSymbol(self, painter, point_or_rect): self.renderSymbols(painter, pos, 1) self.__data.isPinPointEnabled = isPinPointEnabled painter.restore() - + def renderSymbols(self, painter, points, numPoints=None): """ Render the symbol to series of points @@ -981,12 +1043,13 @@ def renderSymbols(self, painter, points, numPoints=None): :param QPainter painter: Painter :param point_or_rect: Positions of the symbols """ - #TODO: remove argument numPoints (not necessary in `PythonQwt`) + # TODO: remove argument numPoints (not necessary in `PythonQwt`) try: assert numPoints is None except AssertionError: - raise RuntimeError("argument numPoints is not implemented "\ - "in `PythonQwt`") + raise RuntimeError( + "argument numPoints is not implemented " "in `PythonQwt`" + ) if self.__data.style == QwtSymbol.Ellipse: qwtDrawEllipseSymbols(painter, points, numPoints, self) elif self.__data.style == QwtSymbol.Rect: @@ -994,22 +1057,19 @@ def renderSymbols(self, painter, points, numPoints=None): elif self.__data.style == QwtSymbol.Diamond: qwtDrawDiamondSymbols(painter, points, numPoints, self) elif self.__data.style == QwtSymbol.Cross: - qwtDrawLineSymbols(painter, Qt.Horizontal|Qt.Vertical, - points, numPoints, self) + qwtDrawLineSymbols( + painter, Qt.Horizontal | Qt.Vertical, points, numPoints, self + ) elif self.__data.style == QwtSymbol.XCross: qwtDrawXCrossSymbols(painter, points, numPoints, self) elif self.__data.style in (QwtSymbol.Triangle, QwtSymbol.UTriangle): - qwtDrawTriangleSymbols(painter, QwtTriangle.Up, - points, numPoints, self) + qwtDrawTriangleSymbols(painter, QwtTriangle.Up, points, numPoints, self) elif self.__data.style == QwtSymbol.DTriangle: - qwtDrawTriangleSymbols(painter, QwtTriangle.Down, - points, numPoints, self) + qwtDrawTriangleSymbols(painter, QwtTriangle.Down, points, numPoints, self) elif self.__data.style == QwtSymbol.RTriangle: - qwtDrawTriangleSymbols(painter, QwtTriangle.Right, - points, numPoints, self) + qwtDrawTriangleSymbols(painter, QwtTriangle.Right, points, numPoints, self) elif self.__data.style == QwtSymbol.LTriangle: - qwtDrawTriangleSymbols(painter, QwtTriangle.Left, - points, numPoints, self) + qwtDrawTriangleSymbols(painter, QwtTriangle.Left, points, numPoints, self) elif self.__data.style == QwtSymbol.HLine: qwtDrawLineSymbols(painter, Qt.Horizontal, points, numPoints, self) elif self.__data.style == QwtSymbol.VLine: @@ -1023,17 +1083,21 @@ def renderSymbols(self, painter, points, numPoints=None): elif self.__data.style == QwtSymbol.Path: if self.__data.path.graphic.isNull(): self.__data.path.graphic = qwtPathGraphic( - self.__data.path.path, self.__data.pen, self.__data.brush) - qwtDrawGraphicSymbols(painter, points, numPoints, - self.__data.path.graphic, self) + self.__data.path.path, self.__data.pen, self.__data.brush + ) + qwtDrawGraphicSymbols( + painter, points, numPoints, self.__data.path.graphic, self + ) elif self.__data.style == QwtSymbol.Pixmap: qwtDrawPixmapSymbols(painter, points, numPoints, self) elif self.__data.style == QwtSymbol.Graphic: - qwtDrawGraphicSymbols(painter, points, numPoints, - self.__data.graphic.graphic, self) + qwtDrawGraphicSymbols( + painter, points, numPoints, self.__data.graphic.graphic, self + ) elif self.__data.style == QwtSymbol.SvgDocument: - qwtDrawSvgSymbols(painter, points, numPoints, - self.__data.svg.renderer, self) + qwtDrawSvgSymbols( + painter, points, numPoints, self.__data.svg.renderer, self + ) def boundingRect(self): """ @@ -1043,29 +1107,34 @@ def boundingRect(self): """ rect = QRectF() pinPointTranslation = False - if self.__data.style in (QwtSymbol.Ellipse, QwtSymbol.Rect, - QwtSymbol.Hexagon): - pw = 0. + if self.__data.style in (QwtSymbol.Ellipse, QwtSymbol.Rect, QwtSymbol.Hexagon): + pw = 0.0 if self.__data.pen.style() != Qt.NoPen: - pw = max([self.__data.pen.widthF(), 1.]) - rect.setSize(self.__data.size+QSizeF(pw, pw)) - rect.moveCenter(QPointF(0., 0.)) - elif self.__data.style in (QwtSymbol.XCross, QwtSymbol.Diamond, - QwtSymbol.Triangle, QwtSymbol.UTriangle, - QwtSymbol.DTriangle, QwtSymbol.RTriangle, - QwtSymbol.LTriangle, QwtSymbol.Star1, - QwtSymbol.Star2): - pw = 0. + pw = max([self.__data.pen.widthF(), 1.0]) + rect.setSize(self.__data.size + QSizeF(pw, pw)) + rect.moveCenter(QPointF(0.0, 0.0)) + elif self.__data.style in ( + QwtSymbol.XCross, + QwtSymbol.Diamond, + QwtSymbol.Triangle, + QwtSymbol.UTriangle, + QwtSymbol.DTriangle, + QwtSymbol.RTriangle, + QwtSymbol.LTriangle, + QwtSymbol.Star1, + QwtSymbol.Star2, + ): + pw = 0.0 if self.__data.pen.style() != Qt.NoPen: - pw = max([self.__data.pen.widthF(), 1.]) - rect.setSize(QSizeF(self.__data.size)+QSizeF(2*pw, 2*pw)) - rect.moveCenter(QPointF(0., 0.)) + pw = max([self.__data.pen.widthF(), 1.0]) + rect.setSize(QSizeF(self.__data.size) + QSizeF(2 * pw, 2 * pw)) + rect.moveCenter(QPointF(0.0, 0.0)) elif self.__data.style == QwtSymbol.Path: if self.__data.path.graphic.isNull(): self.__data.path.graphic = qwtPathGraphic( - self.__data.path.path, self.__data.pen, self.__data.brush) - rect = qwtScaleBoundingRect(self.__data.path.graphic, - self.__data.size) + self.__data.path.path, self.__data.pen, self.__data.brush + ) + rect = qwtScaleBoundingRect(self.__data.path.graphic, self.__data.size) pinPointTranslation = True elif self.__data.style == QwtSymbol.Pixmap: if self.__data.size.isEmpty(): @@ -1074,27 +1143,26 @@ def boundingRect(self): rect.setSize(self.__data.size) pinPointTranslation = True elif self.__data.style == QwtSymbol.Graphic: - rect = qwtScaleBoundingRect(self.__data.graphic.graphic, - self.__data.size) + rect = qwtScaleBoundingRect(self.__data.graphic.graphic, self.__data.size) pinPointTranslation = True elif self.__data.style == QwtSymbol.SvgDocument: if self.__data.svg.renderer is not None: rect = self.__data.svg.renderer.viewBoxF() if self.__data.size.isValid() and not rect.isEmpty(): sz = QSizeF(rect.size()) - sx = self.__data.size.width()/sz.width() - sy = self.__data.size.height()/sz.height() + sx = self.__data.size.width() / sz.width() + sy = self.__data.size.height() / sz.height() transform = QTransform() transform.scale(sx, sy) rect = transform.mapRect(rect) pinPointTranslation = True else: rect.setSize(self.__data.size) - rect.moveCenter(QPointF(0., 0.)) + rect.moveCenter(QPointF(0.0, 0.0)) if pinPointTranslation: - pinPoint = QPointF(0., 0.) + pinPoint = QPointF(0.0, 0.0) if self.__data.isPinPointEnabled: - pinPoint = rect.center()-self.__data.pinPoint + pinPoint = rect.center() - self.__data.pinPoint rect.moveCenter(pinPoint) r = QRect() r.setLeft(np.floor(rect.left())) @@ -1104,7 +1172,7 @@ def boundingRect(self): if self.__data.style != QwtSymbol.Pixmap: r.adjust(-1, -1, 1, 1) return r - + def invalidateCache(self): """ Invalidate the cached symbol pixmap @@ -1121,7 +1189,7 @@ def invalidateCache(self): """ if self.__data.cache.pixmap is not None: self.__data.cache.pixmap = QPixmap() - + def setStyle(self, style): """ Specify the symbol style @@ -1135,7 +1203,7 @@ def setStyle(self, style): if self.__data.style != style: self.__data.style = style self.invalidateCache() - + def style(self): """ :return: Current symbol style diff --git a/qwt/tests/__init__.py b/qwt/tests/__init__.py index 7caa229..68c314e 100644 --- a/qwt/tests/__init__.py +++ b/qwt/tests/__init__.py @@ -210,18 +210,11 @@ def __init__(self, widget_name, parent=None): super(TestCentralWidget, self).__init__(parent) self.widget_name = widget_name self.plots = None + self.widget_of_interest = self.parent() self.setLayout(QVBoxLayout()) self.options = TestOptions(self) self.add_widget(self.options) - @property - def widget_of_interest(self): - """Return widget of interest (screenshot)""" - if len(self.plots) == 1: - return self.plots[0] - else: - return self.parent() - def add_widget(self, widget): """Add new sub-widget""" self.layout().addWidget(widget) @@ -237,6 +230,8 @@ def add_widget(self, widget): plot_name, "Enable new flat style option", plot.setFlatStyle ) widget.setChecked(plot.flatStyle()) + if len(self.plots) == 1: + self.widget_of_interest = self.plots[0] def take_screenshot(widget): @@ -262,7 +257,7 @@ def test_widget(widget_class, size=None, title=None, options=True, timeout=1000) widget.setParent(None) else: window = QMainWindow() - central_widget = TestCentralWidget(widget_name) + central_widget = TestCentralWidget(widget_name, parent=window) central_widget.add_widget(widget) window.setCentralWidget(central_widget) widget_of_interest = central_widget.widget_of_interest diff --git a/qwt/tests/data/curvebenchmark1.png b/qwt/tests/data/curvebenchmark1.png index 53d69e18a0b29248a43f454fb253e0a583299c54..3fd3d5d763c4facccda05857d1484fb6b1f76e91 100644 GIT binary patch delta 4377 zcma)9XH-*J*S>&A6PX!NM8sqSq)D~VOh84N2qV3>P^3sv>E(iqh)4|vbRZxiB10Q` zoDj;4NE1aA5D6hb2t62DBq8Cu!THwrz3Y8{ylZ8xn|sbadp~ENXFvPg9s+M3f%lK7 zL>{4r=tM11kp1hMFslD?ki@87v@3jTQt&oC(z77L7(D3KNpz;DlaW2QdwWw5udk}- zcnYog&^z~E@qoQ{sVeYEmz-0F*WDkxT$OylQE+jb*1J!(X*30Sdikdt(s@;=@b=gn zrg`3#zYn=u*<;#^t({c~Y`Ze%X0H1#^X9r{{d8~@7v!Hf0wc1?7~d=j1H)N<$m`>1PJOIr}{OrIY1ZBRKM006Q%n`G5{ zn%H9GV(XgU$%AX8KRx7+rfvJmRn|A%n#H~(kaz$fak)1kRE)Co&IG@rpQ_!{uR9(w z3j-scCF9i`<)xYtha(|h6tj_J{B`(@-s&zTJSZ72+k0&E;Jemk!Jo~eLTJRc zr(GEQ@>II;!M2&rT>nU43O4oqE07m5lYEp+RxM{NE6?etUl=?#9&x$$S-WF}bC_0H z=7COW$RZle-6FPQw+WW^`L!$B-Xl3PcC~yy{sdOddFJN4PoMw$Ly(>JMaM~(uE+Jf zY^T|Iaxf)*30Gp#Z7jej>FC?PZ*POEpXgH>W<5{t$CO0<)j=T zg2rVbjE+~$D&0YY z!M4J(_ej5l2_%{*o+c0Vd<_kZ)$7d}AFnPd;sHoM%O4{a49u0nZ$NWDp3>w;$MgjuvX(DN`i2;)D}9v@LN zH2Ewf{>CTCJO;Af)+nh-+B%rkv*OhnS&}Z4?x|-2q-MY2P58-V1t9szJBEd{MV)8v zEIHk@2mwpO6B3XS2TBKDvPC{V2*H@zg^3Z&;Y$@bkgtP2)<-3WDd{^yl3 zX`fu$nt!Q1;kZ3VrIMJj0=tMmgfkWj>9t-?KH^75H9Yldq7kP}&u1ToS@0*$l+`8j z0YjKumFDp!&4DGVrkK%?Mr6qO*rS6Ajf<`2#nUlFKB*|Fn6Z~+8bL&M$@@aJCJ<_} zD54Dla92fpVx`u|NboYdr0o|LEtjq35F41+h-_T*SqJsIY>1babd^jsigiUV_v#`G zg#qKTHg3T1`fAPf$>D%=rpE}(uWpvH4;=3$wNk{#T7$)p&JoU}DVE)zNW+)f?gvgj z--8%l&%(iepWJx;yG`CCeYIO!0z9@fYwn_m5KJ$`1Rf&tz|D3=v>{AScBwY7Jjx96 ziBjpHZph^)J!D$^4?TMQHJV&rKY1$vV1Qt}e{YP%djBn0Y~`tSu@dqmhvbBvK$Ba`G#(6}bMG zx#_D5dZb5$R{gP+I{<)os$RKh$pfUxusRXyR9iHeR#muOH?SoA1TA~de?W{2k$+5# zW&wW5@gfB^31`@nwWYbt*-?Zkfeas8mP#7O;-%vJG{k@!oHpPVBAa)l2h6ffc#|v2K;&`BdJa} zBVFwZY^)l0RpUM+N5B&_n@mdw7i0r58nc-Xu2H^cChOJ@#4_1Vf_G&5*>k6Gk=}d{ z>?9#`%2i017(&UhH!{>>XX4FIhV<`W`(Dx98Hy|nMvT9aj*eSwRJr^;i@6xP)$Q$V z6z7FXbj5M@l3hvDMDlbj5qkjv?J;jgA`~zHf2&8kLoDBd!FIGdSd&2^yOGPa&hEF2 zetC`Lna-v!3K`l<@NEtxk#d1rZLhne1g&aQC)T}V_NIRF8*CeKZo$~$zh0&GBSTB7x4lI%rD->i|@07cQyCz z42cPZ6MMr7oY)WtJUoPdA`)7X($66~ky#eE$~EKx1237s9}V%qji7ZDUVr%y z3!izh=KyiTzyd2>;I)D|_^arp3hexybjCfMKnOvrvhX2K>{Yuk21$Ir3Oc8+H45gx zhFb)%zEQ(b-$lLnuA#%Kt3uPE_{C3YY95e+@9kyPj+ncNllZ??EBhJW((sID(+8pM zLsT>m75iy_WbY3|$ZNLVJt3N@GVKlc{Z*e|h(>Z&o;3ZVGM!OG{=UE@bhWwfj<~Eg z`V)6x#}s|%cITLPwI=r6WXrf-x%$r#VE7eBA=>)-dVD5Xt{9GMkK4A4NB#(qpK>I= zQc{eKnw_hyV|9U^M^*b6uU@@kcN5rBgL&u;93&vayS!l0@e1h! zWp)z!@vo9-I4bA>t0Zl7Zo#c=Fk(;_-Z0-ru;yKWYagBqZ#CFDNLG+7JgxclnP4UhFFV zxZAham&Y2=jdgWXB6F3sZC?9~JoXtWd=>N;MPGEpwWfCnLO*$}OJd1EK|zg9)pnIv zDi1*Jv-$R-!Nr8fl#*+nwdE!-acKW3vlpok9fNil*F@|!Ra|<-KXB0j;*xs}y@zKH zSvJTgInmA4yu^dcGZuSw`@d8FcooJIkK_T?z|4vdvj*RTR})KQvk8I|PPbJNkJ z)ri^6TXf{e*E`Q~iPm9i&wSbAesfB#H8GDRpvH}?MP!4jZ)?M@#C8viRWgfV7jmfqmVbiBp>|I43GP2ReGZLuQ&gOS z4mM2$H}?7SK?-cwuvT!MJ{<8Sq>f74Qc&q?K|_OS^E*9@Z1!6(7tAO3EW||vqv4G z<7w_3YYD2o?s7HEYO{dEC)ON{)8)r&+QKLR7>X7NJE)pSh|3ZiJDWh4-UJtuZlOMksn;Us*MuepJ5(TVELh z1IO_hFf&J9NIkT+K655kzrYa@_cmc=2Pe$66z?$G0<; z`1X$3_h4+8UCabo_`j!bxJ?WWy$Btp&tXl2j7<41tH*Phx8h^iG zG>n<*kslG5bVtxUvM-eeiG3_$6U=i zD6tutr4uDh+FCY#|06J%Z#W6vb))c$6V=IBrHn4NfHli!ZE-v0`J&qpma`!;LHbml z`)9(3`8xOC+?=dX^k&+m7K5>$=~Y=$K8(+Lk^BC+9%nmXbBD%fnlVsroPvQOjyID%!3wnRKvzr-_p7Gy+>!D(jAO5} zj`TCGsYS1{%fYc#Wt~r|?T;?hb$^rmyXM{F@j3ji%#cGXdxNHLdG%O<>*SxTjV-ro zPKO4aq-_isz#tV5<=t9b$_TMrH0A_ssxd0_IZwO5CtWFL36vI^U2$-LSAE;Kbwgkf z^jy0(^Z26d@S(HC=>(0c%!RO!(-zX^6alb~K42Dq%WF9U<#q00vCK6ZFbIQM$;OmN z7K;;+jcRB)6$vKHvU(SDWYiYv%;nFYf31N9{aoz!1%fo)8L_=k){QT1J>fn1dAV8* zq`9Bf-KOX-^OL>z|{!EiLhbhr*uXO1o zsRIR(G@?$E5RU;5l%JaU>q@Niyg-`V`Jj;C;37n<9rP&=m63~wy(FL=jcQn0N-p99 z;BzmzmjFN~`{i`PI&~lyEaFO2q9DB!Yx#n!YkbE4(o_FSLHiF?$!iLA_~asP!6qua j7!DAP;i@0twWFV!6~o-g-`?WB3YuQAFs!-carb`!Guba^ delta 4427 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 diff --git a/qwt/tests/data/curvebenchmark2.png b/qwt/tests/data/curvebenchmark2.png index 82a3e90edc1bf86933e91104f03970c7a0c8f2cd..fe5bdc0083c6ba99513364b3c846c1aecc252667 100644 GIT binary patch delta 2248 zcma)7XH=7E7XA>FsEi<>NEg9|jvydKmSU(uibje`%?g5)2#6CPl8>&KL5LAD)PM*W zsx%=$=nMiQAPO0JB0@q*fn_ulUSxM`m#l;P18*Z;X4h2^VMSzPRa@w*?tZ6`T!zgFp z`r?#l>(=ixtvl?L8Fz50dSp^J} z?PJhi(X+`r+$JX=o0QRJ22tMTc4F%H(n{oCJE~{c7R|iZ_eUV|XY7E6#d!u}YbsvK z8l(Zfk%b~2<<6p_qGphMI7vZmpqPkJkA<9gl1hVI-%F0IfNnlLF2Kz#5E%%ZVwv@BC2u$>WlPzD)*(9a5M<5QL3{F5xDsF31xPFJN3z5qhcjQev zRXc92Lr%~$BG^2_t&evjUc{SFw2-tGqzTo1}8;4t+EqP1Z(wRhqs z{FRM~`=So^2{k&S#T?_w?^NQ00}x9sR(})jN)WM!hKH(W-|+uD>uRPFuc^buy%LvD zmDGn71V8?mMwlnE6D2y>olWoSo&#O6BKE^)Ch0nJg}h=FF*~D3olDXkA0sl9kDpQt zehymE4{1<;`Bs0_`4pU#WFQFZ3c~Lm-w*<5i>td9dm{CJH9%k|Vd}u-9VC)1IW7bM zCU#gXmNCX!?)aTw1pv`5q1(4YulfLgc565J07}3O3jK@x_+{>AreBp3;SJFBv_p~h zak`K?rBwJ*$kc^Hi^OD8Mkerum-?m~C`-puzkADq6{#5Fn~Jp-t7G2rXo= zSQ%lQ5SxUUsyAbolfxkSj((Ji?>Rpnu~GSi#mmpWubEQF$Z>2GcGFETG+l3;2R~b3 zx%188`I?b_`?i>T?pNOOKstSF6}N(~nOj|6X=`J~i53)eN4oH#B(86H#45g1DMw4g zXzW%+`FxXJ*;Er=TqS;;^>x{vJH+nPtFao`IBBJ4B`%>NctX6drqlhL&*i#%k$0Oe z9c(qw+A4-aR9>Kv#z-W&UKeyeGlIp}sAiSB=Z-*0n*8M}YYzUi^7!t^Ge;69(4W%9 zkMyY+t%Vz8xmPGE1nz7QSn11?k0!;8Wiw44jf#b;EhpJHjCy3l&_1>dzYN@J&28(! zK$Gy%N#F20{IB$T+fpf*bp;`2Qio!m=+sr8MnYLwQD)C5^g-igLlD!%TjJ-S5yf&^ zs)(S#ylV$kS{pMfT~Hn4H+?Y_ewlM6+nWFqz}^rCzuwy%wC{|I~Dpv0=|R;SK|0DlW|iDzBh1 zlwe99;bR5z5d=8RidID>V4EONA~RfM@}FtRRYRWz&Z@~bRr8RzMXe7Fd96fO5S-cs&oDjAkqy|EMi)d3)kC zG1)t1+2E*dz3=dX?N2NZ&0NoNfr=h#5C$ueZ(lY;hH<$O!S{m#y}Z^3cZ}+ydOBOe zTE8aKoges@@+4MEvk+zEuDjkff{5Ve^Jh-r29tw5L3k@og>ub+4K6#aIqJg_2_nmablM#%$D47Az1&S7MR z5VNw-Q!D@g>_dK_v+*PV7(%7@0f4DsWBp?w{bjMg93~+Aulc3(&-{u6iINfj)+~W> jv+sI=VCzhffP7#D#QkC$(|h!gjQ{~K3w!els8{SCrdCLC delta 2254 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 literal 8019 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 diff --git a/qwt/tests/data/data.png b/qwt/tests/data/data.png index 0fc97c45844645e09a00652c3c190482b93c91c3..9318ae3765830c53774228ad93dce70e957e8896 100644 GIT binary patch literal 13118 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 E0bS47`v3p{ literal 13168 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

dJUTgF<8Lo?s zRD=jsN%zVpMv?b`HL3d6;{LW_oYAV`vATQRi}y&b{l+_|hjia!M+t#gK(Dn_b&Rq_CjQ@ig~ z^(<`ykxOBS{dwrMSli`7foMWl-F|A>_}c!w#p`ebJtgpO+{OzJj-)Y30EV{J(vr%= zFgm-Bl+ICXY&`<2Uyd%+3_@DJ!Z;mhZk-QmdE0%uOW!P@5aw&ML)9P+kB_m7k$TnP zkb~g`t?wJ)GG{W0V1dpZbF0i1OmjFbJSjdt+gwH+A3Q-juHlIBj?8Q{*~I{uGHGid`&fn@b6U!eF|6C4C; zysv7`^mj}{FutfkRLo~DptT&#ss;Mj;g>+tI`yLa4_~^!V)>uo)!$QK{(aEINh#^Y z>N-<1@IvnX`72~L!VK6}mbuQdRYoKoOds+A_2< zJeZ?~!WBxbDtJDLrVUt;xBXt>xZtBWZWrcY?BYwYd^)yl-la!_1iaWzS=IlTn;R!| Yr8mOWeUZ7`zz?9gt!tu#)w&n?5B!xvKL7v# literal 21019 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⁡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®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 literal 96546 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 z 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 MSxF_RdN&FCKTzqAg#Z8m diff --git a/qwt/text.py b/qwt/text.py index dc745ce..67a3368 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -46,25 +46,39 @@ import numpy as np import struct -from .qt.QtGui import (QPainter, QFrame, QSizePolicy, QPalette, QFont, - QFontMetrics, QApplication, QColor, QWidget, - QTextDocument, QTextOption, QFontMetricsF, QPixmap, - QFontInfo, QTransform, QAbstractTextDocumentLayout) +from .qt.QtGui import ( + QPainter, + QFrame, + QSizePolicy, + QPalette, + QFont, + QFontMetrics, + QApplication, + QColor, + QWidget, + QTextDocument, + QTextOption, + QFontMetricsF, + QPixmap, + QFontInfo, + QTransform, + QAbstractTextDocumentLayout, +) from .qt.QtCore import Qt, QSizeF, QSize, QRectF from .painter import QwtPainter -QWIDGETSIZE_MAX = (1<<24)-1 +QWIDGETSIZE_MAX = (1 << 24) - 1 def taggedRichText(text, flags): richText = text if flags & Qt.AlignJustify: - richText = "

" + richText = '
' + richText + "
" elif flags & Qt.AlignRight: - richText = "
" + richText + "
" + richText = '
' + richText + "
" elif flags & Qt.AlignHCenter: - richText = "
" + richText + "
" + richText = '
' + richText + "
" return richText @@ -74,16 +88,16 @@ def __init__(self, text, flags, font): self.setUndoRedoEnabled(False) self.setDefaultFont(font) self.setHtml(text) - + option = self.defaultTextOption() if flags & Qt.TextWordWrap: option.setWrapMode(QTextOption.WordWrap) else: option.setWrapMode(QTextOption.NoWrap) - + option.setAlignment(flags) self.setDefaultTextOption(option) - + root = self.rootFrame() fm = root.frameFormat() fm.setBorder(0) @@ -93,7 +107,7 @@ def __init__(self, text, flags, font): fm.setLeftMargin(0) root.setFrameFormat(fm) - self.adjustSize(); + self.adjustSize() class QwtTextEngine(object): @@ -113,9 +127,10 @@ class QwtTextEngine(object): :py:meth:`qwt.text.QwtText.setTextEngine()` """ + def __init__(self): pass - + def heightForWidth(self, font, flags, text, width): """ Find the height for a given width @@ -127,7 +142,7 @@ def heightForWidth(self, font, flags, text, width): :return: Calculated height """ pass - + def textSize(self, font, flags, text): """ Returns the size, that is needed to render text @@ -176,6 +191,7 @@ def draw(self, painter, rect, flags, text): ASCENTCACHE = {} + def qwtScreenResolution(): screenResolution = QSize() if not screenResolution.isValid(): @@ -185,17 +201,21 @@ def qwtScreenResolution(): screenResolution.setHeight(desktop.logicalDpiY()) return screenResolution + def qwtUnscaleFont(painter): if painter.font().pixelSize() >= 0: return screenResolution = qwtScreenResolution() pd = painter.device() - if pd.logicalDpiX() != screenResolution.width() or\ - pd.logicalDpiY() != screenResolution.height(): + if ( + pd.logicalDpiX() != screenResolution.width() + or pd.logicalDpiY() != screenResolution.height() + ): pixelFont = QFont(painter.font(), QApplication.desktop()) pixelFont.setPixelSize(QFontInfo(pixelFont).pixelSize()) painter.setFont(pixelFont) + class QwtPlainTextEngine(QwtTextEngine): """ A text engine for plain texts @@ -203,11 +223,12 @@ class QwtPlainTextEngine(QwtTextEngine): `QwtPlainTextEngine` renders texts using the basic `Qt` classes `QPainter` and `QFontMetrics`. """ + def __init__(self): self.qrectf_max = QRectF(0, 0, QWIDGETSIZE_MAX, QWIDGETSIZE_MAX) self._fm_cache = {} self._fm_cache_f = {} - + def fontmetrics(self, font): fid = font.toString() fm = self._fm_cache.get(fid) @@ -215,7 +236,7 @@ def fontmetrics(self, font): return self._fm_cache.setdefault(fid, QFontMetrics(font)) else: return fm - + def fontmetrics_f(self, font): fid = font.toString() fm = self._fm_cache_f.get(fid) @@ -223,7 +244,7 @@ def fontmetrics_f(self, font): return self._fm_cache_f.setdefault(fid, QFontMetricsF(font)) else: return fm - + def heightForWidth(self, font, flags, text, width): """ Find the height for a given width @@ -235,10 +256,9 @@ def heightForWidth(self, font, flags, text, width): :return: Calculated height """ fm = self.fontmetrics_f(font) - rect = fm.boundingRect(QRectF(0, 0, width, QWIDGETSIZE_MAX), - flags, text) + rect = fm.boundingRect(QRectF(0, 0, width, QWIDGETSIZE_MAX), flags, text) return rect.height() - + def textSize(self, font, flags, text): """ Returns the size, that is needed to render text @@ -251,7 +271,7 @@ def textSize(self, font, flags, text): fm = self.fontmetrics_f(font) rect = fm.boundingRect(self.qrectf_max, flags, text) return rect.size() - + def effectiveAscent(self, font): global ASCENTCACHE fontKey = font.key() @@ -259,7 +279,7 @@ def effectiveAscent(self, font): if ascent is not None: return ascent return ASCENTCACHE.setdefault(fontKey, self.findAscent(font)) - + def findAscent(self, font): dummy = "E" white = QColor(Qt.white) @@ -267,22 +287,22 @@ def findAscent(self, font): fm = self.fontmetrics(font) pm = QPixmap(fm.width(dummy), fm.height()) pm.fill(white) - + p = QPainter(pm) p.setFont(font) p.drawText(0, 0, pm.width(), pm.height(), 0, dummy) p.end() - + img = pm.toImage() - + w = pm.width() - linebytes = w*4 + linebytes = w * 4 for row in range(img.height()): line = img.scanLine(row).asstring(linebytes) for col in range(w): - color = struct.unpack('I', line[col*4:(col+1)*4])[0] + color = struct.unpack("I", line[col * 4 : (col + 1) * 4])[0] if color != white.rgb(): - return fm.ascent()-row+1 + return fm.ascent() - row + 1 return fm.ascent() def textMargins(self, font): @@ -316,7 +336,7 @@ def draw(self, painter, rect, flags, text): qwtUnscaleFont(painter) painter.drawText(rect, flags, text) painter.restore() - + def mightRender(self, text): """ Test if a string can be rendered by this text engine @@ -334,9 +354,10 @@ class QwtRichTextEngine(QwtTextEngine): `QwtRichTextEngine` renders `Qt` rich texts using the classes of the Scribe framework of `Qt`. """ + def __init__(self): pass - + def heightForWidth(self, font, flags, text, width): """ Find the height for a given width @@ -350,7 +371,7 @@ def heightForWidth(self, font, flags, text, width): doc = QwtRichTextDocument(text, flags, font) doc.setPageSize(QSizeF(width, QWIDGETSIZE_MAX)) return doc.documentLayout().documentSize().height() - + def textSize(self, font, flags, text): """ Returns the size, that is needed to render text @@ -367,7 +388,7 @@ def textSize(self, font, flags, text): doc.setDefaultTextOption(option) doc.adjustSize() return doc.size() - + def draw(self, painter, rect, flags, text): """ Draw the text in a clipping rectangle @@ -383,11 +404,12 @@ def draw(self, painter, rect, flags, text): if painter.font().pixelSize() < 0: res = qwtScreenResolution() pd = painter.device() - if pd.logicalDpiX() != res.width()\ - or pd.logicalDpiY() != res.height(): + if pd.logicalDpiX() != res.width() or pd.logicalDpiY() != res.height(): transform = QTransform() - transform.scale(res.width()/float(pd.logicalDpiX()), - res.height()/float(pd.logicalDpiY())) + transform.scale( + res.width() / float(pd.logicalDpiX()), + res.height() / float(pd.logicalDpiY()), + ) painter.setWorldTransform(transform, True) invtrans, _ok = transform.inverted() unscaledRect = invtrans.mapRect(rect) @@ -397,17 +419,17 @@ def draw(self, painter, rect, flags, text): height = layout.documentSize().height() y = unscaledRect.y() if flags & Qt.AlignBottom: - y += unscaledRect.height()-height + y += unscaledRect.height() - height elif flags & Qt.AlignVCenter: - y += (unscaledRect.height()-height)/2 + y += (unscaledRect.height() - height) / 2 context = QAbstractTextDocumentLayout.PaintContext() context.palette.setColor(QPalette.Text, painter.pen().color()) painter.translate(unscaledRect.x(), y) layout.draw(painter, context) painter.restore() - + def taggedText(self, text, flags): - return self.taggedRichText(text,flags) + return taggedRichText(text, flags) def mightRender(self, text): """ @@ -417,7 +439,7 @@ def mightRender(self, text): :return: True, if it can be rendered """ return Qt.mightBeRichText(text) - + def textMargins(self, font): """ Return margins around the texts @@ -433,7 +455,6 @@ def textMargins(self, font): return 0, 0, 0, 0 - class QwtText_PrivateData(object): def __init__(self): self.renderFlags = Qt.AlignCenter @@ -443,19 +464,21 @@ def __init__(self): self.paintAttributes = 0 self.layoutAttributes = 0 self.textEngine = None - + self.text = None self.font = None self.color = None + class QwtText_LayoutCache(object): def __init__(self): self.textSize = QSizeF() self.font = None - + def invalidate(self): self.textSize = QSizeF() + class QwtText(object): """ A class representing a text @@ -555,23 +578,23 @@ class QwtText(object): # enum TextFormat AutoText, PlainText, RichText, MathMLText, TeXText = list(range(5)) OtherFormat = 100 - + # enum PaintAttribute PaintUsingTextFont = 0x01 PaintUsingTextColor = 0x02 PaintBackground = 0x04 - + # enum LayoutAttribute MinimumLayout = 0x01 # Optimization: a single text engine for all QwtText objects # (this is not how it's implemented in Qwt6 C++ library) - __map = {PlainText: QwtPlainTextEngine(), RichText: QwtRichTextEngine()} + __map = {PlainText: QwtPlainTextEngine(), RichText: QwtRichTextEngine()} def __init__(self, text=None, textFormat=None, other=None): self.__desktopwidget = None if text is None: - text = '' + text = "" if textFormat is None: textFormat = self.AutoText if other is not None: @@ -595,17 +618,19 @@ def _desktopwidget(self): if self.__desktopwidget is None: self.__desktopwidget = QApplication.desktop() return self.__desktopwidget - + def __eq__(self, other): - return self.__data.renderFlags == other.__data.renderFlags and\ - self.__data.text == other.__data.text and\ - self.__data.font == other.__data.font and\ - self.__data.color == other.__data.color and\ - self.__data.borderRadius == other.__data.borderRadius and\ - self.__data.borderPen == other.__data.borderPen and\ - self.__data.backgroundBrush == other.__data.backgroundBrush and\ - self.__data.paintAttributes == other.__data.paintAttributes and\ - self.__data.textEngine == other.__data.textEngine + return ( + self.__data.renderFlags == other.__data.renderFlags + and self.__data.text == other.__data.text + and self.__data.font == other.__data.font + and self.__data.color == other.__data.color + and self.__data.borderRadius == other.__data.borderRadius + and self.__data.borderPen == other.__data.borderPen + and self.__data.backgroundBrush == other.__data.backgroundBrush + and self.__data.paintAttributes == other.__data.paintAttributes + and self.__data.textEngine == other.__data.textEngine + ) def __ne__(self, other): return not self.__eq__(other) @@ -632,7 +657,7 @@ def setText(self, text, textFormat=None): self.__data.text = text self.__data.textEngine = self.textEngine(text, textFormat) self.__layoutCache.invalidate() - + def text(self): """ :return: Text content @@ -642,7 +667,7 @@ def text(self): :py:meth:`setText()` """ return self.__data.text - + def setRenderFlags(self, renderFlags): """ Change the render flags @@ -660,7 +685,7 @@ def setRenderFlags(self, renderFlags): if renderFlags != self.__data.renderFlags: self.__data.renderFlags = renderFlags self.__layoutCache.invalidate() - + def renderFlags(self): """ :return: Render flags @@ -670,7 +695,7 @@ def renderFlags(self): :py:meth:`setRenderFlags()` """ return self.__data.renderFlags - + def setFont(self, font): """ Set the font. @@ -688,7 +713,7 @@ def setFont(self, font): """ self.__data.font = font self.setPaintAttribute(self.PaintUsingTextFont) - + def font(self): """ :return: Return the font @@ -698,7 +723,7 @@ def font(self): :py:meth:`setFont()`, :py:meth:`usedFont()` """ return self.__data.font - + def usedFont(self, defaultFont): """ Return the font of the text, if it has one. @@ -714,7 +739,7 @@ def usedFont(self, defaultFont): if self.__data.paintAttributes & self.PaintUsingTextFont: return self.__data.font return defaultFont - + def setColor(self, color): """ Set the pen color used for drawing the text. @@ -732,7 +757,7 @@ def setColor(self, color): """ self.__data.color = QColor(color) self.setPaintAttribute(self.PaintUsingTextColor) - + def color(self): """ :return: Return the pen color, used for painting the text @@ -742,7 +767,7 @@ def color(self): :py:meth:`setColor()`, :py:meth:`usedColor()` """ return self.__data.color - + def usedColor(self, defaultColor): """ Return the color of the text, if it has one. @@ -758,7 +783,7 @@ def usedColor(self, defaultColor): if self.__data.paintAttributes & self.PaintUsingTextColor: return self.__data.color return defaultColor - + def setBorderRadius(self, radius): """ Set the radius for the corners of the border frame @@ -770,8 +795,8 @@ def setBorderRadius(self, radius): :py:meth:`borderRadius()`, :py:meth:`setBorderPen()`, :py:meth:`setBackgroundBrush()` """ - self.__data.borderRadius = max([0., radius]) - + self.__data.borderRadius = max([0.0, radius]) + def borderRadius(self): """ :return: Radius for the corners of the border frame @@ -782,7 +807,7 @@ def borderRadius(self): :py:meth:`backgroundBrush()` """ return self.__data.borderRadius - + def setBorderPen(self, pen): """ Set the background pen @@ -795,7 +820,7 @@ def setBorderPen(self, pen): """ self.__data.borderPen = pen self.setPaintAttribute(self.PaintBackground) - + def borderPen(self): """ :return: Background pen @@ -805,7 +830,7 @@ def borderPen(self): :py:meth:`setBorderPen()`, :py:meth:`backgroundBrush()` """ return self.__data.borderPen - + def setBackgroundBrush(self, brush): """ Set the background brush @@ -818,7 +843,7 @@ def setBackgroundBrush(self, brush): """ self.__data.backgroundBrush = brush self.setPaintAttribute(self.PaintBackground) - + def backgroundBrush(self): """ :return: Background brush @@ -828,7 +853,7 @@ def backgroundBrush(self): :py:meth:`setBackgroundBrush()`, :py:meth:`borderPen()` """ return self.__data.backgroundBrush - + def setPaintAttribute(self, attribute, on=True): """ Change a paint attribute @@ -849,7 +874,7 @@ def setPaintAttribute(self, attribute, on=True): self.__data.paintAttributes |= attribute else: self.__data.paintAttributes &= ~attribute - + def testPaintAttribute(self, attribute): """ Test a paint attribute @@ -862,8 +887,7 @@ def testPaintAttribute(self, attribute): :py:meth:`setPaintAttribute()` """ return self.__data.paintAttributes & attribute - - + def setLayoutAttribute(self, attribute, on=True): """ Change a layout attribute @@ -879,7 +903,7 @@ def setLayoutAttribute(self, attribute, on=True): self.__data.layoutAttributes |= attribute else: self.__data.layoutAttributes &= ~attribute - + def testLayoutAttribute(self, attribute): """ Test a layout attribute @@ -892,7 +916,7 @@ def testLayoutAttribute(self, attribute): :py:meth:`setLayoutAttribute()` """ return self.__data.layoutAttributes & attribute - + def heightForWidth(self, width, defaultFont=None): """ Find the height for a given width @@ -906,17 +930,17 @@ def heightForWidth(self, width, defaultFont=None): font = QFont(self.usedFont(defaultFont), self._desktopwidget) h = 0 if self.__data.layoutAttributes & self.MinimumLayout: - (left, right, top, bottom - ) = self.__data.textEngine.textMargins(font) - h = self.__data.textEngine.heightForWidth(font, - self.__data.renderFlags, self.__data.text, - width + left + right) + (left, right, top, bottom) = self.__data.textEngine.textMargins(font) + h = self.__data.textEngine.heightForWidth( + font, self.__data.renderFlags, self.__data.text, width + left + right + ) h -= top + bottom else: - h = self.__data.textEngine.heightForWidth(font, - self.__data.renderFlags, self.__data.text, width) + h = self.__data.textEngine.heightForWidth( + font, self.__data.renderFlags, self.__data.text, width + ) return h - + def textSize(self, defaultFont): """ Returns the size, that is needed to render text @@ -925,19 +949,20 @@ def textSize(self, defaultFont): :return: Caluclated size """ font = QFont(self.usedFont(defaultFont), self._desktopwidget) - if not self.__layoutCache.textSize.isValid() or\ - self.__layoutCache.font is not font: - self.__layoutCache.textSize =\ - self.__data.textEngine.textSize(font, self.__data.renderFlags, - self.__data.text) + if ( + not self.__layoutCache.textSize.isValid() + or self.__layoutCache.font is not font + ): + self.__layoutCache.textSize = self.__data.textEngine.textSize( + font, self.__data.renderFlags, self.__data.text + ) self.__layoutCache.font = font sz = self.__layoutCache.textSize if self.__data.layoutAttributes & self.MinimumLayout: - (left, right, top, bottom - ) = self.__data.textEngine.textMargins(font) + (left, right, top, bottom) = self.__data.textEngine.textMargins(font) sz -= QSizeF(left + right, top + bottom) return sz - + def draw(self, painter, rect): """ Draw a text into a rectangle @@ -946,8 +971,10 @@ def draw(self, painter, rect): :param QRectF rect: Rectangle """ if self.__data.paintAttributes & self.PaintBackground: - if self.__data.borderPen != Qt.NoPen or\ - self.__data.backgroundBrush != Qt.NoBrush: + if ( + self.__data.borderPen != Qt.NoPen + or self.__data.backgroundBrush != Qt.NoBrush + ): painter.save() painter.setPen(self.__data.borderPen) painter.setBrush(self.__data.backgroundBrush) @@ -955,8 +982,9 @@ def draw(self, painter, rect): painter.drawRect(rect) else: painter.setRenderHint(QPainter.Antialiasing, True) - painter.drawRoundedRect(rect, self.__data.borderRadius, - self.__data.borderRadius) + painter.drawRoundedRect( + rect, self.__data.borderRadius, self.__data.borderRadius + ) painter.restore() painter.save() if self.__data.paintAttributes & self.PaintUsingTextFont: @@ -967,16 +995,16 @@ def draw(self, painter, rect): expandedRect = rect if self.__data.layoutAttributes & self.MinimumLayout: font = QFont(painter.font(), self._desktopwidget) - (left, right, top, bottom - ) = self.__data.textEngine.textMargins(font) - expandedRect.setTop(rect.top()-top) - expandedRect.setBottom(rect.bottom()+bottom) - expandedRect.setLeft(rect.left()-left) - expandedRect.setRight(rect.right()+right) - self.__data.textEngine.draw(painter, expandedRect, - self.__data.renderFlags, self.__data.text) + (left, right, top, bottom) = self.__data.textEngine.textMargins(font) + expandedRect.setTop(rect.top() - top) + expandedRect.setBottom(rect.bottom() + bottom) + expandedRect.setLeft(rect.left() - left) + expandedRect.setRight(rect.right() + right) + self.__data.textEngine.draw( + painter, expandedRect, self.__data.renderFlags, self.__data.text + ) painter.restore() - + def textEngine(self, text=None, format_=None): """ Find the text engine for a text format @@ -1006,9 +1034,11 @@ def textEngine(self, text=None, format_=None): return engine return self.__map[QwtText.PlainText] else: - raise TypeError("%s().textEngine() takes 1 or 2 argument(s) (none"\ - " given)" % self.__class__.__name__) - + raise TypeError( + "%s().textEngine() takes 1 or 2 argument(s) (none" + " given)" % self.__class__.__name__ + ) + def setTextEngine(self, format_, engine): """ Assign/Replace a text engine for a text format @@ -1036,7 +1066,6 @@ def setTextEngine(self, format_, engine): self.__map.setdefault(format_, engine) - class QwtTextLabel_PrivateData(object): def __init__(self): self.indent = 4 @@ -1057,30 +1086,33 @@ class QwtTextLabel(QFrame): :param str text: Text :param QWidget parent: Parent widget """ + def __init__(self, *args): if len(args) == 0: text, parent = None, None elif len(args) == 1: if isinstance(args[0], QWidget): text = None - parent, = args + (parent,) = args else: parent = None - text, = args + (text,) = args elif len(args) == 2: text, parent = args else: - raise TypeError("%s() takes 0, 1 or 2 argument(s) (%s given)"\ - % (self.__class__.__name__, len(args))) + raise TypeError( + "%s() takes 0, 1 or 2 argument(s) (%s given)" + % (self.__class__.__name__, len(args)) + ) super(QwtTextLabel, self).__init__(parent) self.init() if text is not None: self.__data.text = text - + def init(self): self.__data = QwtTextLabel_PrivateData() self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) - + def setPlainText(self, text): """ Interface for the designer plugin - does the same as setText() @@ -1092,7 +1124,7 @@ def setPlainText(self, text): :py:meth:`plainText()` """ self.setText(QwtText(text)) - + def plainText(self): """ Interface for the designer plugin @@ -1104,7 +1136,7 @@ def plainText(self): :py:meth:`setPlainText()` """ return self.__data.text.text() - + def setText(self, text, textFormat=QwtText.AutoText): """ Change the label's text, keeping all other QwtText attributes @@ -1123,7 +1155,7 @@ def setText(self, text, textFormat=QwtText.AutoText): self.__data.text.setText(text, textFormat) self.update() self.updateGeometry() - + def text(self): """ :return: Return the text @@ -1133,7 +1165,7 @@ def text(self): :py:meth:`setText()` """ return self.__data.text - + def clear(self): """ Clear the text and all `QwtText` attributes @@ -1141,7 +1173,7 @@ def clear(self): self.__data.text = QwtText() self.update() self.updateGeometry() - + def indent(self): """ :return: Label's text indent in pixels @@ -1151,7 +1183,7 @@ def indent(self): :py:meth:`setIndent()` """ return self.__data.indent - + def setIndent(self, indent): """ Set label's text indent in pixels @@ -1167,7 +1199,7 @@ def setIndent(self, indent): self.__data.indent = indent self.update() self.updateGeometry() - + def margin(self): """ :return: Label's text indent in pixels @@ -1177,7 +1209,7 @@ def margin(self): :py:meth:`setMargin()` """ return self.__data.margin - + def setMargin(self, margin): """ Set label's margin in pixels @@ -1191,19 +1223,19 @@ def setMargin(self, margin): self.__data.margin = margin self.update() self.updateGeometry() - + def sizeHint(self): """ Return a size hint """ return self.minimumSizeHint() - + def minimumSizeHint(self): """ Return a minimum size hint """ sz = self.__data.text.textSize(self.font()) - mw = 2*(self.frameWidth()+self.__data.margin) + mw = 2 * (self.frameWidth() + self.__data.margin) mh = mw indent = self.__data.indent if indent <= 0: @@ -1226,15 +1258,15 @@ def heightForWidth(self, width): indent = self.__data.indent if indent <= 0: indent = self.defaultIndent() - width -= 2*self.frameWidth() + width -= 2 * self.frameWidth() if renderFlags & Qt.AlignLeft or renderFlags & Qt.AlignRight: width -= indent height = np.ceil(self.__data.text.heightForWidth(width, self.font())) if renderFlags & Qt.AlignTop or renderFlags & Qt.AlignBottom: height += indent - height += 2*self.frameWidth() + height += 2 * self.frameWidth() return height - + def paintEvent(self, event): painter = QPainter(self) if not self.contentsRect().contains(event.rect()): @@ -1244,7 +1276,7 @@ def paintEvent(self, event): painter.restore() painter.setClipRegion(event.region() & self.contentsRect()) self.drawContents(painter) - + def drawContents(self, painter): """ Redraw the text and focus indicator @@ -1259,9 +1291,9 @@ def drawContents(self, painter): self.drawText(painter, QRectF(r)) if self.hasFocus(): m = 2 - focusRect = self.contentsRect().adjusted(m, m, -m+1, -m+1) + focusRect = self.contentsRect().adjusted(m, m, -m + 1, -m + 1) QwtPainter.drawFocusRect(painter, self, focusRect) - + def drawText(self, painter, textRect): """ Redraw the text @@ -1270,7 +1302,7 @@ def drawText(self, painter, textRect): :param QRectF textRect: Text rectangle """ self.__data.text.draw(painter, textRect) - + def textRect(self): """ Calculate geometry for the text in widget coordinates @@ -1279,9 +1311,12 @@ def textRect(self): """ r = self.contentsRect() if not r.isEmpty() and self.__data.margin > 0: - r.setRect(r.x()+self.__data.margin, r.y()+self.__data.margin, - r.width()-2*self.__data.margin, - r.height()-2*self.__data.margin) + r.setRect( + r.x() + self.__data.margin, + r.y() + self.__data.margin, + r.width() - 2 * self.__data.margin, + r.height() - 2 * self.__data.margin, + ) if not r.isEmpty(): indent = self.__data.indent if indent <= 0: @@ -1289,15 +1324,15 @@ def textRect(self): if indent > 0: renderFlags = self.__data.text.renderFlags() if renderFlags & Qt.AlignLeft: - r.setX(r.x()+indent) + r.setX(r.x() + indent) elif renderFlags & Qt.AlignRight: - r.setWidth(r.width()-indent) + r.setWidth(r.width() - indent) elif renderFlags & Qt.AlignTop: - r.setY(r.y()+indent) + r.setY(r.y() + indent) elif renderFlags & Qt.AlignBottom: - r.setHeight(r.height()-indent) + r.setHeight(r.height() - indent) return r - + def defaultIndent(self): if self.frameWidth() <= 0: return 0 @@ -1305,4 +1340,5 @@ def defaultIndent(self): fnt = self.__data.text.font() else: fnt = self.font() - return QFontMetrics(fnt).width('x')/2 + return QFontMetrics(fnt).width("x") / 2 + diff --git a/qwt/toqimage.py b/qwt/toqimage.py index 0c28460..88cbf93 100644 --- a/qwt/toqimage.py +++ b/qwt/toqimage.py @@ -37,7 +37,7 @@ def array_to_qimage(arr, copy=False): if arr.dtype == np.uint8: if color_dim is None: qimage = QImage(data, nx, ny, stride, QImage.Format_Indexed8) -# qimage.setColorTable([qRgb(i, i, i) for i in range(256)]) + # qimage.setColorTable([qRgb(i, i, i) for i in range(256)]) qimage.setColorCount(256) elif color_dim == 3: qimage = QImage(data, nx, ny, stride, QImage.Format_RGB888) diff --git a/qwt/transform.py b/qwt/transform.py index 94c45f5..0b3e94e 100644 --- a/qwt/transform.py +++ b/qwt/transform.py @@ -58,16 +58,17 @@ class QwtTransform(object): p = p1 + (p2 - p1) * ( T(s) - T(s1) / (T(s2) - T(s1)) ) s = invT( T(s1) + ( T(s2) - T(s1) ) * (p - p1) / (p2 - p1) ) """ + def __init__(self): pass - + def bounded(self, value): """ Modify value to be a valid value for the transformation. The default implementation does nothing. """ return value - + def transform(self, value): """ Transformation function @@ -80,7 +81,7 @@ def transform(self, value): :py:meth:`invTransform()` """ raise NotImplementedError - + def invTransform(self, value): """ Inverse transformation function @@ -93,7 +94,7 @@ def invTransform(self, value): :py:meth:`transform()` """ raise NotImplementedError - + def copy(self): """ :return: Clone of the transformation @@ -116,7 +117,7 @@ def transform(self, value): :py:meth:`invTransform()` """ return value - + def invTransform(self, value): """ Inverse transformation function @@ -129,7 +130,7 @@ def invTransform(self, value): :py:meth:`transform()` """ return value - + def copy(self): """ :return: Clone of the transformation @@ -157,10 +158,10 @@ class QwtLogTransform(QwtTransform): * `QwtLogTransform.LogMax`: Largest allowed value for logarithmic scales: 1.0e150 """ - + LogMin = 1.0e-150 LogMax = 1.0e150 - + def bounded(self, value): """ Modify value to be a valid value for the transformation. @@ -182,7 +183,7 @@ def transform(self, value): :py:meth:`invTransform()` """ return np.log(self.bounded(value)) - + def invTransform(self, value): """ Inverse transformation function @@ -195,7 +196,7 @@ def invTransform(self, value): :py:meth:`transform()` """ return np.exp(value) - + def copy(self): """ :return: Clone of the transformation @@ -212,7 +213,7 @@ class QwtPowerTransform(QwtTransform): transforms a value of -3 to -9 and v.v. Thus `QwtPowerTransform` can be used for scales including negative values. """ - + def __init__(self, exponent): self.__exponent = exponent super(QwtPowerTransform, self).__init__() @@ -228,11 +229,11 @@ def transform(self, value): :py:meth:`invTransform()` """ - if value < 0.: - return -np.pow(-value, 1./self.__exponent) + if value < 0.0: + return -np.pow(-value, 1.0 / self.__exponent) else: - return np.pow(value, 1./self.__exponent) - + return np.pow(value, 1.0 / self.__exponent) + def invTransform(self, value): """ Inverse transformation function @@ -244,11 +245,11 @@ def invTransform(self, value): :py:meth:`transform()` """ - if value < 0.: + if value < 0.0: return -np.pow(-value, self.__exponent) else: return np.pow(value, self.__exponent) - + def copy(self): """ :return: Clone of the transformation From 5a825dd1236007c491e7ca1965946d958383bfd7 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Sat, 15 Aug 2020 23:26:04 +0200 Subject: [PATCH 141/421] Enabled antialiasing on some curve examples --- qwt/tests/cartesian.py | 2 ++ qwt/tests/data/cartesian.png | Bin 16647 -> 51093 bytes qwt/tests/data/simple.png | Bin 12464 -> 32700 bytes qwt/tests/data/testlauncher.png | Bin 97406 -> 96839 bytes 4 files changed, 2 insertions(+) diff --git a/qwt/tests/cartesian.py b/qwt/tests/cartesian.py index 68dc4ed..e73430c 100644 --- a/qwt/tests/cartesian.py +++ b/qwt/tests/cartesian.py @@ -84,11 +84,13 @@ def __init__(self, *args): z = 4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x) # attach a curve curve = QwtPlotCurve("y = pi*sin(x)") + curve.setRenderHint(QwtPlotCurve.RenderAntialiased, True) curve.attach(self) curve.setPen(QPen(Qt.green, 2)) curve.setData(x, y) # attach another curve curve = QwtPlotCurve("y = 4*pi*sin(x)*cos(x)**2") + curve.setRenderHint(QwtPlotCurve.RenderAntialiased, True) curve.attach(self) curve.setPen(QPen(Qt.blue, 2)) curve.setData(x, z) diff --git a/qwt/tests/data/cartesian.png b/qwt/tests/data/cartesian.png index d57618c89e8a24b0506414922e6486b817a1a40f..9da6f649b0a19b469f2d68122eb64829bc835662 100644 GIT binary patch literal 51093 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 literal 16647 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 bpChsp1?!<08WvuFETpM+`$p+?RN(&u0ugMb diff --git a/qwt/tests/data/testlauncher.png b/qwt/tests/data/testlauncher.png index 1876b9494a0d94c2e7270ff7c608b3a8b419df17..1fd70acf4bdc0ab40a302aa2ceca3049eac78a72 100644 GIT binary patch delta 80928 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%0D)P)AQf8sjgAHx+A=Y2>v%F!|qO z?9^s^pXDOH7M&qZn2QFIy0uLNq5{XK_VWbX1gE{~?WI7pK>vHTuYLL9kYKa0QxQ>- zMq5N`63Pu4h@S>nK|5bBIWI^4MtYE<=CHtC{;1AF}QkZ4Lp`w@Jv;m+J=9>y1%>C+qIQ`yyV}aLz*S#nUK;qYG%}T+JZ|FXkN4BN->Ze(c$GqU1-1hg)Q}RsQ3&A zJ8Wt?GBdMU@ulh0w2PQ5CyQ?4CZ8?&X-BP2!_R+ZOx-AdN?fJwPF)}3J&gI(i;<~* zuL=cvw6CcjD4RF87RKCiqOdAq%c*hcC&V3+G%EWSQ7Qbiv0*}PGt>Eow-ja@oj>zC z0T?FHumM3=LFiRPevr4thtDesw%4ec2RJvby)*M%5-t8~jsNcK8N*p9`Z z>E_(9)RGm&!5BBPB<&$8m|@F#;1RZX4k7=`kC%mM;U$bw2*6Z?Ww>qLnd*V`d+S2P zmBxtQqYZ5$@j@&t9GvK`w7mmHa%EX4fnMtCledVe?oIY2mf0f>n)JmndUIiBrD15X znaPC_P`Zh`MmjZ_Hc#4wp|Wxd?6;r;dOb_7(Y@*%h%SScT)V&6|3uiZi0#Gh&ldy3 zz6qc%8Ge>A{XLzvz{<8|%?7J+%RYT4_i0Vq_apjoH*_&$VbZo-Kxjh@`T3Wb2f&|e z`SyCxs@L|1J^}e{O0bfOw}q`< zfpb@%b40BqlA}eV7^Eb1d77VZTHci|1pAHTuvh#;FzItEchB&7i)KtXm=*64=Lj>} zMvkTMX^!v<5ET`YWDxC#;o|d(2EO|LL@$Q@E*%rQ*%=(FiU*o^R->RklGxK0cgFxH z#;FP&2qUA($0r5&Vku9>ux=%Bv`|A|^Q}j|@*oSFa9I#2^vWYDh{s6UVp+4aENRCE zz=wS&`P@c2H9@+~ut8rh+q{xNp#o;>k%ol+)DtkeBgP}^@Tt`Q&sitN0-%eFC5k5= zM+TodiCU>ic2CLyD+Z?Ou{V4+Pm6>UICx7_!=HNnU~_h60}4Fp#%dO`jyq_=2j_?M zxA(fZEY33HiegQ1uB8T*_7ryZ#w9A%ysz^Ok#o|fQ#H~vhi{TS?Mqib7W`l{c7x
Cn)?Dl)j|-Q7O0m|gF<&TxY3dD-lE_-&oE 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 literal 38415 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 literal 40598 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 uopwoPe$3dReO%vL&m?`tcNSbd50aS%3Bd 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

dJUTgF<8Lo?s zRD=jsN%zVpMv?b`HL3d6;{LW_oYAV`vATQRi}y&b{l+_|hjia!M+t#gK(Dn_b&Rq_CjQ@ig~ z^(<`ykxOBS{dwrMSli`7foMWl-F|A>_}c!w#p`ebJtgpO+{OzJj-)Y30EV{J(vr%= zFgm-Bl+ICXY&`<2Uyd%+3_@DJ!Z;mhZk-QmdE0%uOW!P@5aw&ML)9P+kB_m7k$TnP zkb~g`t?wJ)GG{W0V1dpZbF0i1OmjFbJSjdt+gwH+A3Q-juHlIBj?8Q{*~I{uGHGid`&fn@b6U!eF|6C4C; zysv7`^mj}{FutfkRLo~DptT&#ss;Mj;g>+tI`yLa4_~^!V)>uo)!$QK{(aEINh#^Y z>N-<1@IvnX`72~L!VK6}mbuQdRYoKoOds+A_2< zJeZ?~!WBxbDtJDLrVUt;xBXt>xZtBWZWrcY?BYwYd^)yl-la!_1iaWzS=IlTn;R!| Yr8mOWeUZ7`zz?9gt!tu#)w&n?5B!xvKL7v# diff --git a/qwt/tests/data/multidemo.png b/qwt/tests/data/multidemo.png index 770afbd7b7f399bc60c690714bbd69367695eab6..623c2e02514f27711f43abd456690b3dc8e3656a 100644 GIT binary patch literal 6944 zcma)BcUY78vJRlDfC^DM3P@F?7XfK1y#)cO(tGcrcSS;9Kzaa?wh)SdbP^PTfHVOC zsgclwH0dSeeyqFa?74f+x%ZFnNuDp0`6V;&yzk6>(N7>sSIHR2Kp@an6=ivC5QykE z;L^EF4BVNIq|g9fNZpkUy+ELA=<|yx_1-l`5Qt$|MgGxKKlu8Lru`Hyt82TYGswcpAK35a?9z`f(yk?@X=jg)%L_3Xj=hD#ebp2IxCg!C?>G49Z><)CtI3G}eH zkqxzpX_K5KEXxx7S5PDCC3zT;>@`bfQYKk~uIak8Kj!oupJy`?uWQj~YpqVX^bi6npYwKmW;2mgTb)vBITg$i6?b^xTiuPsN9PTH|LmFsjnUMOVe!~ZrcHu}2@Pxr~v(DBevcah$Hs0l6D zFeKM-;>0~Gkmp|JvQMf}Xf=mhn{iJwqG;c1e}_rN6r8lElu)&?zYc;mZYxQgL81El z{8_h@)@nk&IN#6am+=nFs};fMU!ruBp++q#Y2pGGXNkR_t-(PYfJy6Dv!+u^irP`x z&|B4CM!Ot?*Ay@xW>%w828PTwBj(c?c5omT*4zQy10&hyuc7S^xNK=k(cCrN^lYA#5(%HC1h(gxa;ii7^~Ue=mvQ+Hqe1_9-nC(D35c9!+C(irn-5^-O_F}A?E9gmrnTbiBd$ds4HxKmxA1>#Jf^?%0YXgb0 zXDdq%p(j(A2v^duJ2BRCH2_|5set@O52oBO;(loF_c8k)AFzL%IUJeVa1Cv0Qr z(YU#(U>Y<1w}^xGabd(^p$hNEv*&do9B1Awp}Zwixo2E%uC5`+t0jrdvJc)_97}v& z#(4+MdlKGEw0_k*6TseeZpt&gEI)6=J?JA)L=GU_EG^9<8KmhuUy%LxAT9}8ODj1uNYdnKRU^dFwC;wsy| z;&QIoo7Zn@=|ndKcxoO%_H+4ooZ)ciceDl}_)`DsHX)mP4|F%zry346F?p@;4;{K& z;_=2IOWwbVJAU*m8NDXcbU;~p@(CH$S~8`1fb*=We*5+XHM-2cPAu{k77(7IL zB48)L0UJnvCep%Kcoec`ZFTbQfa46WS&+^!{pJ15nf$G~weAteVqupo=_%hz;VIuW zf^#8)|Hol|_xPZYO$lEPL^kMfYdJ3z)zst>SUx^ATE{3QaJ6aoW|=b_Ce3RT7}LAB zoS8Zhz7Ev#i93+vxmD9(^U1#O(Faog_|CD#^m|9gM?JCA^Su-$o_mX)mTf+bE*)vi z(n%@tk?T51dj4gKwittq%g~*4Vr1n8q0(XXJU*23#)X8@XIN@utqI>7AK$w_H~!+_`ZRzRh+OF{r6`oE~7*Z|tq+b>Q+K_xj56?!uyyHf@VDk8E;E@0o@` zU$sjI<5;c=a&*?rjGscD#gNv%3Gmh8B8vc(5+6Y%`!^Q! zh?;3|xvK3KiW*@g`-mEGZlq5@&&c|IAvht!G#NN_uw4SVun>Ja!_@Oaary;La?EbB ze%Ii%MpVacGOId2sUNs`m7_{VZ%w+uV_uW?ryC}D&zjrC>AMN59QnT#r_0jPJe zm==`NIz9L0Oj+&EF;>lPd}kvXA}M7i-Cfj-P^FDC=7tqdRvFCn>#LtA1Q2rHPym--tNC1f2>2wjsCp}OkeBqOaVm1gtu`ti^BJAszw zvcm~^_^(U7>IhkB864XcZ)k<$(UwWSa~0CuckG!a&cP0S+=BCgI&}s~@>q^>^BuF? zvMu^*`lXzj!q<04TI^(82jTrG!9nkPE(B+D|1N9Y&VVrEvM5-kvf|1wHCh{M8dvH@ z%HLsIcOQB++M%&JA|RP+hEZQpaMHr?bHOP>o)WLwJs;UmC_0f(0b<>(wiVia>5OCV zYfKAVxqh=-cYUy?_1bkV#k&59(3OIx%CX93SGd$@RdYBrYN5i}-Ugb>x<-j8gwdOd za*n_}iRO)*@kxGLx+3RE3;e#?=I-~7mV-FsX()+1SKXW0H2%p;%B%fx_iay{GN0=u z3}5V6k&bh`*mGyMvs|lQ^UXV1>ysg)ZLwua2qScDf6^31onQElO{yjbobNiP<~DhY zn71w~*K^2v-$wPu5EBoFf_$>met##rQNPD|(&op~l=+;)Xi5LvHDzu)x|iG9DBa%0 znIM}LseI)C(V}Skta<4ITHh(qAy=ll9XUsfym}jc>QVAjw?3oDyC(KIJR9ips(Sy# zfO{jh9BnPnD#vJjRbN`5Ek)!%2%-#C`J`7)@#c5$T26*K-E-=RaTpt5YPP@Fw^p`?EW#sxN1>=qsTGaVFEcB$RZa^`VHt zAp~`;U_Lw{t>+eGEs-p&jnjo?G;LWX5SXtDNiDdszpCL*Xez^ z)@Xa6;@D}~zadG%KgDFOQf{lA#W}jOY9wUgL3{OK7^e$i?HTQ8(J1wLak(I6t)$~C zsLA-Ar|!F_+$n)gX*UC65I!#{OlF8CEgz$)N~w2z%lvKy-@{$?a}?zjJ(17bF^tsH z=`+&Wbcm5wUcp9k@yS#ZUH$@F$DB=b`y-S4((ZRvvFR(1$JB*47L&{5xF{q0IGw0# z^?Js+b0nWt+_JYrH@Dr~zN)&YI^jKhCYjksQ!|o#ypqD_J(i|UQCJ}TMXKiet|$kP zr&nIc*qp{g^e-$=*y=-ZHp^COJP=cr%BL$*ZK7}IFe-YyUQcj_fo8B0C%f)xV0zhc zmE&nTjImkvT=8G$U7iJXR^ykWDmSFOs{->zblJV!!mwY@b`ZpXOkHOgJ~5%sIW<^E-u+w1nf$i(F(%>Z7vkYHJTigLA)E94z6}gIC zm@MZvpPilcX$@76uv(i%>M2TwnyaEqW5qR|*EV}SelW*|72)_fU_JhpC~H(8{C)<^ zMN7;uueNvv6)w(jD`l0kq#8D|D~|ogDApeCL4ODn*ANNVdy>PICBmQ%a%l{B25+o1*_-3o0Ms8>e?C~S!&r$AoHm4O}}XNmjQE6?B0Unxm2(w^U*au#jxo?#moddw*}vWJ=&f9rLgyCt7&-taE&*R**f_iu|Pg(^FUnvzT=k2NTsXv<%ch_aj*{G zSzAUZ@}+*F9#~fbZdv&~{e|u^;LEh@P+Ov-dvDfMBTrJ6m`^4HCf=k3Km9f?CRRRG zq+7`ssR_Fgu{dsM!Ye0s0d*U4nFcd@@%7D+@SkyRdmop<0&!2QbT#l;rv}n|taV8I zvGdY-no0kCe?Xog*N3_gUhB6(Swafaq2M!DRHx)>RMHny{%#H+a)J48BY*x@B%^E@ z5i_{t{?E^dJANKPjhTLU{^c$)G0GbN2#3yp+aG{VRHOXHhGl03)(T`l0z3<}#$o{_ z1Db)dO)#Q4yD9^FnDLM4#6s(>>59HXtEX3j-Q%9{K|IAR$6k{}VQgNJFUSZG5YP9rlMp~r!Jeo``&9;_93GpGK!Sez=96&a}-MCwXUxEGCvwn$R@#z(OHCgV3N5wE97!SSEXx< zlI4skS31+K^sCvvuae&{sp0W7el!Pal&}%?PH7;sJVB&8<*v~Nd$m6NooPlI;{(s+ zK4V;unRPBLe=7#+>^6i508l^m^#Ic){ABdw*vDPdS(jq)`s#v7 z_DeymD4!gBiO1B#vtu3_WNWE)13W}?W9di?TygTNuC&y%sfnZxxsr=b@5wsOU2T$Q ztize?wV@%c2izm3V2FU+& zMaJrDuOoq^NztHQ`0F(Y(U<0BM)&95am*xPV`H_{^`)?h%4oleeL=tD=Lsm|(;v;b zRqSLpA67(NFF2yr{qB)7;R$Wdsz&)JEP6aQ6!4i?Js~7{>ceHxmN+MIxln?E(Ap0 zzY}%^pa$F6-&2TM(J2m$Fnq!Wp_0*D$#}1Xc3Aqywhz?=Cf{$2o1EdmE-+riqQ%6D zX%E!psXQVAy`ewWu9)9XvbM6sP zomjJM8uDt>l`dx|dubsqMWeNS+}aWSGjnSTlQEp!Dxe@(Oxz8Q!f4;Mr!U) z(bo1a#Utg^vFz9;#MB1VpkchH=n_8BaMa}7lx6-cCgD|M(8oEY|E(hq)nzS5*&5F? zUMf<(w1w$d%isPFDgp^XWUwkAZDn~g<3Hp+IDU+gyA9F0ek|TJ2aV%T6^=9BTp!(S z>X-pj;|E18|H34KP0b={g7F3vk>Zih(Ab6dRkh7VFJ+Xw6-uKX!yogjdU(F~g`OxJ z)xvp>C2_FZ5Q|QJfdiPY`h3Fg@M_XX%1~^L68gm>>v{Lb=*r4~H`8*DR^){NB!RVT z3De;Iw~D`bkV%u}1qjwD2$T;!gui)s)Lvq%?xIERbb+!2_M~xZrlrJN-6e_4={GP} zv^IRnU(YwU+g^#Q+?jF^rlTZ}EnEOI3*Or5Vg^s@M_uz^po|p1>qF#4wXfiHW5TJ% z8GYBd{T5d$pZT@zE=n5kY6(Ez`8TlQrGg)6$10c=_w_7e<3D`#;4k-x37jLx&?LTu zm`->jVJTvBu{uHI%=E~X+1rkt4eTDxEdrf)6CxAij(@AAPn{|IgxY3#!3h!M4$7a% zMC%w_a*B8iCl=ilS7_S;e>TMRBhVh%U56EspHHz=6YWY5m+fD72)Wx)0acKt1ZRa3 zc{!i;TNWJXWcaSLK$65d#3Rp$ZHMWp6HZ(*XG#>|mK@*2Bg+wzr+ArRdI=Kd2{`U` zhuYxb=v=Hh*1KxLIlv`}5OO#N?B$7wT6{MT3>6Z@JM+fHBiCS?RiXH`*6c8ImqB+W zHMr%V7rb5furRc+cz$ICb|UB3)}UZ}_i1+QNf&0*1?=|fR9Xh)Sa808ZG^a9n31)_ z@0bwc6oS2~&%U|;b%zUS{0MAQe)&t6`Im)1X@4RWAePmftg8`8YDXxa-_@Hn9QknB z=9Pp9%MaWvjXGRfwU_HuaJCcj3HGsWlVb4FLnq- z1cYz&W<07ma;~5dU*9QACV+f!}V9d)Ej1Y+aB$3S{AKikZ_2a$%s}sNik3drmu*= zqK|H=Xj_)xsE*pYoOCr*l>vHIN*gnJJ_xb+yf#`gSGoqgC&3x@(|9n%imMoqVd6wS z9k&!|v&b<-**Qr*3Tdwso)Em!AwYKhAtqmIjADInv)h7&K<)vw$gs!ocCABTXsvSN z1-GPM@2;-aof*aOrV>vO4EBUa$`_#0W`g~yAq|d4XV+KvJrsO(j=GwWfRMdAmdRe7 z^uJSpWAey)As$(<SL?RyG#(<8%sT`P`jtQ7wjn<1xrs8)r z?RH|7=UZupwdfCEBL--dc27?^?WXpoTp&2B5p#i<{OxC*RCjTrC$^LpWP05C%`>BW zZ@$JK1d~9;+LW8k<(=lmSs+$mu8^FIVG->>*A_9SKHeg_ERQYTyCfy;G5}7zRk!R+`A^)=M zX@!#b42_i&Yn3&JrDSd=hNXH|r2onJIX>$rPlRD-QmChJjmxxq@lL&UW%sM{rpbmn zPTEJN``?WBzbfw$i>C2(fT9JS;Yk4CK1T#&h}-o5K=QrW)9<)wc>s%gB*698?bIrA zEJ}c$_nTCD41d1D{9$u4yLIC2*4Ba7o@%dU&5O3*9RVSl!DfL8<+80i)3EN1y+?Knx$H%vMrj^J)P8#9|kO3)_ zS>Y@DUp-s#a(9~*0+f8d?|kjcHvd$XS=d@1&HZ?t+rp3SfT%oRiQPyW>ByhzL&^gl zz$p7T3cAMTk7FO+Mx^d6t_>pw7M{7zZ|W~}l8F*aH}Z2HS;AmWEx)a?<%p|+BwF3* z=A%cb-L}c=qZ!BgVHyix4IrS3KUy`H-6E z51Y<`!4Y6WH+N5#jw!RA0urr(bI0;lw8f3te~yB&hL9)}b%kF8XTd4AlN3Ui`oQ&3{vt3K8@sI!^o27I}iZ`U6i-qi)ryX@@(&;w`mlK{L- zaKgX%_P=re*8zROjV3&jZmX*GXr~g2IHSU9U9}n6J$M&j zJ|g3lgOAqHuP!gESR#5mS~8Q?f{ynWa$3{36M0iaUt+)H;kz@a;e=SBEBn{|XXk^+ zd%b95bGJQBb+qjS1)M*AG?@fKh(x0D!DdI2u&!4A;D>WWGV}K10`vx6c58h+S=Oy* zICEOR6+#tRP)eTLdFie6u9&8Exlc%G<*Q<_KVf(8%a^In&Z!qKPf%T{`}4B7WQiYs zs>T0+MA$mZIsj5~Sx+0*ZcRe@CZ&?gz4kk&4Dtx_{<^*rj5)2f6Pogje#f%4aj~=Q zL7ZMkk8sD*e$olO9kFT4#9pQ7Z|i+4LV?u7*F)RA{f}^}!TVO5BkSSQ$m+=G`f8OR z1t94M-ZF;^{?PWa0Hb+65!LoXoYD(~6SHXQC-0(!3{d#qql}m?Qf2Hoi zMtpA7P3hPB3!FL?UQ3KXfrECPMam+&FftBD>zq0EvA4i2_@QFM=y(%* zcF>JIF@nxMLz&?MqO8RyIMA(n*()#d)!nK#s@Pn@X^7{A^0bn@#E^~T|1-|#m_$^v&DHkj?39_%jJN#nkDO{*s% zE!Ul$nh)^DSxqc&gwo*_TPK0*wtNmzwpXt(;Y0j+=jS_Sp+F6BtDV$axchX=TjQ!a&=r|8 z^VUM@o8wj3s$jw`O4HU_TAP&|g}IePOE!_IvT3ljJK&}dQxi6I6zCn-H-mi^b z6{O-3$+pHLjaw6?`n2I1Jv&Yy`7Bxu4@`&R|ibT731Omx55 zBJlC?enDEZVlcbY9j<~j7RqXPV}^7je8~;ZeJj4)IBIVJc z|C%!2*A;difWjGN?X!QQeg6eN{{OtPUFazb=;kT4mT5#YvPS10=9W~PHGMg6(wYr% z&N12{jA?mRmuO54eV6x&b95dLWX87|+u5eR_(CnvQP&h})=RsoRp@Ty=&@1H`SXdX zeIa8%DWu*9oX%D1K5REWc=-D$ruSw4{;-BN z<{#;fo);1=oy|dc<2M`iOESkhQeub&!ZbMPjx&t|8~9Xe2)5Hc=Xpu#nn`&zBgDUc zw{hH(r@0&5FSg^2*}!^n);`ro;p)P6?w*rym3W{;pYof?wK(O42gs-C{c)P)ULiGs1n-ZHJH zJF=hptudA`1-~DPk@{lF`l)F{z1&*Pp!bzd6DR+`*y-I7w9aI^aHm#_eTGf7#ifME z3*yElvKrcByE6k?-)$9hz1bDW@8@9!c$St*xFxZou|rn6&nADNI*3>vuRy&?xaQ8r zH~~<&k9c|k!+{%pXg@t^xb6MYNQoO%{76;@Z$HGVZ4=0EZ`6Bu)w(`s(zYqq^3c8B zVT^mZ9}@KD!-oq73WzMzcP_J{8%-@#I@99i^>&}CN*(z#>P%UfL~s|5#Kip4wvgsR z_^j0-MlAZs34gCLqre^)g|@GabKFSB)2L~UMD=R=f0(b{&sYh>1-uI@ax7%eNEp7m?8;* zG;kXCBKDME=WK$;mtk_y2$#`)TOQMoKA+Fc+-0>OM%l3eiM!u2Ci5oc`qz7n3ym`` z%Q<>GkK@L?5R<72kLiqvF%oyqI=h@(Cqs9IF5OX@GT)YVJsf+{Dp@>~*;lZ-t8e2t zsX)iZI0Qh6WI%4Nc=^yL*72r^BGnrF95VWBS}a6TqWGU72JR%VV0PYb>aZ^q`CH4) zH3)DUAtdX2)-M>zJU}dY-EWLlAK8!}5SMRm)c+yAmLZf?iZQFQA^_-Bno~DIRSKQL zDpr7Y!;c29b~~`YdU~Zi&aTm-0*7O?akhVr=psc^pH;jIb$&t^05FO5%r&#B|i2 z`(*jLjHcUZ6)Ta{#Wx9_t8?0%A@zNuXZLY-1D8|r94%vI@fOPUbxf0KWoCOdtEOa7 zoUx;Ah60vIUURu8ezv~VO@_-4^17#17O)wRex!~9*mBZpem?zs@iMCUyzxWAAn}Z)1I5m4w7$mXPzU&cKSx1e~ zpkf5UFGhFM|{&7G4Jr)>N6eM2s% zh#wb)&mj8Sm$?JA90)2Xnzrv4orz{qsmE{B&!a?G{w5pBr(w%u;+vD){Srwd@Sa0aUS!o!p5AL$b^c{URWf&u&P&T3zrZsSu$ty2A4rgbxfU5;Ws zuG4Q5n14;q^NN>O74?-dLPF$%l1exX-SN+C>}l)7M>F+YQU3f!Q;cvn^iEf8-3{ab z6%xjrczG+P5>sC)qf>3#;8-JuX9h2qAL56b%iXDG3)P-zfB9RlZZcE1g&} zSHM~a(W8N?wyS!1ZiE&@!tBi2kZvIL$f2G>jjZP#AM;J@vr}yodjO>>6MW};0-QDA zbNMFlP?#T}8Y89TbX&)OxzOFIX17qH*GD7WZ&9HQCC)Xs5Dio`>8`+i)R+T$Gjm_; zV*hCds@V!E_U|-g7t?^h`S>QH@(EE)1NF(T!y-x>eQp2-^TaHcTnOa_->39+skON2 zpl+V`NY;~ysnq(hbEYAra=3EB7Nq6rzFTtPW*Cs~>C;NWsv)|}?|4cavZs7nObz~~ ztOz&p0^aAWp2p9Qq9H_K%^~FvWX~k=%iNnbSc!=aDc27Sh>YemXcM?G_5; z12#7PuiQ87*@e3l<0nx^NZ1^NUgQVC`BhJ{<8wE!3B#B}p9B80r)8t$87d0S?y(?& zk|Y4-?)$$b&VQT?a1$zj;3SK)c$wku%v!TG%zziA30lE^f%#CtA)^0h!VUi67+}!tP3r7sUfe-Qgg(B&y{n5WYf z3b}E;%S|NmV0giiJ^mD52XR>r3>w`iw#)1=_C0|^apDsa-!F%@;Y{OT&v#z6u%sa&SPS|_f&Rk<_s?7> zxb*#ET+SAg@tsu!qXPk<9N3M=Z45_Bb(VkJSKvGIaM z4S?VaPvVkGB(+Y@h0m;DPyJOU`E?Go^hj)ADc`-3O3Md^e)zMDa^-UjoELmPj_O-C z%^&^L1-{ki*}S!-`8^CVZ&4W5u^lx26jxADaHTTD9BB2#i`jc0}K!=lMijLsa%cTb{l zp0xf~*w+vYP6)%@L%`NHh)(J=ZS{%GcK|lBg@qX&2RXzzsU7~dO$t@Tzlj*wNU);> zcW2)uVLlF1?c8KjqXx?J66-@(-L~cSdCR5qRs}vRp#i1kx0)6Gq1Y>u)`=aB2-Ib% z-6}R^Wug$5ty>=Gfnk*P0~q=WR14HCAzQMe+GKO3*6Y0mMh#RpJn{bg=SwF5@sHK5 z%&@_biC(KcNT*O@gF)M86x+wj4LN)Z)Z~kCBiBf z%M5{>RN~Gim4{gbRcbDufttylXj6F07u(txbz=%QR+sqay!b;B=7?O0N#)woD3Qgg z%Y}gdpbOuLRd_9(Ct4;jySE}>V~d6VBub@`O>_MfLj3#SPs>35u^A{O!WfR_4!JI+ zX64F2dqUPxBCt2M0bX~}AdpP?lWBRR#HS!6dnF9#-J0kHxog|tW?M-{SK z1d?7-8TlqAQTl4VhNCnEJZ43w8d?~-8bn=iU?s}=z_BH3sTe;yD&I3CnorZ;>jIXW z3lEQ2$FiNTsBwwL;nGJ@{ah z!snY7;1Y3zoCp*gH>gFQT7S2Y~Bce^nPO2Z5qACf?z{I`u&?8D!9!NnT0 z1`-7o7hc`sgc-12wJTgJY0j-6>v}{VxusvWCgIHjL z)TKgC23u23@2-pJgoh@hLVO=r3#|CSSo$YR-Rr%RLZ(wdl!%%>k8tO?n}t5Qd8({& znC**&Lz+-{@+!8#lR6KKjmH$Lz)xv8!db2dSjmL5@RW|k^j%WjpG#hAPpfjylFWTx z`;lHPT!(N|B-#K>XX#Mqx|Al*;D>Dt)$#)joqdjY| zd2F?%K7O0H7y=Z0QV#9$nZ5STF(LGtm)I6DQtBx;v}XojgQu4~;}KgB_rriuh_XBL zDriqPz-BPrW=gRNsi+2b<4*wQ*OtnA=18x8i}Ec_sl}mw)|?TIyaA5iKRmjZ8b2({ z$r%>R)OWysju@ZEuL0j$e+tzyp4IN;l7uB8?s3S@CHudhPj0NJzzh2xA1THcZW3NZ z3y2tIMt89(Uv)`%!E(f>4=6dIV=%UY&^f03>~IYd++KxjFbNI-&i_jZTo^J!DUwqC zeUUV8NrRRmiYrm~i(QO%x<_ynL_3=c)X83H=}YIzO05MBE06$C*LOe!CF;>tw?wZN zCc_D)KfSGnUpE7Yu+;;U3? zC5p7$;j(|H-ECo>mN#v!qa%O%$=&ZKuhEp5P-%jiRCvbCc_J}f)OzIsegd|Xdr8mo zL^U{TB^;QazbQ!3WS-lZpB@ha*EYC18(udl%1P;;sn3p?fuW^PB7zaRC%OS8?!8O9Bv|PFxM^B;{?6KPPvO#xnfE7? z$fMveq#}5ro|7%>`w|<|T1n<$sZ<+NVFWBGZ?TvDd+Cm7E=85JJf*jgVLOiFtoBzR z!~tMCi$u$qM;v`FpUeEUX_fgt2};3XbPT8jL#v`9Ep4gZz4M@)-g)o-Q}6%c@P7fu j-+vqVzl%Tp$ERh3HC3qAW2!0NfdHCnU{HnXlhFSGOu1$O diff --git a/qwt/tests/data/simple.png b/qwt/tests/data/simple.png index 1a91f016dba704326a9c8af00d400e9073b5a8df..bf84606a39dcee9cad70f59f1afc878b7307de24 100644 GIT binary patch literal 13199 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 literal 32700 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 ZKe?8U!FwMx1m-(F-?sW&T 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 HL;wE+s(y8# literal 96839 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 Date: Mon, 17 Aug 2020 11:49:21 +0200 Subject: [PATCH 145/421] Updated "run_test_launcher.bat" to use current WinPython distro (from %WINPYDIRBASE% env var) --- run_test_launcher.bat | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/run_test_launcher.bat b/run_test_launcher.bat index 49b4148..a6b78a3 100644 --- a/run_test_launcher.bat +++ b/run_test_launcher.bat @@ -1,18 +1,13 @@ @echo off - setlocal set PYTHONPATH=%cd% - -for /f %%f in ('dir /b c:\w*') do (call :test %%f) -pause - -exit /B %ERRORLEVEL% - -:test -set ENV=C:\%~1\scripts\env.bat -if exist %ENV% ( - echo ************************** Testing with %~1 ************************** - call %ENV% - python -m qwt.tests.__init__ +if defined WINPYDIRBASE ( + call %WINPYDIRBASE%\scripts\env.bat + @echo ============================================================================== + @echo: + @echo Using WinPython from %WINPYDIRBASE% + @echo: + @echo ============================================================================== + @echo: ) -exit /B 0 \ No newline at end of file +python -m qwt.tests.__init__ \ No newline at end of file From 0930f6a88dd3ed14b212d029ed6352775aa3234e Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 17 Aug 2020 11:51:01 +0200 Subject: [PATCH 146/421] Removed CHM from distributed wheel package, added zipped CHM to source package (link in documentation) --- MANIFEST.in | 3 ++- build_doc.bat | 34 ++++++++++++++++++++++------------ doc/conf.py | 2 +- doc/index.rst | 2 +- setup.py | 43 ------------------------------------------- 5 files changed, 26 insertions(+), 58 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index 974c310..60b25df 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,4 +2,5 @@ recursive-include doc *.py *.rst *.png include MANIFEST.in include LICENSE include README.md -include CHANGELOG.md \ No newline at end of file +include CHANGELOG.md +include doc/PythonQwt.chm.zip \ No newline at end of file diff --git a/build_doc.bat b/build_doc.bat index 16be552..b4623df 100644 --- a/build_doc.bat +++ b/build_doc.bat @@ -1,15 +1,25 @@ @echo off +if defined WINPYDIRBASE ( + call %WINPYDIRBASE%\scripts\env.bat + @echo ============================================================================== + @echo: + @echo Using WinPython from %WINPYDIRBASE% + @echo: + @echo ============================================================================== + @echo: + ) set PATH=C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip;C:\Program Files\HTML Help Workshop;C:\Program Files (x86)\HTML Help Workshop;%PATH% set PYTHONPATH=%cd% -sphinx-build -b htmlhelp doc doctmp -hhc doctmp\PythonQwt.hhp -copy doctmp\PythonQwt.chm . -7z a PythonQwt.chm.zip PythonQwt.chm -del doctmp\PythonQwt.chm -del doc.zip -sphinx-build -b html doc doctmp -cd doctmp -7z a -r ..\doc.zip *.* -cd .. -rmdir /S /Q doctmp -del PythonQwt.chm.zip \ No newline at end of file +sphinx-build -b htmlhelp doc build\doc +hhc build\doc\PythonQwt.hhp +copy build\doc\PythonQwt.chm doc +7z a doc\PythonQwt.chm.zip doc\PythonQwt.chm +move doc\PythonQwt.chm . +sphinx-build -b html doc build\doc +@echo: +@echo ============================================================================== +@echo: +if not defined UNATTENDED ( + @echo End of script + pause + ) \ No newline at end of file diff --git a/doc/conf.py b/doc/conf.py index 5567b4a..eb9a2bc 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -103,7 +103,7 @@ # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. -html_theme = "classic" +html_theme = "default" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the diff --git a/doc/index.rst b/doc/index.rst index a5b748c..1d7d302 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -4,7 +4,7 @@ .. note:: - Windows users may download the :download:`CHM Manual <../PythonQwt.chm.zip>`. + Windows users may download the :download:`CHM Manual `. After downloading this file, you may see blank pages in the documentation. That's because Windows is blocking CHM files for security reasons. diff --git a/setup.py b/setup.py index ce20526..14c8b85 100644 --- a/setup.py +++ b/setup.py @@ -16,9 +16,6 @@ import os import sys import os.path as osp -import subprocess -import shutil -import atexit import setuptools # analysis:ignore from distutils.core import setup @@ -89,45 +86,6 @@ def get_subpackages(name): return splist -def build_chm_doc(libname): - """Return CHM documentation file (on Windows only), which is copied under - {PythonInstallDir}\Doc, hence allowing Spyder to add an entry for opening - package documentation in "Help" menu. This has no effect on a source - distribution.""" - args = "".join(sys.argv) - if os.name == "nt" and ("bdist" in args or "build" in args): - try: - import sphinx # analysis:ignore - except ImportError: - print( - "Warning: `sphinx` is required to build documentation", file=sys.stderr - ) - return - hhc_base = r"C:\Program Files%s\HTML Help Workshop\hhc.exe" - for hhc_exe in (hhc_base % "", hhc_base % " (x86)"): - if osp.isfile(hhc_exe): - break - else: - print( - "Warning: `HTML Help Workshop` is required to build CHM " - "documentation file", - file=sys.stderr, - ) - return - doctmp_dir = "doctmp" - subprocess.call("sphinx-build -b htmlhelp doc %s" % doctmp_dir, shell=True) - atexit.register(shutil.rmtree, osp.abspath(doctmp_dir)) - fname = osp.abspath(osp.join(doctmp_dir, "%s.chm" % libname)) - subprocess.call('"%s" %s' % (hhc_exe, fname), shell=True) - if osp.isfile(fname): - return fname - else: - print("Warning: CHM building process failed", file=sys.stderr) - - -CHM_DOC = build_chm_doc(LIBNAME) - - setup( name=LIBNAME, version=version, @@ -137,7 +95,6 @@ def build_chm_doc(libname): package_data={ PACKAGE_NAME: get_package_data(PACKAGE_NAME, (".png", ".svg", ".mo")) }, - data_files=[(r"Doc", [CHM_DOC])] if CHM_DOC else [], install_requires=["NumPy>=1.5"], extras_require={"Doc": ["Sphinx>=1.1"],}, entry_points={ From 5773285f16d4aca8aefeaad210f7ca12159f0b8e Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 17 Aug 2020 11:51:21 +0200 Subject: [PATCH 147/421] Added batch script to build and upload package --- build_and_upload.bat | 23 +++++++++++++++++++++++ build_dist.bat | 19 ++++++++++++++++++- run_unattended_tests.bat | 4 +++- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 build_and_upload.bat diff --git a/build_and_upload.bat b/build_and_upload.bat new file mode 100644 index 0000000..aa7410f --- /dev/null +++ b/build_and_upload.bat @@ -0,0 +1,23 @@ +@echo off +set UNATTENDED=1 +call build_doc.bat +call build_dist.bat +@echo: +@echo ============================================================================== +choice /t 5 /c yn /cs /d n /m "Do you want to upload packages to PyPI (y/n)?" +if errorlevel 2 goto :no +if errorlevel 1 goto :yes +:yes +@echo ============================================================================== +@echo: +@echo twine upload dist/* +GOTO :continue +:no +@echo: +@echo Warning: Packages were not uploaded to PyPI +:continue +@echo: +@echo ============================================================================== +@echo: +@echo End of script +pause \ No newline at end of file diff --git a/build_dist.bat b/build_dist.bat index 2bc532c..77c54de 100644 --- a/build_dist.bat +++ b/build_dist.bat @@ -1,6 +1,23 @@ +@echo off +if defined WINPYDIRBASE ( + call %WINPYDIRBASE%\scripts\env.bat + @echo ============================================================================== + @echo: + @echo Using WinPython from %WINPYDIRBASE% + @echo: + @echo ============================================================================== + @echo: + ) del MANIFEST rmdir /S /Q build rmdir /S /Q dist set PYTHONPATH=%cd% python setup.py sdist bdist_wheel --universal -python setup.py build sdist \ No newline at end of file +python setup.py build sdist +@echo: +@echo ============================================================================== +@echo: +if not defined UNATTENDED ( + @echo End of script + pause + ) \ No newline at end of file diff --git a/run_unattended_tests.bat b/run_unattended_tests.bat index c939113..a24ae21 100644 --- a/run_unattended_tests.bat +++ b/run_unattended_tests.bat @@ -12,7 +12,9 @@ exit /B %ERRORLEVEL% :test set ENV=C:\%~1\scripts\env.bat if exist %ENV% ( - echo ************************** Testing with %~1 ************************** + @echo: + @echo ************************** Testing with %~1 ************************** + @echo: call %ENV% python -m qwt.tests.__init__ ) From b3a3d8edd672184ca4ca2fc6c40356a2abeda2c7 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 17 Aug 2020 12:48:56 +0200 Subject: [PATCH 148/421] curve/grid/... make functions: added possibility to set color from str --- qwt/plot_curve.py | 5 +++-- qwt/plot_grid.py | 9 +++++---- qwt/plot_marker.py | 6 ++++-- qwt/qthelpers.py | 34 ++++++++++++++++++++++++++++++++++ qwt/text.py | 5 +++-- 5 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 qwt/qthelpers.py diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index 910d983..0ee3cde 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -25,6 +25,7 @@ ) from .symbol import QwtSymbol from .plot_directpainter import QwtPlotDirectPainter +from .qthelpers import qcolor_from_str from .qt.QtGui import QPen, QBrush, QPainter, QPolygonF, QColor from .qt.QtCore import QSize, Qt, QRectF, QPointF @@ -228,7 +229,7 @@ def make( :param symbol: curve symbol :type symbol: qwt.symbol.QwtSymbol or None :param linecolor: curve line color - :type linecolor: QColor or None + :type linecolor: QColor or str or None :param linewidth: curve line width :type linewidth: float or None :param linestyle: curve pen style @@ -258,7 +259,7 @@ def make( item.setStyle(style) if symbol is not None: item.setSymbol(symbol) - linecolor = Qt.black if linecolor is None else linecolor + linecolor = qcolor_from_str(linecolor, Qt.black) linewidth = 1.0 if linewidth is None else linewidth linestyle = Qt.SolidLine if linestyle is None else linestyle item.setPen(QPen(linecolor, linewidth, linestyle)) diff --git a/qwt/plot_grid.py b/qwt/plot_grid.py index b3480f4..ef550d5 100644 --- a/qwt/plot_grid.py +++ b/qwt/plot_grid.py @@ -17,6 +17,7 @@ from .plot import QwtPlot, QwtPlotItem from .text import QwtText from ._math import qwtFuzzyGreaterOrEqual, qwtFuzzyLessOrEqual +from .qthelpers import qcolor_from_str from .qt.QtGui import QPen from .qt.QtCore import Qt @@ -79,13 +80,13 @@ def make( :param enableminor: Tuple of two boolean values (x, y) for enabling minor grid lines :type enableminor: bool or None :param color: Pen color for both major and minor grid lines (default: Qt.gray) - :type color: QColor or None + :type color: QColor or str or None :param width: Pen width for both major and minor grid lines (default: 1.0) :type width: float or None :param style: Pen style for both major and minor grid lines (default: Qt.DotLine) :type style: Qt.PenStyle or None :param mincolor: Pen color for minor grid lines only (default: Qt.gray) - :type mincolor: QColor or None + :type mincolor: QColor or str or None :param minwidth: Pen width for minor grid lines only (default: 1.0) :type minwidth: float or None :param minstyle: Pen style for minor grid lines only (default: Qt.DotLine) @@ -98,12 +99,12 @@ def make( item = cls() if z is not None: item.setZ(z) - color = Qt.gray if color is None else color + color = qcolor_from_str(color, Qt.gray) width = 1.0 if width is None else width style = Qt.DotLine if style is None else style item.setPen(QPen(color, width, style)) if mincolor is not None or minwidth is not None or minstyle is not None: - mincolor = Qt.gray if mincolor is None else mincolor + mincolor = qcolor_from_str(mincolor, Qt.gray) minwidth = 1.0 if width is None else minwidth minstyle = Qt.DotLine if style is None else minstyle item.setMinorPen(QPen(mincolor, minwidth, minstyle)) diff --git a/qwt/plot_marker.py b/qwt/plot_marker.py index 72cf7f2..cc29141 100644 --- a/qwt/plot_marker.py +++ b/qwt/plot_marker.py @@ -18,6 +18,7 @@ from .painter import QwtPainter from .graphic import QwtGraphic from .symbol import QwtSymbol +from .qthelpers import qcolor_from_str from .qt.QtGui import QPen, QPainter from .qt.QtCore import Qt, QPointF, QRectF, QSizeF, QRect @@ -123,7 +124,8 @@ def make( :param spacing: Spacing (distance between the position and the label) :type spacing: int or None :param int linestyle: Line style - :param QColor color: Pen color + :param color: Pen color + :type color: QColor or str or None :param float width: Pen width :param Qt.PenStyle style: Pen style :param bool antialiased: if True, enable antialiasing rendering @@ -152,7 +154,7 @@ def make( item.setLabelOrientation(orientation) if spacing is not None: item.setSpacing(spacing) - color = Qt.black if color is None else color + color = qcolor_from_str(color, Qt.black) width = 1.0 if width is None else width style = Qt.SolidLine if style is None else style item.setLinePen(QPen(color, width, style)) diff --git a/qwt/qthelpers.py b/qwt/qthelpers.py new file mode 100644 index 0000000..44b8541 --- /dev/null +++ b/qwt/qthelpers.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the terms of the MIT License +# Copyright (c) 2015 Pierre Raybaut +# (see LICENSE file for more details) + +"""Qt helpers""" + +from qwt.qt import QtGui as QG +from qwt.qt.QtCore import Qt + + +def qcolor_from_str(color, default): + """Return QColor object from str + + :param color: Input color + :type color: QColor or str or None + :param QColor default: Default color (returned if color is None) + + If color is already a QColor instance, simply return color. + If color is None, return default color. + If color is neither an str nor a QColor instance nor None, raise TypeError. + """ + if color is None: + return default + elif isinstance(color, QG.QColor): + return color + elif isinstance(color, str): + try: + return getattr(Qt, color) + except AttributeError: + raise ValueError("Unknown Qt color %r" % color) + else: + raise TypeError("Invalid color %r" % color) diff --git a/qwt/text.py b/qwt/text.py index 14c2fb8..36a995a 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -67,6 +67,7 @@ from .qt.QtCore import Qt, QSizeF, QSize, QRectF from .painter import QwtPainter +from .qthelpers import qcolor_from_str QWIDGETSIZE_MAX = (1 << 24) - 1 @@ -638,7 +639,7 @@ def make( :param weight: Font weight (default: QFont.Normal) :type weight: int or None :param color: Pen color - :type color: QColor or None + :type color: QColor or str or None :param borderradius: Radius for the corners of the border frame :type borderradius: float or None :param borderpen: Background pen @@ -661,7 +662,7 @@ def make( weight = QFont.Normal if weight is None else weight item.setFont(QFont(family, pointsize, weight)) if color is not None: - item.setColor(color) + item.setColor(qcolor_from_str(color, Qt.black)) if borderradius is not None: item.setBorderRadius(borderradius) if borderpen is not None: From c3dba2bd4800c0aab5b3adc523b7134cd9f1cb9f Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 17 Aug 2020 12:49:31 +0200 Subject: [PATCH 149/421] Updated simple example (added to README.md) --- README.md | 20 +++++++++++++++++++- doc/images/QwtPlot_example.png | Bin 6383 -> 28862 bytes doc/plot_example.py | 26 ++++++++++---------------- qwt/plot.py | 25 ++++++++----------------- 4 files changed, 37 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 9cdd746..b5202e6 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ From the source package: python setup.py install ``` -## Examples/tests +## Examples (tests) The GUI-based test launcher may be executed from Python: @@ -93,3 +93,21 @@ or from the command line: ```bash PythonQwt-tests ``` + +## Sample + +```python +import qwt +import numpy as np + +app = qwt.qt.QtGui.QApplication([]) +x = np.linspace(-10, 10, 500) +plot = qwt.QwtPlot("Trigonometric functions") +plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend) +qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True) +qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True) +plot.resize(600, 300) +plot.show() +``` + + \ No newline at end of file diff --git a/doc/images/QwtPlot_example.png b/doc/images/QwtPlot_example.png index b0db19f3d31111442fe5748e752ade561638b076..867e9160c47c9e4211efde79ac1dd7ee1ec4619e 100644 GIT binary patch literal 28862 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 a;{mnY+OG;u$jI>cH3b<}SUJ=r;C}$j)X4Dw literal 6383 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 NF*CBnSK-{^{|^YXyYc`4 diff --git a/doc/plot_example.py b/doc/plot_example.py index f7cd031..eb11e74 100644 --- a/doc/plot_example.py +++ b/doc/plot_example.py @@ -1,24 +1,18 @@ -from qwt.qt.QtGui import QApplication -from qwt import QwtPlot, QwtPlotCurve +import qwt import numpy as np -import os.path as osp - -app = QApplication([]) +app = qwt.qt.QtGui.QApplication([]) x = np.linspace(-10, 10, 500) -y1, y2 = np.cos(x), np.sin(x) +plot = qwt.QwtPlot("Trigonometric functions") +plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend) +qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True) +qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True) +plot.resize(600, 300) +plot.show() -my_plot = QwtPlot("Two curves") -curve1, curve2 = QwtPlotCurve("Curve 1"), QwtPlotCurve("Curve 2") -curve1.setData(x, y1) -curve2.setData(x, y2) -curve1.attach(my_plot) -curve2.attach(my_plot) -my_plot.resize(600, 300) -my_plot.replot() -my_plot.show() +import os.path as osp -my_plot.grab().save( +plot.grab().save( osp.join(osp.abspath(osp.dirname(__file__)), "images", "QwtPlot_example.png") ) diff --git a/qwt/plot.py b/qwt/plot.py index cf7e269..9c2121a 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -239,26 +239,17 @@ class QwtPlot(QFrame, QwtPlotDict): The following example is a good starting point to see how to set up a plot widget:: - from .qt.QtGui import QApplication - from qwt import QwtPlot, QwtPlotCurve + import qwt import numpy as np - app = QApplication([]) - + app = qwt.qt.QtGui.QApplication([]) x = np.linspace(-10, 10, 500) - y1, y2 = np.cos(x), np.sin(x) - - my_plot = QwtPlot("Two curves") - curve1, curve2 = QwtPlotCurve("Curve 1"), QwtPlotCurve("Curve 2") - curve1.setData(x, y1) - curve2.setData(x, y2) - curve1.attach(my_plot) - curve2.attach(my_plot) - my_plot.resize(600, 300) - my_plot.replot() - my_plot.show() - - app.exec_() + plot = qwt.QwtPlot("Trigonometric functions") + plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend) + qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True) + qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True) + plot.resize(600, 300) + plot.show() .. image:: /images/QwtPlot_example.png From 71040085b3377e4a4640184abf69af10a0af8ad6 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 17 Aug 2020 12:49:48 +0200 Subject: [PATCH 150/421] QwtPlot: removed default resize to 200x200 --- qwt/plot.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/qwt/plot.py b/qwt/plot.py index 9c2121a..935df0a 100644 --- a/qwt/plot.py +++ b/qwt/plot.py @@ -347,8 +347,6 @@ def __init__(self, *args): self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) - self.resize(200, 200) - focusChain = [ self, self.__data.titleLabel, From ba8ea45ec1e02522315dc7baa0ebaeb889d61e3e Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 17 Aug 2020 15:12:25 +0200 Subject: [PATCH 151/421] Updated README.md --- README.md | 99 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index b5202e6..ca39e66 100644 --- a/README.md +++ b/README.md @@ -21,32 +21,45 @@ of a few other files (examples, doc, ...). See documentation [online](https://pythonqwt.readthedocs.io/en/latest/) or [PDF](https://pythonqwt.readthedocs.io/_/downloads/en/latest/pdf/) for more details on the library and [changelog](CHANGELOG.md) for recent history of changes. -## Copyrights +## Sample -#### Main code base -- Copyright © 2002 Uwe Rathmann, for the original Qwt C++ code -- Copyright © 2015 Pierre Raybaut, for the Qwt C++ to Python translation and -optimization -- Copyright © 2015 Pierre Raybaut, for the PythonQwt specific and exclusive -Python material +```python +import qwt +import numpy as np -#### PyQt, PySide and Python2/Python3 compatibility modules -- Copyright © 2009-2013 Pierre Raybaut -- Copyright © 2013-2015 The Spyder Development Team +app = qwt.qt.QtGui.QApplication([]) -#### Some examples -- Copyright © 2003-2009 Gerard Vermeulen, for the original PyQwt code -- Copyright © 2015 Pierre Raybaut, for the PyQt5/PySide port and further -developments (e.g. ported to PythonQwt API) +# Create plot widget +plot = qwt.QwtPlot("Trigonometric functions") +plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend) -## License +# Create two curves and attach them to plot +x = np.linspace(-10, 10, 500) +qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True) +qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True) -The `qwt` Python package was partly (>95%) translated from Qwt C++ library: -the associated code is distributed under the terms of the LGPL license. The -rest of the code was either wrote from scratch or strongly inspired from MIT -licensed third-party software. +# Resize and show plot +plot.resize(600, 300) +plot.show() + +app.exec_() +``` -See included [LICENSE](LICENSE) file for more details about licensing terms. + +## Examples (tests) + +The GUI-based test launcher may be executed from Python: + +```python +from qwt import tests +tests.run() +``` + +or from the command line: + +```bash +PythonQwt-tests +``` ## Overview @@ -79,35 +92,29 @@ From the source package: python setup.py install ``` -## Examples (tests) - -The GUI-based test launcher may be executed from Python: - -```python -from qwt import tests -tests.run() -``` +## Copyrights -or from the command line: +#### Main code base +- Copyright © 2002 Uwe Rathmann, for the original Qwt C++ code +- Copyright © 2015 Pierre Raybaut, for the Qwt C++ to Python translation and +optimization +- Copyright © 2015 Pierre Raybaut, for the PythonQwt specific and exclusive +Python material -```bash -PythonQwt-tests -``` +#### PyQt, PySide and Python2/Python3 compatibility modules +- Copyright © 2009-2013 Pierre Raybaut +- Copyright © 2013-2015 The Spyder Development Team -## Sample +#### Some examples +- Copyright © 2003-2009 Gerard Vermeulen, for the original PyQwt code +- Copyright © 2015 Pierre Raybaut, for the PyQt5/PySide port and further +developments (e.g. ported to PythonQwt API) -```python -import qwt -import numpy as np +## License -app = qwt.qt.QtGui.QApplication([]) -x = np.linspace(-10, 10, 500) -plot = qwt.QwtPlot("Trigonometric functions") -plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend) -qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True) -qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True) -plot.resize(600, 300) -plot.show() -``` +The `qwt` Python package was partly (>95%) translated from Qwt C++ library: +the associated code is distributed under the terms of the LGPL license. The +rest of the code was either wrote from scratch or strongly inspired from MIT +licensed third-party software. - \ No newline at end of file +See included [LICENSE](LICENSE) file for more details about licensing terms. \ No newline at end of file From cc6540e1a2d167500a2238bb9b710aad86a13e04 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 17 Aug 2020 19:08:04 +0200 Subject: [PATCH 152/421] Updated panorama, test screenshots and modified some tests (rewrote simple test) --- doc/images/panorama.png | Bin 154457 -> 172090 bytes qwt/tests/cartesian.py | 2 +- qwt/tests/data/bodedemo.png | Bin 24267 -> 23542 bytes qwt/tests/data/cartesian.png | Bin 51079 -> 50927 bytes qwt/tests/data/cpudemo.png | Bin 30984 -> 30420 bytes qwt/tests/data/curvebenchmark1.png | Bin 40883 -> 40691 bytes qwt/tests/data/curvebenchmark2.png | Bin 113752 -> 113547 bytes qwt/tests/data/curvedemo1.png | Bin 13859 -> 13377 bytes qwt/tests/data/data.png | Bin 13380 -> 12615 bytes qwt/tests/data/errorbar.png | Bin 13018 -> 12676 bytes qwt/tests/data/eventfilter.png | Bin 8790 -> 8420 bytes qwt/tests/data/image.png | Bin 61754 -> 61167 bytes qwt/tests/data/logcurve.png | Bin 16187 -> 15670 bytes qwt/tests/data/mapdemo.png | Bin 22739 -> 19768 bytes qwt/tests/data/multidemo.png | Bin 6944 -> 6533 bytes qwt/tests/data/simple.png | Bin 13199 -> 12257 bytes qwt/tests/data/testlauncher.png | Bin 96708 -> 98640 bytes qwt/tests/data/vertical.png | Bin 28954 -> 26922 bytes qwt/tests/mapdemo.py | 4 ---- qwt/tests/simple.py | 37 +++++++++++++++-------------- 20 files changed, 20 insertions(+), 23 deletions(-) diff --git a/doc/images/panorama.png b/doc/images/panorama.png index 4dda3fc69f5f7e4897fed18bdeec3786267d6b6e..d30b50207fdf3e5ee8aa101996ae34b3524fbee3 100644 GIT binary patch literal 172090 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 literal 154457 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

0c6EF~WIAXSi9!&a%UJiktGLZRk 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 M07*qoM6N<$f=#+d#Q*>R diff --git a/qwt/tests/cartesian.py b/qwt/tests/cartesian.py index 744ed7f..7b532f1 100644 --- a/qwt/tests/cartesian.py +++ b/qwt/tests/cartesian.py @@ -66,7 +66,7 @@ def __init__(self, *args): self.plotLayout().setCanvasMargin(0) self.plotLayout().setAlignCanvasToScales(True) # attach a grid - QwtPlotGrid.make(plot=self, color=Qt.lightGray, width=0, style=Qt.DotLine, z=-1) + QwtPlotGrid.make(self, color=Qt.lightGray, width=0, style=Qt.DotLine, z=-1) # attach a x-axis xaxis = CartesianAxis(QwtPlot.xBottom, QwtPlot.yLeft) xaxis.attach(self) diff --git a/qwt/tests/data/bodedemo.png b/qwt/tests/data/bodedemo.png index 6a43a3837b985c117f0c9567fafc3de5104d86b5..5267279493e88b2c2e16711b0d0173ff96245c9d 100644 GIT binary patch literal 23542 zcmZ^Lby!s2_BTjKH_{8Sg%||}1_oVPN=yj`=7kLm46FhYBJjv%r3e}D53-$< zrXvgtMh|qr#xY`$z`#(#NQ()pxTYSafl^7Fnw}v`&J789c}y!P9NqB@A`SEi3?ERH zYzBY3!bcru2Ieq<9nK_@bJk%$5p>D=e?5Icj{o%s_ydX9N5w21lxk|F+^aceN+c%S za#U-J7Jr+ik&_7NYH6;8VPp0r>GM|oiq_;u!HYJz^t8jNor^Y(uPe=*K9opc;Aaig z=PCdrj0F$;bdlpUB10dfR6+j#{-#1A;b*`q)pP1j2|SM&c^UdjVXR_5dp*pLz;7^e zX^K)WRcWxeS>+U`Stlx!IV5){(dF<|W;Uu&z-vUnJDdEZ#0gc@X!<;!{h1>VELw~l z;!z#~E@paNI`~qXOU_qH9lpEPYZxtEV&&V1Kg5s;DCustk=4d+^V&% zevvkr=AXY16Gn|AjV1pe#0F!-DI)j(Y{VBzmhdZ=>f6aRH<#tmx#i@RM{E0$eob%U zP(#@mB9#YL97&{=c=N_FZ7?Vc6TupW-silQ1Q}-#X|WSUQG|C?ITl9d9CGPoN~$=) zfuN|kWX1iH^$IIXYIMhVUrdDhvA=S2b-YDHteTV==}F?fjmX01ZnoQu5>&Kj9r;T| zq!oD4IW|@FftEN-@gF!$+9C6q{l9Fu$!duPO0|;Qi*4jWjj`fJC6XoHo3oEQ;i^tv zi=*$;l|l<0KrBvEDk3%(Ya6iHTWV17eVE-L zBgtC)vwQRSl(z;)ykCuPo*|CHUGfW~pMyPOp-L|h5ag97E^?Pbyu$N^b7lKkr>Moz z&1A}nHfDYrws%7HqqP_qp1qw!qP1YtLkt&zsr1YK zz?jBoWESL{=(8rq0T9#vJK@Se;ATlC?(PX8p}^8)#2SCueJ$cH5llYV-p3IwtZgyB z=eWD5_+h@XdA7#5ycH)R>JChC=bQE@$sHH`S&>X(tx8Z7=7r1$19~ro0knW5&Pi~z zRsA>fFZ;ab>DaFcCu_FEr#?n(CS*!HksgJO1Vd!VcBBa1_BWpdjkCKot%Ie{cTHTfKksEwl9YG zUxj2xy~bqQ3#9tYz7mTyi};D~n!HaCrl*E(f&L(PWW*YMx97}a!|W=;2^!*%BBMun zMP$hs{mIXaAj5rk2b&)>amKS@y%JSxU1}Lb^jhc5q0++=W0h5JwKz(chNn@wjN=(} z={DN3U!}PUJUGgmpq37&9DxRr2x~Vvi{vu04$v-Cwml03zlthcr=3Z@?WQX_2o35U zn;4x>y+d!=sJ)X58#p&=hg7J1XPx%uxVkmFa~6}kEZ=-AOr8nM)*KTp7UfKx>Bu$- z<@@>=j-MW_2-bg}A=xsPtgLT*6-B|B8ime{PL+k#rASZLVzHsgaMu!>CSM2cX0

bw(8<#m)6SN$gESa_t;_i;uhDI-7AQmfC*@FpGa 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 z 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 TJ>CXDfj`0m68y!VG(G literal 51079 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 diff --git a/qwt/tests/data/cpudemo.png b/qwt/tests/data/cpudemo.png index 50792dd97b22440629e9821ba6a53f69a9ac8ecc..1d104dc7b14edc358aac9ffbc83276b90a4bf971 100644 GIT binary patch literal 30420 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 literal 30984 zcmYJa1yoe;_dQIvfOI2Bi3kWocS}omcXzjR3rG#!44p%Rh=6qG&?z8Y(*Nt{`~KF; zf;Gckcb<9fxhMA7XW!`0N;0o7$S~mG;9kjol2nC*Ljb|S!PB6j07tC7`JuoIy7MO; zH#j)#pa1^gQ{Q8g!@<3Qla&-x_s;&a>f@Z{}pM}fcbXmN}XKVES#Rk0$wx+;=lt|5j?L)O8ey78T+_WP6@rZwJ18F~ddv!(+( zPDj{LZb6Zz-fzD9>@-OTO>(~EIf7XBY3yylElx1OC-^s_TeNrnw(SxA=Ue@Wk$;8% zKIN`oGHp69N~6();hIvb9SOk!Z^Wazl7s&{^pJ}L5~uKnA9%R`eRO0d`1N$t<^CRc zPtFL33pQuEy;KbsM;eH{=!w7;SI-1aj>16u=;QJ=31ZxZN*l&oOmR&Wj9b|2?Mr%n zJMTvzj;2C{ZXJfJ7tTORmi^`vPTw=UKU@LaHZdC~A(o}`#WbgX2z(wY+DAUnFUgw% zNRn_VRM0E=JQm+xY0ca3w@6TeVIHI3oA2K1XlmXEr>9%PKMBNgxA}xO5c91TCxTCV z&k(i);uJz!g5stOam3N!8+Pcz7FB}Jdy}$_QQrKT{k1WE#}VRkkK*=)GdQhj%eXk4q_N9LH}yvk;~ zXcv!?khQc9p9_bG*jl@ZkC$ocPC84QCbBgF^GOfRPip!#O^_q$Jnd)Z}K~ zt$DdrY;e8Nu?mjL;Y*V)WKL_Sdzr5+g%1x|geSK6+_>H1A(cqnX<5GQN#4?E^*R4s zWXl!fRB@|!|HxuvWeK5I&T}5wHLaqQgcRp19~mvX4`0@x+7E@;vh+)#CA&BUc*FY% zS>Cr{-We=>=zx84iq-}CC7olUd*3m*Qo|I+uP2v~k!W~7ep;7g2=O*J&>s^L6p^p1 z6wsTRk+9PGT6qbFoUjl1aIV*LttZfZ&(m|Km_Q}e-ohsKZ*SoT2R4CE3qh1EFoQD+ zDV4h8$E@gBA(Z?I<}{1r`}0_0wlsG(Av9Kl_Sx3(>+ZWTC!&DIy2r1;w}MLV?tBs` z_{3#oWV#}g7s`aM-@zIB9+dDW7PlMv>=NedrhXAn+Rn**8-{~JvuD|vEsXm4ck90k z@A1EylDVc5AL4erN7eCwI{5J)U>I)dqM;dV%hkmyDJN|M7ynb(ZF}IAuAbhJ5LS{# z2|Xh%&CQK3jtUx$Wc+G( zKo%4VZSRCyKvp_^BFgdt8(C}DqktRom*mU|Q_&ys?-Qbr(g){GvEmt*N{f&?9+W9V2%jJVtjE%x9miUbdJE;;#;*ZllS7mt?{XQP}G`Al+MJy^g^ z&>)DGj2hgg5DDyLtqs~9NN@ExLUvpa3}N%%obY};hk207ytP>@-q6KF3H5(@aN-c~ z!<>1i0%6N+>RIz2oBQ6!QV6w2IaG#;Pq6dcvZR%q|J`mm z0QL(}YviSnUaAe)9*}QcwbM)B;-a^=;txzcvYXXw4z+)&%m2)7-o#VfF9HJkF} z-zoaBji2`$e7uFuwn{e+S5&d__W65aa_qSDJj|5?%l9b`8LWDQ>fj#nlv_;mL|x;;te03_q2qr zt4n*wmOQw!(ij|GxRbZ*(y>s_g1S)i6cDJL8Vz1q9TG-Cc{9Uh{B`Lv5XJwiO|*OF zj9F238~4u*Np`pPmc05YPW=vEF?O`j0Q^kST+Rho%Ye?S#Q5nEItgN{1JfADn=7nD zm-~x1_`RbMg&~3hG1vwz$Diniou2o4w&tsQl<6+o3ip{k1*nN2KeX@dgeR`9MjrQ^ zp6xWX`UFIPj3Frjc&}88{d(t}YOiQX8=thDT}E0O*YkaCkKz20Vb3$(*w}gDez`3e zI4UT`phQvIrFqr!=n#ya7cc zTNllx953Lr%rLEBYw7pExy+7;UrWp$I1+l=*hVme@xYJWXrk?+@NS-w_1yZsBz-RT zmJipD{)rj3y#8e_wZX6w7v@MyaL-_7*3&QYvj38?J(#Gm)BZ0FSOo@lTl*xC^K?tP zx!H8YgR_c8$Ax9A_FpAX88G>t#FHBpLf)y&Yh%jxJYKA^ZjgUJJ+|$Q5wn^dd5EXzd7r7s|{aB z;S5fHsA`;?ejPHbxw{J*Z|Qk*dhe?UB*5m6A|gi4kuyJj41OxhDYreijo;fN3HiPd zliS$2BF5rL5GlcCS4Bt&z)3I2JJ4Xj)%76bpla$n?^hKY+8eNe?n3NWOF>dNK z$HdXBnu&Kr&|Cmb;mq~~W1jUmixk{NLjB^k($musravM)9(jY1h>&3^+mY>Q3R7hH z@botDp{1vfr<*4F2T)}46qJ>>-T5ztJ)iF7EhY-fZOLZbfr>&Zd=0TfHk{E~H%9pf zs5nEft{o_T(Vh9aQr{ZVbZ{f(DrJxqJJI@izG!=Tsk80--IE+-4O5UGSy|U5qNX2P z{Sm+G6F7q(v#aeIKRmROEmJ-|yi?h>Db=$&kWGbJ>M$Fe(h>M3Ef{8P?WX&A27Up+ zcEsoM$eD|VNbg6q4qb z4!zP4L96UHpV5-3&o1vI{8--e!4V6~<5q4>l9EV7y!bB=C+Ts=%C7pa;bE=2ZIS2L z7(+E6BY3c|vLXo1-n_x{32Sbav9Vo#vhOZEpi6OB>3#|y1Csb_BBI>FHa_Ul(R_^4 zo1lOUUA{W_vByWj+Y>4FxURvN(twyFLJ~FM=$}^TD5s5ep9MP%fR&#Jmp4H|PqY>7 zZk5?Nt*ftVjDn&iX=gb0Z;mINh<@YuQ!WPYJ*)?%l$5Y(?C7dIkvcYO)Kbq(Pix)v z;#4g9NdT)zg^3qLdh+&f%d`f)48@EUg1G2`GGjQvu0J{|7zyiYX$sRa^eLg;wslA4 zc*jc=`x>MF6N89e(oz4mFp<);mUf($dHReeWOnclNCt1u*3}=Ef$(GAABZP!)vx(5 z$Sf4Q<<6jEB+`o$^tU;i;ai8>!E^~me8oBCui(A=Yx1gE>gvU7mLrmi65J|hA+UbT z1r~MSUz!QQONBW@V3$AF0DR&mFJ4!}!zu7UQC*$tU^g?}Fn;06=-@Eo*FL_idnZtH zQ;FENb2XE<#z6L@EmaGFCAw5%G;)&9&*yF)w}@0NUjvo!&uWf<7u0^K+il;?FIQ@4 zqO>ajVvH|$UKhYAp;kU8)@{C=DBLbZcj1;{X(1R3__4)(1b4NGG1|8_v@>O|cxHxI~Loe;pPethA5CZKA} z8F#I#>$ge7I*0A5=MFG(mJwOn*EC6=HaxXF{{Z&7aeN>jZ|1^DYj$!hLR|~dbB!6? z{_T4{f7oH7Gsaud={DZ59MwYJ-zjN&92DL`01<${NC{K4zOZX z#tPTtPdiwQN(vgg%W#m{x5YE54qx5@9rUTf%+6YupS!0g0&XI8A2co zx5Bo_c_ReVT3w?AV&n916N`=#S>frBZudHJ+k38t4fwPd5fPCyFVzZ1(UjT)bI=~U zI;OBQAE>&znm1?47spI1d)#_0?Fz8j;rn&$vL|){w~SAsGot_hVLL}hN8nO-cV~EW zQfp-yJWszPgB)AP6=8YN%@xf5U15~tYJ0QJ+tCJ4;ZzE5j&F_(y(?vFaA|XM>fYXb zOp{A3y~dnNN8%?HA)w>CeBg0BqZa;~zt+dZOoHV&o-b3Bs18{TS&Rkj4kvi=OGQ_= zX2Fld!p5d;+$@o@@|Haew{XuiqIdUb;bZjx79Ligv5${WBg)wQ{X6>y(KX>%Ohpb5 zNY=W{%%j1{laJ8WIv|Bhsm z8s7LG31vsFba>$?&Txwu=^Tj9n72Wu{$vH0&KfGgDGOZ_fNzNBs8pqFmOpf^)z15o z0F;AUOx#Kzzh2Ygha)eVaU%e*0N6RByo}p<|W8tK;tE z`sfw$wW6ApS?m=-Zy7c|8(N-)hQS0Opg^zRTdL})QK1!i2d2Xp0X+ti? zh+wrcrKu^GxbSeCsQ%o_TW1VgJ3s2geI!OD^)iD{-0Q8+1kXp0f;~4YZWKxcg((@S_Q*x2L!}T z_MI&rpvo(^l|?YL>2GR9BDRm%^i4diqDg z4*GD8gb1d-Zdw{{^!8ODMu6ck=#K(ja( z%?KL$YaXRw%qiXD6~PDemP%)~`P_X1b)2BD5ZTKWw~6|O3)W5N?cH(;k!S3@r$1K3 zH*vgQX(0rOO-;D1UWski-^QU(UmRIbenw4E1&%mavn=H^Xn1T+L)fSDx$F33wWGzt zf72QD!-q-_3KgL{5|S)403JlgORNPBNH^Na;D=r*+EY-O&2ER(2S%Vg{2mc{5%-Yx z%10y%uJzxQvb22uD!GLO`DV4xI2$#>C9kz0;D0yLqkUR{rb4LFx1sIE=@=RMa`yb- ze-!NXNZ5fdU)H;}j6YOu^VmCp!|%gnxG5@AiM$8YX<^C)f%K zI{NTDWLNv~eqK*MCy%jEYwz@FbaZqNYb@}nE?`mpLq579_SC{c`kj-Y75oSGZXf?n z=_6Y>qnCS;9Y|TXS_d)9kE18-p2v}wy0t#sLfgXj?%hOrKQ;W91;5id2f;#@ek{b1 zz*f6vHI2Izy_OhZue0lg=wek08{4h(c}>CNV};1R#}k;-C3(V>bRJcOJ?-KLNC;yb)_6ovIq`|DVq5A13SAj}_>_R|Iv+Vlmd=A~u)1V*BfUQSlM z?nG{J6>4j0rn6T|S{kP5DWT-r@oCwe*(Y$~Zlm54t^{F9~~lh?DNEufg!LwT}by$Y2y zJ?dC$HcuY9UE6-2D5P1I6fKRfYtTP>*?}-w!}K^5PySeq&**GJc8iDpe4Q9H`qq)h zH#ak@(>^Qn`r2Uiy()wNq8?+;Axr0qF(Q|uq}3iMe+|G=R{(|i;uKj{;7=kA9CY}D z0g4reh9UBvL?n;#p)KmTD+~I*Ovggl=wW%{A|+2B0G5@b6G7q5e-DHV*z(K9 zg7RdBS=(y?!^NdkPAt zcT}Y{DEZrtyZ!gnEa+3e=G_C_($!eQ6&m(~GOI^>xaw0KbryXtRLGWm`QwW|iMkCR z@8O)TY{IDhzYiH`W@`q|so(XVnbt2_;*>f69qQBj?37n7C%S#`ht_+Sj9iB~q*BdW z*~`9~gQR^R)tETPgZ0(6XUAP;-W{#c(;;Ry-=*+`@B<8>dV+@Q&8Q12N)$iXf_v-D zM0U5SU+{ASZd&-<_5!-^=ZNoywYsB5b}KHl-biliaK?S{d0ht1x?^i>q`R4#eF{9c ztL+(I6_n?Rw>MabMFC+ruk3F9q`jB&ZhkjGf&-wc9?mH`gRcN;g95$5fHb-9@?xs(%8&RetHsVqtqhGB6qh z=}ld8V-=-JZqYg3awu8Fm6kGriTZYJ_kTuf=K5BIGUj^MuNlSQdbFg;5q8P)X{2g} ziUnTd=ap}kV?(1%@|iL0+LdHHvs{WA9kMcPT+Jg(@`(o595pbUgNQ@cq(xH{sCq#; zAg*J5VwqXxIVkKe3Puz1?W>Ji^PV&2-@kw7zl9xhrOG9JqWi><@(IS*`$1zJy_fJJ_2) zUNf|zgH`b@0b3BKGz(E*1IyOAOeH(BicLe1H!5qoJOUBTFu{k0ou-1-%{La{$E6jD zAa0&WAf0YO)ciMR-wAtMS+7x0s4Tj2L`%$Myf0{XEQ%_dncXV;qpGoIR^O0Ej2$@z zivLucFqB(pjt8*o%#N$P>vYexIa%^f-Vz_nSuIOn2iTProQ$>z) z3}eP5#>b9y;mxk96%n&LQYDnpHejPX8>k}>N2JexEv~NaXg0jM{Hqe}h<|Xniqchk zHNM~4g;#sV1MdKIBE&E~|Ko;;bgq~g<2^)O2YzgMnXLWfozI}%TLG-OFE~;y4m6U- zKN~t6m`!*D)UYcbhUmt?P@nBJ9AGPJ!b)?-Nj8n2698!9z8dN=M zIJPdNECAtdbTy4l2E&c%Rpt=ZE z6b!UoXF#IneqhL7T7$_VP|%R6{b*orh}-bwZEZ}1zFC-wsWG$kvuXpyw;9;0)I>Tn zYcv_E(6@oAtHKWAg_X|#%Ieo#Gbbnjv%lZ8`Xt9=3zhBWzSVkU?!u;`Hi{7*eR*z#ji{@lTe+uWM|QG`m$58tnM0qsTus`@NMh!h#6 z_)jT;VBsJfbIv zovN}C-5cooylHMr{&#@f>5Q%W3|ZK1OR~R)e98mduwBEgp~CKvRcncw4nqP7v}WN?+OM_F*eo-HvN$|$S(P;C z^$V6-UQM}!W$aqJ{LN6cec;EQ4-E}@0InK^5e;Fo51{m@X&Bg)aItK(J8VtXKxHO90(5+uLr$OoM(4U>%VY{yqoz6JsvaP)2(BP)i5Zl40AK9Cpoz4 zb@01fwyPx!c-&1lV%@fdA3$aNO?Jb17&^Iw8@dhuh$!sKcI9RljPVz;P-Kn74DQtn-*oS+Zbs4WXP%Hn%Zl3%Yp_YBx?Gtv2(WM(Nc|^r#k_&Ll9$)jLUefY9uG(m%5hzRu>0_1a<%fv4_{ z93RUWg6}Lt*RUq}FFP>Xk~C>rllC4vv%5uk@_(R9$@uJ=i)wB=xd=lcz<2lMnvCV_x_q@H8A){plc3NmR?jjjE=;Itc=k>QNR)T!{ z8qOpf5;In?V6}nDw`;Xr9e%*Ib$GG83kr>}36%5XOZ_?cU0XyV zG~fz8vv?!^y3BC=_Uhv_PdG5yzBCBMx>1DNI6mmr>s9&mFE3`a+Nd5#AE>jW1P_d-7v98XHGPBqQPnOPEhX@8^EPWLU z!^HH~8(D`mev>=D`GLS_z?#e_50W*oa`eeGBSf>^)6}fP3N??%4^?Yda&~#`l~huu z&YXHDq|{#TK-q|WC!FfMc#;TYxFka*aZtB+`-MTYLB+5*bGQYJYkf~o-tC;X#vZN+ z0TVKt0I%5kizPBOCwfs)l(V@>y^db&T_bskwsIK{jB7U80ajJ4I%&we$wQS`RKXmv zDXmgGa}$_!SxYa;#QyRIzm1O4{jcCFjeBi06_L5&SZ5}TSfKIT-EpG;d8NqeFOhdD zGA!M03n0C%Y*#91T8_^z*9Wo^bxoD?@U^oFUs*+icERz+YlA_ZNVsO%nT&Ol2Orub zQ5Aye10wyJX0rGyUtj{83V=)oR|K$+Atk9vMOB&AFu6S7LBXRPC$^pYQ2Q);1Ccsl zumxi|;!m^;jj~kS_5{gIyiFtsSaVGZE(Lt5BewmcR$4md_&6_N_%6oSq~y#2n5%TO z`Qx^h0&UXw1`x|g{izub~aqNA9tuE@fd33zyN7y&q;-H9mASI4w8)eSUh#3Yqg%(y(Y2m+k#H zvtzBMCRL-6z@T9P2@7V(@uZCU0Lw%OiR^<0m&PisLsk0=;8JQ0>G9jMOCR*vy8nC| z9Z;bO3$}-aGIt(%+L84NIZ8O1!!YM1whtS@bl3F4@M24})ZNiN=t-y~yL=^*<+H&Rl)mpkAE!qWQVg|C+(l z5-uY%(|Bjg9C|9=eHo4$sWS_z1j_7uQ?mU0smw@wLUZ-6Y*Uy3YdlM-Dl#G&oTA2v z+}6{j-z~2uU9f7yOaD#AV@_RFJA-#+jB1mcx20y0!#W!eB{v@@2%dp)Q=yiPk-U*OcthSp>HdX)9qqpy@Ovq%Y)@Tjv8XGXh`9Qe@Rb)!q zNI@o37*N1>D_bIlF=Q*bHGIcYt!e2qA&^?)o2+vvENv?bG>CR@XXUbXtv=*WB>puN zBS|Yt4mCJciE-U|#5@ds{}$`!)kk5{#q98dlS~uSy2S2o;d>OujG^O+H(|JZTN>a3 z_|F6-rULe4W2@#D1-3l^VWB65fl*VeDu6;gKR~pLr?02;&SoL0kV*0;gCx6-rQ8J; zs!v2PhP<3nP;g?B&LpE0bqtIO-+A4*ga;S9~Tdy#6A)=L+rVXN{9o+)26*v5AFK9~`hT z0MK|X#LCw{V^hAJoT8@Es(2F-c%^NVzF%1j4HV+`iwu5Re72|c%X}RJ>41<<3KHf+mYQ30Ngo0G%gpQDLn=>9p87j zYR1Q1@7;O!xe>EQu&@(=B){)J&dLbrGQP5p#oW3K@6LlPv5ig78fu8M=Tw8k%{iPz zIrBaVHYqe4K=fLII-#1NHeRiiiiW1aU;tbrAMMY6v5Q>Qt=Gotq$fY1Nr~Tc36rKrr$53;{$-O-Cy*x4GbMTNB8z%?vh%==pk8C9(4VhkZ z`fC8>`3=!Q9kjTdE1E3~2AeQOk(e-mOsKs7Zl>q6`N$1GZU5^-^fY^Yx!NsU%mQ*` zXmZ+(PIli{D{aK@MshzK5EHj2gdX8Bxz3Tfd zeM@3WAw@PRxX)M~JKpL0gtpfkSbhUy9^D8UjT}L>n8Rx+mDVhU3;P`1HwqtEFGBmJ zuwZ-Xx!zxhm9rNwxlYSekz<#D&IY;aH$S86G7`a2L)YrSDCFpWV_YeKJqa)^%?C(M+AO*qn{a2k7T`FNLXv^J>G48QcQ%EBf%o z{}3mUfymt%&U5&hftat3uieDnw@{gRM^B z598)pO`zos6#^Ly8V%z<_Q19V6NHBga)QpiDf)Ox;@`bz1r1GZAc?{G9yW-TXGGd* zp@uH?V$et)%qun?!pBQ!=qQ!|4R6z*hO1|weIwxL@aqmZBI@2Ayepw?3wcpy|795V_#T!Bms z*p^$$S2s6&LBlVUSQm+1YYhV&d7u8Y?#ygCvv)Yyn43hFerp3siM6ocl|~CNqP4em zcOSvcLYP+8cNKJ+G1=3G3o3qI+S?>b(lW^j%r>iz3pZHIqnzCk`>e>nELxZHm=pf# z?#RFu--*g(aNx40ut|X=!{(+{Z`|HS^sY*p$~O)aVWaX==;!9_#_w7@n^-Xpg28`z zr~{)+VDw{1&6XV@K@WS1&x6W=4Lj#yc+r%IDe-zQs?7cG(lKYCIy2YFPlk|Aa2xU`plU~M=Qm@<4M7xYd0Isu$EZi=ZisM%^w;FaX3no zTz{-)Wf;8MTA$8!#vh(COCbN7u&9+RrqYYJ@266U^rShq#W_o86drcv1S|){U;VUYxC^Ovg@HjfpZhqG!Sg}|+)1$zi zpSF2U{HLJ9&ttM7p6*hwD1I{ubvUs?1Zx8{lswHtX1A5c7KvshG#K^r2lNiW~EBlpTxs#U3+}#mA zcxNlMG44+0-26RmBI+a7Uxc{C(MgfLvUH#`9YhCdt0v(V`lF8&-n(&@ z!4TaYn7T!;fcr5R}y}P6E;=k+N+Dh23CXpTr3SI?T)S{`;OI1h%CJFbu;j~qg)383j zVKbEw(ASmz387r2(?$ADO^TR{$@yczhDE3q$6|Bd|5Fj(2vfCtS{#+qDl;1Nq8nDL z1f*AtPL58X9PkIk7j)axP7Wl`JhJrGoQ#Q<{o}6@+>}e8+}b)iklDI$+zxl1)F13v zp0~MO{+9e>)epCPh68vDen&?n?Mf9WcjWIQdSREB*{sR?7b+k*)dl(cT*&uh@9fl6 zLdWVV#2nb zDI3dV@0Ut=4Hl+6a?GdW9mq3YK?OByV%DkM@cdC9I07h9BWkC476*|4gs`M})Bk_% zq60<6R-EE_56XWC*dlEvo1C}LKRCG(RoUR5oEQg}JOnRu14kPpDnnmA6x5>9B50FJ3CVQ5Gsa0(Y zF|-g@v1|m}y0BE|R#=H#Kjw$466
Cn)?Dl)j|-Q7O0m|gF<&TxY3dD-lE_-&oE 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 diff --git a/qwt/tests/data/curvebenchmark1.png b/qwt/tests/data/curvebenchmark1.png index ba2c51d650a44a246580d32527b6b6b195e97611..016833be6b3278ed969e2a41a9e17e7fd5efab56 100644 GIT binary patch literal 40691 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�-s2w(|M+{Nk1z~ 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 diff --git a/qwt/tests/data/curvebenchmark2.png b/qwt/tests/data/curvebenchmark2.png index a9a25b5ab97ad286c1fb160cc83d2424df290e2d..68239f152777464f9e61e49321132b9f7da1b3c1 100644 GIT binary patch literal 113547 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�(9<<{qiB==<8F$BP z8XHGb&GzE^oZ&~Inw(WPS{_#ulp!jMVqpEy_b~EFzxBrr6vdHy+4IWc+DoADusB^# zeM)yxXx(Fwh!x~>E4d2C)I%r!*XB9l4G$wWAreY>G;@Rm=yniNB$r|#(FK7%CsEhy z@@L=dOum8dA^D}M4Olnmz1~SluZOv)W@f+_F*sJ&BJ<<k?;1p zjrP0A2KGyhX9-dX|K40e+aa;MyIC0@iW?1|Pmk79hxjCAk4BYtA4&@j~ zF6JJJ$2MEb`PWiIW-gWn8zIBrPEF7^0FN{(`<`j8g@Ev`r-ts*RK&Re>PH3rf_jYj+D(J`P znBjN>U4;KTm!1{L*_}n75$AW^u z=;#)I4t=eO6_nVI^S5Vg{z-d;_q_oPz4tTt!MEAqsNiYk)UI#xn* z!#ZcDv~{EYrQ{HB$*2D~_r}n~o~_8AtH@k!auQFV8k?=i>~LqWoB0Adp%-dj8Xd9` z0l9R+e3}f>vbw9QJj@T;sCdr*{^T{ur3c4<@JM=*xTO>3w9oM0li$n8fLv^Oczga- z*U+)>c4g;qKmG}xrl7$l6bi=Qqwn_{%;(R-b7e*W&lh@YzkgGvEoI^Wiw%CJ%=>!h$TYFND&JD2B(zXUNw!9z2q^~f z+jWcU6co;hjjG1sx;DQsSE`llTe4mV+aM2NB7ZAj3FEg}Z;FzBG8|7mp$ZNLep68X=_XyXudJ ziA(??H}jBfztD>+GQgk{pPE|Pe0KbgQS+DmB0Dm$*r7ZSLj^6ieUK#5K+(w}&Jn%rf zw_c9b5p}2IH{EJuv^@;)r+7WjcS<$NC62jyOENQP0aE7k{E5GfwY7p|aL_V_>oOX1 ztN>OT|?#P0-eK zjhT#iG%qPe3NCzpd1^Eoaqr_b&+CMQ5Omjcu~S1sYNP!NjFsluk0=z-46XX5s|*>( z9)-ZXeVGGDk?lGGN0DkRD&c++&~~*sncN&NJZx-ieMc+jaVzP@e5HF!2uyHBa;!ZV z8SF}<#}c3C3-3^j+-i}8+M21vAB4&nNb|CffI$#fGWWeTyvZkGf-*Vx&S4!LwVg)b z!2W5V^nSd-FHo}w4C7i|5>P?dY*JG>f>{o&WH;u-j-SiMP0{+UA%V6FwCk4 zWB)NQ*$+Y%ZnvNhmRacK>_L?!IChh5+&_}Cvw3(9*(HjQprHK=v23j{BF4gx>QFIB z$;o6DXdSV`4YGzO_wGrDp@5)nz&bPMGWljP?vi>|_}e$&Z0)q{!?6pa1SMa?c^SPY zLRT>gzrtbi2s}EX;FSW@GCT`CL4&DkAq;ues{v$guoHNTO?)%%TPdltv8Z*~gB=ZB z>3mxlA3uJ5nFG3ZhDlI}QS$RE&pfszA9hFVfhtd@U%F@@JlUS~OQP2b-Kxi&TgfDo z;wfZ-=}O~3)^4b?SIMzD2G5yTl16w)mOy|qji|o<8Iv?*Yro!R#p8?^8I+}5`BdZ^~E}#;IEc1`6Wmp0?CXw`b~}x7h9-a+F%BSX;+6^tEOK8RZ`rctZ{!`jJ%vt%AsyvIa?AsFpK`-YMDNB6jDD5i4 znRcI(v(=L-#|>$eyfX4h;~em-u5ycO@3?FOC8M0gtlx!sP*9aEZmm#2t4FMyoE`k^ zq4=B8;K(N!mM-g$xN_i5$jD6=%byLBDAfALv={fm;UKAmItmHvvy~_6 zqtlhv@1yAw`mML>)h#=ebc`)T4miRp$#9CtF8$0Az2UrKWg>@9eL1ny_ zY{cODtaJCeAO-~r)}$ES(EvSEG#ok6z*V1kXpsVZr?!jy`jOI{m08Lp>rJW5#$SnT zraE5Qd!C4*I9XdJBf8TIsxy|L#J-N@A1EX&>v;d%dliSYmJGkE*2uFRR;jc4#WFzK zrSoKk6&&=7YUWeCXr`2oOT8LojbBp>^zmGJHeTUwN-o6@g#xcu4|jYb{SIq9EZ^TD z_82@<00!(feSE+x?P??975~!q7jebNq(JI3z>_&kZ@imN?t{Eg_v>ef2j|*Di}9bB zw0CG`5pMc2(G z?`j!0gXw-IZ?`6hIPe)jMDljp{u`!VUX}tY`2jby$))h>{(=t*oDbuhV6Qy&pPDLG z5K`lG5F9g{UutbsE`IiNNi-v)i?me`yXMs}DjbHJh3G^;-M z)h(B`pl2g zv;>LRs^H)?qe(pOAK-H5b=hrfw0DD&{5kH>znI?m7U>_XQwG@JL?M4*0k8TDW@lT zT|_a&?Qa7l<;zUN(8Gc9)M&^uYmH}Dx#S8#!uR6P@2H>dOjHW(%lJSwejttl^_1$W zaR^;V^YMDZ|GE0~K!xtb_sl=KxtZDMtCH$8I3O-wp`YpU)NpZjubGp0y>f-V; zmUV&-P)HE}8$#M_I0qoD9(+zdoKCEkKR}LY7OLxfgY6^IVb?dMLU}(Fz~?sVJz^0r zOlT(2^^pZM%O&nOkICu}N+}s4f5d1FsRvkK0`HXvaLy*gx64w~8k$ElT=^N=z z=BryDe33(|0SGD3^#N8(_xL@@S{$h)Ay=hV!c6hhywlcD=i6&NwR|Nt8yi7$b0T!t z$&wy91!h8gS(J}B{A|O?7T8KbL;n3!0UjO=qv%CQ|Ari6LZ+L;EAHtL9H#Vilt)MjJks_I^{`VfKqhs>*I=A z8CCmC^40(<2=P|xOXq%m#xx)G1sk8r$0}zqUx`aCmbhhajG(UfUsic4yVXgN5<-h> zb9=yBm{h{+H|FK|57(_{qT%5T-nY*Ov*n{gZ?=;1uM)Z60={z-9Mixy;;yD~n8$Zt ztPjvwI8nPQqv)dxA~+J8TvQELqB|xTI);{@pO+Q#e%K0l99-S_V?l0x39cd;_n5hj zcm$2SLzoN>>yec8a2r=~Q%$ug#7Xt8Db4DpT6$)`Y#P8yUf@BN~Qk`(?#I{~M zM<0x{{oAI?r|ZK>9wuqKvUSVV-w{R-bF`oTu8e-6^U*f?xIQyRhxNf@3-ea?7Wk%@ znxU)>ci+q-m98VlS2MD|uc>CbcgFPh?FdS+RTwgiakF!olFK^gDK&r`zgk_&Rt`;A zDoXcTAGy(QfmU`)9=mY4wgzSBZx?)MwijGSZ3dj#j_}xw-bx zRc;ljYNd5ZeRhDP0{U`o;rgN4ktrD>NCUU(YPx^ z@TMDKTxQ=^sL1^K%EO?|4+W&k65*$5C>!r|f1)xruD;x#$N`vb=i|U*{dDCCe?Og5 zZ7e(c?w~NQ!PaYtS=?eTB3~vM8j`N_S#A#7sHo(t<}AkhxPLFd!B#6i;VtZJ(y;0s zy28~t&FJ7eL#<#o=5=mTL=0Fh^<5-DJP$*7KR9?c2tIRk2uZtbzG9S{5*u@M6^=g( z4iJxB4S4Y$7|kp{$&|0@>m!~ju!DwtR^b%#ov*O3E$1>lRJAkR>#NmXdmJw@8>O z`10Z<<|_!E72`X@EXy0YVsz7}zEDa(#W6Vf_;7*W%BX=~VAehc7qGw@G3g%%k=njg zthR_bMbgM;WYF5L^_ORv9!{6!<{oj`v!5)uSjk2`GSw|3!gkgC4TLNG4{0P?qrelS zHC&z;X&Gw$>+c7l2k?clvfpW_q$Y5SKGvd}*}FSXt)jxr-JL^HWJmAqhh;sp5VD>~DVqm2@a6b^MlYrY} z!f*p+A5<#&({lUXcl_6svFcp4i7#C&ISd(^BSR7TdB)xhRS(sD>E52jUB^`W`@dgI ztCZD3Ni`h`{*rn;n*Ph0l|wfBJtQ}8I3X_YNN79rsrhSwSns>%JQ5{?SPZ=aHHgWK z8a@G!*6RL}gGD&~g7%M}7FrA6bne!+YbtMZFuq@IQ_ri|(OWl{3E#MY(_*?IQxO@N6%4%JGJl8#?QK4;>&q7R zkD4uB_I)F^NH|a0Fr8e|Ad^bcFda+^PWe}P40H0e9`6mYEAv3PT1?}F=$f^uy7N>` z1i<;x;xyA*6HFF2bLWGj_c#W7pW93)j>=8?(JEMbiw{^$8I*LiyQ)%Z<#g@w0b(YR zJM?!BpFy_g=kpHmW}vd{u)=!0Dv(4f3CuS+d2jXS>$R}M0X|O(@>zAIHdM)MAtCh_ z*0|yclohIrE>>JSJB)~dj!ABL?|D388h!5efb~P|2J?|Qux7*>=2>lT{BdvhF@T2f zdGJbz7YGErW>tTZTECjeB?oh{7m)xnvkKU6+6-vS?)0xK9&Am{XOYg}zfF}EoAGbvZ6F#<#tcLy#kf*ml!HFFhi*}NQR!0GDA7bR{D zm`I~8(@iizaQMagaGEaGI+jcdC&g=G3Z{)`8b+6@?@*^M9HS%=5Z!MMv{WGv(>KJHvBC z476V>^%Fs|M4Cz^mbkrBqp~&<=MAleQ1E$i;(;@f`zTJffS7d~H_#EDlg=cVbopz@ z#E}?4`r+WyhfFn#PodS6QeZ*mw7UG)m#<6Xi;m=RyuP#hibm*mQbNG(c(XNN#AYFX zFy7tbuB;saFmrO&yQq^-sH;xP6Gp@Hxc+@T-`Fs&uCSTYNuYK}exNch;h4uu25;YpOem zA)!gSQabrF0Zm?X{$!3 zt!pax9laKgm9}FPROmo2REg#cC^i`*QHsH7JRKsibw-&(b z!jCiR*tgN)=5vt7E%0@nVjObm3`!v({5@iixX!}03ub0~J2REv;JTZ{?tobzeT)b| zT8~7b6Ggwyo*baYIt5vibgOK0P8&HN-aIT!8qWocE&{x4>Kq2PO@hMlkv9q8wGTX7 z-sZ6G)XP16?)L|Z*PaW zpAbWL)mq5Wl&F8hM$!uHzPx;HG7#{Y?HxrcLlUlH(4lf75c0cSxcmIMI~u>8$8Ob- zR~Rzb%gasE6y}>MYgb*RK75gsM9wWgn%)QxOiuRH)|Q`PkR{iaYbQEJeg_9*pPyZl zjs93?pH1dJE9Ie0*Aw!&H+CCRBosq+tqCQMQ3q(rP(Xh>7)sPXSrpj5pw~4UtYLK> z%~-2LzCN7sEyotdNXm6AR;9p5k&OSMl=M_I&d!WdGILXa2xfx)-yH$cO_{%Csk)b& z*HT7&0UFv%aFo1chP-nb5nWi5@yK z7&c*r`U7YjVFK=_gkv?wJ}{bcRIme|xf&701Je%*7)BZCu)Sfe#yloR$H?-SfGbm)Z3Zm;{P@7`klDS4be&GSQd zP?*^;RTQC?lCtvB>9$m$k7-6&Ukd@3zY0gV%bx4)?dH#)d8enM&NUC$Rt0)|c6X6^nq`*&qRZ9Q=y>K_i0-*x`(`;=Z8><-*kJ_KX>UY5v!!cvj$m}{ua{4s)~h$ z?uUntnP9(K@%pP5JBZD2h8Zizro}a9hd0c+klyJ+#e@j)*yQF;0%yNOC(b%u>8>0> zqZaKa>tfQl4O|p5cYgBi>3gt*G^7#lYneiHJ!J*{R{x~K5`F7`YwJ&|+ zfR?LLU5RUo??gJ0lUiTEuXQ0C$}@HLW;e6wW`<4M>H`SLk!i^&s%+-3Z_1ZG@%>OM zBlaR#f9<$tYbSc#!2PzMit+w~^`I}odbPo5xUK&ixHi$6zEZZm!~$)Jf-D5@I`&to z#a*=iYLigFeoJZ@P^Q#P>sqZpo1cEJBZHtD%adTDeQtEB&OuqV>=uGMXA(boVE{B# zOYotas

IZMrLtN3QcNypeXb)^!Nn3^$RU;RFz`za3n^!NkW+1k`)VXfWnzJnCz znlIbdDHx;b`0Crazt6|zpk4h1=VQ)T_OQ_FJ(foUu>j-QqS_PBwB--E^a7_Lb-Cyj zu+-tf??6ZB>dAaA!B*oQO&jqoSFZ_p+h1QlKD2I*j;;_vs1>bQ=obE&u}n(O#`f96 z<7?>(31Jj6EN?_lvm#Q06ofRYug9wN%T$Us!`8akR7#{wvua7IfRCM~W=pn#e&!$f zVs?;FI9Yju13=qoQ@|UYdTC)u@c6rT;2ML?b4SMme2|<7gBEsuH4E4{Kz~sjM{aH_hzXKO#wQWuGyD|ifc}YY3yu!u-n` ztO=z)Sd85YxmpGfUi;Ums*|e}ghh*QfLft`2MR7b;#w=0&Dp8~m0a4}!ya65alIY~ zehwpKU{+mBscD9t5BP#1PCikP9|8l2ZLmi>kySY$O67jdiDOGT_rxYFoHsy!e7F*| zEYi#q=JnvzZ=3ho8@&h#(N9c-tFAutIL+pl0<%qoW@Md|tOt^uXTr&-2YiK|uMu_Y{^iF1thMkRg`X77dY>4UdZp zrV66{WQTncxaP;w=n~QF7AY~HkpKufzi5w10GtGrvct2y=^-PtAT#)(-)R%748(b|D0oa<=ii=74Z@|2`Z)cmkK z_;g7o%_>?kp`uU=5S5oNj3ISd`GQ;k&m}9F-MUuP4b&+ptR@f;5N5RFJdqR1yyyWA zSW*7??!MC>L%tXeT{>(k;B-Pc8u-QZ&CJZI-{7xf&W3VH`M|8(7kv2UVs(Z6ITo#= zi$d`%p4!2Hoig}#a(nXid7G_$P$jEUw})_;ZOy(P%J*vM^Plg;#GKcEN9Qj(->(O; z7otaoB8wJC)PN-;7JS$1b)h}ApA=Z{qtm5S*5Ey*wQG+Ua&MZG@!(M_*l92j za7-Qu03l^&+5RGsN@Pm9K|VK;2=x^-HxL0Fv~DR!`Dgm_2~{Syq&;3J0CaWpH_Q9|#gkKnc_pQY^nefR z0kxaNo#ed#{qq)kUh~Q1m6ENqUE*}w>^%V#Rks()79vBFLRURZduA+9t%Ra@kBg#~Cf+M632JJykC{u*VgTAeAgE; zu8`8wIGZ^{V1EWV;J)gl!Or0DhP*aavD8erDWuyFq(}6^D8)8>JG5xnLG;CH&b9_V zpkC{D*3=fk$dhAFCIfh9o>m;j>vm6;5()Ifbz!RdI~D zK$YBO4~dRWDOA{tf4JF&e&w>; zbWxxbT0;P$#K~eUHmcNwS|L6i%VN#aMhy+LfxnvMZY=TTvkN#KvNkuAjt{gzTSNjL zd_D~!07}7DWsE4vtxgG2Ac*71Z$AA%DMgcb&BPUQ?wQ190q=U|Z#SBuNk9NIOn!Pw z?&IU+%Z~(rHu!C4sjJ=k*?PHjPba6g*Ov#dS|uYBySOn>ApS>&k@%h)_J)ZV1hgA1 zbHmL+rHL#4+?l2J?MO9y4{O9_-`nbj`7@cKvrVk420~iaZTP2eBI#!nL9}l*?x9fH z)7=FENP(I)Bi(^2ap3I2V2eA$^KSaHR;@Wa{H2IUwi90gR9D2uNcoKM)8+7iUc{0T z3?M9Gb7?73Kp+G#tOiZJ{6a!G-H@W08n8NOsB({`H-e!YKXWyMpf-jKTn|-M6&=sU za}>atrm1e>?!9yp{`+5T%VJb2E|s6|N+=MY*1Hk5`cJf5TtCa1=z6n_YnaV$}( z9}>;b{9*|R93Fhx8m0Cc>{4oLJy+YbSD5LLhljpKi<`c^PH0qILqqJAI%Fj+O_)hf zmXP~nEA4hqN3X6$|Mb8DKQg1)?ddZ(BIlcw2ynO(3GzYhY;m4OB6@RpC*FL-x)V=K zY(EHrTa4^$4hz#*rA8$klRhjNV&qo+Tu7(dD{R++VcJ*67acV-<}_ocC~F-V=2##K zTDPz?`e7FswHW!>q~Zq|wl#%)UgWpRu|yGSUhoHZ>8viYW9=72{33M6X=5_4HWHjN z8Tl*^7Z!8NsVl3Y|B^9r5rjuZ_D z(bG90&k9NU5UjJBpneK+x@VLaC}AX7n?>9S?v^%V)~M;F89zy7-@QH%wreOXf^`vR*vrIqw_Dk;@86Dq;lhGIwQ|hmJ4e# z$(o%%!MgurvTr3cf=Ay0k&W9oMt!wnL)7)JLn(@ryUQWyV+Q*kb*`2_F8Umx?iH`X zkL>y*`&tU^o~}!q4L`2uH#)PI^?tfvI`qxHCMb8=iSB{(QimeGTbbsw+Q14)Mzm%% zlMC|f153^qT8t!yZvHjo^9YquBJ$JGRLm!lhc6N(mrSsp1mqVndOw45U=u9s1-xTb zPpgs69my$H@^3i43C?rH#$eScuQVc^Ljtpj7wYWvZsM8Pcj4R*3S!@EpyZ4GhHtIG zoVR*po!pY>kY9oRwoqq3ET1b>$Q7|>s5@T^NczQ7twNp0%m>w0ybKTNj-jQq&o=qI ziLdxTW&Iq#tc1H~-oEEtt0W}Ea)MI%9zXC#+4VL{1iPtGMnl;A^oYpK?tUC`e-z34 znu)XZ+d`o`5YDDj?+6+INiQZEL=^M@g&lb;xIjbDXfPxu?48ctzEX?G}yS=ZJt3aYmFa9nNOdQwON-dTAje|JfAN{#l)v7v-$)GG$fP*u(1h*Vd3R@(FR9iT~1iUkJlIy&S?{+>G$1EUdB`GT?y zRzZ*WQcb=^q5Qi>2aoUwZ|sj|0q4Ik#I(xQc^%gWtEv`%jL*;WU{c%f=@xmnOOj9I z($HWP1;PAbE>g7YWyS}ZmQ_N9pYDYCd~UVlDG!ZPr>$#1gI62{IyRPP0Ej`q!Bl<^ z7FEOw-%=gR3YAMgK3f~e77*bV&@xzyA0Jl*=38z`L4l5dSYARxCraG)*)wg-B8gEf zO8jw|2NNV4fB1HI?T_byM=y@>e2$14esrA%Q)W4Xo;ua*({v*X=JEO+U}}g>3fhloIytfepX@k@{-IGhX&M36CGDXl*CIp z92SgO@k8`l4;yT|;}cT(Ja7#RLXD~pt$7-CQq}3eMmyWTq_jB4lYjMeC6L8rx>6rZ zcl+aLVG(g9eBf#vPr11jz0_!e+rPM!r(C={m~ac6FIcQ0z_tG!LVEXZ5E=ra?E)*) z6YYdS%Kd4ny-nrRv_)62ui0w<5zn`Y9c{ zbU3+0uyYZmtGt*eVFy~jw6HfW=s~^4yB$$@eqPhhopb9zi@?GCK=}*;A<hd~r_# zVF1_%Xb^4Q+9k7D)V;pa50k5@#Vj9{t1e=~K5WJAoSy!zw>fV2q2l7YNT4=`HA02Y zDzw-E4Wh`%G69cu#j*vX!y+i~>G2<^$aBR>nM1ypg6fcvg}kk*s=re;pPbHUrb+PE z+s!^furovfK7BfEZhj33NrQsf1a+RN@}=Q*!@Z-q2O1Y(icPaHMyBcmk&~!u`CL7?7h9Z=311ljs-bi z=v%Y-?Zo>CfJP3wXyfDI)z;8he#gsnBeG2n(+8VjLWJ`n-4XM3>J7PR6}_Ih{E%H! zYdc%9er>&An0w|&#J4&v{_ua5zuTPSHPTT{dEx&HA(H?JvW(`7wrJ!`?1!`Yo69W91lpU zUua@C@_NfDTtz+STN7CMqTGN6r^N*0;?l?DDNLqn{pHIZ7obnky0bCyFcDfcg%^a+ zHCp8Cb6Pm+&(-ybUnb7Rk&SZ%fH?wIl`|5ImylpStiE$h`Wo{S^{NNyT~x;Ok>%Ys z39Hef0o*ywuD-sa%(t%JQ{maLXEHw;hF9Dw5i}{_h(BlNz<((`H;;7BO)m z!0fVHu{A&tZzlVv zd>$}izvbsoKrR7ABu&;-HcC8Cc(zgkjYJ$U9LD~h1Kyw16-Uvq(jqlH95=6dy(uPJ zDIxgUw7XDiL95nZW46P>!Vh@`Km%4ki9d#mSr!da@8+VL_1S8&CN_8+FSSDGZnqD$ zcTZy!vdW10HF*L$(149gG^L;5k*Eu9kfP%1R;RorkSYSTqD^Q@G@?yVsA4wc+>(ez z<4Cpc40Li*k&0he{Q|cAF%-2Hr3JE|!R#`IWEF1x(tqK7yn<_G>cha7(!_OcvG{-2 z2caM7q6B;{9aawUNY>s1j0Q1MayKwVCjnmr!O#mi+v8gB7RM<3J`g*7(m>t^>AMf% z8#AT3)2cq1qg5UbJE5qHyp3s+zp16Z(#|-J_4M~ca-)KRpvCYqV+4E}-Y$0{6|#x1 z4+;k&BW*q+5*C`W){ExCL4N$8uT52muglcq8OA5!?+QiNFvgWr!j;QIF&P}W+1t$g zPp!j{H2fv!^^i51sT4?RG4lA|=?6lwOujn;;<28P{Rwt)rTd9I4xNVI{k^zS@uEuL zr%eSyh;!yBd1-4N-}?A+4bnsEq|6iS=A2i4zL##iPTJbwY+1In z4D#GTug%=3Iqr2|Bx$>T*Orzif8>9Xzlq(FAg`adqNitCtxMlt_8A*~2#5(8HLD_w z#(PCGCp0h4jo?CAK;8_nWLHicQm0`*blp5ZXGh6PW-M=VE$%U;^|=%+oiT>~7EXXi zT__zVnVcD2Q`S;5Ioa9SQc&QYNuQ{mI^xSH_qDi=3)fb^ZM?O4C#-MhjN;r6I8(Uy}eT;fA8tb5Rb(tepFT4;dWR}3xsxv46(2&-Neq%$`ZpB zH^KFL^%X+NQ~LQnl1`2)Yp{3tFNULzhZC#o{zMu+A5c`}*w36sS^fJrN+u(C@r*O5 z%&t04B^Zq>2nnp_51-uM$8gK%=O@x7CKeZe0?IP=q%CPs*JPb~($ZITb&dnh`IFeF z>K1LNjy%Ob7rD`iR!=AL7zR8f<&0Sr%Kc#0<^PW52m3hKv4459U#VfVHL%2z`hib0 z4bv3c_SMt@^a_o%7N{6=d-q%7BBB5PO^R)hmDci~PkQZ!-gq1^s&C_{1;GpDh@G*=P zrDQ@xNy8%BzA(t^ZDwVattELYu zrfs%!*--au#Z5T7dp=%I0C4Z=v$KcO@o;B``j=qDlvStn&Aw=%&I*mo9uXjAKuwe` zUtV9LKA4Y7;bia}jHdw3Z|1sBmN3=R?Uwqj*{KqTZZEcG*`u=rM`SaKmYb)Vi}vSZ zh+0lp^gvk+9bmJthXJt6Kw?AbrxEUTy2I{j(*y$@o$2-d%jxN-xVSrTuH^&n{c|_W zH`!T6N=h8S**Vt|Uqp$DjxHDsoU#%DW58tO1u-%6W{=`hZ~@2<3@Wy%4|wlNHDm(r zH{8!wtuy5%rsii#1(^S_dN9`bHe&&3#C2{iBE&)kPd8IbOH1OSMTgFZ?}PKL{uw&z z)|lb}l$6(=H%Mm_CI=@=uhIA?+gDcd-Q~sAA{Y$?{fzYVejuW;x6g-y;?X6;$1($l zXGV9jl9F4w`80w<&AmOb&X(@HK%4kSBm|Va=HB;lk_z$9!~(OrEz_p|QVw{DBDQ`h zas!Yc5mXBZ0+814nBo2UJk#N4e|wv*Q9+;0S>AB}FYLVq05OYeYARmFDXsbu9_vu+ z_tdmIk{uk1O~lU)4@k?jbKoPC&r-3oU(L|1X;k`R1n*ppjHDMj%8T2VqXS}MStvoF z-wRI`IYtMICnu^)T=w{u|3(osB70rqgYgmbAOMofBQ&N#8gSy| ze?H8YIr;MkbNf<*QpyqTp2r4B>I2A2<uoFfxC3x>+Mwsu?BxuxAA*tVwgOo-qgKp zK|5>Kcen+!)Wdea!Fo$emkIpJ?O6cbVsV!72^1yZCF=$w2Yi|9T?!{rf>Ml$@5yV?z}+t-q=AbBv02 zdl>28hbs-2IGK0v?A%ZA2Qr08ncu?>ZpAH|#to_>_Bd}1GSdkE(3N`xO++sCsNcG- zx1}OMIw}b+GGw6H(#09t)=mv9@4Htc;3y0@QzlkiH^AJ|qRkj*`965(f}W9a2UlDL z>-FU>8~pALIKKfRz69!kft8T|_zYPqtBnLIyJpv757TYGP~kDDYX*n^_X1=-or6z= z6e7}S&()NH8ZO#uzamROK*8k=TKvTD>?>I+&Iuz}5qoG8Z)t`osT0)mIN!>itsql0 z^66`?o*(MqHeQB0L@AnDp54%FmK3A$Har~G@&vp5(xmXd&|Mnrxf)~X6*htAP0!xN zh&bAMeR6GzmGH?%gI$@vnd-&yFSj+PgGhc3Bq~L*Fxd)v5pV-A!*

&`)em(I?4^2>Pig^6g;GDKaU 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

O`NH!o1EBD935}V^^@dBM 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 diff --git a/qwt/tests/data/curvedemo1.png b/qwt/tests/data/curvedemo1.png index bcaaf75c4c4b45eadcf7b45aa31869f9a1414717..18d31923e191aacaf0ec3bd4ff44cd18ee9d3985 100644 GIT binary patch literal 13377 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 ap2Q(FLzECXLBM}~p}dupmneoB2K*m-q_#Bx diff --git a/qwt/tests/data/data.png b/qwt/tests/data/data.png index 2db8948d7efe4d4428f2e96ab0bdc33ddf41915b..5d89098ce3551ea6e0b725f5d9ac508c24b4ef2b 100644 GIT binary patch literal 12615 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 Y*%ekMv=7GoGXhKXrG`?aqUHPl0;E0qZvX%Q literal 13380 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 diff --git a/qwt/tests/data/errorbar.png b/qwt/tests/data/errorbar.png index fc1ec4832e2df1270a5be71223608370d68b46b6..ab58de6abb95d67007a9614c1e25419d6150f382 100644 GIT binary patch literal 12676 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 literal 13018 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 a=J)}z!;zkGP=Q@S?x<BzGk)sw< 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 delta 61364 zcmY(qWmr_-_dbjWDj*@)Y|e#Y-JE<4%n5r4ijFTKhV>A~}s zrD`ioFH0I9fA-VCuF%ZAEl5v&o}cL17!?)^wFb!%?n@KQcbYg$7`*G{E*~3@!^Kvf zRQEy4C}=As)>X2yPyf1%)SqT=NjdEMCz4Kh-b?4*&A}RH0;cN$Ur=Y`bO-6h-rQR@ zq}z^+4ny8|f4GDMxPcVzL$ z;3tEmx_8k&??mS`4NzsuU#F9WH^V4_u8I%iMEZpw+F)UCI0@4?o z?TY_K`b?20+LgA)uE5q9RaupqQf^=FY{ZGwZOlB|KO>JKjoLN46e}pWJB!Jn&)6~E zG~G2QSO!F=62LtA)yVn-;wj%dsJpDzxI=6#|Hx2n%U$(8H^?{ z1OLYPJD#uz)t~V7@6|U6mf(_<_bu!tFWWZycZ?;eCEWJAXQ<+5&1(~<-phOLWwIU8 z|2H@L;_(V-BPgT4j;AlYAyag6zo@WX%uH$6TY3YDEphTdU2Q2~?3>L9HK>^|Cbmi_6|h_KL}p`3erp*&R9&}c;B3S0oa)d&TmLJs=737dC}C?;60KFn`!TBXAec5tm&wa>;pk67PYhTHANMO)ojtL6G|| zKrgvY=nH7YvG&`e&)jtxCW=pD3KD{TcMqlH3kIfE{|oGYCi{1l?Ef;*B_kV^adcev zW`AwoKac+xf`qdE2hWvbStCE7Q_8;&_QjZtz62K(a4={LCs^8B3#ZoRbkGV3?UMoYbP+;Lhzd7@c@A$<9>)7$6Nie<65bupJBJ0VDR>b zsFdOa_fzq|&v{n-mNGKoa@C{lKaG4B$t`C5Vmkw)yxF%(Hu>{*Z#QTER!WXRY{YS^Q}o zAX-EWO{vh^37_bR#pf2ylujLG&BhxNvhtnwH;C88@x9p>X|GD-U6UG2ely9vL0juL zF)fd*+bcg3pfm6$LDH{}`29&`^;b+z-gHu%Z=Sq(P|?4#s8p3xfw-G~qDQ^D?-y&V zzC`fpg)j4sCEVwzR}1YTX>wyq)=nh=W1IHtY-`Q3bzkVSLcJCPg}B93Ym?$vL9WBD z+fqx%r{cggDxR0R*H2N^(P+AvD+-YJQ7VamBz8C$C`6^PYPBA6x5Zu7x-4}K7=f|!Uqi=#tiHe4I-=*X z{>l?Wz{5n-#`xyDG!KP@sblLfXJtjc$Ir*!B;bv^18Lb*`n0eUUEYWuZ*raLnNidm z9_t^AX*SBGezn$wF}MX4ev3dq+Y-EwLsW`BtVdaeHteLoYf33J6LfeZ9wq7miHGGL zqC-(c`5+Y&|J{>ws zPlv1sg>gZK{A6_?cjwj$7vPazA;E>v%g{ZM zxGbL=zh;_NcHCr$sO?)bkx3A79mwfmu4w!-AFi={9ATOZxwUXI`MOrLWiH*tLd>V> z$bhUkJxwsrx%FolQ;V(qU)-iY9e_Ew>qT8~+>r$O*Pm-kzAea~%a#Fg#RyhUT^= znizVDnC(%r(eL9LZi|EQsR^=XdJ}GGfBPbU&4XGflxs;pO+w*8lr2sroA}D0BU=`@ z$@brRnm@cIVa?=lAvjb`UGBQEvq`nFnd>k9ZY_A`N`*)V%*AiSqAuAH;Ej-}#J%-% zKQV&taVarh6M+=wGk0}&Aax(bK~cC|(-H~Zlx-@#@L2RN)8Z?$rk7nLZ`krwb; zh+oaE3rVcO0}kQ#%-n?X^7c~Lnyr-a(#wf2aI3XEnV;r z3fLsNs#2lHzHl>hqN}hd`74Tv;v`n$9^o*xA? z7G?1xF~M1GyMCK`xLGq~;bd-C0-Hs2(bx4SSl*lK+^2|$&kwJ}(kq3x*p*d*chi@( zGuu)wTDrkil)oDot5NQnTfZ~!^2r@4P+SjQ6_2&#z%PU|BcSrrrlS$f!GZ#?zV>Md z(C_7ARBBC=>5G{7KIP_AySRj~ep;VzV^nZD25s24Xtk}+jTroWrMPaWX$zWZ>A0+l z63rvDJ@-TuU45F#x)Z5;aAL%4PD;H=b9FI$8LxcD4a@yI0JgXWT;8&k<+*WTvMEy)dCA6Qzte{JSyu=j zIUa6sEQUyKQ&By?pYfoL`g`QDbDOFz4?NxIZfINOrH5)6_&}P#J)a}(?{A8sueCV&H1Ag^&!YLP-bYEZWuAZ1Cw={$9xR`z6zZ!gHLD(I%cOx}J|NbVUq&=-34!e0_HwW?dyFi61k7UA(b@aP1h z5D_2Nnp-W@W*co`!P-YvdWcOdgJavkSN9=#-SRR6o;BNU(VRJrEJP5kRTy75o=&@Q z2^h9eQh(=xUB2Pc^?|Sf+vbJ(XT6cqY@b!3(Xyi|uVHU*Bz#0JYpv@Xp81p#m~c7A z>G<+8w_fiY&|`hAv<=P2mN3O*Hrny~vgJxFI=xpGt!M!U2tX6Qr#W>yKyljsHq<_#P zo;n=(?DFeStT|GHEBQ{UWT|c2ciVGEKM9x2e1WWfN%M+s&1IYr>1lGf$|%xPO&iE^ zUbE6%>!UW3`zv_{Xg}kSoIw;YBt?6IZO;87a*E+Q3`?q*!!TZGBZuBsN7m ztpxC;c*8Hh+14SIp2gpJ)D&ZM!{NXzuAQ9Ue8bp?ySNvY*&6dnHx+ce8uoq_^%w%u zn96UU^pXcK2U^*ku0S&O-tzYROI@_K=XE)z%A%;>+L`p3$+r_d5um=-EsJc8^(y$3 z64pfh6|OJcflq)`yvv`51aSw;=u&HBn!IJ&Yl54Z9&Lv04_dXFlA(Xkrw0Q4zxsWA zT&^6MBE_b>Lr+^|X?4Ev_rfGn@%t#H2miah?~y>d?xRTghKET71$#<#g2H_x=ZcZ- zQ&OUF^;PY7p8H>&_FF#2y_IZd2Ay3xnb$ecwT3H_zE^Aco>J!2%EX|Kw-$JP(#S5d z=UUoGNA2_EeV2p`-3Ldlgj_ky0X#kl)5YspY?@Z*(HE3z9g2R1DcVE^?i%}Yvy<%UB{sbb&?|L1E1{1;C{{NQT`Dhzi1bc zs8@AcCw?1ONAZfjk8?th>3dEQP9*N0XFgwmZEo`8i(mOp+ztx94PIjdHlBAr9{w#C zOU<{2y5obCA&c)qb-}#qarNQ@^${N5I&`awx!n&^c|-jp_0&M0mqm-(lvFqFV{Rxpnlx92Q-V;0$Dl^l%$ z__<#y#iNLM#~6e-Ykq|EezF_!gQ&qTlTm+;;Tm8Hs`}Ws!?69>=pxLsI)?8&u84orH9kGQpWZOAwMqmozUNp(y73UBPr*N`nIw5V(dYW9m{Y1T_++oZ>iCfs?P@$ z*1BxLP3OniZ`A7dwd?TNV6dlz#N#=Uxd$XUO)aGf^aYT4?Pn(F*!2=rVSmURn?4wr z`o8kVySvy$$&8Qt{fatRj~n=WUMB4obYMnY(=*e(b2oc2u2AnI`EokS$~OjZ417Ab z^Mw-m{UUg93nGmU3!!SV1MCcK)^^ISeuuDmT!R}!JRJW6Vhz8-zoI zyfba!tMz-%w^=a3MOJW@hJeJAhrJJ=9)yA&HqIPQJ~IUKy44O1SP=jzfr|MCc1Ap7 zU6+baBumZgSBsF=jWQ!siLp>3+{Ie@0u>JQ>&;fLWai677$JIex?qM^-`^-IKCt_$}$ zVv(pTadN9{vvl)!9q|3fk=QN>u(~rt6d{Vk61MK+|DfMP>D4IHcwfOdIB4KhfO1m# z6`}C9RP+T~d_|ml#=a{x0XhG>kW}FcC*-I=bpZ zMqNS&X}*`XGcsG(pvDo<^F18qV}qdPX(+)n@>Yt@8f1$T7JM~rSR|G^!tYSp~{&{Cpun}e(6Kx2VMS+ z;(*R!lqqI_JDLgX#ZBbo#vrK~fBn0ChFRE4oo~2S7}8i@Wh>}!#J2Oha)Uq3`kV<| znpz#v0J|pi;G!}wY_%4)N&W);CKY~P@iz%fN(Y#t45nU=9g0Wd6jsP85#eU)dT&R5 z@MHa38{Ch_L%dRL?eDtpJ{E_aA@m@P+)55fy^p@PKmeP*H)lwp$qey5EMc=S;D@2( zIHvNbd@#rG0ax3U$qfr{oOg3>0dz~nZQA!Qhv%I&B;%xND~iaLTUp2!LHb7mi1Ty* z1*}(?kh`EuhQ_Jqo}ju&2xq9p!qh3;)pv2rqVaIg^~vLU_sj(mSv1gg8Ja3)*dj79 zxvYF?H=kDROW1$1n4~Yz)$fUj)Q-equJ#$2cx&}A@?9`LdiB*6pDs_f^!$xMM52&S z&(gY#$8$=i1f_*`kpn6yPU)%2gLFoKSdx`j<^F+vfv3pJ_=!-R)GZOY2Yt`+Y*DnS zt=HbZ9YV6C#OJx~_Lq9m^}2sTePX2&ti&B4`A)%x<{MWm=y=L~?w{R3aBZZ6$!)>f z?ln5+K)zn-Y}eDY>*5}6&0`BX@Y&K_-_H-fSXx`V?dG0TrlO!pVSqjEOf3L>V_g+$ zOJx!k89u)!mRZ;N=?@LYse}hRI1WZ~S@4hs<_^p_yj+^~1GH)}>>swVV>nT1p<2Fb zok58vf@5IZYGWUsg71Q%*mPj0dMT$+*t~M?J@qR04+NzesuCVSq$dxLXnQEMqM8TK zhp;bK)PscV^SH1KnyJ^FbOFu9f$@w9Zr#N+W_VB}>!c;ATm{@tSTf!GK=>N-yz_KS zw0>beQR(G8@hXFWO&OQe_G`hYCnv?=6Zf{boiM{?CYQt_0T@}sdBjE79dXS@8K*OH zep(ja46meympHKEP!9V0G(1>&K3Rmz+-P~8J(ru%)~h&QXrIKN8xZzljT!0ua=o>D z*7mB|Iaj#JfQDPIdh<-(1RrE+bt&9skO2>$;IeI(VETnX_! zm_*()m)xqYnFqWL0q|cWv5QsQK~JVrI&yb~B&xZBRUTjKYvW*3?d}TcScOE3CU0VA z>Br+}0%Ll8u=`gT&q`5BtPpyMhoAaOqUbw z81m>P+kKIU+fRbMB;NL_bpJ9qO5M|+dwET=BEu^_=#TQLP}?B?uiwy}isf^NQ@PP* z3Ezl^JG(U=P9c#+ihrhq} zpK;#|#+cU5wN=`I>W@t%-+h30j82!TC`JVFyE7j{HBS6m z49kas6jlu!C&k*YPC^sNRp{k{+1a8MIP^^;M#`Ol8!q084tF|2zTEct``RDrpm!yB z#Y&;$4`&PHy!6q<*t}m4aN(rtzrfln3m}gD z?e}@+4&JxR_4bEIrQQT6$cdOR?9W2K!wn%ybm--Q&$$5_g5MDP5tfkK#<Gq3 zG2sH5yfM4v^rG$8RP>;yI07*QYWg<~gzn82!5q+K5+#YIZ3xF7YaBk4no(k_y3fU9 z%BR#+sYg|vsGy4+vZ@>TA=}leMo{0()seniV}iLEX!Los)HsiHB8t)$<##PTvBuFe zIaWu;V83vVt|h?oJ8jq8J;;A>t4m-zkYbZZIM@B~?ZXAXmkCP2uTvQx=5M#}G!YrF-GiX|9NX*P9x(#^7Qm*2Rp3b%PW`73X}{uO8CeG*~D z`MQ<+-TwCLKQ~f1hm}G!(RI3O({Y$c!{j>O8=;=9HKS6XSk=$j>FPOqy(rNKxo;dB zr%IUW+by>E(zWZ@5yxqTTHV)1HvoJ@e&%J5(Q4!7ciXqo)iIx%US)7+%l%wUg|AbB zEwk}m^cX=(OYIrDBD)m+8qO%3WPwPgYUz_{kiIX?s=Z2^_cw#;(TSnED`wU;@VmZ0 z@yzi2U{>a6In$15GMP}$=VebFsmm6u@^T|EasQv zJ}!ITSk2)+7gs`-BCN3!^)4z@@XlgBe^c_YvFPI1;2d3E^4!-NFohZ%eC)7&roex1 z6$CeJUtG5(UmDS)wC4#MEQ6`}jKX#tah7HBeI+>MW;pw1h`>&U;JmcFY|%|P5kX&G z|7QOKH8cX!;a3UP#d+cy1>9%cxHA0R)76Dyo*6D0usL+gt-Pr=QE?xu zdC-H$VWJglo5oXu&$1*<^Pz$W7n>|27aoJI_owGbBt$~BzmB>()jy^4{@MHJxxaKE zRcd|3b-~-=MNBu4l=e-59`YgSx>G@L|Ebm!{(B0J`q|B{uzZdPo$xExhSWc| zDwjr_yFaMcQQPD1f>Q#MuS=K~Qm=mmV(9rzbZF=U zAF^#B1V(x?XvGOUxFF^%qUCzeim+b=njU|`(5;=UB(ewse$5lr^M>oQ9#)pT?$cAmt1@jg zo8m(-x_K8iD;$NBsq2YZlNC{NBBViSjZO^0?lOgQhsTnh>QD1qo>$TjcJ*Fq=DVR| zpTlyXGldN}a$ahuCCAsj@0Cwn_o|)84_~^r&?T+KovlK?z7=z>oV$NgEEY*O;G%qz zWoA~prHUtH5d4{f(ISY2{GI07Cf5N1i?_zxe$O@a6&XUZCtpCr*(BfXw@~Mntnf{- z0U4?cKBo^MkK}R2Sd;5M@MV$Fx~SYpqy1@ox@H8B>m>GFQGyxZTEQrS#d?#LupjI8 zj^b((FIG*P;t+YWP_9c^G|54e+Qx^wm~4&9rS-`2A@U zUDe|E6|fVm%cjLC6TZO5r>$m1``8a#Wi(g}TIGVu6I{tT+yvQeBt-C;5}wU73^JED zMPdU<&8I1gZ5BTtuMpDa7W#8^s-}8<`qk#$BGUvKiAq8dd7X7AAJ<#m3vuqAWDzdQ zS#YpT?;Xu-15I75gzo%CTsRoZwFfhy>Cw^FO(6*5zpfulTWW22X zW|J58*YrJJE49Svn;#@sE)CDG@d>e4g7#FQ!zF7iqAy#wPKtbQv*Y)#Mdq0|QAB{m zvR{O0v3F16O7YX8u&>Q$lmWOuM(x!!TJ`l+a^p}km&kU$Wd{n0s_|Rgp9iD0;XS2NZwoE7eQu3dV(6H zGNq(2g8BOjwhh)w<4|@?!aLaQE=G(sn(Z6XfkE!rte) zz5FB@ho4%IP{;jFN`Iv9cP*D6>2`htk&K&p1HdOfuiY7`;oLGP1tBy+OKt;qOgiW|tVrr*g+Gb_QL&JaFeaHo|nC zny?m%Rsuo~EiK-z^feA+a>NImP_6(g*}|aZNrr zFxN+_ZW&S@92DP^|FM zadI%2d~W@|oqclsjNKai4?ab!4hWFa(m5MCw!U>vq~d@_PWw$a+OroXn-Yb(buGi4 z&T5;IO8KV2J;6xR<4)3FdajefVX)=m^AS1(m`RqSvaU01-5XN|bESkJ!x>&z0q!0?3DlUaj2b6M`|N z;+I$b$AC%BEL+R|$59W&v;0=Z*Q+!g;_zJ7g7#Jkr%aZF4#H1nwrWj12=1nP*H4_J zsx~K6ay9VC9vl2l(9TJ-HrC3l#~xgWkO?Uh#2vcRSTTDh9l;Rb?S7vN^8H6vR~{Dn zB3at^_fuXiHs@Lx+xD{*EQYB6qFWw#RZFqB4Df@NM)_zsL1czzjc6eM4dibaPk5wp z%F6wfkpbvUMYbE-`ag9flyplNW@ZLoxqS9Cb9GN%EVV4|n{Dn;sfA^3ZMsZ1di|`T zYp68V+kgMD#H%pkZwI%!XQk!Lk?wTtQzklD?sCJ7c_@wDv6C4(U&vB&yiup+Lu-xz z%F2g|;q#mw+cY_aP0keEmeVHWbM%2@p8i45`jkdTcZs&tXg=IKVg-PRxAOT|x1Gk+ z%aMThmv#YzbhO=0vO+T4>yJPR(f3>GXOguTN!E#{ z*5UxU6+U?_qeW+=<6T);=_0RqSW_av$`~GSX>k~&O`p%0mC|iLqgE1CB$I0t48ipR zdK09gO&|W9`OR&+~g`rq+=3-9}QqUxjm9a;lq7U zp}WBUgLm~=TIqbF+D9lxE=oZE5jc&%!|L=;Mk#l`muJjnp5L6pGd+R`_%7H}_#dPQ z_gmrfm{?N{E|QQ2Gq^eORg$aov46F(_rylX6~{lp#mU#No}lnHF&3}KN{b(L`t${x zygggQTBD@o=4flk9+hQ8xLPHF1kRcn3OWX}Q>yLdN_7a*UT9kxCwDKMH?-lqh#;&c zZBdZzj`54T&+LyNyNg-1Harrpg+m`WfC4PU;dB8_e5cs(cuJ7F0!ZD%6=48m`FI(S8aog zSVs*qcQKVy%}9xr^KnH1(hn2CzMmzv_ixMZ-+df8wH0b*#QyLEBe4;NZD*kF+m*i5k@BKA{r9et)Z(<@n@byG z^U++;4RA=7if#7)^i9*os+FZ)MsI$Seibo)SViM69jrf z>$ClZbX>QFhuC&GXS0S_84OYzL}FmZTl+c6n*c%tBcOkIOyP_5(640KG_c3Hujq-T zK^cd~k6+SfW}LV2P2-rVhI;~e<_3#?slcX{KLaA8C}ZnX5&8+YUWgsJ=f}&*G2UaM z+k}+2w=&KfozG7@7m>Wg$|tWDm&wk4x6ucSZ)d^sPPK0@ zCSh*=e_CZf#a&yzn5*B2m?$I$E{h{hvI-N)^q*Pz#wJ-kiMj%ZJFF9k4WBxlsP4e`&WUU)@a8WNIwRJ+{e%o*1i^IVZ>@V&zgS7 zl3wJwt#YyJDY+`<{ zFIKT%Lm`ghNt{KbT%)LB2_bfu{;qF_EE~C*MM@M_0;XFv>n=U>Pp)BMZn0Hgv46X6HgcBpEk~0Ib@i4?YOmMD!h|4u z0FTZMHPGOkVwA;sFItXr+Lri1YiqeM+%-o8pxM*;wJTFC%eG`++~g*)YrOxhA( z(e_-tjC*$Y5oN$2bNZUC)VIx+P-@2KrE;E;Al)C3?5Tx?!DWHnPr@3c5X=`?hlbv_ z+;5+_>bfc2u=W^d=yiORehXh5YaC5j*Y5p>uKzUR287%%nEb8{A&hMe|z)1-N z^2Xlyr$Z9z*(SYo+dl={X%kDC*)=8h%aoCf4;k+&cu|>F%~3Rok(bSW15T3(2bYuSDnu_~!#&=#j8i*&5eL^&t{p-8?f%`}6un;}+*gWGRI! z>K;KV781wyA!WCy+VTsV<_1Fe687PeWY(nHXf^#v*(WFzmIKBTAeRdiwa;7u_+$y6+jn$OK0^SFOBim@W@_hL1=aGZ7mt-cVA>Grwdyu!*WhNJdQubyL= zuFeUIz{QNd4lTa}eBEf`%JI7Ay)cyB*u9SI(ppX85)M|?)*acGHyoq{2Q#?9#(mI; zKeX$0n?<5R_RZypV&HHU36Y9JT~HtV7JtPLS(S)}f|kX+m(e^@h$8*#EOgmWR`%kY zJ6!s@>|W^=^BA{-k&Z6rYbOMfpu}5NX%kaRXh+Iozl2Cmc{}p88FoM3A509>HSr+< zQI^68shi$z%`7V`F?4^3P)JuMuUNJKWW3x#w zCkOwf18D}*L^CICv*IazGdfttCk6;cV;pd4HSj4{`QIwHd8^4sm;Si|_4IYwCZ4F{A=R0vE z#9^j$lmjW}Gm;QITP55G!^Hj7=|8QG(h%g1Z!p~hJVBR(GoyN+L>vJ}Ds z`EZZ5%ouvk74H1JX*kQtNwsf8GG5^^BaHpIEwb^yJXf{dpW2#4K*!Cobw1bAmr!KE zm_~doI(il!3lyo-do}Xap$J?=DCEUme_0Fwa69pvkHu(Z>nX!YA@wQ?(j#*WDJwuR zTXhdKd`%2*_-esvc*pZ)#mf0Lw0DUk%iLg%DQJle;gcn5J(nk9Pa_Y$PqurVJKj(1 zXmJ!ABO10ei_`wok{wYw>&^);Dt@+oYq3S>qN{Zi1(Sg5xuoo_qT$w+MkDgzwd)=uwzkswh(^aRY4tD%JoXG zeQRG8M&qAU$sFv`wbp67&f=VI2!j_evv6yVjymW(J+m*}1X`%ab~<{D>BYeUP5vAZv`ZajdO*4s z^H__vuPTkZ^N-OjSsmP!ysK>rah+R(X6~J%v-n4f@$-6n!g;E<;${o0YvFTa!U?DL z=G#~O*Zljrll{Hgu_0t?CX|(C;6;%#zKu$O^j(7!pXfcGptHvYPOn}&K#;g5dYW|v zzur0Praw6QB#bdrm-`l&9rAFW0kN;oF~NZp+hfPS+>mZI?k9$!n9F`4>f4YQy;B$I zA%~=frJ7LNIO*0uv$$CTVLi6GJ^ddpDSHPQXNK@va{aX-DSr>Id~(3;4z=0-13oJ0 zzB9&*gwF7eFssv3N7dG)u9=xrbM%uOaw8_K(VGtqt%U5iu>cH};EJ~)UJ&1jaZ&ee z1Qv5L-MVDF@WaFXaWk@?$WX;Bw4#=Fq|4yAj32fv1dv@hi|J(9#?v!^Cg@O)A-9{3y@kg)ae2vhoTB+LN&jqXTa zkIo)2AJOE1VDiizNWt*S))OEhQs75lXtQ;wfcJCCQ`=U)!u@j1)dmfil#X%{5s_l^ z2uF4B$fwd*r2FSGpb7YQXdwYwCODB|6(q2pomdeSSeMdC@KT$>(L$DO`uFhjSa-Z} z8o7G1oT_AW%YnlmO1S#@h|+pcNCGGwttdji{6vswB5fDTJrud7Le%P{-Mu0`~4PS zDcR|Drq!xrf`@y37{w8GmENcpq+=4KlzYD~)nkBIOgr8A?Ugx^C!9H|or$UfHY;p9 zH!IjTQS&`}V==+I2FesOtsPNwIcOF)9L?gM(GXC#!25NRcbij(vmb?qsO!o;2#9}R zsy=7gj^@f=)0MVcI>w___~}eiXGAYcUR_d#`PuE`b4T>Z&XW>@3fh{TIkt z6a;31`yY|FqghSV#Yj<_X%}Goio^-=X!$iRh?g8%mQ z?$?h_G&b_XM^!wXQl^EY&($22-AW?Glr$BrpO#;HbeoIK+uvXJE&wf!##kDqQN3|U0Kw8O@<@1Gh-I*MD$vXl>Fa&LN2)w$|1@)D>}bE;d=;xhG_`&aPPOPT)S z0E5g)i52UX=YLn090MX690mtIavU0^Xu;BV?07nn$?TY8(RU)d1!(%6b_Bgm_?h@j ziK!X8;vj1aJZgxq74hX*7n#7@C~ETo0_Hb)~MNe=b4 z5$8dd?P*s}nA_VZe?D5tqq6x7`-PRug*kAIctnLmD`9Mi0pQ?#y?T@uclyz!7yf$> z`sAE4tjg`Pn=WP8rak71cP8APBdeeR50YivLO93pCZ%nDE)3moq;Fs~*V^%K#*SnK zXUBYDLl_h0yZREEi4M+<-IXG4bw*Z%e@DP_?_JH4nc)xEqUB^k$!z8EWAOgnQJ=i3 zA97dvv$#9}Y5d-m`GKi+x1)+rtQ_ii@bQzg>_?elF#m{_oNDEA+sHU;q z!%at<_bZL|ZG%gZIhbyvCfh5-gOl|ypxp1Kg-qLH3CH`jGZ*vN;vKJvY(cpYKfILg z^#jH&KDE2{2W}uGdyx_x=EK#GIZB6w*e4CUo5nYQ#u>l7gzZF6qHWryqY6<`4s!!9 zf_4SpFRds zK-=tOqzKmga##N=QKA2xXr(%}NxVI2ZDjp8u0%Np4mRZx;=5w0rr+!4lL1)%{c zCsXQ(uN|bO$O4C&FFBv0B2&(gfMcCEgnIVo~U zbPhwMrdUEYnDF-lf81kB?k^RcDHq%ZsfO`jOQSJYQUe z@Bn$~Upu2)7CdWhEtW-Tg2`UYZ5r#2x|--Z3ntLt>Rq126Qjl-gn159nx6p-{rXP& zUoObE4R;~#IHTF9=oZke6A3(hJBKvZb(&}D^$yB3AZB^4qxpzS=?USY@=dFC-WCL`m#;U}@!+ZJ=$6k1QUX0b%Bj^rq*Kbc+v*RF4M z7xivB%}ck+;PGCT^JOme#zGq_93JR*&qFKsGQ&N&UlzmaJ%H~i=TR?&ial$53RPS# z(LF-lXZE@~HW{5#|HIIFdlGo&Hs zA!++DRA~&FD$I>hZtsAmC%JBReZqAGLHLsMKC^aOp!O&_b-r;>zKEwqRKog?K6Hh0 zO;s>IJ=%)V6zcY+F}M!e#j_@b?yCD61^}p>YzFnqixWwEtb4=1X@f3dfX8Y5?n#1F zV3c^?X_K8ScOMt{=m~XY1p;NQ>8zC@&CjGf*&ST;xnsdte(8< zz6P;HZ@RTt^39vJ`Llz!FnKBvGAz-XNHvP}O8-8)T5n&REf;!fioxuoWT5}M@Zey3D_O_k&5m8WP(ipKtzVJVHwis4p&9MdCT zSvCUEPs{e%lUx^W(256+O6&c7)Bbv1J_@Tn{rf9al*37T%_rHTW{eC|{Q%|R+qN#n zaW}QV7jMl1)skRV6N4zAvin1zePNf;=aqqLziDKX7^L-ur(>#{6$Dy59uY`EoV|pQ zncUW<=Gwbr=Z+RKl^U5BT9WEPo;GnnvW^me3tE6t#shPfqsvyt5x8LaZ2WV|UM$sA z2Y-T)p~9o_^(21+wY`x+WW{I@_lC&>$~Erzli8mEbgzw?Gob+8|3}kVM@7{}Z66Ut zKuWq(x}{So=@99X1_6hV9AFgb?hYwwkQzFqVPGi9p=;1hU=XRHbgbViH7gts4wPcHuyEIFqS9{fq$S}Y~ zAt5}JI$Zt0HtW800Fb}zu(X=`L#>MRjyHrjf^{cLsAAzeKF(|d>7S1aj9J&WA*yN* z1@5mH%uHqSJaE%6#%q89O`WLP?G{4)q&Tl0(j2XnpeGc}dCL8^oA&@f2AI{%9UbdN ztzoq;Mn8P1H{(RFV~u{wU~}FHgZMayz8^PsJe7zyS;4XYjjVce?Ji;kR%aM{NAcEL zE?+0s57BOG)D*<=MV(!v@LGQnnr?w{2lUgG1)k-cBG0AN{#z=cv6<`jvwC>pOu`WE z*}0CSZ-56t%SxC0z@%;OfbQv!s``3~zFEzaZjsizR?4IX7wMFv|6DVk(^XKUv@#Ys zAjyvW-FCuVpeM!=5FjB|dX*_wB6UqR*oFhrkZZ;|X^&{;H0@~{Nx@RJ4fI-H_Cx|D ze_dxp%!Od$CrITzf0w;r9Zr4&5gMo$XE?V_7 zSz(92d}!&{d)sH1@lP4ev10j01e*|{3*Aa0GyXnAYlkT9L`X=}E74uw4TYagq`W`X z^HZBJ#j?ETXiED1Q^DL(KE}XmzVXYvGkRs;p2Yun*EUWowJq1hNIYvBa&LYs^^Ns> z?tGo|`uLTlO`j6-&E*q2R?4FlrFXSy02lBK>N#zuM+>MyDPei_1;tVMTPpkeMqz(s z>|2VPlxyc+H>DLErqdLI5#^CLZa~Gd*7IM*QY8I>is~wHTiZ1PoB8%MlT7h@h{vxW zcC}Xp|J$yIJtEMlj5|-pe*a?kZ%22o+|J+nv(>jH&%HwBy1(x?;ua?FIsM zm*{f7U8O0i-JJXzWn#;`EqBy%1TwFir{k=7b1i4oca!avV+EPJ;fhIa2FXwR%h49L{F;&vp-R z?9TPP1Jx&8|7)5Ucdw%LGBKuGIDT~guf(+33?x^A@cvwAZ2ew5i&g&t!#Ea9hZVw) zqt}{$Ilgu^3zE5bJtGA7qah3S$=Y5& zXmCPm&~FN7|0eZZI=f-H4NsptXyrD#aT0IU{%tePc)+(!RlP1WXAz{dAJH$5Yj#Wi z(u13kCcbBvWZ=ns564g!L@uT3VYtxX+d-ER#K}}&EUK<-*SXXD$DijpPN{ZqPSb(y zZBaJI?OUb{pejz!e;mIszXiIvtM*Vu_U54_{bom5uErqc9nglmD(leDS^k@{BODE2 z#zw4MYt9Om8Rzr5^=l39NJ-Tj9TYpjX8w9jzM|an_tGmzi%RS0RvMn_P|(ER47aW9a_}Jlt!5b7f-nmIQp9Wwy3MpdL)DW zr6~#@yO0nx9jp`HBzP^xba=OIXy(bjq~h-sHD=?l^fNP@{edZ(F(8M-8g%8ZdBx^pB1EFpMHtd68qD z1hN)JGOsWHnp6j?Rw%}8Hy*-z5Dh8_7MOMWXp-AIDhS}@kGe69Z>q~x{DB;D`(-_R zO`&pN`~x%!*`%M4cXX_B?vPP?E$FOU5HSs#o6UaLRCja+4LT=$`A(m~jIqYkp#E0j zHYMARF+GxXP@R845rQJ7hv~bdnO!yC z`N^bTTsSzy`dQ5#9I0-)lny%3!w%pl%Sn#j;TZ%9tbmDfWO5B>!&Y+y$6eQ{h9zEVqtuF`sl-{qXz>EbM<#_WLMk%?CAO zO1bYXk(!+HCf~v^GV$qx(#U0oOGf@-bPI2%p%Q!S6F(9YE5$s^5VFDMe}9YqJJOi* zT<~($tJZhdzkhHs%rBR0tCA;|UzNI5nOGU{J@!s7;B<@nN*ML~J6Df;d#-;0=3Efr zxu>OSHEiIH#ysh_HvO@0d?fV)DGzYxo{3kin$}<2h1b6DZ)9r0D#XE~f@UBcaL&ZJb5GK!RjGbA1v{~0>VTT5xrjAKPKf*Mz?f|z-R zf-&A#Dt?}G@tsCj|0d{^ZUerY_MDxAEs&EkGU^n}WwD?2ppZ|Rt0y#6B77jr)-3H) z{wXT{2g?QmzrBFuhid9Sfw~SJw?eHrb8S{5KtxFP%t2kHV&JaCJRNady?(fVE;$Na zhJ35?W)!7&KAZX$LHW|f$WMIQ@6EJA0C3S;vekmZ*xtnfrQn3>`fC_u+I_1z?H9nC z@51J;-s;7iph$`?X%85uARaBZiVWBTxO{d>jZn+#_cLz?a4Ba+v`Bp4zQtws_4{a+ zKa}b&I+r$gcHe`{DCSu7*uvDUaffq8J8$y@o^rZ(REEUky?2*c&N>s6QH;pQ`~rAC ztby?xCYcsZF=j?(m8(@PXij%U<0Z-qp=A|FDuXn@$4{ zzPCJS(*FjVoy3{u+7yV{+?eY_>;KY$3O-E#LMiABr7f;dfaGan-Dc^iUn(a_kxC~+ zwJnpQ@@cTRfMSpm=PlODDBGFtPv3Dy_3Ew`!T@GvEMl9FE$N3E8My^}*H>a(Q7rnK z23YNE)8kAybi9J5K50yi1_E#@&+{AfeH^B2HNFonq<@@9x}xkR#~HU4VTfk==%mwR z*iPzzFgK+@hPspIadm|!;fT&YXNqfDS=y|+c3uLsp7zUTqJ4oWtDep3PNXNZDm-am znQ%(MSpARFOvX{E z361gyj)V8CW}QZvEtzx%hsBub@$qWJsw>p8MyvX`9gTM4YaR)2-FXuO{K{-Zn zk=HPf5sN2lJ3WvH;SQ`hgD&d(_tg=o*>f}I_Krw{8CP8kgWnq4NoKiz{&;SpeI^V; z2*X@Diz9@+#kx4J*aGBlvEb%EA3_TG0Yv!g2BE=?Vcg zCyz$HWf8rJG#M~$H$goEEqJ8396b@|yR)ppc^yQ%47ST^R$vSps!dz8nI_9mTq{VD z&b~Al8)^n6i}DVMND9|rgmjlV|8(ZGYSC;(pA{*=Ox1QhGhX*=nanMuU<1%+9TKMY zl%p$Sz>2tDIVuTTRYy$*HZ3(uD{fq;D^Houz*3ulIir6hMD=hsTdK^JSu{oK**#+; zh5eB)hPjq~>7a5N>_DKl{m;0yu+GNGtweqKpmIryP%Hk~ePMt|nM=KwaaR3>yK#PU zBU1VPjF|4}XmiKA++~2aF9(WIWdiB>qgKJXl!^~_Oz~g5ecs(7RFcd!DIlxd-cvd^ z`ewh*FcPaO>3@&kh{tVd#_q8H+;?ucLaZ@)XfY^H%=C&%5NHwZ37N-ZM=;?Xc=O#9 zV;2FFpp9XC51-C6XVm?Rh2VtkLjbzC)g*b0rDP5l^6t0eQLjIpU0iw&3d#DXeIweb zA4q1wC!5q50wDmH2hj?CNMg%HaALn#i3$ipA{*t!7A6zVdSkb~r((;bOZ-X(hWo^D+&(Bpt#TXh zY^{Jxzm!}_1?~N1xh&cTS(Y_C%I9_X5yg0r`TPzgnNYUvu2@~j@>hzNDFF9cSd)fF z^;ZIcwuz@#glFk<@UE75#3Zi75gA~7D~aY`F+s!~*NyTNP)Japf^h)uHvQVh`wIqp zdH)zU{m=udZMQ?I#cDtsD`;<|iH#_z^uNS-ufH-Nw&}YwdEZ4cKBfR8<@)d0BMy>Q znode`UTuuYfk@5_%+P+RG*SV>q_2Brd2EDI1$u?JI1E5`%OgoGFXVSuB89hA&^pb; zz9mlY&sM1{kU4n{eta5G8ib9R-gqx*;wyoMfU&vyuVV>UdF+|}>cGoCAL=BWGH%!~ z$Wb~Zw+QhI|AGrFTV|$O83AwINO1Xc@r=H!r_OpWLgI}x=Wj^g1#KMl-Uy?0ZCMUg zT=u-?O69SyqQ96hif94JIKm^V+-a?(pVGy3yo`(q;@!7^rS0v7fKVsfT~Bw!N__WS z>S+i81W!tHGx#d%67$1NDfncBMC=<#*Qz>f2=1A~bUyKr&B|cqA9E%WQ&?-cmQz`v zO)G*AiP$o|*&4D8nY>`xG!c0%B0#Dv^SjT`wydf??DC-1p=MGU2t2zMU=8!e*FJQy z`0?#gJM+c2;Vo=t@Fu-Mr?B`+B)tk7X*`1(gF3N_BM%=n#pP*VW{>y0xy+MN$Y*9D z1E_H2t0l)pTotFi8Y>zREd#yS5W!!N*QK! zfM84I;-m4eIkiz$dhXlfAmbHExRJ=V+u%U%-*rzC%eC}Ajg>X};>>syW_ryY;`5_L z&+6ESTZNCw926DdH$08gJRjha;FV`f`p(f5ADcOVE+Ejw;=c;Flt?Kl`U+3*NrNZE zs}5TDU6{*Ymi8C;+6xM}?ECsCz7tDQvR^Sx+57pY*UmnPls^hrrpn>2BXlVOM?1&+ zKL6Jb@^LV8P57Tp5Mp>kZAW8S#P#CsEZSy7@cb4grDQ-Be(ng%AbDUn0ZeOS7Ud>Y z?P?N(RtMN;snMuyD(OAN<+t&$A2C?Q_T&#*5+>qyRkSdC#FWtT&I1}xw-Fw zy^~8;Sfv6iE)7Do)Ag9$r-r$czdL;sXkeXpED(97fB%VEW^q*`8IpMZ_?7Ma1FKUr zCo<-e#0bu-Kx2f@_u-GzifpvSIW^rr4m0c~rnhXuw?!HvE}1Sd zKh(c5@jY2nT#EO1*MM9N|AAkzH0)Wsd{uGk-?x@0%_EhSxQU{dfAVKBht+F@#D_5t z^HM)^x#p>! zVIXY8D9cVJY3IUBDmZ8zDh*)Kc{6wC%p-Bk+azm&y^LxOH}5+4E6aLSFtlDHRX8G?qcr9^YZqb~|P12Qhl&%;#4S=5aO7-J0`J7G?E1JKm2U z2yRtw-Ij(YhpzzijQd|=%J61d*LJ>&ni&w123b30iD@z|h*&-UVRL6jld#p5mC7=1 zF_Bu-^4&V|NOl91c!3aSG9DrI<}@qxw&p_>pEgA0OGe0<~>UTmTF>wI^KD<2!R^u;cJBu z?3({B)}M!#=Ki^k`;kv~jniCj(4-}{2LU>Laou`w0ibm~85R@zy(UJTQOt=#bf9kx zVUY3fOa5D(zpi0gzUp=UT!XJ*tLu)#s5xJ|_g*bpK!C!F17ZkJ{Ifx0`LBf?%m{#p zwutf7(e2^7YAwy}R-0SjrS#J)2&F%BOXqtFVV&}_!Pxa!8>1WGOA{ashP}$zvNAOG zwO}*c?p#1nCGCGfm0}trDoSlw3p&>{lYmnNv8&x{FZ16pZgf9^5xte2G)u(A3gF!< z#qQVND85-rlYM&1c8t~ia0`0uwwP;>IXcI!7n(NC1qa<<^;mOELi%375=THlbGK73 zCCoq2A&*at+ zZ4pOSYvi!wt+mM}WTWQEjqJVF2A0|H5aSXkmf{W*&IPJ&|61qJU;J)=XKd7+m~FcM zQb@-N6P)Dxx?Y6}VnpC_ebv9Sh~H7^!mF)0I~_XJzC!)=4rTv18nEwkx4I-sg!`8& zq`9rN9rtS(QgXEvYoK6^PJwt7m z%mby+;@I!G*DI5CJ@kX)Dos{^{|3pOH}$q*u$m1GH%vi^SsfepR*e zDY~8!e{d>v2Q^?6UJpz$>4xZlJBJ0126%JR%a|pK+%{yd%0o8u;P3EV@93Yb0~Fcw zs>p67zk2+z|HME*0l+0xq-rJQj!zwfcvuu2P*2gjch;Y>Z$15N)S8c(@7Xcd<7Czk z-BUsDg`D00P&$=rb;a^djk7Dif38pN^#{8kp8w_U4`)j*RYV7!AMe}H02YumA7Nk= z(xy{6qeEEaXQQ&U%(%O>=R^b3JFKbsP9e(=KSnLYUX(sGVvI_YxWEq2KHA=<2@ejp zk1kz%w!7Q6-HJnMZr+?K!-N? z3HFj|#Eo`l>a+z=L2kd8n4%XQ4uZ=f zI9Q+Er8^whe6)Ti)dUDn|7lQS$y0^Nv>KXU6R3@`Owz$nWdnG{NDA`DPn>s*H5>bo zZl<>u=$h&mMG=ey`6EINvLbt5f7LII^y0Q11VxhDJVyT8=35Hua;4XI^)}mPles`I zJ52J3BAkM4$WqVCJ>lbNE@Je`p~B`j!gvov8>2^ecA}4s30bn-DCRfrEHG&iI+|br z$PAgL%B2=ra8TEv7PtcdR7-nu?zMkj&zT890s0#p^k-(nlh0ptJ!L6j1g zaa!+UmBa9!lLB($ZNRO^r?vW9n+%o?X)l2_Ov(;3ttMB0GeYrle!VnEnu{-jq422+ zcMP6`qqL4ukf}p!M3R|BaFEsu^B-|$b4pLOOZDh*WVrs&kIK_D-0tpKZjX4!d661Z zZ8&`s6!oy05H%9Z?*9j1TL(MawH56WBaAgADkb&Ea}?_4=%}gvfgm^D_}O@9|C>S@ zjm@eif7wU2l<^o-7>zgtU%%+_Wl?cQ)XJ6cmuURg6!)Dvm`5G|@;W>SrVC3^|4Qr= ze^igq3MbiMneqK#;v~lODwH)#iwcU3z`%RH0XW^iKI@^~qKkghqo|S#F$TrYFIM%R_RZ&bElEgdS)l4O!1F0TCy`{5VPfg@_mG7r`e3z zvKnaICu8Jmjx?xgIw7|=pGKk-F|ph{=}YCf>< zY;3e8@x1{UP#yKILzGybJQ_Gc-}UYk&m17yOPD^u%^&)Lzc;Cm&;An0(^1uZ^%FCn zj(ONZQ~whiOAc=uN$zpa_|TZI++Yl5tyfVw?_dwI>uihN{zBTKa3D4MO`Hz7bTN6Q zWDYSDl`GRRo@%`-RkcVa z0bi8O^~c9%>KK>!Q?`J1a31?J;7aP{9Gvx8Mjzpk4MYeMoDZ9HpQ$g7?3J}A_u8hr zreZX)-WH_l6C+Y3-YhiF9hLP-=Fqsm9;r}@;h|Kes6vJ+o_U8;rT6!&p|RUh`nA_RE$Upff}ZvG#SrW*uM`6ed3>6W2lqs1bfZw+f5H%d zrs8}*vDMTP+c=hz>+0GTzrn`^!NO9K3kFTyP>+;?e0S6nKYZyi@%PpIMlw$9M*n8 zS&*U7kCid&TE1?&bDaaR3lH~IIC))75?OmU3$;y;_(|E!3dFa+*0BZ6%o&nOlHO3$#+Iff$6RSumX<% zFqWKs9rbxo`fQW#u}1oTNylbHuK@PJ`TJWZDvfY8O z5R2}%kkueqvlsundyi9S+e20TNN?3Au8O=Ua&f z9h(kTo8W`ZW%LFU#`#@ABo(Y0;oVHcJ zJirUWJx&~vzE-uN6t0!;LHr>igTf#$Gw#0p)t8RsgMnCTP*S@EFGL}1Utr&QFKD}x z1A4cIrO#_9Z@(8$IcjElS<`SPuiU*Q)Tw$Wsl^Fx{7!i^_L&<0WKrNw?zwPg?X%m@ zUYjBJ4O4z6R9F5h&c7L{J6;KSd>;LoUf&w?AQqoh5L+~|LQzijm@H)O2io}(rShUq zk3SQw&vh`%66*BmPUB)#|YVruN$5=L-KR-JOqWFE@J$M34ditN)# zJI6s)+x5;i^6>o<=Wo?kPFFF6anOSiR~ytkAJmQ}AW4 z>S7GtaC^-P8YCh6hG{^2 zH(U1mnv=0`m6Kvb3i$N#6&dWnf$)>8+>%Ri&Q$xKq-DFU`;?OSBvEXp^(vXp|6P$h zC#MlGF)dSRyB8Ugo$>YY-cc+XGZ+7=gakK}nk=~>6OrF*yOQHkwXurhP@0i2-gkJ? z9`zm2AB;N{kfub`s`yvZ_K44)E4jG{^gIPq71OGYg{MxaR2B(qfLZK@g`Qz!Fv?6% zzp8t)CYIogY(&=O>d}lH>iBJor_k|yKW}K(r$DYORz{!O?Ct8Cjjpk0q0?H?W|(rC zd~BN#iyM>aN38mzAWiw$YdEb_wj8ubj;dtbRSXTQc1gpUdQ;NZv9344JLWMNMC>wj z)L2gQCZ#t#N2_FV53RH3;QL-VVFeIY<{S{ZzhZJ-O|I5NN?qVJgu1vN*YFy2#x_Gp zz9UuYwf@Q{C^^JtH0LI;;)DDJOS+{-i$g(*bj})5w&~21ojodF82@%yWUe`W?|vin z_;SmcD{3v>I+i1qN;p@UouIhNXrSO0hPHc{-5*WKA22Q*h7>R!+@Eo>9HY{|x)z=C zhFh;=P*WTT_yv~;DCm!xu-sY8{(SMkFFZ@=|E6Nq$Q3sFo;b-&>y=e>t~&_onP$ zcXIbBo)nJs9p;)&C%w*N@#~fFsOl^#VW>@V=u|8DwV=n3IBH&F_{d|*#r0FJEM(6y zaC?@l?Wbo1&dx0eCI@sWeF?1NuQqlX3-$;W@cRR?EBbVXu=}&4l|IQ^L1@+0NsN#M zv_V3F?k)iVZi0}}CTqlDeqz$(-r~$*=Pa*_#fYndgNj=!BO9?huO7T(F()M_T9jrz z@vZ?uF&>#os~A^|@?Kia|eKS$jRiN^0^KSER~K3H4}<@zX5B^=!_6Z{I`a4FZN zj7lndsm4gO)gOVG>(TOE+DBZLTb$Cdy(l5s6Kr;5QyBvt9CBi)g2dz!mcM*wZY+-E zq3O;FgTS+xc)80lbSe#$35k{5KXY)Ih_rTAKA4<8hivTidp4w}{Xy|{-PO~Y(S<@y zh%TX(?}6AU@-UQL=`(?D zvD?V6O=iTc(0dmlKhIs}dJ|#DFX8pZgbS!d)KY}(DH@^;dhi9<4)?+}Pv<8mpU~1~ z9d$X-HSi~TwiKV(zw;XUht~b~(C7sxn}XR9z=A}jUc=Y~-zN3XV3UhXxpdSlk5(;3@{bHT($jr*ur7UJ2(str3_lcK8H#C0GO?qA zgv~=g^yKnS-N|LsR+M(dw$O~a<8Rjc2YCypH1JXN#aHv$?o;}2C=Q9l69Uh zwql-u$6U+|>a@Z*E~g^n$#p)w+Sdh+M}f!cjjB0}bGdaPDSPA88u`n0m_r9gN9TZ; z5JO9wJpUsZF6RN*@bh*hjj-IIuL+EX5l!bA1#VPT9ti_*iID7Q#|7ir?dc~twM@SA z5qHgb_NVWl*6)t_;LH>;{B==H<7$X<3Y7MCuAG$tA$b34UpEb$^7;=#pF;X|7s1zW z&gEP?Jl^kKCu!JIKr9~Bb5pALmdS%udZ+1!TAYnc5PkSC@fN;vg#h5_1F>v$E@Qd& zl)5R~XEOHIm!%;(BM?)S-91yLwJN})ZoV?IhRgmw|a=%8awE&I03SLRRnCDm{% zshvKB5t}t;ViWJ+va%>vt<>(v^6VJW3O&tNR~I=OrVUB6w(AiQ_GjS0!Pij-hAaC% zE?{Mf;&6Yi@WV!DQyhEg6<*|8!HN`P5m;I-)+kSF%G<6hUv`y}{ajyOOj6~6YB3cO zUa!}~&RhbC%Q);W|8d%cjBuOX{9MjnX9+x~w$3nxlRJaiU!i-7l)hK9J*7%9gYo=0 zj4aX4RLdV7u+{+w$8x0D%lT)#7$=TXBC~7Pgil5{5HHG}nZ~9$!CE|JUc2Y!JkWQ+ z^LktTCH`ezwt0O*769547~X$?sY;~mm!ZKYm<%BU|AiuETS~-8wHUtfh0DQh!=Z^e z?&jkh)wWdQR%W#_rOpp??E+2rpgOpmxpA9(LFdd0Q;va&zQl_A8Ay;LZ&XGpBvfJ5 zXhPoiwResqD6D|>(9if(nQB@0+R4j~zk8XG{?niNmqdh00hNZWv5xg^dw=aaKPnhf zNVEO(F11yuk2bu{1GGaCp z)S9MoO{h|8!5HuHNv8&Z!4>XIt=o?7){Q%<-fEr2)oZw|6C%QM8Hc8=qfc~3JKf>ZWt$9y2W)k zzh^sQ)Bd)E%4ZA;s{|{+jTXooQFMop? z(L}Cpeu`w6LPp`;?YmzqJX9~iI@*6kwEd;|pB0Ba8rVAOf~7%_u5a5g{i&|HJVmZB zw!my*P<>=kj5_aZV^XbKZOMt@xXx(V?lTjMYX{zKs~rOgO2nJaw7A*`6d{HXE|cS* z$Ecb_f-VC~YF^(@1eYQX2-f<^7~o4;4&4^Z1Po$KnY5&ehzN^krUUzr!hZz>^ILqV+}t5&U~P=CN1e`W~~y3hp~?K5ml`2)Eb1c3#_mrRlmiu%qtoALm!J zVNv`5?J05_FKGQ6vF&9lOESVGpPm-3eYQ`>>?X)Je1g6&eobXGUn02Njnm*U2{%KLs%-*t7EQPGZPYx^oysupNtsCv7`@ zX-IDhQjXG4sSvLSNoISF!SuB2T6HQG~F~{bTX{3%S(Y7@V8Zf<&ffwF>Ozp zzo(HhDWASS-ohHiaHXakZ}I72yLwEJQ4*cd)6zHJWHy-TAe@krO=wR$dxgJsx%A$B z3Tod6-cK#&YRldLEwt9 z*y8kB&-E@z7V5y_vYgQ3cOG%~_-KFYq;crL&@j2U`pmZ4{#3o^ic?AQ~Ww&g@Vchj!{FOlA}tmdTI%R1NTdWf>9%Xj3Mci0-&ZUHQ$P{ zWzlN?)cvKHlVXScG}rAD*^hQQ5Z2TtD+A8|?FpD}P?uBUQSo`-zIef{PFm{sWUtEBNeKchFMhmb&xKzQsPg#DMCMU@_kn>C`d7 zL=MF%K~|XJS*r2`i`DTAsKZv~)$ay&6;VedmPK=yi5oWMev$adX-EU5j_sT@qP=d; zlX<%+C(?`8+!tBY;ao+ls!kD*XK<<-h}Qk=XR@olGNy1`FWhvddzEu6oG3AI``J4Dq^?Oa`RAMoky0Z?`I&-Z z^I)k5+4&CK&d$JL=b&uVTnt=r_^HQ%MtyYHaJ?{XLbl>d;Ta?E7BlzrMJMXvThnNN z6nE^~skgTr+9(#hT%oUvZ&j(d7FkHZ_O`2bwvU`Y*0mqM%cb~-8Qp(1K%MxPl$~AC z1U7%^?cg#WPhiWIdQ0Lilvrb!qvmUbw1gSs=9ibaAnrbn*T@6Cs-6BLEm~*Jn3Z+X z3s+`5Elc^Nn53{0-_yg-AxToM^bnaL#rt3rG#|1kAG(?^$2=}3F;pgkJ$x2?xvHyE z2qTLZDVMcheoNT#r5@o+44gd_OpMM2#i;Kz-ioRr{tb)XP}MwD62%41)cPx@anhE4 zOVj)EI+N@wLOr|IQ=Rec1?CR^zo2~QdTA|n3P(e>*CBX1VBKtWbq2>l%N)q4UV9XC zOOM7u1XD+Kj=VC7Z;*1B@pDJEr;pQ6{EFa7Cyw(Ez*4UYWO2Xnwc-#--Z7h&OIyI? zc8(;6oBh56HbPZk<0ftUqLnZw2{=172OxI;#^%oFY6T&rHN%}cb&Ziti^uw6;HMs{ zNwLOozk8@0Y_r;6H4(H70sj;~a5M1RvFcGqVB^8B&WJ;A_|}~KGrP|5AN%HJWLb|o z^ngwx_G6sR>eMZ_v3OL7G-n-z@;ptm&>MZF8Gp>5XF^)ZV))AX>8b4%pTtau(z~AY zH+61{8HOc=)E)sExCiN$Hp+5gQ}e?uEXkoRbaV0b!=#>xB0HuK8*tYl*HY%mxG3tM z&FbN759`UW$zhXa>H0O54PV0v6YVgm&Y+dcq^&g!hQl1Whoxpm zEi^2&$cgU-jEN7EL~qRQs&H7wTY^KE+e<*S#@XW$Xf%*(kqpXri`Qb-({8;@H3X6I4K2t=gPUQ2RAbB*k)+NHt?CT78!tT{$hxYnG9y<|Kzi zfWY;m7qKV=3EG1C%Qj?WHbF-_{zkaz_oNS<25X0p>n$~2wa7;7EoAq>e2fzQ4Ol#RmNEK_VRKI%d0lBKC@EoU_+S06 z9haz){#)qIU1w0pPQ6szk|tf0W|X}Ccs)aD(HBB2nqr=v>eErxJFhM8TP+Q&hNAY|xHAsWl1j9@E%Q1z$Zl{FWcD;d@fRBGiFkO?T{H(+0U?88|fQ*3g z^G^s$%%&IV1Lo&DBeS}{Sv1TY>zW>4wpkh*&*=XWHa;zuEq_ZB=8AXToZ95h1KO5o zogZ^mRc+3qrsP&AvrwIBsSMGLVUt0ZR?^K_X-QPX{kXCuo$>6~XW9w_9&1~ql*lUA z+}K1f(VRdU-c1K{KDERJ#sQGl#;)urbO@O)*DT3ndX+2`!}nFB#rF(F$%*x~WxOoBKo?$ z@U}Rux^Wpwclp;rjC$i&=T$`ZxOny-8;}xwAzLDQ$29Z<J1%7*b^HH9q;ref83uX`V_I*3T z{;4%*M?Wj1(=gkEmT^s}q?NMLN0H*`c=w5cP}_g&?;C(-s6;8|2mk($yLsQr%&utL zDE;yq%^jYMdEY3j8&fakX;+L7l9UkIG^W(Ujs7qOyfN`?bRimb&0960qoS(KS+601 zSDm zacb*T!Hnx`Zu)XCBU)JnYGi#pvEc^^`{()XVPe2qhcI{*-A=d`f9PSFL=Q2pt5T)d zJ0eNg0v>$|drzu3c}C5?MJ|pxg_s>i_z;|<`_3C~omnj8fX<#? zSsAPa&Z5-JN4?ZJrhK5lBJhe?@Z3{03fxAydtfb%rVI2!4?12qkB#^{W~TjYzV;l| zdiK`W#k@$@muw!qC9e1odwf}2a6EH^JifR%k=#pjIRg5%L{)_Kx-yX+O@di}3Cf$y z4d_7|a`&BCv_xbI1-`AJ%e)6PwD`*N30q6>hO<_fjEJ3yo=nBa&_?-T_RVa}!(qHSvs*>5b!WStvm}zA1-$TcZxOQ|Ewe?yY8kiu_7k=SQbphh<&YtkP zU4si$fSVxP4xWNpY%cv9IKJom6;L)l-?>WKhK1Soi$Hd(p5|FMZu&UzZrQS zplBM&U+2al=O{y-g!iu>eyp|bpiW~XBXAcmbw>lvOH;iP;*h4-Hc?2A+d~~dQ&2T zvUle!aU%o%?AZla#8O^=L)pZx_*GbbGUss@^s9TtZ7W0gkCTVYV%zn?j|5;c z7X(pTf;3ETSFiiF8s_@V();$2ey)r9EoYMQyl*ZRm#Ru=9BZG?+%5 zjkQ79Vp-t1cWL**8QeA|?jns2CVHLLXT-eGtV6PYN(FMC`=^L>N6L|SPA!zB&F}p+ zY<0jpPraCGv!Qb$<0%GZzX(XKinM(Sq;YhU#9FG-;_#ylc0g@mnu;@LkBYOEz@R{c1}7Ucj6@`P*0vVmm+&$f>dJAh zS0+Ox1vek8w-=;VgDy_Z+&Wo@pNmiOB#D%etMncaCG_9*sFRs><@dw%!Y#ZeA@?Mv z@w9V&Mxe85>om?4KmW^4ed>a$T@Hzy*I6{{d)bqHCfEqdEh$aT*;ftiDT?O|ed`}q z=+exz=bQD)8Y)_-H|n;lmOz>HdKNAHoyHX#E{6w0kWH2qiglOpiqs}Q1T-zRDXuOB zY_VW_kuLU6yKumVX~Mc8xACDKlHODlcC0@z`E0iKrw7Q+8*S9)1g=*}{k66;^NW{P zo#d{ENMO6tNX*j6bbE~K_i0=m7DgeOXm&z`ZnEFeK>WbZwa4;JT|z2NwYR$*La)Zk zvQ@}#Xb^OT{X3M|$1-l+}sjgkP-OsVS2+ zxYm`d=aTcLP;Px{ zef3Ozm4({BXz3`6Q1z_I@%?TKyNbXk1#URVhEKz?w5^u@qi-7nP?t-an2QOrvu8e= zN7kA3IKuX9Xh!lhISIm$u9t*zm3ZC|enb%PuQ&4|PDkgQ{u%)k15844kNYU=_fmg? zcl1l0OMAPPJazx zXL5rkz%0O9YVW4%Dk~J~_i-!2gl2Rvn@IYz5F)?XupKMo2qHCrAT+K*)Se1KWxaBz z#iHt?`Bi-LY%4n$_crfX}@f4U1@=Dui5 zLn7Hk=u+!uo6ToJ=St6f6mPZ<0!3S#3ULTlso*nPTo0M|e0OKX*3A?9=Xs-bhi={5b?xCWRk@ zm%nn)cB}7v0hM?2TMeOsVYNK38vrY5o3T}$>K`|KfOPt_llrGm4{<~l>fcHjSBLr> zG^UXeOC*atdCXUeiFo76URBbRMhCH{pq);i?8-)9weIbB>0ge2Jf>(<>9`g$-n+yW zUdkUZIXU0ZRn*xRub9jPl2Tg3h-ZoF8KL-6M-^SEosTEi%1k7bRTd?~9{<%()jSJ%; zBO6|}A9AfPPE$9GYkfeKw(|}P=DZ~E|G(_Elu}iGRBlK`#%tgKa`2B8pJi-H|K5_w z>`Oq;*B^qR9m$_?G*J{Rp}~dD;gxF$SrXv3#Fo|>+}akmQF~55#J4$exZLlh{9G?0 zj1#M1ll)YNcdhw-_UM6o;{Ng6HeO5`WPIxjd_zcc=kVwG0IN*&!p>2}h=&7p51;wq zesN?4$5PcsrK_Z!mb1|irfIjE%5`*Fm?5w|4l=Rs>ITPGAqrcPUtN4a^=@WC9yPSB z!{`4oFl^HlZhz*+xDh+ySyZbTm2=w+JG&+j{-lnv(c|zVj#RYLj%PY!`E}A|z=!d` zc-M`hbpf3G<;-FT^j4CX7!R1vz%6FC9v9D&ln-4=>S%=~s{(Jn; zW5z9;_tY!e*2fR6=xcJZw#ph_5DrZfi?;QTN^9b>ZGC|SRCVCh_lN(d%=7G^b+r2( zEu=C!|OVzc*Y*~Thxpb;fL z{^lpttZa)T-sT}N)lGk{!0JPj5sqtDYdMfjni9RYmY<1N;DW#U;}e!0 zMkbY8_{;H&L|au{Rb<8AmNL&s^FaA+;-2+e`(_caQ_@rH5JnEwS}aX*g}JZI*}^W zzj_Rra=6%?tZF_76lV;Azc*DSkUTcS06~QQBWmGXVh>{BDfu*OvU|SIXHJk$%rZBJ z0whGd?MuAXPlm^*=NK)B^wUd{ z^1F>ZGk~OW_W9hs<#iW#WM`zAcbH*c+4dU6+Arb`UkIs*}K41?oG^`y9bgCe8 z$ocP30k~><(wPzdD|&d=cJ#61#SLMdZi#G0y?B_eSRS!>uHvxir5N?T3yzxz+onb( zd+5~XkyVWDZwnerqtxG82TPUk-oByGu=PW#rt;2ZZm5TVr0fE zL6Ykv`TuD8%CM-qHe5uMQb4+q?(Tj8K@<40v^wczmD z6(v{&bs0KpHgj)*Uqv!vgzm~?YjPcYK^S7GvfRH}BxIA^-Y0R`ZST-sN@o9d(O99o zk|H6i(>-ZOBAa3Q8#F82jlo;bI~L1?BzI>uHR*K_G0=KLN43!wVjxoow&q-i#%UNg zP)1o9)S`u7J>Vas(>kW}ZP9BV{AZZv7xT2;5qSg>^Sb&rK8ANwpA~e2My$TSaQ~xP z<&o&~QE1EL=74&)nu2HWA9Ddj{h`~v*5e9<`iaMAmuC9rCvEEwlzM&1*+GNW?XD7$G7p=hykp-sv>EdK{}0WbDg2g2*o z0>|E?a>Lfty{T*S?O_fP2J2TNqd!@snfa1a6V6H7RhnF3>_+tAM!{1 zl@qb-7vq^~4xA0h`~w=}Ujr$Gcy4BHJpXdwC-bW9r>zy!+3UuQ!B;;=?cZrxE7i z4Mk0#DGm_V-cmBLVm%A2LN!dw;2MEmwSwZKp$MAaCuE;Yg7gHrxgEO=Et6_XKt(w7 z>b9@WSz4CV*6nQDLa}QF^@+o-+-Fge1uAEr*=8^0*&LS-dpeQAYGVV|t$Yk=8Bph{1UH_B z>eu}HstiGOQ++r=b!m1r;(~@JK&aN(EJFn5LSAnBWdp%GYO9Scy~>+x$eB(Te8EE@ zSE~4m&{9eZx{S1Ld54?fx4!(#O}z@~?D8zc>JW-btz`iJ@CI z%Vz5Na?d+~LiX(1@RZ|r9kxS?yN*fKH_kjH!jd3iH*w~_dY9_gb$o^mZ?3Z9{noFt z3K~Wh_k>X#tChA#%2zG1&?G{_vZApnk}ixxCVK)N{WMStd zmFsBEq}?g&e_UJQT@rw%7rw#04?x18RK%ZPQpR3pW{rN|W5__~6$v?frob_0QIb6WRm1h)ze2(^)!Z{ay zAL^nunmY-ym`@d;aq6wi!%7{gGF`AwG?9*ZYwkr;Y;=K~|Dk}~Q!x|1D&eOlM>fJ+75({8GbZNEKRh$++*tdVzPH8K` ze^8zC7zfu@0BHHTuVy@d(%e_o^(y6#|G^+!;9TLqqtuMR}8~jAOJ>1q(tt2;BD|nWl&8MPVP<%s=CHI%v2Iczn zXOS7?a{LiIqQo3R8XK0_Od)=#T3U#PNHAy}**Y$IqC}=on+~1CEo`jfpVm7vg>27% zrFl4M;5yn1Q}Nz=0T_-I{~;JSVw|)%kw*l{v}WKlT_t^~-%ds4FjH&$dIUnJEC;6L zGGE+o*DJ@3ZKZWTkZ#H8hcy(_SZyx9(wQ^*EVWogQxFgyL0dg@Fi?W~fkb#^m0uQc z*%kLYppMjzQ`sH3d-4<*TbujSKmNUsPOYVZNY0z-kSnM?HMxwO(V`WaR0#AZVj@*fiWV#$kAt|bs8Lfs@V9T7{ z)ytMhyuecU;F5ef^F&u)Eq12Cvn>mRC6%Cc zm`$%J18U}swS*4sL{-!r(b8=^EfX`+prJfgm&n%-j@glXMVj~veU*dF*1-FCns~8) zv0i~j`&!)fDziK(``kY#_bJiHVvHF?6FqlY z$!&8s>DR@CT<*&pRogJ%w6;v|NNFWG!tk*-8=Y5Jd!Eda27ppaXUaGRO?5Y>)wyh? z83z)0dLvbWF(WeCTPwV2ZdaAsSdkrhJzbF<=f)FAvfzk``usHqvZBQ|epfDy2bJ+5 zg=oA*se_uCz-f#E^~$2~pXr{W!4~?^B_>C(sTTPw&gs7>uk75N&5mtB9V@4?1Cduw z?%@KDK_>_U1An;NRRWq#P; zE&$$tj5U#M@lUE6pdy%|b$x?pjE5+#(Z=q*>vqRh<3e;%&D8pPOvQ*P<>f^ag=OD_ zW7EIX>JpT86rM_QoXp+0@G1BH0kk^WYAj2}W7g0~yYB}OF935g4-xXWYb_eUx)X(;h!$7XqTN#_wT4zOhHZQS; zaSK2EG-nd3RXj*ochln5m*|daxDx9=km-TU#jZE>W4*coiUIwHkBl~@q>VYtoMPfT zzkECL^szQp7N{x~B0AE3yCh?t{V`GqL3%c>*5pT8 z3fD|7ER+a@HHwPv9lFMnS@pEjwZ>VsoXvu*L-<+Fxb$oF6rq}M^gI^s={_7Egx}nP zy59?6dXVO~5zd|;#m(&`cZ0{DQ1|Ma;eIbX!RAM7-YG6Lz(MV z&pxW2_{3Al8PHOj%nstFt& z_gvpQ8p`E{40IepD;rN+;W`e-S7*n`%g__ROEbB#WzM>8sRS(ZzO9PN`Hb!cH$x|< z_z^C30quqQb>7N^*LLl5RWjmoB*HKRPLNW!IT_V*`U0apr$hKx<%H{=Y-C#>MZN)V zDxY_m@2WbLyl$_?4U;$J$9jSm-0gBD)wABGmGHq^iu-*Q8@v*az`0_~=I|D#0|~HK zgTN^bOHZ=tU6?OETiF>yHV!+)-d#f*p|w7}v=RHMe=QHUs|q|WIc>7N4iU0#-jAU5 zb7*xqy4aUV?R&brucFb@5j$Sw>Uqu{&Bkfp5{>ZDQWa>i+nT4U6-B%>Q1Y5roYd7* zl}&)Ew2Eu0R80*u7>5fq>;&L?Pyv=O(~i2@`qL5>+Ih2S=za?Cd~Ml1bUwCHT<}gz z?uwadE5e6Qc{%T8$zX{mGV|3t5?pyRC!VW;B?)wxeHE1HBAD}+h)3!9ISTTh9U;08 ze{4Ks{(1_LIKI)gqRZPVo0HL*aS_hQpVZLwUR8;-?%ac zFGf??bbluku-@(-9OPFyzEB`yGqu=pExJYhgl4L=@uq>Y7EDuqCWq#gCWP}R&uCfm z^>FUI&vzDKUY947>JPXFn0-W$L^rWDMUv9<>()<@9Bf#qs+Ranm3ketguiQ|Og`N3 zMxKYEG;JTO{7ox*pyX5w^(gZs!#%G+%zzpvjpGNiwS@SoWg1yA=$@IHO{HE3>>79C znMPd(pBh4sm8+s%^!5M1AhnQ~nRVVT95&T!7LN&`Yb$2>Tx-OelF) z>Uv41T(>UK;^CIy5FF|46?IEmOaE{*hRI8Ybnq0AGDJ}QyqCpFej-UpXnn0zO8lkJ z$y(#>Uf*BnVXSY;HvfE{{XzU;Js+h7hF*0*@u|mSr{+ZH@0f%+#W3RUs}nA|B9g*7 zQ#u{Pk9Or>xhR3s{Xb=8>hI02KQPUU_z3lrb>i47uBmKgY@8zxaHqDm*tH$##5S^o z>#o&QW|DdG@+1@Lm3ormDz)hIrMX&%#A&U>nJaJX-Q+Gv0O4UZ_L+n41~t>3l)b2B zdVC^zNKc?rW{H!pi=tJ9$`9VEGcrT!XMos_r63YUQ02kK1IUjU8XMnvT4&aHts z+i~{DKmONqu9V8k5#|U|`8E}|e5<%JTp>eUPJgyvxbgxOukE|ZU`ijTY9@l*d9W>E z{MmCDRGdJbSnLatG{+rY-_-7=oFGqLLG_|Jn0rV0bC4-CAP&c)z7@h`X0%mis*56! zG`#(+4=_DdbRh)!IYNrPa~loaMp*R9JV`~Zb|vcFV_)QnM9kP@P&E!b5+7b8DpxQB zzi_LA4;l#+x{XiF$ZBcLNy_3&-At*rK6>O#y4LzA&oaOM5IIGH9ZYI6mbiQqK}JRP z^W(y-)9s#KF082W%18Mj&)#t%SI+6yzfElaKOL&{8A+h~3toMrW!@ZH$mk3arSv*-2tN_o@DM3ear|vJaJlPB4ygI-N z)RIX4)^eEX>B^Y(QA+7tOWZl>ATJlc7}teMWWqbh^x84U^^W0JXKvV+-Dt+z*P$7L1 zghZu2--@k(FA^nYLU4KFmjecmhfhmo7A`$k>Wb4*I&)M z7J5?_z+pLdVE$MNBiW?{o``Ct@!~C4lMekfbM%nkQfXcU=%cIPu?q#1&Td zPi)&9$3JC8bf+i8({zS3YbpB-h(r9*k!b}h-Pn>Akcy~lq(6pT`PQ^I_b8X$oovgR ze^PrPKt+YiSfbPkh*oJaAaLDFAM#vDgd3}|?+`Nu8)m16cJ&f%7wg8P-EaI`PV0w| z)lR0!m13yId}9b=^6KOw3ec#qsSP!$>1rx|U}w94FQXUw+;HJOYlle2M&mEda;NB2 zt2?V(0*k(`J(RSHQr##Y1esDyctxjj8b}$fh#>uIWdiHDTyY6u_^9=Trsc}zCG*t4 z*INBz0!WJOv!;Y&;|%=DXvW+xm7&$mO)T9u%5YS0u6h6Or`%g&)vl9z)4KulzVaoGH>FS)E}NYy%E7bszQt~#*$d{~ z?Y`A^b*PP((Cl3gnfI$~Eq|wtwHNoM`s9FhIwt}1(TsJ|?|=%HF|B_HAycD5P&>cL zgTas0!Rm6cUNN_wk=M$7qWZgrO8MOqR$(uY6@NV{twGB>@pIsSaPG|GoW{7{J{rKX;lv4W z5?40=y|d25%yS>y2)lnYgC0Jv>&Xr2kbI1)_xN94!W4b0En+1+mBv=o+L}3XJv49W zIm&dwrdF?4I6JvOemoFa2cDqxP$2bTS$-F7R zu!srpB_01ucJsq&l9JQz(Nu}i0;t|I+c`yW8zTS0D7n;6G4mWrKGLK?3T4oe1+WxA$#bsC@GmiDD0ngAF7(=yYS zAN6T+@29kj(ZaM1_M7IHK4+%C;$!egc9p4Pq>|KyFS=!0wMrQF4}byi)(UES_O}Qa zOYG7)(f$swx(;*PLy|c&kKKGJK**Z$v;}b)Oq-OfYN~SJiQrqw!hdyikDW=F5}}nd zgKc{GeRu?GRg=3`Tld0jKz`DwQk&yT7ouwv?}V4y)y5J-w_$=->;;Whb`PIgRN_C+ z<_@pKqvM$Ia>s?qkScq=ZjDXbQZketHLeSo#Cx{rGT=WT6Z8iv{Vy)Hw!&Gcm)bwU!8y#48LD;m?uk*!@!*`-SJK*gf^O+js4Ols<0*EXyQ1a-VuceO}6wYiFLd4iPyz)BI%44bm zHTGn^@eh;fp``!a!3fB#uAdF}&mn+?T7y;@ag7Fjx#v|5@Gc@S@5q=89+Vk80?v0* zVyi96hG2LvZmo)Dbrya{mchMQ9FN>gEoNBcx>s-<0rAmD18>;&hpX;>?D$60=fKW~ z57#3nwN|IY_wB}%rs8ESx z{AahRa4hj<*9lo=M^16}obr4h?lxMz;ic9jjf0oQuR7jDpyziW)N}f1KPWM5s!Kn; z1TeuQH(NmwOoslPoQk8seBb?9oH?Y^7e=Owh|7IAZwCB{6%A_ zI5j_{B5lDpfdDeFWh-Zh5uj?_Yx%1ZDD|`juBn}J{+xByFYp!Z9PADQLsd09`1B7n z$0WyvG1yeaeZ4rWPoMpE%;_ng#8wK0c`T-I_t68 zY3gT7$vm4oXhiZeMrzRu0|2NvI^99l0OEqSO>0+g;kbf@1k}jCShKwE$T|i@o_RVv zvO4n^_K#se5zhYVjHTf!wX6rx;Hl@AuV}6vK|5?r)xaax}^%`>}d&bLWe+0U~SvM@)d(6V`_V z>@dsTg5hy3c6)!Y$240nF1Zo%=}MuUF0Qc#sP=#E5{dZB_a6Ts?bmxsgB(U@|7w4} zG(tBw;#_;&U}2IwCq0#pr%sQk+Z69H8%QIqjeAi?gk(lzP+cp8;%CJw`{z^5hG#Er zc1rH+SN8?(2iiD+P5%ksw7Ubw!#*7Q!%m8jkt_e?`;HJejUnh#cf-cMuDlMR@qfdJ zp9P7=#y`_K$Kr7Y4`HOGp3KOr_xm0MPln;NHdTDrIhhZM{_gIuwy^p3 zhy`%?qP2nGGx+=O1dzKr?Z(FTxs@yK`u{ip0QcPgGfu7cJefCC{zv;4G7GDJu`_6Z|Htxh9 z1WQ+I>_{O>&q?|4knY)FA)gdY!y9M- zP@t>mvp=fyb4SZ~cLAP-*MhH}3jLp}Wvur;Tl524)@~4jZ_k@c@T-o-1>pbs+&dOA zUUmZ9CHT>wp(cOzVJ_k)i2HHG&QmGf4Xjk%?f_AJVIS~cIW#{ESe<**R;oi=Q>EpH{-JKIO ziqHQ2+kHoPmB8R)q1=Tk5Lt+C%8`HWkdEOifR%{+1sG+81KGF z>}50Q^7g8Q+oYiSHL(7yAx?zk4ca8m6O9k$*cdPXHkFsYxAm}__(2**uHNmAS7O>3 z9-2<=F{xZNu)eVFeSgJm-s^xPscb`m2K+ngB-KiuAdxnVaMz@CfxgoS-WR zwPt-c5d)dHZxFCwM2<_Nh7Yz;;Et1W4*L({Y!UrpU!gme$Qg)T5;h`d6@SNk^$$gn zcaLz>!j5W10zrkw{5~%`B$77UF7}BMUTT7?q`Q5^LD|?GXD9Q6EFrroF6nC?K5%l5 zv5EPEdhn!mcjKM5)Qv(;G^Ea+BCapU4tkZm!!S9@L6=xAKQI1-?qSa9a-Kg#Qzw!7 zQWqhdcA!1l32q`!@kabR)62W{!^)z7V1dw#!DW}F&+eA6v$sN!6xSMq-XTq|vh$KE zVa?-x3t`kXzZAlnk7>CE*MHIZfTP+i2icO?vh|XNBdZ0D!;F<7hnwYlAy_sQ0%82& z!1-()@|$4ZJ7UJgNTN1*6rnzAuXp;&Us=f|lVM9#7iK%{`IGuoLzhTAN-s^oPmnF2 zN}JEh;?10}BYG5c-0h!r)@%PSaVm#4OD@tmYBeCiO*+PW*lD-emSPY{DtEZQxDm4| z%a-qVz;2OR;#0&tkT+FcksNT}puaH)SvE{-A1%|LGVB(~CYCmprm8v+vD%bX|M8WJ zbLiOETAMKBT?mKP!LPg}(D$}vtndiYrRg1gQO!*mhLVIO1L_RxmV*|Q8MQ59YTm+^ z?dffxz7ErhOwNCkSu=pXuZ=&WWWOch9sAr1>h_|@pXsY_v?~`4l{$xNM2Y#@vf%t; z?SW$p|6@Pi=>z!I`%!6aBi@D~6sATfuWwc2=B`m-l1?XkCCiL{M@q1<|_eIhhY} zpk&6SCnfN~KL;!2hY@ay8CHb|Rn&K@X@OmPee}O8+$mOw*0+x0+&k#B53vbwN_Hdh z>NkOmkdbm@a@sRmzuWifqaVLzxb*vzasFmHw#~x9B`e*-^u7H>N3pk_y@6w z2EAj@`bQ4PKnOqRa#A+Bh- zOTxH>>^{%*l}(R#be$PEjJ_(5`tD`qWH;Oi=#OQsY4vww$)#mi__Q4hqXZC&w`8@0 zU-zx8M&lLBnSFMRI|nGEIYcLrlC{n^8wi^Fl2mz2MtZYG(-}mM-RkEd5T3?EdULH` zZActt7|^HhOL5=fdT-^)7PAvoy$Z?AAVPFOdP2OT*{s~e6T6MKuU#?f{?r6Y(1inh zklT35pN-Ygw%?%`a795QyY*wi^Etwu2^t<($z5lPpE21t{9Ou6=K?d2;1ZySRfZ%u z;DB7PD;%9LQ;NhLb7^Ge;L_rcN7^!@vX~S{=5;Qqa>}H$EIT};CIv_6!XyT!Ds zHgHdy=gzU}{VO_sQ65vS<~z*=c)rIdn&KtRtLr`yjIrAf6?Y+;f5(*Rs*-=Qeg=4U zi4e2CywIrQ2b)8rkBrt8n@Uw$>}22db<Z!Tm{`@PA^E+pM zoM(?Sdl(+mcDTRC(8CuS_#I5xv%c7ocrINKOPx<$M>S=#aRG15a@*Uuk{MOr`=!=0-iTJ8oZR$*ErSJ**ROB=o8J(BCnp{55~#eNB_R)IY75Ehav z^{r7OkRznE1%UF(lE)M^s#P6qeZevdPxwA-uj4gWE&e05R%F`E`osghp7`UMeRQqx zh|HI}O{0yWg~v}>^@Sq3XT}Fh2PBhcMx!fSrh4vV2noGk#q!=uc8?w#j7zZ!;}@VgX9OZ;(`#^>hlg_no#=v_cHO{SxPW!<&w_Qg3{RVaTW`vGllZbLlwMabY89n@4_Sera zTq6oNWXpe6T32LJJHs*u|a+z}1DULyD?Eh-K zrZ4HY7~@6Q4+k{g8ePbXzz)`gQ<5oZzlqKVrJZ*(=-CtFxlx;JItld5X!=A;yRn;E zh6})ZHGCsI-t|JVjM9p~3NeJ2HnE1I=W9zGwqS)>n@KusC@hc(z3m8je$F|OIRZG~ z2Iagh#T_Ly^pkOkQ&H+8LNv=}JwV`B_#p^}hNo{@ggd0zChAY`8o;VQj>N>=k*#^p zv0!V2pOXw+3g;Sj%5wa@=(Bo5V-qz5Wr7_vZCCFAn0lCZV>B8zGc+ z%ZLkudhMN`A(KS44)Clhq(PT4zE=}{#ln!1IND8ZJ2Q6X0x`O$^*=}4N3Re!kh9hh z;f2f1kH((T@=;o2XA9?;@9B?I%9GeiNr8b@lAkwG@_t##x!dIxW$9e$XrQl8IhN!4 zf1Aa9NG=GnCJwSU3^LKf0r{1e1Tn_ z28qiZo`t?GS3?*6kMrVi=64s`{aVC)(msy8e%i>^s;{u)NRb3Rvrar2YWPQ8 zcDXH~Asu0XnEWq(5OOEmoi_+v$2Qb}WJ4uZtimNb z5+7(ge`~7#>%3lX!8V`i+7il-Wh%7MPzYB>S11Ta)NUU=@T4$uA=4Ne*tHjDGuaTc zN?MG!^?aS=jARfjQi!!w*B$L z1mp{w*3vP}|4!EHQ|*8PC+jPn&`?R0S>@%DK&DOOa=(>TNiTLI#}=&YPa6iVg27e15EWzJd zLBs{w77MWSG$TDA{Ab^3-b$EVRSHck2Gy%!uf++HN7SCq<`Ysm10%+Dz|QyKV>j8X!=9=RM}n_4KSzv!PWA-$;F7 z`-kalL>)!V0M_NU`QcCn&RT`x^*$TjTQMh-5ET}y_e0AH!jV#gMhG1hf>wzhA3-%w zTc7CmF8{-^3P^0#Impmm0Jk$84XM$`*dC*7ioP{IPg_ZjQz22(<3*GAtctE}`v-dM zS`jx{K=hmorcu#Z2n=7K$^HMzn*?x0UJ}=@n@f)}^nO=IPr$FvBioHv1KI7&0tF&z zEW3Gp)gZJ(`gNThK;uJnvYmuP{@rN6V&N`{BFc@+@K<*5T$8e@xa@2LIJ^<5I;|bd z^SoRQp&tE6`M!H0oe3e7=f!kc5jN@i9T*a3^Kd&cU|pKoT1}wKN8YW08K2WC<3siO?c%OVYWs>4@)}?M|{80^{RLxS9 zXQCKLQRPA+Pca%zEH6%G(1_lJ%zGI14Cp7O0gH?$gf@)%VXFnPuG(ArKkhf#cV}#8p5-^2hucN?Nl0`@JSsFAtj* z?URS5oO@i3!PpPS7Wl#Y2D3yvP=dRisnsK>r{sGln}}NO$9+gJ0{hHxwDhhL9DY2D z(=$P-5GHA(1fmpl%JV02!l(~s2j+=_#G#Zf!G<}ec?MNo#ll%0U-`p+M=PJjCK@o) zFw-TY1l9fH>wx4HS{d-WWSr$yz9L~<)(RudL0Xcr973GW{e*KpXZTxt@TZa+7qQ_F4hX7Jsw*IQ8~-;fU`h0G1v43+-V3W>8daixFnOs9o3 z!`Za|xAdi+puPaSsCo`BeB+ALy3MHg4XSwh~2(Gg{iNs3%{X#oC;_Jr8RWU=&Z;$_@9+!VI4lR`e=^Vd@i zvPq4fh8w!B`$m~sRBUwL4+*pR8>UcYiQVDdd+ukcG?CH*(jfQJJxr*4&ZjAu{sR9D zI*B7qwH5R#v0CU32NMy8{8hi5_{XX}2H-(&IA|6wFgm8pHp%BHsy^5_tUQCEWp>Rv z{SUs#^6&n#-nJDttM0vPeznXx{&6F7-|o=8yt5Ha*gaD&_r0h;NrU_wDLm@vi-KtG z0ITlLw6AHEo1%nr#D;{ZjZpqX+}t2#C1vBc<)jt6Ak-o+@oLWdHNKNWK};^N(HxI` zMoq|w{)5GY&QmfiLG<32Doy5FBiK%v)7x^~cV`;yVm+r`6v_>GRpKJ=7aFX^N+Xfd zn31M&R~npv#ko!#YQ0@?oT8IVf&HiJ9{EQn%%v7DXs#w+EIT__H*yYAzvtHarlq5_ zsdNrDA`{eSNhAldJZr7#k!k_LtI4S?`tRLeag7NveSE$q&ivwb0F$$PPy?a_bYp6o z?rTbUDW3Xrup6Vni8N+IVI-=NA`&D5?!jQO5s@MKp9^YD50(z!DGiRXt}Bg>y;vPS zoc{H8a3CXVXkcMsQzp_oc+aO4oL-Mw;;dF&xN0tB zXApU^T@r)p6%(W&NTV>5fGxcvxt(Ex_fHEys8djrejGbutsBEm3T9mR(uZYrnA-hk zY|e4EvV03i6OpW#Kvlp;;jr@D9P$WQb%G5|AJCvKS-3%@`6b2L4{=0c z)LF{x;YwR}qn76L&U_6Ty&6Z?o+b8F?2gKtzN1?`MSPk7@jwe2^;+pR=O2=Vy{rUa zzWzmUqs*tBnct=o$qr(kWTKYRT)$)avwe75pBppycvPA$Be~i<E!L+ce>aw*=!pAdPw>}iF!J7VbvnNv4W<4)ND_8E#@d>9CEpD zFLqp_dCH_GdmWeB2!D8K0ry5b6X@B%hv)Q#2`5ec<2$ABCLPAD*^#!DY1mt`UjMgy zi7I~|w|HBBF*ctRy1i$-811iFg({+$G0M-D%UcYbp^4d2x4}I@O_GgpFs1r(SwQX8p8$5t;6qoMeYWkRrzZFZ@-{qC3JqHf;;VzETN1rT6rFV1bXN2!Ax z*)_n4JzB~5%}(v_d51zLM>nBgDIUtY;tX{s`byh$qc#iNF*7#oo4$lj$W~6Im^Kjn zrqKch`lUveOKPOP(+eYF}??nRhoCdt`}f6i1)WdCT3$quhSDFUsJ_9!h2TQ+e*3E zWklrV?oYG720!;|v!92_CK!L3`rj%=LF>6%;?1bJ3?&wcIMk%Y>x>)Cb`;t|%c;g_ z1Y%XQVziz&1~8|@I3E@ozXpHarhcg6;^%HkJSAq%ryMAHR{u>_mvGjY^tE>d&@TDX z#NmsfX5L4!XjCJ5#Vz|oaz-bmvn|a*H?=u4C&H4hUm9>q=nFf(v&?k-EsyXh_i(mL z@|^5RGj-4i?(`~`Il9H$dyidNek}TNYe{1KlVE^H#6KX&WlrH*Ey>gu6?HSyvvkn0 zmm_Yk;#ENvSdlOgmp=@w-MjytMJ1$+HqJ!Yvd}lh1(H@R* zv1j@1mWO+-`;ff9^yJ+WY!tN{=qb6fpiuUMA#qfYv!jaK=zE>dzRd)8ahm-N`-vk8 zJA}K%C!p@Ni%@kHK)*7=c!P4na#U6tb%rZJX+{6aY0d$f3LaEW`tcWzm70GSF&v)& zpB>5~Esf=;F;Swr4sWQpiF}r>loT`5%jgNIGTCyBSQ6Z~$x-Yt9MMZkY>qDXVzzI# z=FC+qjHRT=sm+a1AS!jKoqXxfWYzJlE#!$IYVRueUG5$L?h}z(_+@3=nE%RmI+ul& z9pSO&+}f+fmD<_sLqCp&-hSteAV}-qKbEC$OSuM6J+V(r^hP8mP4U+?qP)MgMAzQx z$9&cFC=7Y0p>u=64etsdlv5O!G0#lU?n6`>d`Y@ZEsBnQi11>MuH4jTnCU1TL0C8bie0~I~2MK%t)%I~YIgza*POMcL4V^YqAL2zeedI3CS-wM6mis*u z-p3I9`R5sg;BG8Clt9h`c|d`K>oSgya}Qa+S9pH5KwCW7iC-2aBC+tm{|8 zW+F{6L{dv3ehNAx{h?|K+IW7I&O->3j$q=S;L9}Uv-=aQYqCk7Hoa2hi7tm5Sl{^= zHiQA-_`GTpyXZEOvNhFh+^KOV?`pRWtPYRBA%X7m_34~GwNS2?*9-P(owS4-urg;| zK8DPpIS%PYo0G*=<=xJ7cbuaBnI;;Bj)<^YZVD|rh@Uvoxl(wN6V}Zv(-b-pt$N%D zA^By!pohf#dwQ&v^Eq-}ESl|Tu8%i}dZ5kPrzwZxBAFqrMk=sn>64z6xoq^OX`Wbm zVz7p!Ih%c^Kl&nT?0w+CSPnF^(I4|g`)AcOt7vH{Ek+CypTKv)3FS|3Pb}HnIyZ4^ zHDHJIc#gizM9y#0&agPPoc%e|4A~ZU1IoRN* z30G}m1!=Nh-n@3wgjI(s{|?F#x!cYG#Y=^n(s{d>g2#6b7(q+4Vj2URk^y@6>#`)p z-KrT}&kM<)5MyGI;xu{bfi3b%z?3cC&eWpb{h+!*dG*DaT603CPz*)+dc`ZGtqPgE zA6RN1m?dk)T7(_GG?PwzCzt@;=(37ywS3Egvj}$=I_hxihJiv}F zD9#^kSk+u+A7wywvYkup(ZoU}^$I;7#B17??MR+dRW@9{g?aw$-(dR#Ea;CAUz);i zhwz3~`*>O*wz5UySeOO9{RrV6gSgtBdF7>?Z0J_$`g+Qm?!!mrkk zf!~!_xG1zQuGkgvVKCzzYRe#kcNXV{liy?L%+_9f^0_u(2sgh+pGEqLrNuq^uG)>w zWN&kQK~EEr{vWRAhdu@tz|j*k7kPE+9xH`~Q|1FhPuRFnkIpa0lrtgfu6Hh)<7gfg zpQx2|sm*sXw;YC*kspf8f05UGQXJNEGHG?M;6k)`Rv=9X_yqRDID2$JFY&ng@EYhT zO5%SxoF7Y`qN97Gg*l_84Q!IsJ;jYyH4Tl1p(qL2Y5#Gc%WzKZ0FwbS4Rcb;QOs=y zI)Mo;d*_R1{8_zw`b3I6H~{5`G}>fylxky}kOZt2=4GUo^7U@kzkVE>s)8SS5~Ffv z?>u)JgMOr(tx9kQ(EUd5TfEfsO#n9P`F(#+QNABUNdQSB(+6fgH0&X*%s+Q?y@-gM zZI=1Xpv(qP?on@FAZ72fRz^;2#7+F$mVlJ3QMX=hSJvVq28Fe9j|#85J|Q21ov$2J z8~PG`j6ze(0u1qW%J3emrj$8UFR~h8TC-}CQA}ExX#wXFY**T&u#kZ$`?GW)(}h^v zq3y{ZGvomVUKlCoyJs8PHp4&>jKICQ7>G1z>txYy>4&4o3JcAcu5 zHYw2KaCM&8&~{F!wtD}uv4_R|>+@x|^?_rvICg6*ppIc8v?8HII%B4>vs%r~kA3}zjzcsqZQfM9B zD+-fsR6yP^N=#3A!{M8rf&cZfD}LoIo=p*+Cf!_MxeK{Jbdu%7J_GluRYkg^Mb_3* zCq)+VMZl#CNe%I!_OE%zE^Bk+=X%;>+a&&RKgCa8o~?mOmE@30e*sK0p_3@#GJW^Lud;%OK#!sVWBNbF>KnYcIiJ?|=sqmu+R&4mcbXiF$b zsgvZ{Rg!fl2QbTU_i~X@IHu8=w%7?TcPm+SbiW3D@snW24kyJO_!YcYL0qIJ#zRV} z?rt?!gt0}y548G#eWvyiL19uf$y{opRyvYpcJmV?H|L4-M03-KUWIVONmjgf-j6Pj zgt;>>!G->6h$h_u_CX^~9jDz5IEQp+U2w7Pumy}>41LcUnMoq)A_q7({f{^LMI@{Z zLt(7K9gB-;4BJp^h4pgrw9Az3u5@(0)W*P8 zFJ|c1xFMah@9lden{-G@+k|~31oy}WR_j({-P{GIv(DP95nilChi>R4KIL{-$*uef`K#8WVzuIy8adL7Lb&RM)PxLVzEsbH?7QMHzif%A%w&NUnVODp> zAIsX%9F;~iPI)Yy01Jj&Uw**Z5PMJC&q9V(`cZa2K-(5>1sg zSN36d9eE(~0&~{|&x%)1Zl-9s9oDd;TK;ko%>oe)CGWpK;yW_$-)bsxGH(9ER6Oi+NzP4jLG>(*1ln}mXjg%=4MMyL6;-~ z9@vPB%A$zy=U^_PcTi8?q|n!$o)gwLICUowjciFhv3iy@T*2>)Q`sKKNtE^GabA!+ z0Lb`j<8{!so0w2dtm1W84V}#GXY1}qB5U|_JF?8x4KB39^58#|)`qg^OEk$>r6=ue ztz+}q<#x1F?qVN(xH$t1<1Pif%Nx&T56rxG>Nh?M%GP?U%;p-hzEWI%4TP;At)d-Q z*+^A;6y1)x5mm9pUf-6U+L@JGvQ6Q#4(p{e!LPnp)oH^AJx83yuVzDHOU9mHzLejj z3=O7C@qM;;WtUL@{GYnsIxMR03mXPRDG5PJx zQqna@OAatJN{zIjbPgTg;rD#s_s@I1>z|ox&$;%s_nx)Z-h18mSqm_@hU@hT0Zr+J ze5DALNE1?Q#^2{y^aH_eF-gdIX(N*F&gYHX_Ob$feVVZYq+W3!*+YiQPzYIpfxd7GN;J@;?SEV zj$h79DC=c=I*yWI^xnr$*#Gq;FDxwS4ARFRX4#wWYWpPUJ?GjFw5haBEAdYxJLQE$ zONlsuGUZ*^j#K?ucS83vtqyUsHp_y-s}k709cgtoy`(6T7i2;CTx$zmXMZj~4YISU z;+KYrGcej)cDn{eQ7U*)UrYoNQFtGck=E1~ZTr&K%Cp%BTS2-UX6HgKrlw7~Et^Md97FgU&$n#WDbI z)*wbb&}^9YeOqZ_%}oBz51fIEk*7cMHqiaFLjI*;setBeR*I8iM1e!k-WVv zpTW@i9*sXgL_|=*60c3C3$bHT=Z?Fn*CR?wlzHMRJ&XQf&ny`uqu6eZbVeO5o zt(MO1KMf}h>uw**a)Wt(HJq3vrF6YPC;x~Qs+Dp0()*W1%D5}{i9DJ{M2pvQ4T_ch zJw3A|8XnM34`c{$ky;W-HH(jaYrrqr$V*pP&l@InN{f6zC!xEbSd0BM%|UTL*@{hV zog{6VgI0E?$EMicnJgtokBEhNX}NS6vS5;KRz3zm!lUOp64VGox8;F}!&XD0HekDuiBo;t&}a`X~p zM>a*kBn`;f#~zO;j#*v{a<4{cm@der@1+JbWy=~%K>31(&Z*d%jP75o1f>)!`Ly{> z^S{>+ob-zp5u6mG=_P-~H((UlFrUjz$dQ>Y`dCv$>Yexzb6JYgTNI}pnGvvw5xIGS z#C|6O_=$8Li+dmEoUl_abZKgcm^j&RlNB%cpaULq(7IRiLxelaT?4YY^gLj^aw+~h z+LG~naGQ-Z)?gWPs#2m^Z9&qg&vs4d?)Xp1#nEh4m(!kNQ*)*HrUDIn$Mp*@a71yQOp&Mk#G)wpV$yW;0PY7(Qfz|+R@oI+zy5%2_&SO z$qi@u^WJj{PK|0zoJTyYVP`wjY#(Way&h{BT?@pz`l#gix=Zy8OjiB93M{J`%GG=` zwl=wfbaRG(I|F#(-%v-w3%s>xz%YF>%#!X{7L&0;0XjB{Kpy-z}P}OafT5YIKCF!pBF?4zfiCNqpqfF$`}47BTSIz5h)<$idQg`2;CkNxOc)W7;SMQ39l5a+ID zqp+|RDE<6mm+HD{#uCp}7}Ec#{CcJgoQX>K1^UbNjdgn`?g5Y&?&1{IE!?8F`FOMC zpTeO}g0(q(mps}}ofM}A{Cy;KlX`Xf6z`%;7rRPqoUw|X>Y;gn){3WJ$sfJshtK>P zcUWxQML%c?h_O7MOtrhVQX$h}&!pmdj~~Bc!CB@`QS?w)KK1@)?Zx2;P4nf{R;zN# zAZ3-z98#noF_-?S1yR_4C}yjdNoxJ^JcKhybFDsS`UYO(iapUvX*t_W2AbVPACEzM zqNT2+NrcY4fA>5$b*^{{1d2d5|b6K|AhZR4+MQWrWijf2gGm@UmQzC6zhV2~Ik*)jjJ?W@L5Lmn3!yCF6f`zI4gbqhih>LLM_~`Ir+kmOyWR zcC~JOU4L@FmL{-4juT@*AL4`QLQ(vhh{58(r4hR;mKA zKH7p4Q)!FYdgckS=iRTXhT=Sb9JN)XV=wfT{xU)qXB4s=Fs`^6$0X%UshMwfr}ZAb ziLeS`$hfGzY@;{!Y74I%%{+WYrKAg^HQ6Hw8J@OW1J3SiXE#t4#Kwk4U!OGJxUl#Z zAH5=ReEJ>;OOEE7TpjcEy`-^LTO?Yl-KN=%dazNu1|4`>m^D&2Z+c3W;{%PJ^(D;H z)DjxT-7=a-d7fh*Ji4-fhJ77Y{DUKtMiA*3RVj#;4@W^)A6tk;t3B;KQW0@S*7c5( zX|r6#3An?^0+=5w1 zrUcH}1LQNG*xDW2OzOWf(zZ7PGK>wy4=*wr-wnpb7e1n>g(@oT2Qii}zf=z;$mg)i z(w8gB7L3Sn|J2E~QE4g$x20Xpif!`|RshlhMjnyiElr=3U@fkfED4iFFgqw87wz9f zUDdkDw`fyAXlajL&?tO+ZqKx{i}00t{H)cdE~=JU7jeT8B+EnAyPMH=luGawLNUaq z5xm?A$16Z@oQv-_eep`kf0VzqjBc&oxUP7cyfL-_4T?Ref7J46Uhe*3)cuc*5q*Hf zGrjiNbCDbLZatYreqE@c-wVhlYibASJ`Pq|ZF={a0G53DLNyGA16+n8i5k8^tx{@e zg#U!U-u4eICEfVxM)&DdV7u1t_8!ltR_0ss_FcEKM&2!|*eG_vq;T?Bi<^fbL-|)F z5>r;OxF~Xy5W>8Qx(3>m`@3X*+hU8Q?Fjxeg*V5kK9evMCo3A}8@R@U9zl!s%8Q13 z7xpUaXwat~$cg<823oyR4sJJOO!xqj#lnI)MQ+%mMMB0p;{!1Y*k_dlY{oBj88-r> z1cwwwEfcM-+lPFy;GKPa$S)Q|6*6@u)SCXaQRtMmS3e}k=j%s_1-P6Z#fz#Hy5;!s zwV6L$@E;u9=WDmT28_-kzs9i-%tAE0VZUa&$)9RW^wAswDn17d$b86-s-_gQm4Ef< zM$1BYc_~hIp$MNhp#`3F6j>=ME0@AF-bZ8M3PZ-Ewrn>eRHNAPU9Ar`S<(yugzW1& ztp^8z_yNIGa-go3^!C%`esBMDUhBS}qKPEeFcxus0L4Dvy0ROtwR^DlAuMhiy?yGd zsP-~q^Z@8?$1_+YBP*#7GQhYp0`*I$iR+Y&8u(8CK=54et-H zT8JVw8Gcth8*UtH%2IKX?L(-6)az2qWxzh%i^YY_PUBpu)w(LKim&HlO4)@3{Fnb2sFJ$937V=OP$6~h++29VZ+4Ciq9V<%0f zS41(lm3b{FC16*}@eSd9XTf)=`Cx@^V!xva*6$4c`Kbqg0|aMb=$?qt{i3&@<5+%Q zru??vlKAnpq*xDcc$}+Ra1d=5VW<3>)=&@TlHh%hw*as|RQ6W=@=O#`15olKuzjkzPwsvUWp zTor=rF}KURde#?$lh^^t8=SkVO>hD@+1m^4<+%sa`WbwKoRT`RoRD4Fq_@gT~O$Zg8M0TU?GRKGT7HPVWol{JYp6Wukx7#=I-uQ77fn^V=$ ztQ@?lv@spMXm%@wM2-1FXA5L<2>wV-UfM3hlK^4Tuq51j?=|^q`FxA@5ppT-TEE!1 zCi=(eBqzM8I{rN|2s59kK8czqH|l-h+}Q92T{;TFH*5oa6fdEEE4fUvFds5?0bdt* zjNGC`MR?rFH&5Hq#wp*?b~5|tr+to^D_{L$MLLsM6RoqW%^JWUF$heAb>utGUQEyN z0zL(<$KT436`Qm95YrUhO4BWIcR3X@e{t6px}9P&KYsf*sUI>3UpuRmBw^C#i9SbS zlE}l77PI6St!KW*nat6|p_%M7yxgr&rED_dUsj_jq_x1dgm2FLOLWpFmoKs6UQW89 z2R*O3OT!`{JvEHa-1+7_9`VhTGupR$kW!T=wA+)j zr)~y|-J{`=0BZk@1r_DX0I;0A!LPs@fmOGURg8X0t+l8=$Fu6-~aum)e%SMv)gW8|pFh!GZW3G?LEYb7`zQyt4e+`@4v>j1{696sKz2Zlnyn z=AVk@%6d&6dRKk2Uh*9N0>fLzmxf-hooYMjwKetR1CsSjw%cIwIM=L$%8Gk|va=o^ z%TO~67+>&>mI#s8zoXcOtxz_Aq`fikA9hN{<)#@oo#2OCe?X8Z8U%@~M`<>`8-u6Z z3T&1n{WRNhS>YaX;uJ1QhW#Frob5Fji`AE4s@iEzs$dIOcU79y;{7vozk(=Ej?S42 z%3KGxs482FOWi9LSPR4Q2xQdO^%V zh0sI@fw?_&lxE;usY~?%|E8Wl9l82k1ewgDb7fyoD<%$;!)OX@)l|}H(}O!6s1IRD zZo;+LZ+QY~*Zti*K@<>@978f;Q5(gQqQRb|T2082n$sF>=n?4QmSg*y#x-CB+!05m@4`=6JFVn1Nc#78ASGMqI#+bZv<_SgnSh2=j+iea( z*VE3hJWLBzUa&&$nk-|L1l zcP<9U7iI2cFha3f&In{0?mu-Cq*SZvJjz$u#upZ@0#;R2nf+^2`bPgKMEF~Dnr}%b zkkZn|JUTL=xuzbqFK4d~Q`RZ(?dQxi`b=;?S?4>Vld#KgwrV*>qeR*?n7&5MrFx+7 zb)XU=0K`W7pO8bKiW}aQ1%)Po1~5mudh;hdI7&tN7R(A2%*i$QI&Fr~ zT_i$~g2LjvgYx5z8jVQYkL?BU7A3VOo(nVP0LF!=z$lr3gTP&molj=*%XePAasgMI ziFV4oK$LEfp53X2B>LmqQyATf+CwOGD*NXR;rY08Z_0JW4olXWS#DfzMQJuM|Ep!! zK@8(cD8KzjwoiCdjrktxziPHn5=mgVRLCBzM2DKLp(>#EU^?~GcT7ImZEtIwvi4gN zvk)OSwT|LUQ^n11*)x^QoIW`JB11dqq*Pl^RYCA`? zQUiYv12JC{Fq-jpKhD6icpy2#W9rb5=th6HPlAkYWKI1yVETzJm$`PpAm}cA$a+N^ zu+!IKVcr8)N-ZFSgXPSUsDIhe#~=Lgoce$?1zFBf1Pcx2l4VU>sh7@IcH^n*KlLDx zzQ^Fj=t;q_=0_0{VxBJ5sp8fN%d~czM6CPEg4o^1yu&9f&a)OcUr17Ng>Y`mI_I=_ zAJ$i}fUo9->BQ*NkwUl9o{_GJd^KPO!Yz6m*G_j4g>RI&Xh#KE`Hr6yS2>NUU`J1gVc#* zlGbrJ@%$6u9j%`y7jpW1_LYk-J-KRHOpW11TX5D|g~dV_uHpVA$n%J{`P;*Xs?P&M zEhZo`+&{+)#?ux|Jl3PwQM025kcFXPb^Q6E4$%Q#n9{)!3vaB<@|(W-MCRn3UZyEL z-(Xrl*Yk8QJim9==JQTWMFa(XsN^%4bu=ZB}9DC45-n;%aOnv@b?mKyLh|JAYy!&t8lSBQRQ~%pUmHHuEewn-c7B(D!Hi`8@E>d=5#-a@(A9O$5D$gdhbx|lM~oJ(r*--Vc6Br znF?=8HI-<}NFc6}{yWxP$)l*8hwdU|4LoH~e=4#tLi^KF=u2<_^Yf-Kmxjrj-`4ls z%h&ox8ihL7%)YAx^%JjKBp(2wjg=HR-|x?fWrT1lB_p&HEmkx%1*S%(kM7HjZkbsI zX7j9;=aLd!+I=f?g>!s@Bd*~3XZ8!dU=M3)S_}Dj<%NuPU1(p6zVTML^f{OdUh1}+ z8b;D4Q#F_T%p7!xsJuGr81a3=g#j-okn2sVh*?c#T7M!pbOdt)FffYxC!Ko)j}o{L zyRsgSS1Z?G+s2>Ae0aoiy7+%}4Ja&_0RKY)nn4VC=6iGda%pB|+;Nq;Six#<^MqV) z77Yjg0Ql-dBVUS{VpmVst4{`Gv)3Hln@j#;hN1%*fj70ao0utg7BEn%aX&d-2c)W) z42ej)x=yqw0X3Q;jM}!+vq(Z#H1VTX0v2s1((>JOTT+3o0S+m33$fdYcIp0reyF{#!oO4jt{C5A)L8&Ze+_USl&A zS%%eez$JY`#f(#>n{yr9NQU4Zv*8 zW+c^Q2$zARhf^)1n)ZwI5|U=|)6uhx1ye^Mzz4f(T?$e6_1VCSGh$|02Ez3k_JW-n zUlZ(Q4i#;(0mN+=)4p$|s+;3s(7(tjU{1@qF$bX_&z`0mJ^@l6oi}_wv~q!|)0{h( zI4Gp22DsOZS*uzXjBF^SXA}~)0tGk3yNu1(A6KRkuvaZ8tx|E$3wjU6G6b z^NJrUf6Cyf0{h!kl3GuBX1$2}(0amhyEeFa_|52flsvT{HJi zcJK4pi4pKq(^5ECfXODsx6ffUsM5AP064oe>!fjwog9?@R)68&Xs|Gh7qfwJ;oqgW z{Wz@Be@=0epKD-{J@bvc>wo#l}QC zCbrB7SN;x~qbbOFUAdm^R0=uAb&lR}mWVmooImm%St2_bAK{iZdV`s3|FjXJ<(F=W z+_W}fdKtes!X2D#uHhUgH;5+668sZteWAPXy0!Thd!btj0p1*!BdIu@uDl5L1h3Ag zub{%$)F4Ip=+sM1m>&a(D7?}P-Uw*@h>G4I`gTVMD9kx(s$CiYfpCqgWs2V8Of%Dc zoijVhrf7!P2`wgj52@>2F%YKDm}-@UJI6RK@6fnrcmE8}asN}$dkFS%M@pzDGTU3e zr!w113XUyLr$#~T8;hSO5Q>4=~8^2^q2 zY)IJom#qT1>-2lWj}ORDvn9!B!*QE z^wG*gCA_W#F)%Ph%$7QE1G!*jG(L>n4pP7;jq3HYoI0?H1oNdyL5Nyylhg zo{gSPd1Pe*q*o`lQF|%9)5qG&r8z_f1H`^&+OuXbebwYV-TSQ!RZs<#0DatVu3(eC znT8{N?|8t0GQ0PV+!-@1K>^hHa>KHW>Y-1K<20Fby5{povbBC0g{UlQl_mKg{+YhO znU`kx&&U&%aM%$;0(kOPgI|}pov>cb z(R&Mz;fvu&P4Sqm&5*~{YmMzLOV_W_>3i*NP8-=KLSTpib!CX-Uz2TJS2cc{egWdW zdkOg>J?q6tUI~hleRZ7W03#!%F_M4qrkxH>{OX+!($%&+|F&(K)#LQG(%-Xec z=B)G(Ep6S0*lADsQ#-Le?D1=jV5jgTj4sIQ$ml1*}v2tDM>Jk!-WP% zGMmdEh2c14s;W}b4u4G2k+e@1(xq^mt%W4%+Lz*dek4pTRmAS9P5(S_$PRZ*BRpxw z9KomZH!@9}RsTD+im&;sq;7HB`41mF3mW2@3VVtV-ZfWPd6H~wVaC91{Ogyeb{8%7 zd$3``0tg~2Y7C!2oT|hwV0)I^i|~os&2V%HBwgW`VJX4q*`D!!F{o;3-gPG$($i`o zW(Y%<3#rfBahka)dmFu;8#>n=LH8r@3~1tns;#I|m*R?}mG@u^v9S{C+v!zno$WKC zkR$BNvIZ+*YoIwO+rvAtVnQH|uiob>DNBxtP(0H~w@dHT@!+F|TmC-te8w zmsdtM|vD`)Y*5h zZ850&;KiOelZy<^5%BPxjv-trVGSlXz%2R$p>&3wznO6J+zr#B`Wfttc%)V zP}6u%@LC*UfDKE!V7hAvYr5-=b$+@an++n-6r|MsCtv$PLg;@|5DiAu|G(yp=}{0i z{!fNDJ!4)&{$HWIgOmRg{UngS41oau`{n;^|F8Mz!qSoL9-Yy&xXkmqe*kp}k?QyS z<@R2F$WAe6+W!tFsz3QNn(5{s+8Du1bGl1oe3egKI2D2)!u@hIt!jD(Vq<5!u3Uvd z`X6e9^7!O*a&Zy$Nj7Un%)2^nj+6!fX@N;eR1Y8z5MzzrY}Z6zcOzyHj-<{3mm7QL z-MO0Rj8m1b)>c#Loj9!{|MXIDiHg`gIzsgRcbdp84Q#nPO)%NUoZvxdW@_Pu<~iGv zGetwJAQ?l{+>{}^`ZGL-G~s)#e^9a9p-`ZdVRh}jC0qmVUE6kQwQ7KQtLy>Mk<^D? z^1Gg?!JhvnwRQ7B#pwb9{%&mK+hZ?0h0+}TH#dfIq5-)U(`ln~DKf*yfi}UA=#d_e^b#W7Nad|o0kK@c*DfYg~ z@&!Q&qms+k>_{@O(D1vMas3|E+hG3CEf)nOxM0`+_)n&af$o3Pt75DnDelGerW<=U z1L6x@_UN1cVp^5ofL26gr1A8mq4~FX;^Pq%o{}pVM-}*xge_K%9*ABT9_nWOxmwNP zz3ZRxC~dqGpLB1-c3|*>>kmHb{GW!DY%SCyK2%+b(Qts477yp>)Y4H2{dcyZ71nJH z`tO!B!7t+PLBG3@Moas)ySc4=*YX8FsfzQUU9<7qHPb}Qn}qv*Ih~)Q??*L*MIg2{+fRu=Ej@NPXfqCyPq zY~OZcBY5sC)Ps$vAXX(NDIXg_OfNGaEK;4LAZ6@n1j~x2Fc=$PM&m(9fNZNfON^lb zErU-h_F*+tkLg1owDSk><$`pkF#s~t=0ziA_)c-V;xwMZXq=#1+7DiMXE}X0$gAsk z@Y^H}$UFVf=uh)YdGswc-KF8-euU34v0qIMz>k7Fn5nKzSgw3tZp9V+q5B1wIh|qm ziRMERy_`jv>zY;|iRA&prPv)t^UnzQkfrqX&t($|-#Ravzsa{{pc8X_g^?MXZAcn+ zP8Y^3K7ad;tL0@g^$)}1J9n|p3L1AGt1{mF*7O*GUI%wn13B^T+J0&lXgo?>-4EU7 zNXh~?_7+tQ{|J4^`hA|qf~Y_%Gx5&MptXTLNE!)nQsdVB&*H>UzeU9R5hwY%{_iQ= zn{zYTd!Mu-@QQC8eP)ui-saz=h~2HI8w(!Eov<;F$Yfz7E9mmh=PM&{pYTGJ}uSh z85gTr&*qGPKoyZkr@)T2zY^ zZA#-rfZ@m)n9xAHD^1hI#Bk@;*0!~c`%>p_ciI@iL&M8ispjcAyFIFlDa_bQOdP@q zHOUqjng2WR<(+PU+wGuDf~=T-bzFbHQ4pvt-BK4uN_*?yd9R5rT+{FLT$rxk+z~Xz z`*;3|BI1-BAi8~YLZaQalcw^Yvc0@Robd?mmc%;Iyrv`h;f{5pfWe<>kTwqz=kagk Ysj_Z1mDNlFus~5$(NeBdd>i`z0O?lGY5)KL diff --git a/qwt/tests/data/logcurve.png b/qwt/tests/data/logcurve.png index dcbe08189d7452e04804a5493da44ad6d4493b4e..c3f9d796ee0b440e3f668078faf62c4db59e363f 100644 GIT binary patch literal 15670 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


f0GrWCE$!IS_V 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 SWNrXmE6LrL&6j@U_x}Mf`hd~^ literal 16187 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 diff --git a/qwt/tests/data/multidemo.png b/qwt/tests/data/multidemo.png index 623c2e02514f27711f43abd456690b3dc8e3656a..836c805d73ec45f5308aed7050ca52d9de918b98 100644 GIT binary patch literal 6533 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 literal 13199 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 diff --git a/qwt/tests/data/testlauncher.png b/qwt/tests/data/testlauncher.png index 6d3791eecc446652d756f139ec65a7c990e263d9..a573cf6ab8e32d674a27f846c6771fd7c78c2fb3 100644 GIT binary patch literal 98640 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Ν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

OX@tUdph^i}d| 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 gh83Ftff?{@GRi}0HQ`Sp#T5? literal 113752 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� zVW#fgyW82>`S|z%o6v=WoRX4~Qc_Yt`Le)L#f_Ee_Tr3O@?{pUT0x#lO53(%Q(i$~ zh`W7cY~Y;fTaIj7=Idp%*DVeEj_lA&%PEBC*rqv=S@|}H*QI6iO-&u$QJk91Jx*rD z!-o_P8d98@M?2IC+Ugu);udD&mJ^@mWN@*dpeWfcFghwX#LzA^qcGC+LRNCRWml8q zLoAKI+#3{{s8B>7GTfG)-fU~kk#70koGb?icIwp4zdQs2K($9V3?Kk@p#MYniH?6X z-NfN^6N92G$@qj05`+Z)z#{^}v(?=yVC!Gniw+)p*Ha=mWD^AnoD${}zzw?XXVn%a zIQYQC2qS+-FIej-#thH(_CpJq~M z9}Q?BZ;@4y4K5al)0g&wmY!Gpg%kM%JRuG)2bT$ls}sNIl|eIjHo|2BA3b5F z?L@pH&LRj2i36%|$+$qoM?E*EGQlo+GP|a}Bbvk&ArC;h?}<@R0=P_&E65D(9kPMv z$n6vdWpb1PaS8LuWT;JvFQU0eD1SuGr~LF(XABuY1pIw*2nrTdDl-#`6sN#m+2KmX z5vVaw2H%Hw44Xo{Xv#RAfsk}YIEbMc>ko-eqUB_O6qgukIxX(@%+tra#D^E*i~D3WX|@x5Z3Q;<IXQWFc%YH;_4W1pFA2{xxMW;7F8{)X3+KX00%;bP{<&{BXnu#ae)HjMYAwERtNxrL^jeP=u~*XA zixabZ^-b#>d_&4+QW|^n2G0pVurp-_Imscbl`EY~ETaHq>`i{;0W^aUF-p}@O+5U( zG&F`lpbrk*Ocy9Th%l78?SW+CLS}>?c^*q>@)4!;DxsT5>Pgy*{G-~#BMebu0Ze&) zCIAqi3h;zSTSP-?gYy71FB2!>So}GFO3`Fn!XZEP!TcTNfp)>RrVXXS=(ypdW_kGn1^_WhQQ^5g)IkN6-aVu1q|76wjRK zGIlW|^-FX3g_4qRx_xaYHj*cS3 zb!N>P_Br>x_r9P=VeUi@Ri(*y`x_iwPg2tkJXg9v~##g`7 zj$zcMC@Cck5WYq%?Ut_ontX&R-q7ImA+pxUsq*e{Z^+vLx+buF#4nau7hM14k6QMK zg0oR8=@Wpl<9W>QdV@{%l{em5EBEie))(eqq?m|mf3T@sdHd6*GR)o6X**U3noCw1 zTG{Wg?O9e@)_liu<*2E{1Ac|xaCO;R;1v6IYlNkvV{@t`gWVPrS6_hupyui|>I<5_ zD)LnvIe|8czMiO=_`1fyu3l{$x-Q92B|eckmR2azGfMOX ztQEyLc)FNE^(MaB#`R{=%H>Y~09hSpJ%4)W?DnK0yS)&;% zXDe?n{CaaUhaFZVtv)mown8eZw@h$zRIUFwIR!79@=T z-_XeY9`>Cwi5!j9rU8@+>N%M08zKoOH%GB>m$gCqLwg<zxgR(9HH?va;fO9)=VlXbi())%TDB^GY2L z2;|bHiG_}DRjJ<>)X}YRHme2adh()^9pHYpjz*w=f=@(9?~KN2%f-RXWb|R?Z{*=f zCUnN_U!yjs0;2QL^&_g`@ou89&;*#{xZFmY&OQ7lJVqUo-m%x%>oB1#{U>q8M=uD*=DdU}*Ra3lGay4!12B7|=$=#4)9->eR*zD^AZhhxk4ctTi4L5%mHrD*>dsMZ zCx+aQWlBl4*%(yWA&6@f3CZ&}C!56#etbD-1fhH5MnA>&8hE|~ZlnZX=mU}36>SZ} z_g}Zvc*ApSH=YoZVq-Ie{=GC&3w|u!LJ-Cg#Nd~~mGJN%E3c}GYLZobzHhX$4{l>- zzNxF0e&uB-CE1prr3O2pUMu@Yj_l=cpRJ1r1capZ&hxbrPD@?LO(nUDg4k6P&_&sFaG zk?^n}D!g;f3QA>_f-0N#glaj3A>3gEJoGqxza^nwWW8>`fWy1VI+ovlf)0m?Tl-0X zne@Ns%*yFV+8W@nAS<^>7JvQwYUAU0fN$leTD@FATu>tVCnsB%H3OJ~9nfiEvJ&;bEfp5& z8T;DY2=IBUwN`8O^SYtyK|j4tv`e(L36>F-wSr3qe!D+h&0k)w&ADTHyCPawHANU6 zJI?a!0NT50=f{VKQeM#OXp9Yq7p9Q3)U-6$&5MhR>FMc`k`i@w^$ixiE@wxe&Pt#X zyP1@F`Gy3nC;6x+vMiu73lFP~)EIlIdE|32d#yP`IGjtGJt>U{`5)_|f=7NaD?A$g zom|w$A$F7#BQ3&*5^rS0jYcdJ?rN0HVlp4tpm&TzAtPThmDgc>telkN)fi=$b)iHz zwxi%B{0@Qks`KDbMp;_I8o?L@LreqgeuRB*2+)ys_GPzS&C7_8v879cfFXu!G=!+a z-zn99C`P#w6}CgM{1=cl@U;6XHp`=*IDBDUph9Fr#6koW`)J|hzl{AdjnVf|S`oZK zeu3<0q)p9B`+u$*+#VlUwILz$!*p)#r$GXV_MWqq}%?9)uNusW=tA}_H{seG{ zhbz4rPwi>4k;r!#$S+b`1U;&E$c#9o35huFeL7XHRLen%d>1zn&o-8jl#B$=E&D`Y z-hDjQv!yFhE8nbh?Jl2=<)XtHomCaL@C2LkFLD89i3PLH+hi@ImZW<{0Nni+*gwcw zbrDyS4>qO)-t~;h!^zQT=ayBo(xayKW&coXZcdw6F{69-)wcWmxO%{CG{1d;(E5D9W;xO*X95Q(4RWf4NsuA zjRiG|yVC`X-3LgHkSWFz!Je*&O2lhyT$}c;32lL^hy#Wm4QV_WQ8x+}BMyyhr#z;N zM>If)DEUG1#{l%RkVz8ZV{uc-M6hZU5+96K7_w&04IMo^x0WxzN-4UUmnvDc563b1 zR`V+8NVU&*n3_i!-Tw#B7jiU@rWr{_k`C$f4SB0E%Y;zUtr9R#lPj9wkw08g6%4@S zS#O=w!QHd&=|%#I==H9x+~?rW4`Qu!Xw%5Hbn=Ti{i#~ay69UJUFMyi`k}$o%9L+5 zB-lBmG47B=(ouXAwqOV~iRnxbM2&7uXHm==I@b-VQjG015}UHZvwjRZ{VjR8NI624 zQVhDj1e?H!*44rgUG7h`jXC;)<$T_Mo6p5RgE@-GzB`&TT|a)#o0R(Dui-av6eV~F zX}!4wA?He#o+Q-G025mnB^Zh78d)Y#zpsu%pXS_h4l7HYu5aeP+NOW3G-qbbJsrto zaJ8^lHx-RWlhv)pukL-nKs*~|%-!s%0YH0b0*Z6jsYr)^d|Npl>lY04`}P>JE*I*V zF-l9GCpNOWzW=t`xz42r`uVe9aFP6hR}Mz*$!6p3Mo$Zc@KpEPjjNcLH&#|g6$EM* zh2+^Pj{Zv77$BjTK_$*(fzvTE*NMKlUAixet!1OzuH$0@$R4=m4!F&o&ypUM zPYafQAP)1UrD&n*y$gp7m%_{I?Kz#q1*I1wjj>kaVQKQu{zQhFr`YVEX$Pou zYL>yw;V%g{|M&{eGC3-FJsq}x{d-llue5h_ly#x0OeReinvH?bSg1%aZ5q8h*Uhws z-iyGycuj#n=}WFJiz=<&dnpjF9`%H9eTe(f z6Ui83uxkZbPE2Pz#5R79J%~f+tKD*$UZXYL%MkJW2-LF1hd#9#f}JsDe>mNC$u@lsO{<|Y?ywX z+Ylj+5CeM+q1EMdEtz5(Ws%0-tr^j1f8G8g+FR?*`8FQqZ`y4gq7Ykz@54e9tXPIH z&%82gj84L5%DcLX87h#Qp<4#mA3EUKGt&6i!!gMHSIw` zk#Y7Gu*=dzl$=k@_4t{s)(4GJmXwqn?}Pp=Efa1$A<&_BZNYc|5C|g^^2Gq53L_-P zw&ZI{pL#;xPm`?G z8H+!r>&{u!mYkPx1dOkr6f?9v&ef zAtoj!DqNME9NNhIPIkTB4u-F4wxi>3;u2ye*)+9mP1O~hpwLkI)`n^xE?%5T)r;8v zBlKku0RKin|Hs5$ojo63Nb39+asehMT#Y!ln*ml*hcpGWX!xTOcEnFl0ut0>nT2P* z3oy^YS<-#ehIGYbA?9ehsh88=M}MOwj?9l%yhapbt29TE-LEC+@jI}sUS55>(0Un@ z;lJek33(VRc7li3^3RH0sS`I;(%i2zq`H@HI`gWUWVcVf{;m?#FzwQtMU-yQI2Q^g zTZDN6xq#|;`Gwdy9`z+Gq&g_~51;gUO#+m*iVYA)=gc5VVa!hBrsJe4Y@?;hi6)a} zaAE3{C-vbYKFviP@vA5NqO^}7PdpwOj!+U!@7Q3Gm#e`H@{32m)_a3Vl6W2>fPwK8 z-WO4as}Pc@8GpyY5Ja@;i_JoWBObomyZKdqi`GF#H8``miht?5)9IO-zOGHJuzJXq zv#ycgAD92hOYF|7*N$73)=VnvfZl_DV1TX|ddVrB?d2O~$j&}X=l52lW=zaik2E4~ z{7pZ8I7USR099*2Tz=;*;S-?JHd9pVai;w0#Z?!VQ~Plf@WX*<+lL#lHji8dzbJ{9 zTUJ8$Zi1Z}Z?*=0jTyud(N7vDSTJ*asx+@u!9;On6Zfylkn3y-ehz3s^5Wbg+l$JK ziYT?AD1lzj0o)2=wjv_GHOf+%7-U z%x!C?WXh_HKntk2|)H$yi+cWP)Fa8W-5nn5pcR6#@um_~Sj# zc5u5dv%cpO_hR!)fBrIZHnW>pY`(MD^B zxGD_?5cU8KP6#X-Zle4SG96ojAM!)UuvSk0@EB$fe=b$^_jLH}>d;;IlHmVnsmCJ= zj(a8lmV+Y0aY_OJkxb-k-Pa!ewyb2&wX&LCg&ricnolOx1)$}y> zSp0&=NL{TM*Hn|T_8e2s?j9f^DzQkR^(qJ{Pedjfmx^5WNH?6pK!-2w_fPIDvkte` zcG7X~QAY1oh>%NuP2NgIN&q$6L}+9S`u9QJ|4I>OXXmbO-(+QFEiEmju>chIh_}Y@ zh(sThtYrD0zO_ww(my3`In=V=00s%?s`k5#z94D|+cC*Un1$`--@g=9zs!RFd1~;a zRUV_q!=z$rWN8_%9?Ws(@a8OfG!EFNV?b5QDKfHA@fsY}E2s)K`_0%xIf)EK%Ya@D zr3INf6wGtQj)GIRt}Ydc&@j<@NJh}}_&h7%5)I?ESxI3<&ZY-)BbJa@X>;n9m|qs` z@5GX6x-on4LDad*Ko*NS<(u-dl>TzVo4e2Jcf|HsV*Xs zGTJEPGqKrA0p^%mnyHxQ8zLF>VDeSQU$vi%4y1lU?U^k3`K(EDQ)fn@{m?wbD>W{1 zHE=buZRmD5U>>Ka4|Vw};k6)dK}_ zNZ*=%7WNk^45}|q$dwSYS#4)jRb?<)<8-uDi+OUR7>7ni3D--sw`Jr2LuWNT45;MR zc1mi;{46G&%;6C*&qX zu9AuH*#`g}ViE8VI*d^s>W{xMlfjC1#gj02T!_fCX8x~vaYuZDsW|6FD_0xQzc1hO z0rH{0n{#ri>9;Q@dt9LI;C2}GZ|0w1zH{+$3j$O-j~9uWH`1ZW=lLOH(uUR&vQ1{Y zjVbRqA5bU5gu140#CH4Rq2t3(8uFyu=z=gJ%VqFqeFX3ZhCMx&*7K3C;UbDlw84&ihlwe} zpDm1)ue)$Kn>$4Bnd07^d>V-Tt@&?UwduJTz^3PkZQWfU1qC(DKDC_&N9Xig?KWBs z0qqJ(zb%Z)Z^wr*h9bU?H>t#f(AoLsu`lXH6VncV!Eqdw@y*Tr)zwp9o62TO6;>6S zoL2-UpwbmwEt+>!HkGws{XFep=h<>mis_llvy|f!ADveM#Z*!r1pt+u4WBXOaaCCRHn=G+tCI zD7LYQ=og(n)9X?^>aO5C0x$?W>w~(ouJdSYQUanWVBuTwhK-SpzHICKrK=x$Kk{?% z5ZPBOF~>QTc>ha4m|nx5=jpGgn_9dzHI2+l`Sh*A* ztY22Z{ zs~@W{C(7fiJatQJH)+_=$iQ=>|S5UK<}x{lPlG6h=s? z&O(4jyCr*G6_BflQ05RbaU+T*TQ_op?w_`*C~SSoj`mn&U2ku&}ykoUKih!wU%o;AQByF1dEN zyK6PQ=d?mRWtlxPJvXPXgq9#wC_Y^%4b~fDRIXw3tuE~4-#p$PO8aa|<$AFdKQq(h zx(!uRtH+|Sb#Tm8_}f#@E7Y7aHrG0I+$m6)3aIMiEp*BZQWErzFstAb5&6Tq3R}IUjXmV0rOlmWW#tXz?R^9`aR;!l zbx!D?-e~uup`wN>4l?&EpdcfMD=0=qq57LbNC@%q$tg(*2{Q5a$|a_G#NWDd^MZ4S z4Sw`7D_J$Ut&J}@wI)ShdkfH+pvQQMJKBbtuv#Yoa|hjkjVBJKgoPt!E`ve|#-)|$$*M8(PQIRj%MMM3!S zWzrNI>>DVoc4$`I$XROC>4N^Y&qsWcTn`LQQXwnI|Dhy{V$4Isa(-Mf%^WU_d_Y7b zKES@0*9PRP7zKw3BH?h|DdcGHA!M!1ndC|zm8q1CLz}Od;(7EdRKu5y$IxOhug@*! zI2uV5f*{NR4`L;5GN3KUQ}RI?zeg%CBoTp#7LK3!My3uRSBjc%LIxh#&B2P<*EjEH#8Vta(hP`M0q($TNB?pKEP#}Jf zmR`cDWV43+3@1r?M@|=C7j5~hz|7GI>-NZi#y0X(aZGC3q9v6t>N)4J$J0i6{mL`>WU@R61}d9obVU6o16EQ(9N}Pjjmq4zCva_4)e90;{c^c(^%~Gq|co>(Bg{% z&un{vSlS!aY51*xpr--`Ad-TrkuBxqldS}wEWdxlM6Qvbl7DSpIU(iICi$Lg5>e`# zZ-l=**0|l9Ri2wF6{AU-B?twyIk0o&GZ%+(?{+E!H#E1y41W{Ljc>heRIuCCyuNXz z?SrsXfHVoG!rRL2&bML_1I$XD*aV&E<)PveE`}W*zgLOA@_Tcnrg3?Fc8!Z3ID5EO zHDR!H_Tpau@Lt$qP_i7B#HSPH5e)3NaPsaa-*CeB(JbF-#n6^(UWXIb-Ir zrLB3kz9oJ&;E1_{TuPvmm23ntkKJGqKs=X{>km_Fd4(AZ_vjYro$z=oAruAU6^bgu z0b^|*eVpI+TYRK5aiX!LGDhi*0FII4m^Gr*Q>rBg>OIhpcs>*IgwumOaF{4?>EY-@ zIsxOEhXg00(h>35(yur4n;coVk&iPRRN|X9LHL(zBR?5T#h0s2YP`SN{&~*(@|0mB z#<=$R1v#;}W~-i_B4+pB%lI#fT0#T|4fjMj*Ip3w;VZU-dO{w9}&SXCSJRM*hx=#|NXBIIPH7> z?n=UAciwl=(`BBwc`hbj{v8jF@J~W0sYMYGUx}|K;!;5T277H@wMHgT3A+K)Jg=47 z67s*m{z6Z*$`tFD+q@?T_4%cb@~>%$d>twpuCTn6->}tT#2H z=XW}_Dp{|pY$s6YLn$Fn{fihs<*a)5aqitGm*4A)YT_-5T+mG@}2j?g1x5rtGC zr@02D4b9SDH2H39O)S!oSqH7ZQBm=Hmu1D%5J?#?ZhRS?Vy5D-rw|n7^VtQ*_p_?$ zcKQF+x5mbr9m$rCjl1<7 zIvS|KOG^^}nS>YY)|t9Nuyj|r;XqZA$|D$~jq(pJ)5w-v?e+#!V@!EGf}XQ-%%^Uf zFqI2?D#io`c}qLzYRvX7uT5De>CMY&*5J1nTh!Nh;o+IPNk6n3I28P>-nELnA@UgH zu903{TbeHWIQk~zTAzb|UdcN$XKQXd5Y|XW<{h0AuTof8I6et=+8*TKc)RgDl%|-T z^Gnl9Wel;XE|+M6g+Q0OvtzawTzp?z)z-jPT{4RdSQiD!Jz!B4ou3!afwEO9Jpasb zNCUS_ZyyV_hn5F*@3(L>3ukSqVp*SW^7Z9~zvf`JAl}u@+da4%oMj&M@Y%L!DmTtHL5RiUya@v(a&+`-DR$UWM~j zE{CSw(5j{e+xUpSBg?ZEnF`q`@kRD60{0;7b!%^6$b=x!@@7%)pta+VP?yVTI`q62 z8@5MYyZ`;5j!)gva`v^VTy~&sD1XUne-3Isr~b8%Utp@v1sg! z$w(Vra!T`rjO-iMST9=39Hv^5&v@6gc9g+Ygud6pNO^iaQG`O9KWTxvH5Q)tynhi> zT)j3qR+K(mgWh$wAV7m|*TdFrjR+jn(n!^^)E(IH3S^`_Q&{YWySKn!fdd`~XX|ped$-LZu`joxwn9;+<*`_p zGnJwSKmXu)>-u=*j)G9(zx%r>$Db2jJr!;?o^-9;2M2)!HLA3%V6q_3@9FOMW?x1> zG&G;{pu-Rwswt6Oqnh=anVA`YUVC|YO-xMKSFNtDiUU7qg~rClm$_RES=YK8{A*ll z<&W2-o_|*`?xTWe(iyroE~mH|81Cu}H27~0aeL4^&NY)vH)}DrVchVFc+ALe=FgA& zUh9M~+g`cF=*fHNIqhL{NyxXnmsHe4X;g%!z_~w3oK}-#TnB=Tc1|#|bM$WOYAvI4 zI|Ko^kH^S465e#RvS4*IA1>546BrboL8s#T75S?UxelAGi}_YdWb3glK2gF%r>jWmI$0=YO=jmx~wI&<~|l)m8iP2$wBkl?EA#m zKFZbzm20!OR8;;Le9@WVlz^4-1e5ZS1#i90O~C2hzWC+~4?w{PS`EB|?QNzU?6tk0 zWqxZsW;>>NQdbU?2Y-b90Exc~hM;)7GEG-2javQ1#Qq3Vo2#nzqj|l-cwIcr0 ziD994ml&)3R|+X5*2X=1!gE930_;Z^UZA1y0!nJp(jv`Q>Pj}Gh z5l`b86=k4mLT|FwG(z3Q1B zNn1)3-w#E6A5`cC#zHJdrpDNW_1`BBlDRe(kJ(sDfW*nPMz^CsYsNzynXG7@Q{k_m z$-e`S#A$|y1cOu~TTC#$)Q@6Jw%0dr^NN|SFfFgu)1?m3Vt#xcWO#Dq8W+rpbP9Be zRl^%9`xO80`2+c#;MI%dfJB~r#lj9vE1Y~3x^#b^8xI0Hk)_KEp!CeNS<0~;a*8_N zkw86H;cBH>K_PRLNIJZ*GZHcQwK9@~4KDnY+F24ylp?ZM%%Kdgs zUBobOEO8d_EI=|jC^eUweb`X6PUP)POm*V6J;;)o>7NjvuBUHH(9~opH~ntzzX>Rt z%FYV$+}8*vr8&z7%`&pZGl5~9k% zoog{Mc5(-vmlJ(ZF6qQ;@i_*4zwfuWJ+=bw=*~=uvhE_X61r6*8t^KqXotuY*Xjq; zaGzwh11mQZ`%U`(`=Bvb2liRn?UuJL-ndEq{~o;;#-IqA!onFphym3Ll`V5VdKDz#4hA?T zZIruRBA~+wy;`)VS>)Bt@t;mvlCs;LNKz8Upilo^WSMvQYT`9;Wz`DgZm6F^4G}ns zvKl)&KI)e^=HsL{4<#n>TlwARtIJ}%`FJ?DQH3E-N=to=Sz==2F?{M)*;#zvSJL4g zHY&+fhvkEUBOi*?6JSnTOks?SU8*p{%?IzYzmTzNe=Uz%3^(ak*`Q#QjIE@no3OBj24}HIefU+srqXql7so>f;(67w4DCh+{$*Wtiaa_&ihiHeP73Up!(OAzl5KXF_pA-19J7!l(ti3QfNhWXY zIC^tRWdw)~1}VPQTGd zO~Uc!-%2A}maZbWwVQ{5e0&%y8Av^|{Jh7ZSKtXjz}-7DJz?@do*R#P^DA?j8ae`S z%AbSS|4jyODd(3Ao_p1vHGf~$wd;KyDiTh|A-aA`!e>9m&ApW$Ok46XGb`>Vy2{}~ z72HH;D$B^!Ct8mYsl$}jWHXe&L+`JTZClw@7x^sa73Wx%dn(R9p3@g>#Ln-Gjq}>9 z0sg2rMVvfeD*x$cRX|FoqFzJ5O6g_8SoJE{Pus7SUQk5x z9e!DKOf&{Arn|@)C`cQy{?+=kn9u2ZcSvf*A00c@8dfwGZ77Xp^mFl-xKL>_?o6N( zl6DaRy*Tx7X!+#SMew!nRG++fJwAU(Z1O~j?2Ug_1K(kZ`Js+#@N+E{9*V%7nB-yCMCE;(@YAxohC;uqzHsrF|+i8C4enh9ee`rleI@FrPZ%WpEL$#};d( z__soXi`5440yY#M2$asfpwf2)er!5!2Q-@hV-p|!gp$>$U@B-+2lL_P1Jh}k*d?zz z`o?z7f(O?E4dwf%xxd@zj9C*>naGlL+L|{MSMa47lseE;t2sO2WMq^u^@FW`;x`;N z)YPDHy*1#WXlyj9%J;FY!d&?&0T-r%sJKMYd_|kNdu5I9BYtI zh^J`$z?%Q5qi^k&*n@>bT|ZYJndgBw=2L(deqt`YGZlLd_QifV2tigs1~WA0EjSU5 z6kdaIuBCkHE{ln$hwi-0+x9zA!aF-KyH1w)7_-tu6M34#0DEaL5X)01)Kz4=g#Z}f+tGG&>h(&Wa-?!-3e_62^aLkX_-ERI| zZtX|zzk6JbF8d=(*-nh$sX`SHWkXCU0m3}1CBFs{AR${Tgc zFZ4hkhORT8eT@86f9EqMq|FBFJ`^Piy!jn*J~9I_QLzgx7ko=DxOagMbdx=*!u`Dq zMt_Q6aP^|*A_?StWQZdD16373Q8rUsx;ovI1? zIK7q_u$hS#BwG^X=5n{oaVSVjOO@>Y;j{Kt#CqbL?-!Dmk9w9WKpt@p8``pLX(`f9 z+f|W!;<7gcBTUTd1n;X~aoT^V`zBz*{qO1TB#TC&hpQ{%L3nt0u}W-we0*YJqQgg2 zEK>M7m6+Gq%leq_%+*6@OzMP_!<&rm6<4Hk$upI+;XLWmcj?de4hBXwTo9G;$&AX$ zl*;kU%87JljVup*$xYW2U4`1(-$F@%MW+s&v;&b;o=W6=SC1ZRL-$L;J-ARz;CZ&0 z<5j!Dj+oyW)kF-l_#r{7M|svs2w!n{O?;qUH*tU?|9yv?`@&AJ`S{YS@C)u9#ML4J z0o27@RYm3=>1c+h4VJr3{43;I2Mi+UF^Vct$^`})MWt}ckO^%j6KIbqH!Z0cTrXFhsy8>Qe@zCVKjS*1Xdg_NtEOVL=oxWp;|*ST z3$RWb2e13{^j_F(a~+*OU9OQh^6)Pi9Y^Maw)9pqJneGW@+;AH%C3R=^bcq2*SJ-4 zmG6z(#x&WhgqO8v^1s6F8lrHD^6->2l7<FX_NHtDQP67i1 z`}+E}x3>o{H-G_U2kflRpFg*?d98mB++6?iVLkO_+>CMj(+>)kgdCRfY62gzQ?r_2 zu|o-8_iyDW;-Pj80vmycCL)wBB?3wsxe{i%B1*Y{zct_e1;+Rg6c}^@{3RUAPEH4W zDH`*7H{U6!;?iFJ34gaiE!~I7chjA8)TP*mD}5h{WmwGQ6iL9fL||bKRw?mSKt=8m zS2YgJ57Sbt`2iL#YQQ*0+aZ`898d}kd8?OQll}1&K{7nQ*0p7?7k>mR~0yCFxG!0*4@IWvZbciUH@`2Tqt#uLmZ4$LaenElYKHSd6 zCT3|hVRouS?!y0kqlYNzwJ|eS^$#P?@j3#xJeNv=dz8Ztlo`&(4*A?K>EeCmGUjaf z=uzDjGXcjYjN>xau=%SY&%C4@K#+58Eg1N41#D&+N+;sLQlp7qJI%8StEdcj7-RjPPORHO z2XN&~aOjijAS2I`s=$C9|3z%H=73b3A_gL~@(2b)U7lrhG-bgXqV1!_Wqf3OmjTyQ zCdPh^(^5PlcRA*Ymrabnq9pKaFQM44d4gmnxcdnG9_(ise>l%L zNSs!E*!9jb2K%t<_P2jMeXKSiz6>Xv5C!?LpzIb0Z6QWbAs?_Z_h+GYtj7HM!>-86 z*2~-L7UB~8jbH4q3yJ8%1~cNt&ciJq1I(_8i;6Yl4&O^FSR`V3Fy{C6>u$*Gm`$Zv z8uHz2q|I_EAUD3&j^b`S{3X8-|FRoa-#SLo>88%H5g7Ktt(^obxYDjA;PK?kyLa#O z^z=S``UE_Eb71!XNi!Z(z_bFfUQ0_$-QAfIy>6O2G8`v5PInVIODVczLt1w^dJ2&% ztpBV(QaDDqTGrqgL)A%rPbj>G$-+sI^gyb1{%6bh+PlbGWHcktVaQo%hD~+s9m47E z`z-yg=&7cG9ZL7z{wAgBj{W}0ajtiU7?u}U${BB2vim=?IA?mLQiG#kgjnq?HzDBa z?suFjv>dchYzSiN1%mAR3$qlo8%F+oR8M#d`zifNP)7V8d)(CCxyYYVeJf7=4=Ci; z(S6E>?Gn6XQiW}lSz|-b$d||zeIng2W*m(PJ&C^{K8mfYJ^Ev`k{Yl|M#@m_?i6a+ z$1_*^Bb@+A*dDCyuc0RMg`n}>*`)1JK!D-P2ol=rl8I0EBoT!3_TN_=P5NKQ6`$X= zYdfiOwNFC6A^DdqdtCJ)5-unar}i0|O1IU`lu-LunTB-|nx_62nB79xN{2+;=TyQi z$gF^q1hR8%evq158Y%=FAUr=er>Wts-OEUbsj#h}sEBHcOC`D^zVIuhf%;#mLUrh@ zGLbqA(GG-GIwKmMD`*k>ie^dCsT9+qXHVV{OqxezVX00^E?zqhnWd@(eVI~0*hai( zt&{I?mn0(4s1A7h3S><>rXN6mxuBp@hf>ZzUL))4E*aGtC;2IeKsY?Gy@db@l6TY+ zS?a<_k2n%XhS#TW>ictA2XFM285q;5vFTz{FXKNia}6YTz%<#rCW?hqlV1g`&NO5Y zGPACRglX(}9JDi?8U;*f(itrHtqycz2G@iXizoRf{@K_QulrS}F^usg8|(E$)T#j) z4OL=0)=>2h-cma1Ga5D0%U&qEgXIv22+7Fr)dvji-9YM3_XjOA;FP%4CDS`{nQ|ww z$n>4?S6FC8FBDyF)C!8fr}#%eLz~62I>*lEn1;lm5uDT?khFJW>Tgdm!T)<0QVS0M zPD(9+%RYZruj0{uC#|NIpl(s#1YQkvd*Au*l;OROo?e9xX?~!r#+j>xgvqd@y}jlx z;g?B}aNUXM|G&)YlbViB+JA5CKJm^v@57aXo@Qr?d7p+a902`^jyCo1>jRPoVx`_U zwXo1v5HJKUqm6~L=AkD?x*T{s7?-V;lBpWZ{pAL8PEq^(L;HfYjPSN-uPi~@vGVJ$ zv=DD1lVC>K?DLkML|sh>Ni67_`QPd`up1sH=|CMU^b6mL?g)wm5RQ2Dt;7w>`g1mj zz9D<`VAH(Dh=S$Al8MJgpsUT89%#rYj#ERE>HnTwu@?=vE`CqQ&g6K-AZay7po2MS zp{VUI;PkMdlm3J-O(bR9cAU9i3C-^%o#B4uF<*+t>6p$;R%I|hzWR8e_N{`8x*NmT zky=)2LzHIFav^Cl7DQ=}jZ@NdNk)B$@cCfqgJH>@(3W7@6$SaW^d0fWUu0*@KB|oB z8^}3}SRjd zF{9neibkZ29vvOcumLi#zvpWv#>VB2v%h{->X34AafwE_y1RohBRp(jQ)_F1KEL|< ztbB+OM2dAtli5WhE-o)a{e=q1D6ejAs0*(zE>dzYsCD80MJ*^OsPD_|?JXKhF+VBb zX7S(0u(PpEvq3dA@v>BL*kl^tFMQs7C#|KG^56BH-e=U3+Lp@7!{^6^68@2Ph`zqQ z|Gg($j0)h(=TY!2rVy1l0aT$!z8(OOi1d*J7Of9+XxeRT^) z$*Z@>7=t;LEENzph7y8X_%m_}J{1{d%*8+xXaf1Dd1tV#0~Wrw#WG-}K~!aZ4smal98T-iuvQ?PG|-+KIqX4C4w; zw`!!U|oZa;?S)kHO>)@mae*PemTgv3>15kt3~hkWQ+qswx`M*w6q3 zXo^rYg6t4#YisL)$&dkzlLHUkRQifoT4N(`L9en6u=PY4;oFa%6dc}&0zD6iacX%J z1MrI%DJ7+NfPVvV%~}Pcijq>)fAIk(6{%jUm~(ycW@hVH{So|fPA1aZ+Z(Bxs!N=l z%E-15UZ3>*93&dntUbZVROa2C^Oc8>k1v@zir)cT+ZLV!>|`WlmOoee^K=cfG{4Y6 zThZrH`d_7sYrWcr&LW=^eGpYa5`MH?DQ6fRf#{$FRqBrBux|AuvLsWChIHpwlj#-*w2NpZKZlORsU1nx;5-;`tLYQ$i|YcxG~#dzI~S(HROH=;J*q zG3a-pVENG;=IC^OwPdjkC~XRDjZvFZ$W{CD-a%WligBbE*Z_a-N7~{8@kOLHlEG;M ze@0f;dq+orJ(1~JnIez<2LlJb4#$#+7>6f)IM-cSbZzwGqBcKtxc?~NUeCb}R1Mc*2pXmtJ4Oz|?z;hpj~|M6ZDPY` z;l2vT2A#zC#N{Ol-Dhq#Ia<2)LBk zj|F7Pd)2{=tgQAviw;}L3aQM|y59G6&K4cK`(O8Yc6A+ote5rP&%oMG%ET~~OSk|e#54?gBdKwDV0Z_@~J>YqK23J!*`ITAyab64PD;Z@9*#A@#W zL53o+>vbd^SH32!RveI23t@F;QoE6FCGwwM~H)`ZCb>}#u zwk302ycd18km=I4gL1`#SQYdHV`{^5iCle`5*JY>o;WKoTATGtNNn3b2aPViOR(%pB%NM==xD8|n*J1W< z$;mL7pb@fIag1{441YFne+p2+wCX+__#4xdYb)P0u|86$pCgn`o+8?B&{Z5WIsf1t zl#NLtK`kjhX*`So$>4Z^jT@GuM5hSrCUAo0)``o51`S)_ko5|GIPRDvjm>SCzxCDn zjB(4q$*zd&0yMBEwEby1pNCAjKfTLsM~BNq(%H!_NpGEn^-(QyI0vCexr;H2pA%(>W!Gz8qRpSxG zV73zTe-AtDj-O|{4~XGGm@k%=i<%g#myauqTfF$@N53uh zpUME*C}aa=>Tq${-}d~8cDaB44EOc{VrYB{THh2@L__)e`$D#HpVM`JD|)`buLgqK z({*(Tz&>v@&zqkiQ}Wyv@k4H)=P{J&P&l*UwWg#4f4##`$CVzbeV6^~xbb@{q>65g zSqbap49PQ})ZFlkP2jIF4ToWbcez@D11o$SY*E4U<>3(h2oi(p4UY=VUC-LN? zC8!`hrxNu@*H|QmV>@Ur>rin`UX_{Ii~@_^qsN9sCv-AK8XS@BcE7RmxXT-#=tu^Z ze%_dqw9+$u8U?dwf3GcWCvEICkf=uEq7~U6ttT^BbF%pth9PwHS93v+ajelbrY1ou zt4Xlyj%Wp6{IY{R!g(&%SVisRL6^za_T+RwW+ZiU!0w;-iXiGET{d!^u=2F;;5b)H zmFmw9(Uz(&n%+6Pq$RPCyu$*rJ{Tmd@&q}LaE|rD&?m4b0!Yv|zLSEJD0T=Ont7aC zBrI^dbiS(g&QmzOJO)-pC&TLZ86)297Sn4rMK`gnk-jUe1OKMk1TIJ0=kl~_;kLr# z`@(=cWJ@e5@~m!>enQ*S=>>GjAt0uS*8{Atwqu>O`wkPxPEXo9Qw$7c4AnOSPUBZ*>T~kLw>rqBCgh zhi`7Vp>6r)C&(Uuw8J*68zh&IHa3Ed3DOxz4iC0gD(bgZT`G;#R(bYc?4|G8a(jET zPJG!|1sXJ*d&2apo9EpB)n)ES%^97d*>O$U$p;(2i)f$-slOcRy2-|O2v^PGpT{{gydD&3sHLQCSoLREPs7okLYPK3o#V84}a6EmlO^N

O`NH!o1EBD935}V^^@dBM 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 literal 114259 zcmb??by!sGxAq_cN{VzV-QB4&f+#R_r!+`6Ln#7-l(e*hba$6@OZU(XLwC%#dEejp z&iStM@5gn`#mt^P`&oOfd)=#^9ipTti-Spy2?Bv| z57qgNoZ6EoPv({(OTfpc4)3&`K_J|YhZjm58!iP1^a3OYey!$_vbW&wP2fs{ad;3; zztBLa(`SwH`q}H(EW+Q3$@)|to9aZpWM29R8!yLSM^S#A`$G5!ubMgAi%e#Uw{HEG zWK`SKz3WaFw^5^>au`%k?;4RF26a*W2T9$K=39h&i^=HdXwNwVJ^i=~L4HVNBt$_7 z1&|124Kf_V$>kqR5-8YaRI6jtECx<^_~NJe8WEx@r+apCIr-7t7aK5eEH3M3_d>Rx zp$$aDX3Q`~-TG&8OnsScRPu|CL2cZR3xGQ?zcgT$GuQ=H9X0LVS08lgRo) z%bQ}3{SIykO}OE_L^jiYw3&8u{hIeMPXp0Ztn^YxrYsY>hEq&Go0CdgIuA0rA36KJ zn1v6^P^rq>9jta=(S8-5sGh~h~H5GZh=uREJJ_Jb$&+j*Cvu8wJ7p6=c3sA6h7CzYy8J4|k5 zBqoVB%nAyx?n4Ab>ca;IZCfucNa&c>eVlVP4N19KR2&sV_{nPQ7i$^gW|y4uT4$EM z`+sE*lK|qdGk*ZYai=+?e?8q-*yKC&uR%D8%-m72Er(w@a>^MVc<_zYjbv&=9U zYw9D>6FM!M+CHaqgf%I==^k&W?ZNJ` zu3^yN4V2Ew4ugij#`g_ZRM5qPF#3!e8|I&$!O=Hk7pU@0F8kS3LK6hU=l0L1qnl}# z1X*}n0$RxR8k{6^%~bnsSY;#a&9vih>`JEZO4M_tTSyd;Z?LunqB-?$RJV19=EnM( z8@{z&NzQL#fk1~2EYi#W$Y%?sx&7u5e3dhH9Cr<+DW~V);3%3J`nF)Ai7Rm(F|^Cn zQthnjQegfW(7oBrNsaqrVKc#j@yWqfC_%Go3#%hi4Q;As4V4G@@gRW z0{zAF7b;q+FT7M##}u+8tfodnK98@?6?_;L#iTH%_wivb9wo zdQC8DV`?C^bB7OMm|_l@zw!z8<&xCgu%G$8)6$UfAg>`qwPQ0NuF_+}_|&AZIrpUc zDre_@UFtfK@HcN1hg({#*ETAjeN*2Nvg1XxN7~#Pn*Bog@_JFHNCltK^!2> z`mOfov)A_n!Mo}_rFrD=J*1q^kiTi&?Q{F6a5bnskj&*3vcBsBvq@16a!z}pD1 zBZYMU|I_OWvkGF0VBq)R^C{J)y&I`^fz6B=-=EuHQnnyvbE1;Rx&&V8sKf(O>ohlD zrcez{1r7bBy=;%6+RT|bgWns2t1FLk6 zeoOj+Q)+&H5PVYPRZYzf+_grQyaeKVj?$tC@B#G7_02Nwg#f@4h6**mM3?_@vg}w} z(RUBuf^wAy*83A|>T%*SMZ0RJD*p#j*C!&#R`c9q8}Tr_RUgi+Qt+MP2M@qtW=Bo|K$|vA_9^ohfnX)%1nf0x{2l}flqsXEXQ`kO{Cwvd2<{;5NbfG zl6?mPEw#nQ*O(33f|9@fp|Vb>1x{$s_=w=@>HvQYBp$k`4R^+}#{h&XCH7Vj0{s;2 zd`km+nc=^57@70?yqht>nxf3 zd+-{~sXRBn@&L}5L*m0CbRS``j6Z-Z#4-uBYdWSs2LFURzVB}Kd+GiOzEQgsXoA(0 zclnnR(6jhkCow-gh54?VWqtN~EJ4D#FI(sZ58@K}A-lj}9{gV>-JD?&p;$@J$$&o* zhFo@gPRRjAR$7-&A+r*8tJ9^-w3xVtJb%++86-hLZ#xOSR7ZXRMpl{tWS~O?yUVMA zeKBRZuvw;+=*RIFjIxw!rT3rnGl>6y!9IQjPLh`HB1Xs_(bRrC%LUP9EFDI#d!G*D z^MDDttzAt`O@CW;|3Dpi+h8ZJe~yx=vDqZTi4Z07QymxO(?0_iB6=hfSP~Hyrk8qw z`pi{03AQ3w%;#EB7%_mi^#hik`E&$l63b-%SM}4R=XKYK;Zh}hXXPCo;J`ownkuir z71E18$4=rNwN{WU<5*>Ud@vX#Q*uZusm0GEgY;X-6DsJ7+7Ag9k_J@UhO{^T)J6q(o~I2xFNV&jaR8^|-fq~kIx%Yn06 z71Ws)U5UAk05M}l&_$yhk zkQM_WLMeG|kd~l|^Pud5<4E@Q%RI-j(4Uxr-f*9yi$$oPZ{i;x?zVOebhIV|Q|`4p zKh{t5$e%wys~Q}rc%9*aK&bs&J_$)&e`gLmsO{`oKLLH!ttPy3*%YG6yXw&X|k zkBv*|L9M7TOso*rdd8pZ?rcOGQVt#tU@f(%*9cE3447T1#+GC7Y^UGSw~6I8l&e%G z6qL5N6_Q)7W3@80)_WzF@Y@>nNKC^b{;1!`)@8I+vs;W}Es6Xk1-07~AeRezte{OL z$%@4IZtvQS$==pP0E5$e@Bb#`|L|6TnzRU`Oc)X++95%&}i4-X4V z%rT?A)=}*Kvi(S6p3T4i3gqJZ+hoDu&^Rp0Uc|58;c{EyE2-No&1s9|wQJCcb zsG#4^_8ON1YG3m1)v(% zRt>C+<#r%|h40K=6tSox_NIRoZEpbIYd@%twacr!R=3o(pbdV%hbM*2kU=fs#ut_n zA8#-g{s`nh`p-!NjL`YvRDzqc8wNkewH`w}>dIcf&mhpa;KSmW6}^9a4vm7X#v~yh zoar)fDA1{-?oUsKLj@L?fxMaOL2rLPm8Y*p$*z?&^9tH|H$c({k+);Ei<07NsGwHC zH8hX*TFKPvduOhHwB;tKT}z;xqi82&M|yuJl;OJDEU-WfTq{^Hb>7bJs(-s?vRZLR zb<7q8RLUSIqQ+>rIV5Xc|4>NyW=toB7jMe|5sY+>a~=iM$|(1|*GWO>5vaB6rvpF{ zeT;F(rVL${V4%EEGMLn@9ZpTw8dCr&j&EArn|3Tv((sAVXCVLJZvd_?5O+4{%T&kkM|Td)Q630z8~N5$7~hR+U0f z4PQBdQ$$;vl=&&h=q;^Atv2oySGAMKfC_x?=gNW$*zSw9R%bNZpSbzdC;_jxvrM|j7=kqDZ z1(fEC8broG%i-Q~l}(AJMLP)eDGB%yxYDi2JxB2+xYFU5eY)gEa62mCQGABA1S7Lm z@N>N;%GCCOZ3CZc4>jFP;5Vs7z;F0HN`qi&zT~PQC?GAe&_FT#iL>wEM8AyiGOr|5 zApI^~{zC-<6{=YUikUnM!#3Qp1As+}=?+AB)3CDGViyg57;i9e&QHAuzI(+GbDA|U zH1x!a4oDqwa80pJq&>j8Z48J_}2!`fbCJe-+QSmWS#GDwe_ z_7w+Y6cEq#p^S2=keT%10|UiE9v*(Q*%(Z|UkSYnmst@GymJ-Z=;u=19LgF@c11;>R+l9JtP4Q$0C_x#qnoYu z76-n8h% zs61ekVpD&l>zY+RO0!}gA=v>Ph6(3{RR{mc_@Q*tu9jZ+Bz5>R?r07UmoT9LZ13{qqNAyUd$ z(2s|CYaoto5(?m;YVe1UNI%NZx9HZ~a8cX`Qgss~OZfE*H5N zVd5s^2A24aW6n22xD@u9nC$*ypX-6i`i2;>F6v#^)BQGN!lvJXyCWm@Ti`|6x{pC1 zG33BslFwBEQqdp#)eKMPDcIa_;HSsJ@<{=19%0GXf_%k)(@n=nnGg5lM^KqF07Wx^jO}c8A5&ihHx-Q}e z0ECbKK@Pj-8hSuaE;v5n@#%xrQU8TmJeGTx5qGI|)anRuRVB`UuR+G4x%TA+w{_I| z2P(|}#*{{%5?PZ0ggk0BYc%K&07&D1PnXNc`j)~&`dEhJxDob?7l4p)dmvN>9Vo?s zR2eO6fR*maqr86>c;La7%a1xTK{G|WQ%u#?o%qTzjNaajGqR@uc+MIQ?TZ6Ji&b}N ziYlR$$T>H<2U_0)@JqwH7Fx<(w2~dev`)l^y}hjnCL}tOA5NQu0+d~)L=`zl{K$JZ zNH1zRoE1^0i1F;f*xmm(V)FUkPH{DI%f*MV@X(syxaoUbx{U2s+YX;@S3nn=n-}Vh z3+X|xaG1%K;0U?0vamW3jg)nsT~exYr-+F8zjoEZyeKU#y`9Ql^q;AavYLtJAOqmL zSFuyl;#&hrrvk^utyh{4vQ=2@78GOw-VE*qK^k>)%_`Ku>17oyl;U$-?`JVHpDDSFMAC$uapgRzOcGzo;s}K9AC&2M&3~A!9SL|RSmTP&OV57NMqzDvv7DW6C7nQ-{P(O0INN1#}Y|FD;3UAO)- z;i`^9(~cNbz#~u|GA1?NNy}}|-0VO4=APwRivWOl{smB3R=A_kp>^Uahx@>P9|aa= zNd37vfgSKbLjPeq6NV2&b%g|{tlZdU20VXTXzeGrNu41B26ZYll#OO< zJqICMHwUugCF#O;ls3!w`I^P0gGtLM1po#wUZL0-=MMD6UB?^L6z7pY>lc|ZyE_gQ zdw_OWetEY9=k+Uj6C`G!B);ozyw^dR(=z9iwYAu|maV;%qA?a4a83*c&ihociefN4q?unIsIh^SW8S{wv7VvkNEGi_w!+<7j9RCH zN!K*Mu3hK*J|SDF?#-B(y!>{B^E6{Q5Vzs9&>H)LT34Hd&!{udiyy~=sGy&MUZo&S z9&{{}w4^Pwr3vhQa#wGq@0OCS6%T$DsJ^b0_>(2--qGA9LI)Wf4T z(7ok!^ngusNPzTR7He~F+iQ63h}CRmr_YVuW^Dp7hm)%K8yEh~P50$g_jr8eP-2oC z2-0ORNqa0ik7g|euwEbrmV*ItOpKW`3cRt*16C6gex5?lrL$J#@pa2`X!wBkL3gFB zRI7?>h7P~Zy!0rQqxy@Djg7zA^WIT6BJWqu_phRV*{ifjUbN#;g9)jN^{NPzcPCZU z)N*b+O}a(V&>YvTBtWk?&Os=SK>j+*z{Qx9c^A1lNFRr&0&5yizT-u!OU`{Q3$jC0er`}Jt#XTXTkySx=(!pkA=BHzg!iCS$-E07}iZfEc~_)9ygv9 zs({*)T(x2fqJfrPek_0}0%>4DXKy^K)6mZZVVq1>Ga=fK(J^Lm-yUNjfjL6%Tk88i zcQuQTX|Hz**vn#RfVv}>l6A(&n9b%HO!b5{Z=Cvqpy9v_b7#@_pH%R#v|(+DUSg^F z;9J^JYoVs|r0R#7Oo^?h{TlN*&K5k38)f#*p2@Ic z16xs>$&@HMfr;7ofVt%8KS&_Lep(0229VwY)@3p_3Ml7@eEp(XFn< zAL)(RiRYloF9`u6#JOIOi%18b*X>twj z%`9h60dBoJb>VsRR-OnQWW>Q9=6EpiA(Qu8<2Pj+umLd#hHy+uO1p@h*N2!7k3i$p zKveJUN?IT!>^MI-7%yF>qP3pC>>5g~%cABGnAnpj1VUjQc;-_iROwkkJX-vEIJzRE z`KEoJ$-KfPzb)fxQgQ@9^8P(ZSQkgD_WJdv)fDD?TIs1`sjznigV@-Wd^L076rz59 z0{B%nvQo$tJ)-@`Kz0LOF)7&^v{jE_HIyefzI#(;l`v`$&e9CIJMr7lLOJz0Xh+_l&G24$DuCkwlZ|R zra6M8#d)+QR+Bx(3l-&5l>7QlhWiy{0JdI%%^O7XwLLsM$^>j@Q~C!PUcacS|I$5Q z6-p!S;e4`@aNyT*N+qUIX%qak69i&a?FEs92(6J5q5hL8?e}a(vv&WHC~R;$l5Vi? zyIu$x>4}cO!Aoy8>8{zIRX@D|{Q8#>P^D>UY2Dk5*|&-vc;6lOdj}S{(eBKsdY=ro zId6oyJM_HF;A-*qTLG(=`2a;*7|@;a05PEInO<6mCT+XnKSs@TTX80hQ>0H5Qmwt% zV`)C`Qf*3^svwsmCIvta(mqj2%t^PC@Twd`r8eE2>w z)kW?JoM>-F0dKZu+U1y+jXd`{3~<@oayn)H0Io0>z`;6UY1|GMif(H3oo{K;o~!-< z#AN8&M6HK=tv{rdr{%M+Q`@awh|R<4Gh`c`oKhO?cyV?GlpZMc!LWTRt8@e- zst}^O7y;3w;UPs#JUkQaZ6LM?eDZLbs}4p&P=MA5cG!Df)!JmQ`F(*I>=KfYgvTc_ zwKi4mkL^wP!ke;tT)qQdkX!Z44ZvzIIG)7SoYkqxfXjw*e1^A#gsg(<1Pqp&ZTM0% zA~#6-byV`1^a9FH4UZly_sl5sA^DdX%k8R&d6wE26omAmqFz7|{^5DUrx`IJ`|5+K zlG9!WAUkJ&$iLTlxV!WMT60Czs|TK<%b4+NE)s0p+o)2BJJU-Fyw=q5Po}a5>O=0b zi9Zs88e0p16EG^g=kc>4P)Pal>XZUMobu|Ptz>P>1uc29@aVlFHTCo7o*M&egUR{@ zjR4xJf_e_o`SiCxM!Yr}r!_Of0!q2>CW37y_st0_D<2QyR}1BopB(=F^->{Y2toD* zgyBEi4%95;YUKRyNT?;hz`T8?BB_hi=l6Hi&-b+5wnsz2<0XsL_jgmpdfMDdqeBsC z&>D@w75LRhfdf*qA=Qer+$bJvYB8hGswx~Zx&&%~ zv1qot3gTz{^x$(-Q71Pi_ot^HA@6fkCaJ&Ar82j zPE}+qx5#OADmKDVF|H%2Q!j2KD1@e6cT>&}{32j(dmdNwbzvqDd5uyipz|T_O0&?LDw~7n%H0tVpG#vZENC;b84I67cVk(7 z>$742`qTb|$h(_^9M~x9Pzeb1?_Pkd>$5IC^8p+j_4{xUFMj8Zfn++FFd(}O{rmTF zu7>SG4FsZoBNHzqq$V>;_Shh`K(57c0%8gnm5R{aq;l4!Drc`>Jm1~P6q^C{cK%4v z6td#lJb>a$0WfQIM9DU~+V=vs!PMQ?;7l12jlCz`krvIzeG$m}f}1~BOcB%*vokYn z2tm*C>nTG+d-$!>1p>-Xen(;`uiH4?w6c#5%0&xfx94XjLA;50;b5(ti8at;?>nvkYrHbH?oy1AL0MAiBg z{Mbj08Jj@InhGd)4J)^-T`G%D@7QN6n9Qb2`Dw3@x?7kaoV+KkQFLTD6r#_R8{7s; zT3Ea50s`hMED*Z(Z=WfvL|=^Og<{~UHRl6!)~hh~bQjIKlTNi-EY{ET%BG$HiTDCx z8c^B8QTh*!sjU=e45;2lhNCgpDjIim6r9Y|uUT5zJOYV9t?z*rw4}|XY=uR#U!}?n zHud~gUtAaX^yWa~`Saq#$!-I(52ggCE-9s~ho*a`bW? z8mBZQH|Kd>;WvrK#~W;`afTH)R&1-*I+1kM#<17242T4g3!ijJuZy&N&ZxXGJdz2NAy!LD1B zRIS{&12!=-vhQ`OG<>)hQN{mm>U4KU(6*v1 zy?jVAemFZR`fmYq`dJEXxTX2zJ4prT@Ki&ZXqEBm<0?JxFG;b4j@{Mr zZOT3~3kf_(y{z?q{Y9v~x=i$k9ancCBNKo8smdXp`{nXxdL+Tf_m|ts%2q_eZ*mlG zyJ;fnG6ZZ4yjGrSIyZQFmIa_^5sb7TB_$nxCdvBY0KIiU2tGWck1k$xB^xo==lN(K|Skeh?%3+L(lw2WBq#3heq+&GK~ z`t+|D5r$FRk5AIBEANv>7;3VMN1rWJMF86je`dn@x11~k}MOyNKopqTV}MIF})oo1Mj zuHW!dwl2x7Pi}JRq@G1T;j7+f<#bVv!%7@g|C@Q)0d^BL*Dd)EL2oR)zi*tuf#nIKie06R$G+E$7Ts3{}XG1^>GiZ0%3(G}83FACbF(hT@p z!gY%@?a*@+s`^jab;MlC8gzZ&fbRxTDX+-N$Urs#9%*UtCy+4_awZgZdj+1`667% zmo@_iQ?{9u_dSq!EcIab2s*yN1|8yeolKpA!d|%r9Zm`qY%UF@I=0U}Z_JO^Xf{m~ zUVguhTv+&q=0T;2kvcMBnDxzqyxbfC(Fd-%P@}OH?USLk*~-NQG(cM?XH1tB!A)MC z*;#-WB=R*TBpg4Jt4eCV-r0zOq%mYf(M@fi*2pcN@-kov<6H+86C)>DLCl%|b z8bXVn;`<=)D(jr@CcOu5cs6D*PEK?CjX-=s;{JeJ|&$gPPK4-!M4FsEhTW7A1{idCncmlH#GQwR1y$<#V2u?CEyToD7$NB;gw z`ojiES+ZN`)2nx(#SaV&Y^c4han3m|5W#(Zzl%29kH6ZFR}F){2tL#4GVymC5kY~<_Xz=ixan-Z%M!^QiJWNBiqh`Vj3 ziYZ`wPT}VP9&_k?_@m5^*ooBi4L>L_x#s2M9FOw*8TDVH=EMWF-~h)o2UqJ^SjP!U z@3wo=l>2*CW?%qlu*fHwP%%~SF{!=)Bk-TjVzV=Ti?r<$uRR_#lc>d+IO>6 z1-TQ|dX1M74~f~YV7v=*ajoUDxuGGaVBFC;doHGodA*wpxb9?4iF8(FzMkNxXWl-M zzISJr7HJ~hrg0`z;6`O5{@55qFHiCFZWcvJItFV3iKd+y zeW~whUSgl|wOloHUL%`WTAfv>OoqFtV?}FCJqj!_aBk>ew0$h;-%e>TQEUN?ZUi51z~;6-*txG z9c}FEnMN>VMR+obT%|?Ugf2*R3)D~uG_sfO3`?=`_L+?_3XM9~MXySUAnaTd)xz2#Nb*SAe zC`boQ1LJk=1Wt^dsYt`Bog(DD&0Jl@pEDF%UUI9+!g1%#Fgv@wMo+uu=E)m8K9GlH zEVjc6S(hb0Ing6MhHWx27KVvrdpj;i%7W7rMnMUNx&9Ahr!A&A?3w}ZP4Di!xe9eJ zd8#e@;gnq+&i4v-i-MCyx_iRf+D_hKgspSCDH3(3YT7aYu52sf|46X2 zvm>jvg;)zD?B%&Zo!B0Q;?Nxse^!vj1X0i;b~zPY5F?+Z@a;eN}9J!Od@-| zm$^qaKf}j;mq!J~t8w4ID?Rf8#EIP4Ar)W~TsTO-ox~~gT}l<}VoGCnO99x7>aYW4 zK^ZzT(b@Y`zl;_-FWlWHyn5{DGT?dL+af9?=ETtN^gvGG(gwaiF_o3DcZLp z)9c4;F)|SaLKZ{Vw4!c>t5b%4+}3Jv*U<*|na}uRAU+9cq8~B z_IOgaKt6PNnJgp~evHb9K+bvSkYoiB0(9f~6qm)VU@I!*) zxaDa{;1{l4`yMdBw%EQCojf4oxp3a|H`S_t zdK)|Cdd-k36s?vnz0*=_cu1DIrFWiim%^Sn9esetDZhIK+9Yw$v5i4i_lrh}i-XNYZ)ey0dpg--QE#o~NBKbZo48Fx zMD$7L_ImfINO!7L;F~P~Xa`LG?h zji+kk>Q1^(-em`GHYhUmXsTdOK#z*VM+OH?n1*a7JUXxFglzPor1<=h#QzGI`P$?d z5QMXeN9`RAGw^YJJ)Bk-SW~Q@{I@dC>+V`A-A7O}dd;_AaO>y%3Jb9?ikcMI zY>gC;@gIh`(JWXHPL}zg3f#*^-8}mQ*lsjey&pG{NwXD=271-W-T28)gRF|Zlw5y7 z7IEt7(=@;ntz=qLWkZl8xzm_^)8kjoc;EjdJ%1(WH#L8$wXFI-q$@JglP6a)RZDLQ zKRMyk)AT?eJ6<2!jHn^|i^@rtW;0OiI83xr zTD<_B*tONW)>W7**p6?ZG>_*8algR_c`H8td{Zi28Jl#t43YbZ2 z*PkkPE~u#dh+(?ByS2MGXc6G${jHiqw>!0JOaoFvB{f)~U;o8xtvx)mE_!7)bG#*Dq$a&`dO92`CAx8NQB}tII|~L^3rmI;EbzV(5`hs z`A1)qoj&JJyX>Fk7bX=d+IS5qwp`-^gEg|Y!JUPg>!Y-x2&^k9e&wZ2`Wz#v#|DqMK@|HGZ zTB}T7tl}b>Q#ZTGVcDK`wj$?bG^+-eruZ|xgliwS!_xK9Y71iqV&URzklkF1;jeB+ z#vt3p``es!-+HKfr0Z@_jlJJ3T%yALH3~@WrJ_b}pLFF!d24?8{_eV{#~L?fS@ejW z|J0Fu-*swB@}B+L`&Uu+VHB};XzgrT|)wuKu3{-U9XX;VG8>u2O>Nyc~_@171l)~SO zFJFIog^ypn=yQRNUuEg&2=H9<4dQi9e2M?-fV~_A-QQy~_#+WiKDbm~8-XN*zW8%B zLfOB^bxVy{heLruhhe4VdrM0kc^zy}tAotYfD#!InVR>;B2vIs>1JftA1pmR6qy1gW|kPKw>{a_SpF z=7BSV33-&_p=YCe3!Kz;#v-jXeiI27g!ahQU=RlA?ZZC1k&VH$`}?~P%axASm(q; zvj!z^f?n>EiVFPbVE(8|=;n7e>)Lj&u<%-aT^9bxZ@CZTf&*&v3h~=(y)qWVl8WHf zZoj)}6C|Zrws#&m=%@9OjN;LT+UsZUipZ&3|D@jUbw6lBFRy2Fva~ysMLmNu-4SGf^#*}m zkcKVr%jvQR+u2*_otMd2_V$>?{%qXTaG71I*HDT!c{sdM*kdD~)` zxVH}ts~qlqfJresX`Fq*XhG%cS`A1?Oh*$o>_W!lmIK!z2djb zZs(%V0aGOjc@)GTy?)VD<(P>q2gYS+B%;ae)1hf*4A5dxGA#&f5E+)pxjG#?d@1dl z#AnepQJ?@xx0|ayavjU|Jo)2wKG1M{Ir<@}Gn8q)#b&0wcXQYf3nx|BY3+9+pNV2B z>yO}!K*8s$I&Yu4lTF=qE@~;b=!;jzxG76U?P(HiV(#a( z4;eX&DlrcE*Bp1yD+QzQlu>a+wBoaOgXB)UjbuU=iCT#qTOOZ(aoU^b3&13`7 zvFsUVP0Ib=p1jeR`EO{o?|B_?>m$HYw*Lt0QYH2S zEAu4}q5(l{a!_5v^sniP<-dIrX^k23%4w+OW#I(|VuTW(0&f-?&@-cezWF139MV#4 zLaLo{Ir@xj1^ZLP{&<-Q+>V<1_)lQ(=g&eRTV>sx$Bka+dw4hJ3vgf%b9fl}r~T{- zefE*8zBvOtcV) z?cH@vOibKn?PE}`3NIZCJjJ@_`DvKU&_vd_@s9BO-_cljfkJ2=m#3xDeo|sats8|d z7sS$Bh+EsAQJNw)9e`8BqeUfbxGefCB_BC&CgV65^e{j-b}IbLMe8l#MW40JWFpiI z#pfAA8l7*cu-(-FkD$rCf_U?v1o8dn_M!4&;%0q+41GNVVJa%()PCX{hs%@zq}xpX zd=(A6pyY0KzVmXY)u|t!f~OT3O2I3eeeXP)(mHOW7zh}9Y^HGOGwPhBsQI^cxtep= zaFatxfY>?4B>%3(rT3G}!Gg`{S(BNUU^iRIZMnI^&lNi{_k6g=YChzTSvE?f|P<4nhHLFRF;FGY~?`HD3?bl-cymUm=tH9QRAqaI{f`$-7XQpjy z-Q-JG-x&$z6%kp5sQVifRPl*&1H#``B$_*D;ejCc*ovOdb$_>HiZf-8tKK8LSWNtd zTw7wJuECq?-47;{`K>}KoH>UH z@Uwn%-HKs$NahIqQNGZ#rBHNf4wOzR;ds*^RE^Y9!wiR*2 zI-bL?Fci3$WwOTpS#95h^t&p`CF&U#If+L7Q?d$kpCl>%o{a|$D!%oaw+Fukp3?aG zHH@mk!NeuSHSRD+(aas;-LW7M2g9ZIz8}vE+Bn}Ek-oUzyWe|j zXzNf=rx6efnsvac=wyARoHt@2QtD|o<@SaRiF})h2I(SWZru^oFJJaa@T8?#0c}3; z_;0yF=3`Dy!I|Z#xK3=!A7|%t2Z%)^?0uEb=x_2LUSvzg>JliN6~Cuf(+UXCG*VNo zrvAP@k2U+4_2=v^PgOfrj3#8B%xPJsKL8_L%5$H`-CcWspVpC*j`(R4wSbYT|nt;GdF3GX6c&mhb)TjAjWm5%H2!>6XA=9K*{5{5;gc+o%>0blqu>NM7#t> zN%yi+QpMg3pn0g){NQ)`aN$-Xw9$u-4vgj))PFkQ0guDDUgj==zJ-K*dxC|7^Ym%n zHyZ!-egd|`;(0ym#e1+_u>}79+|=M0pY!P!|3fot_4@2f;qAWAgeqj8MsN=Uh=R81 z$-1+FSR4oNBKOURgF0tht;wE6zwy&(24FXz4-B^YJ57QDm%4C1xXD^wV=No$d+XSf zZ13xSc{nB=9Pg_d)%J>v%n8^$rVz@ZYw!+|fb-rH-YC*vUS41$iZ6k@ZNsICMe^R9 zA1&11vGil(zkQ45cYCxKPI2}Ps#6!o=8S=Ri^xjw-Sj;2LneD~V5=TqX$S7lW<_%o z6aJLXXK8&K?Ww{%?_7?CnmIHncKIPXfxTZoO54oIIq`fSQt5Rrj`p|NXJLL}G`wqo z3Ii;s{<|C4AEowspAP4@(^3`AV&gXJHkY2I=S8xYdwtR)Jyy!4^DfHF%tp7F$5jPg z6F=uy4JJ?!ec3s}o>tM*rpI2(Wo+Lt=4&Dk=6pA)j%~bi6nR(Aw!c1%CYbZyn9SeZ z1)wWx;{#82)rpD=`@;}OP?$ccz7>a<=ke|Fdf&-{&fl!iRbU|Eu=dV^mR!<1HGQ#& zn4_5~kTd;4KBUp z_DwbT_8-iP2X@d9+AB_2kUrK( zEjT$(poeJ3dxmiFUxl%>o^6v)N>{RhPqfj^Hxr%QJMKt6y3@=DE1Dh@VqggN0ee_Pd!m+vm$^jmwd#3#Am4k!B zD^Mr6XilrlH~H|5ybaKh-UsGMZ37E&(cnejkgx%20al>Vdj%f<*;aJw z(mj%?`Fwop#B@lpX@>QT~M2&r9QTnz((|7neDlie)*GA1nD-nO=Kiu2N(Zk+!p) z=d%)`TCR797xX73<;QP&d(}uW{Dr37{f%sKmbNj7;Zy8J8KAGe-{{)}bP_Nt(2^y+ z=4(6t{)PVf6|&krfMd)0UwZ+VSbZ&VMt9d28lZ&+RQVHLxHQe2+=pF7x_t>@4X&$` zB?ouw33OpHg5oJx2QAiiEdC1lK_C)!UI->i@$j?9iZOKKO`go|3oGo2S$`xD*`VR~ zE)fvx=?9IlZvqwV(dl@fcxH6qAC!Br&GUDIPwHZFkdT$DGzoXt{hQ!m)+|&1Ik`Hw zbE_iWGeuXYg$}~ba}un>3JcVJ{3Xu3G&|r~8dm86*F!JF)mbkqm&v04l&}5PPEnuq`Ezn&e0(B;XV1i0y@3ZB*S-;{X3J}r(ejE5 zZ^(2yNfkaDO9J+OiU^ll^9gM>o+k-%+EL(h=#!s}LC~bP8k<=7#;y*REnt>A<7hSZ zH&@qi9@}prPfw3og%^QrWh{H}1iZFBF$IS^P8KEt+brlZJWsMM%x4ob4u_}&g@jCw z*N};DUVC_~bZ~5mK6$uPcSLteN_i0WmDSa;qn+K1qhr>st!EmnLp3L@)-m%TqX9bh zZ`BT=s?)mmR_BQQrjMOk4-e6__j4_t94YtQZCMr@H0g@DoxaTAF=_U>Sje)OWUg^L z-&3PWPetBMowgt!Nl3U4r|P0QQ|K;j^;FxqUvG^lN(bGJXLNQ}SOCaU4x|}rf?gpO z{0`=?U{;QZ`A9+A{4%zFzx!U>dCNQ~cB`nGs{bx&oP1ak*S%r!cQfwNov)v0qz9t# zC7AjPJ4ljnfv%Zkl8d25`*T%IV1?*hN4ApHs9&hEpkQ2)(b%JTV? zVrpyFesk1$PJM3Sx`x^g`Z*|?gj2ts|4qK#!qNGM_dOG{(DS{^23w3vNNSMFZ62C# zF=$HN{sY#F*0vzE+-`{%9%`366H!rY8uDbMYlfBq$lc|Vn`9r|tAVt;nL_P8lIh73 zlH1z|cHMJad@7OSap-}-_~LL4F~^?JC(=sOUV7RcxX*BAWLM*HpCIk^UPa_k>aL)Z zX`5eSxqJpQeiZu$Y`P*Xo=JY4qurA3O}wbnvp8N}aiE5uJdGEyfqSgsuX8@jj0z9K z76EEEApBkY!MYh6rM$g;zg-$d&r3c5kvMZt7Tkp8s^(TR(UEXt&vi5jocumsJoC8eX5EJyN69#-0&HE$DMA;`7_9wA()qNg0UIVsFjTlleFS zY`(C9i)Syg%{e*mGo*QBY6-Vi@IIEvlv6xAJgb`G*&$-<+Cde-ja6lDtr*jX^%yu0 z4@dGhlT?;7#bo^51~T*MB}RMrH3Ahm+)us4C0;MZGIjIneL~uqyWDeo&Q^)H9J@QE zYr~r=RE;YotdNS)`l^nct$RVfO81Yb}jVNj}G^)A>U$Pd%%x7@2}8^}FQ$Ta4OQ z>mzAs;d{@w?O&HQi805+!%mhxy@&8)|3N%opS_crk7;tRuF8svHfXYjZ_cGDa#J`g z*yKdr`+3%QQOR18!a`8BUU##)R=vlP5-UreHX^;fuNUvZmtCtpc6T@VipnU<$Ur8v zIKcV-bv(!7t)yvETU@L6HHZ24G-jmXUu+h86JB7wg3zWvpg* z_v1;4b@zQxdj`U4T((}WT_K|2>#C|Bn>n;L+^EWzoq~n+i;eJlNwWuazK^5d-|Ww< zg;>=YefqM}gf8S|I{ZsHUZ6imQcWd*m^b>fpo%f`M>d+djv|iM1Fqj``iVAMnhN-l z2)ryr?APT5fXGDd&>mk}c;P=#X!+OFGPk4nm~;vb&OLwkBFl$;saC!zFI|tZqx~g) z=!18XXtU`n6(w=PKTp$TrM)b3t^FQ?Tm7}AyOU$DQ4Mx*G1Q}ThUEktjz-r)1exF) z3V+$`_E=gB4>+88P2W~G0`|kJlg)Q4ZUdj)&n9V#M-V*B3rwG3M!Scs$6~*l@M_2e zK=fBCjg)TVgxuWtTiXyL%;9NMgz1P!uO<$}C$Pik+N5*h>cB21$>Ho4mnvOMB`c_&z65p3r`T`7r zawf}#3VLxOX@po@U$eb#S8U$%dsYugk@L+j(8bCpn%%^TG^H}bZf)@jo_Dv`+b6%& z9scSAJ!D;L&G zQNn!T*sNMfVy5m_iXc%g?;9GhbhG*Qy#nmc>{$Qc(tP^kVre;@FWZ~tf3n=}ui@Yz z*_85KPM*u$j4wlE?cnt&!(A6wip7gF^kIKZhrE->O97G zO9E(C85`*?FED5v4av+t*PS;@ENz0uo}Gs!O-nomCN$S1?LAwmm-g^EhvTo6ZRY1QovSD|(_I_5>Pe9?q%p6aPz ztpoN&pM8SiSL*+wgzlcgG*Ie)aH!{n`$dJ^gj$9HE#F};uQ@8oNEkMj@>f>&1^OIU z>my&6V3=q2k~)R;^LtJqcN?QaQ}_~o`mK~~RUbOmfZkV_r&GI$*Dd!U|B8(lvh&-} zPoez^8JVyh;W(Gf`aTIddQ@T{^daK3WdwX(d&v|t5@Ct{5-uq&Xc5a6l{irBewx{j z7=OCVH=y1Q2izPL$;kO20w95{*L-uGKy#z_Lzfv3$Jt_cR2sm4Y``ACJ2+5e!i8HiJU2 zxJFx`O3%j$j8q>zDqu!MDPj~5xN z-{=J6?Q;g*yKsU)Ade-@@@a#+qfB8DslrabsfG2g$!#`IVmmX6!2`D>%vM0`$gm&2E0`#88n_ z2A+5C6A+W?C$WpgqC1L;=VN*@hCY}WpEPJQ-29^cp299d0!?-4dkTRuQ(4X!QWGT8 zBJaqc#XHbQ@#FlNI4H<>bD3&F=z-P4Ec|!uqUXCfHFt{A^h-Z>cxhj)BTVnpIF8n9 zE#O`_XcyL;m}kc_ir4~yrdr1wGu>)`5Za$VzgdHID7p3rUdcONV+USm6tVF>$jkQt z&}lk|@T+{i_g&n4v%8>mm)~8bt$23{97GAYyWg#MyT3Y-r=saQTDqkJ(nZ#!3Z3^R zHf274<_50zomb5(b7=2gy!%?c`(Qr~{S2?MU|DNh@e4=$AxA{f+zt!g0h~S9-BuJ?fdH*udfkr9#`f^Xi)P2u`-9hqdN2V-aYM;^N2%~nPkSL~ zGdMIShykBMC7&M-p<}`|CNLXL->9(2$+riSP}=T{OJZYxP+&G|4Zl<}>g%qSBpW?H zSOh_=8GjNXO>+JQ)v44+M*bj3#=#U_O^mIrCgI_US920MKM#tkne`ft3w<%jjgOZ^ z;s#s*R==m!mX?nPYf5=zhIeS2$XygEDMrUjYv2S>p<2lfF{*KVKl<&|BYXDY{vr@7 zGRoon-JD^u{*-TnOOZy2Fye^zglfPuWxSHaF>*0EH54A*{^AeW#=~O0qO{yZB9Fr{IjKXzh!1j^ z2nJrp``s5SFq!xM1RW|WhX@`4I&A@U9=^&?@YY=1PiNl1iHT~#`Fn(@e0r(#dLX?Z zet5X@rVN}q2W?9l%!hxiK^!tpz?Iof^QwV&`|#UD>SZ#2NHU5S7U1JU%M`Q(MXbW0 zCeOq6YOnrhKLIn6Vg|@#rE%MyU;VzkfK{Wn0QyJKtB!3q90Cfk5~RCd!u46U=VO~7 z!dVd!GHN9mfZ@OILekPXZnqP2_z|$*fOd~6f|8s}a6Qvf9R;HFiN0rpM`$(nm&uom zY#q5JLi_P+Z+BY_6__h`jf`pYzxqQe03oIaA?Z0b6Lg?sB#pfF&~jwx)2o9-6sZ6z z9^OE3aOPZjkIQkB^T9MvCT~RUPo@%S{wmV}_8)&^ErVgbUj);m-TB?iPkSQuz<{>- zCMF{HWHs8Hz*3jlh&>!QxEJ(SH6NS3+RHhf9{BacSOkr>3y?5E4EimdkeDgNBAf3e zOkTezi{N-g%kKL?y)-7BP?sfmKWkc`nhU{r$-o<>k^gf4&@1A%49fIpop<(BRE`r; zDH@vH6?I#^R;x@tQOnJDv3~ZA$@oP$8i;_yY+$!qI99ycdR*c0TJc!{-RtpYEz9No zhi#UV^;h9_oN}tb^@1jobT%Dn^tsrs9O4NhTiVpF3R_2Tb>^3f#SW&YBYH}sVUYB{ z{vOd7UIHh;S+fbk^IDz@ErwTGMkXRhhfrFaX=GwQUw(nJhSMFc(pGvW7B1k@P@)jU z8os6Ojqfg;WwoFAr`xAg;8Rw3s!`Dc27H5TzV^{p{lGgW((tf=T{jqoB#j~^i>m8| zjT0#>3y1C*H<)r6IyzYUw%1m2olFFp?s(NX$eEE@sJhl}Eb;9W1Cp03*WM|thp$(i z*ta5;^h78Q{%QJh_FI~j3$g&n_`PDK`oL!u1K0I61c$MRAD;ImBK*!ZFe0ISk0NMi zprOe#SwQR>+?hzg>+V(s?45|bBMZ|9T4XeoA@~3=h(sV;e))n6kO=br=#v$2-a#8S zW#3A(#|2m|Vn`&aa^Ig)%YOl~ONTRZS&1PUrQi0EQ!`6=ccJtWbo}UXj9Cfp{4E`5;P=+~;R*nL@w>`S z70iMJwW{C!4;<2r7MJ}m0I!FG%TgUiMC37sUJfS4n}M4%T7&@pO!W}(-WmF0m>k`H zlJcHO$*5)Vn`zaUqk9Y5uO2-4=$U9&f5M zh0v0ch|@DZG&b(EpV0{`U0hBK%MCTT*1%A(vfAHYAguY@_nCLG2IO)k%bJ>ptTfGN zy=VJOg;=u?vu)XjZhADYr`N0x2?)n=had`9HNQI*p*%lt0e1#;}j*$GZ)v5V%@1LDruuMgRg~~IlrfkWeV5AvDPmw3h|6TH{ zvTdXQiUV0NF_N;4O-r3>dLk}Y^`=n-iY`$FngcQqHi@0t>$n*T$uxF&q`lpkXPf!OMi2brsZgrud%P8KhISAF z;9vo4L|c*J!vM|2$qFT4cz?mP=66UyX168~Vg%j#ZO+l;^ZKlzn8|51d&JY?2M^;T z?D=pN;CZPI*HNSr1P?oSLYB8XW|=eI&5hCL>3-U@*b0Igrdla10xk&&X&|a)xZKc$ z7?6k?!=!3{ec%Zw(Wru&VtS3anxdi{+~7=QprW{&$ zs|$OlzuJwOHoEn8bqX|ahD~lWEV{oy-DX|W!-yO;zRB+BwY;3o8$c>1s=>9y_HfpX zQ8769kGOFco0H{J z^|Is21rTIMM0;@`50iv%oDY zLbuIFSzrI-Smr51y7yR>D;+xN=2Dhb!-6!7`K}>L#FcL+`QaU#Y__Ys`p?j9ptALE5p~Sk7;u| z_SKkgP`0lX9vyho;*cX{b5szH^O`w7`;*C&K_dnndta(DSxMtkdAdywbDtc1^WB=e z#bp04Hf{*lsMsGj+?BYUjUS5<|7{W5ZAUpZwTQD`E})PtL^h!oMql+0rBa(z!r!DC zeUwu1*B1-P(iCgx=d=)EaPNo^{0n?jE=0<|*>{X@Bp^orulQJXubcJkBg3Fs+gwkt zRhGGEYB~nkL8*@vmbEso64f~VlRXWipju+?sL3iWhG*`1J32xwh|`ov|M~HQ*uA)P zWA~75Vo>z^;L#-H+(G7!lxP9&H|8<@6J>frG;>VzK{^lI9W(w+9kq*1fWfs(n`-VD z1yKdVW3g}mfrWRHj88Y|2|vU$_;BhFt|2r#N*3px`GEClfdc*Y8p7Gm!|xi8cGK#j z(6%cf!2X?Y1jR6qf#2@wtzQ7j+Ou=oQy-wOYFY?a1K8X2hfR^#>!wUdKJSskoZXh) za@$QmUji?RD$C6-SYzpp;VXTOPTPT#Uoh$}EjeRQ@Joq>)5kIkzPwxW*-XqJg$KZ` zp;Ce{l+0rOX|?_Fgg8jlP*x@`$!w)<1sSki%1jZ`DV$npXAuq1w0T+&-3M5`t~$fQ zp4L#~x17FFjCTepRy%}8M^~_@o*!uqU2I?aKf6)@M~l}B*`fp$`nBy3axxeGPYql^ z6nQ(3py2aB0?&$W8MT1Rc!kbwwwWxBe9(&0+h{~->37^Vzj|HQCJT`e~7$ z?|0Wt`c7VNmL&3|$hRD5XW2W~0cj`TBO|w@lt{Ma)wT6$hJZ+;Pvi5}z@>@t>aYi| zLQfB=MLh|lW+gj2`_#!$RQNk`5xao`7-3JR%65O4WNUvd*W*;n&EDiRZnXQCN29~J z-Q|}1r9BoFNd9CbmG!E#zCQGD?god40?C#={P!0jz|<_52z6ueKGG&Iw_{xi_S*-+ zr^cBb^LeNnMDER>b8F$L zf{D=4Xv&eX*D`>GwlYf-R&?*{bC49yqFFt%<75#UB8aCL=&;kI-U7^>B$tb~uusct zh-a}@fZvXse@N9UJJxsf8H<&?MFY-TtKXiTtmMF%GUTv%F)O|u9U6X$(6F5a`7h&T zCYsuSFiKt?B7lv}kB55)vL+Y+CgGpu#snnv^8NP&EKY@rYyZeh2TT2h6+i0K z$w|cVSUMIe^k9%iAOwu0S#Emh{U5xMr4Xoxnu`62>`bN(6e>yK&ge(<9E2>Tw* zV{$`AC-Odd3O=kLuLI*nIH#fHZKkoV{0lG7K~3)UUD?)i4O#wvSKZ-?0Cb_oJj?Gv z#dsraDwSuq+(6{z>7I;6@doUJzRsU*H|MZZ;}~-ygWc!TVc?3~>GwZ=0Te!MTtY%( z6qS{E8C^!%=3M|iZfc`$pl=+X^K6~nGa(Ry_L%ScXx$e(C+DThyxSj-B`rMy1LoE& z{WjE#>)K0pav@Nh)#9`+W)EarCXUr(e}8rtwkNAKA4$JCK6Tx5a34wKbKZG!tHq8G z3k-7hzH0c9^0v-)DG>yYNa{`O4GB9OGiA1y>yAIwy#-EZ(~ZVVl@fO@%Ro;yF=Y}| zN?Te+7K{H#F|v{w1>psjqQ8k$j-Sg*5Z|VPI%T&thaTE&<19GlcowI?E*^2Py@U ziq?L$+0eB0T$5JW)5G#C?VtlM?vh7_f_c^1!NO8E(2*x)Yd*SswIMUR%){-g&%lpmvmu$|OcmWIZN}93d5@djr~49SJ+I9?64ro(bP_I;-klPS z<{{H?ktajHm-HH6f!B^EuI3-wtz*=8@;VmV#5Cpj?)$~{W z@`V@dA#0vnylNl){VSW36W?JCmsVKsh&u#!v)ZSdZ=pJTlw6Ui2u7j;q&90|P8dt5_*xv2cL^nB@*ixM3chn#QEE(9Ed(tB z8aoG$<=OjE1Ibd?j1S8R@l#)FR&;5@YI0!RQQ@R7Qs z8sv<_pSa@_O7*OKYKAv$gZ+Ku!>G7&!8f{Fkj$>=4XNW6s?$D1;7xvKD&>+8a^j*$ zn@2nP3cQ4Fvq1i9@OaX4%!b5kw2%Oe3O9GR*(?DX*nmLTYTG5A+62ki-el%y$%B>&-8p_+t058#&F<=nXVn$5j{O-k?LIW49<;3yPw77<>AogXl2e4a5km5`TNU| zJ+<=2InZac)!$_?dIbrHr^LX4pC1XGsb!EVakZP;!2%(-Rx&>Jxf6tDS4w8xz1|y) zK%z1!Y+szQsefd70Y4@%ny*`IVt!Zv@RD(rJcCRuRV#d18s--Mt?X*D?XfbgSM zWDkV;jk!t=8>%6pmfkUlmhu;=D*pKO5%lDo3dlu`4b>_00a(+5>spV2vpYv?9Zce` z@hl&wK+>ho?)cZ05ENt` zGD%=yBjj4_v>~1^Q#;cYq@n*((1!!hBP#xCWyxwZiw%z z7s(>?gR|EWxy-1PaxENw*rxp6lADrAhx+1ciBfU9S8a2RuK!JwgJ!G(?Dt4Ed*Q*o zi3W)w8r~Lw6U>4E{XQs)x_5&KLuJZr;EKiCE7LX7X%7X)1rA`}vk7P(?>Jg4%S$AZ zUu=D;w?C!H zrZ)YJpy8O2SaC!cu+?NdDgQaR2}IV4%T1?$sTBU?n)V`q630eqwtA7RMV{I+{y}s2 z)?o~H$0CAG8McOY2KuJ7JFFC!{jBF$#*oTXnbrYrLw}IODwQPJ_j+E#rC(Ii(<#1m zUUMjjTzhWM$T{bKg0s1OPIZdr1c$jJup`5jDoE!KC zKchf<>JpA%o`Q@sK$Jd6jpiA(B2sQOOZ~XUn$iMhRW4!J*=muceUH1sB$2yTIKW@m zlkQ`J;#mVjB)$*Oq4qih#0oSytVc|ILSLl6o{fKn@9@s@e)!vSW+bAa+VCPB@H&Ni zJDSl0)&wK7?@5Io3_U#JRjpo!m+EC#Rv2Icx^lLhe(~6I5sM4kuUbWjX-zgZv6GSI zN<_Aqy>1;=@VFgYiM;&E9S2iXO+gGg>B+%0EJkeoY@zk6LkNcd5MSUX1tu#PAoeG> z5djij){rr&BW9i3qpCVf=QP&6cHKA2ADlcjEv)K8gGpj7&_%qv^Hor*3gF96uS0QmQzK zw(ib(xt*~9pU30ehzJZP1Ghu<#q7?`rFtE<;ht}BN%E;xA6}p5srjJE((CnH z1p_@9Xii~1k;@_#%dA1~|CqBgidP-ntC_;@I&`$)Dipg^cMf2pQd*2Ib9!Ff{Q4yT zUTUShxgc3WCRt~B3XI|6UvgjHOAd~%*^1YP!6Y&vua@&3XWrj(1 z4LcnLn9_wwtN2Wn6ZI<%x0f4Fmr6P!^f6k!lR53%Y%h1#b?UZ2_Y?D5&L5_j-y7X4 zo_{i_fUsG=)%Gh5gV_t4GOr5QmAJaj{Vd&3keriqIzg7g?qqyO&0_4hkD8f~<^mhi zvx1&4bbsG|ccx>D^+btbf2UwHzshIe$eTzRGMrZLb=w(k-ZrnMsh}K&1{EZtX=vfD zmIAUD4`h&sohD;86qNrI=FfLFLnGhn=o~RHUxa6qwVP4Zp*V;tH5hQo7E%Dj47OsoJ9uRIo@4#|5VH?wFwwpRSFT6JWQ|PTf+0286oEuc8 zr7mL8f4iKxp1eM(`X%N5#FDXN*QfO-!d-gBoF7F;P_cpQoNoSIy7~54(_sY|oNi{^ z(bh*|R*xyLOcURo#4OS`1NNt0-qP#VWNQbsDh=3p?5Y|N=$fg&yPb}K{b{b{nTfXc zRy*+WB=Y8Lbhu0ajlb>8COs6s?oZS0Nj@e#$%s`Vg$|d80wVQ?`<}m0Y7jNoFOY?# z#;!*U!21=dH_=?fwPfdRoM#BwzLEl`=B?cB2dM)I_3k#_k0&eWoVMgpjsn}8%aIZc zXjy!p{AdA*2$}mJ=N~xdTYH#>Fg9PO-R?PqirA*~12fu}1mKm2;RIvWm4&)6%Zhq=j=k|cA5!7cC^5J?IA~ezZHra z*ueK)U10%GsG-eFap&H|&22_D?NsaI%xWtO_@zxv-6J&MsDqm*9-Nb_sViJH zsIIoMkrgC^@^ZKx`Ek>Ooz^qF=mM#j6&DWfRRq^Ah)RbBw^mz^wmWd}LqO0_c00ts!QFh7c@<*!4L$*J`tug^NfkMD#1s z&al>x#OdLoL&>$ad!W*EK&Q?Ep9BtZ>rJpb2qp;mJ$VIwY|st7HV+f0hBs15{FeHB z)Ul17pHBt^P@smy7b>7VfEdb~HyL+6B_m;hM&nhRwsom^04|;j%OK-Em~{CT(WvXY zhaicBC9$(55p4txX58y`GV!&S<>ijFjgJU0oZh&~CqQ_aZus!$V@Uc}AC#Ld&wRZC>nV?fr_IoYV*hNE@RDO>?hj z@tN4o%B{5fJAzY%kGG-V2?0$FsyB!3ZXnl}C#3-s@a2A|jg8HoEW(I_3$LtLOru=4 zLx0%@e>AIICg02XWlY2x7IrT&(K&Ty*~>F2P*LOA=>L*vUOkdqvc?tEm($n zwNBRwpN_BFef~_Xa~NOnt$=T423=TqaDU1lETO5w&+muJ^;{uV`eatl$#5MZXf@R} z6N|p6z`uXpb(>qJ=m08daYUp5zs2aH+wloF^yPYPYyi?Y*JW>l3cd|VV17TpVq9qV zFAe&{l`Q*I&~si9F9PEb%p;MlTat6qu&qQDoiqL4MMIGPql=09I8hvgO)4uJE052hg z%uPiaK_M}tHAffTJy+FScK>MMkXb}aHe^WfBI|{^LkO*cj@)Lf6|Gt8rPnez z2j;A^Guj^dgh(ZOgWo%x_)z%OygW& z4CAI@?t)S5VU|Z~eP$x=zrA>pme_HiUUpQHj(9>ZPJq2P|-=0fRB=he730!(+TBCM&oHb zB8x4ahyY>q#?Hu;#Rxm6eN11^zV{7dc(jn;!88T8^FbIE5zyhtU4mL|G4{PTngcLA zT|E~hYjQ1VGY}byr?fxbBjQo0v|Z9DHE;skXZ92m@ot^?NIbm$B!=bH)^OiPV_TGm z(>9&O5`tHQ5jfzpY~*sa*}+OPDQnc$W!aivGm=&HVD^!qMHL0_s7Yu-p+&elLu_<3 zIsX;N&VYHNW?473K)!@om)2^j?zc|;p?^Y~ZzD9?9}hh#$K zpx=GCg{dhhH4FL4bk3~j!pFz;ykaVr%9(Sr5^4U7hug!J77U~t_?x+%{I(>LquyIH zm@0kCWf<_&2s3BAbb_}aU!uD1QX%6nDgVc2x5W)(YU&-=FF#)LV*AO2sv{!)WD3=e zq-`F~5wk{_MstdaR>)Cf1%gyiFH0NihYu5|aFGOuX*~7lq{Us1rGNUHRSMyO@vkIh z>dak0OppSEHwKmDj$sK3asXd&A)BS0(xGFRFqNpK)43W`^5E0m1<`X$Y{9 z3#ey3*$3PCd%&1mkOP~P0k`)z4Hi2FQU^f0ZuRZ_7$HANXiO6&x3 z?D>;@R@8>E(fPlYt`+*}<4Vq2Z$Sbvs_C7GIC9nZ;!$?D|g*`&w;U4-|;m)BBH zXF+C#Te5&hq6^F2gBVhK9;>U3_xHiQV<^(Hz64P8pY*!O7Z7d0!LN)xj3novtknhF z?=z8Mf#vjZVZFt-w|kD;k*hkcVp4p1CLJby!WrMo!}L6E?I7r(#xQU zzd_6{!2(MuC?xy${vR0n{a894uY~*`%`L!9+&%a1^Xis&B(u9KzPqJKrjjC_Y&I|NJYHOw7({S<=9SZ#uCHvPVRH>R{i znkg^b9VMCp?p(U=97!c58Pi0CKKdQ-o0+$;x>GHDZAKY(rrV-+p9N4UeS;Ogh3L}A zTr+nh-!wYPuGT(G1}Tt#;GD~oC`Ze^8#{#K4Zp!p_I~ZYlWS7suRe z(N*dWvl`*04ka&YpOaJB{}=1ITJVsm7XYy!5t(u@MNj#pOj3})Cbc+p4MXDT&6B7X zP;aBfX86&sLO-87;FX@7aFW7%wiHdl$u(OM{9+cr&>tS>Z{2L*0(GLP$CpEnn5>0q z>*LMYOTV>;eWF}Bp5D>>fDKnMNhyzgZJXfH47hI;cLj3Xo{*mItF!l*=-38e5MAW} z_N%&P1W?KnzqUmqlGxBSTOO-YtF_WsP7Y7QNlh}buUvI73lY-0LQvrd< z1(!0#EGK}1Hf$eM8(LGvM9I}?gZ5C%rnwyKn32JkAh<9e3947rnCJX1!ae)rB8pUI zkP+A&H|*5oNk#lvMEC0LBp4V<)XQ=~%_t&JON0Or5ZrAObe3xM0Tev$!!OSl52z+_VQeF}t84&evraMeH*02CDv3b?iFW9T)fa&QbBSPcy(#V9D) zM`?n|CRK95KZh1QVlq5@c%$d1_w84*SR=yj&Kx3OzQMtb2iBW96b`(3dWLvJG+xjr zaADycfJyrNvFxX?m-srbnlcOyHLgLk`N8zSe2K>O#Wv`W7ue`L2Xtf#;k>7uvRj!1 zWBKJ_#R3*qcK}QUGRj+^xcY}ECZdF8ICu;!(!YLFei8_LPPC+Xe;hcRo-j1D@CT+fmY%4=$_O&5`nMc&cIK!(xh_!LUcdwa63Qt(GI*3b2X#E6~k?b{Ak#3I!( z^Q7}z79`ZtbZ&Ve)6YE`29}uLjnW{1fq!eJd^QRoNH)5zq@`7`-c_6BS8PT|Asv-p z1L6~rvfI#38W7{yI@Hnp4+@>Gnfzw+Re9iy_Cb+KeWh&1 zOv$cx>M-in_gnort)J(@huFSu>V8k>{lvzQw^&R_b-(_jDz%M1lX03Cg%ynI_S z5A^mUc!yNu?>{kTP%<>MU(LQ~LrsV{ahSioZHM%4ob%u?jU{1UDN#ZC9Y_oE`nQcG z(3FAZtCj=UC=u9Tg@P2wfT@YksHvp{#Q=A+DXOVs zk7a4Rfyb}A#Dv#ib3zq?D@ocf%*ya4!AY5T@1ON9A5b2cFE{KqM!Yf&4G6XwZD493vMu+W_w~r$`TB z>24^vl>SDx`G0=+RG^Z89y8zyw3+B@bMv_L-Cn+bKlvZC;lvt3tg?p4TM1;9XnWUO zCS!+-($DPvC1lNUiJi|if)RH4b3qzF$%{UL5Q=f{S9h2jDpw$@Jf-1-=ri2FWQOY=1EtYp+zq(eDT{oV`mmct58Fg5GuUzwI!ek2-ns^FOrnpDA% zJcH-~M{N+qr|wMpm8i8eta)#02=Od|W(|0np#06!NM53N_^H>0lgLgG`Q&f&EIUA;f3sMBNV)1|6;W9v+XJa^Ih{p*$Dd5zLSw#se_k9F(;RuFoO#P?gOyY5;9lD|9{nz*GX z=cqpXp?YZT#8Kpc1DivI^QJ$=(`G|I0Z6KPp^ICy9h`@o8<=(>yV&q^@g-X9_9~agy51*#~uqQmt*nZYnSrvgh^Do)ZKcnyHg8&_UG*Gop zfn@{r*lE6zPEott`4da_wtyugVY}H|9foAJDS6xzX(hbo^6cfE7q8otSo&ui4jfCl zC{ob_pc@k1ouZ@oCq0u<&oS|v^WmYz{B$^O$%42X$UGvRlh zZ#qiFqH_^aW%9)brO{U7LbvyrW}Zuoy?oWkf`akdQ2G1c&u3Vyfg=#^EE# zv6iX}m-KJ&Dl+phY5!hsSpd&fv?;cuWaxMAxnkOh8{(kFkoV=tI8jOMLv}h&f6iYw2tK-)T5e zLP+RAoh|t!r_2;>AS>**``NNl7#L5b&2At>lr`$3y%Ru}JGZH*`YIysy z%z39YI!X=>NE+12ce=S|x;mrHU^BVwBR5$5YgrKV$<@Z@sl~J8@kYoUl+e^@?Hy=) zU0b>PzxsrCcOVuIZZCohDM6akYB~p$3D6|$GvZILiM)cO12c0zm2_ASwVSjFd-!K; zI{FK*^W1ptGLPp}(}aPop!nK$(ev=|g6hh+ zcYOu&kMXsE?#EufJrTj`3|R#eXvF3@wEuPPU|G`a-tKj47YfpkHuJ0~eV({IZ#nmH z5An`#nAr)bdV2IxgGdCpyWP(7q(ZAn+kSVeP_au>A?A!b>`zLmGlcqv0v~@6K9b7H z3V}Sekf4ku(e)W^t50KEnhsXP7wUwt;Z^k48QI3p$dlksr=yl#Ms3W<5iX=&8FNHvy%E8KT*a2e*8MC5_2 z>-FxIA}k3Ea?fYyl~QU#3E10_mafllu~}_BN66GuP}_7Azy{59vtSXhpIpg+!=1jE z&4ZVCWl)+%boep0t0F4TiMOBc6dOLRwt*%;Mi-2Q&4X zjiAIJgP*JW;ve5iQBl@DLg*(@?-hhtAJ|=Z*&s^S2N~SfPLZp(oC*BivJ)-8kMs|1 zK6~wdT7Y=~^z5#U#aIhh<+8=`yRUW`BO5F0Gs7?XoIR(Q@qpkpZaPS$=J3>87Jc!XQz^{=9x-Ij7Z{`qMCj-!eRO0=UV+n%jhW`W96t2j;_kM7 ze={&PV5HCjdILfOrLAJEU;~6ON^SsAL||AwiYU zYS<8_&CAuR*)6e_B2V>*bmLd6Vdo&Y_q~M~rSW;32S$p}&Y;k~%^?zYL`i3ff1mH^I4nPUsVQwO>&uCuu`#=yb_db4q)_Kletet_U;rhh4^DC}~ zdQ%IE13(z(&dOID6gh3kjRJCT`aCF6e!glse>R-n;6rV!D$IK@^!bCGXzAIi%#4j? zqf1z`5Ar`caByDnqnv$b$Pjy~frGoWTi*M(!weTdA58TzNiQyIwP2*JzyH}hucw`{ zL~wj)K-w10!^h{S|DY@A+Cn)IA8A-JkCy_ZqI}Oqzmm^}735FQ)zmEj%-AV5Kx~8z z0=UN;t0(h=9#_=5pWbqC{})+78bd2!ETg%=|CA%y|9Aj)*=qaop5SkV!e?4*+N6VR zCtKu&E!+zG?(VBapkDi)nc0j9EtZTG?eY>%{JlzJL#Oi^ei^h%>1#RK8THrHh{NjJ zCmL{9_j&dXb7S~4b@S`thRdD8KAG8d(S(;78=uIf-Q-2hdVaz}afp;qBJW7{Z@RTK*gUrIk}>ZO_t7pON7~NTKI@pDgS|3a(l z7<=bDMzOd!S|LzN%Xl#Gz7H4@{e#bxDJlNDudk1~)ee+T+I;;GF-eIUN-pKz6Kx!^ z(f|7)$}JwwfZXWxu@8802j|4U#J0Rv%+uSIs%k8G8V19*Ju2wyl^suoK4wl?y|R#D z+#EZvR(76_l0Ih&jh^mom?8P+?O7yaFXifn>ryOaLZ)op-(6BIoYl;J~Ml z7B@G$&r`J0#s+?k@xlF|dX0$73$%Jq0cjQ#czo_*3K5ZyIsL>!izA@ZvY}{7US56Q`=Kj^FizxbQe4G*ZsBGQ=oF*|O_nYp-#r@ebU9B{Nz!=^fCE*5x z)1C;B-8PSj{sHL{B~>QfhFr6uZUzl6c*LEBx*I9Uf~vBSF^p_WRqCk>fjJ(*r~9b4 zX)DWvq@+xOWUECgft}g3^iHP}o3H?CHZ+i+e07S264R_ffv@KqSu007W9FbYHp5jhzrPiN5Yr=<=sf z^)nCLh{>ZHnf%F6Bg}}6yE|I2VCbTd$;XJf^zlVupx2$6e6OOC=XU&XG@SB66<$S# z@!$LyC~2Y!9|7gqYDSOI@u^_Lp0W$=-HHpNC_1gj$gW?d{C=iT0D zW-wuu6qCRNP&7~t(9t5rM)|NgK!dNYW_d?dXp4b>vHEIs7~K3cF7MvrA=DtZeJ8lS z`%?T-VFXbJ@DP+*%PG11NsIApm2clXIio?K`UjOH=Ca@O=*j%~eWg)*y0B2d%Eqva zbog#MpY_5f=vD9LGEEq5%u)evl}e2M)rq&ZyD=t%Fe#l zzw(870#E`LbE%wobHiM1wkwWl4(jPRqc?cR7PNZW@Nx5djGbjG-dNfH5%LOzrv{j&F({&>b*S(9$q#dB}GzFrMtVkrMnTNq`OCuF6jm(MY!7g9Jz9$6^FOKOO`DoFOMHccC*KbzMZT&CY)HP1PwTA;~~IIzXv zWMB#JDIJal_pjG*_~x+5vO9uhVnQO==2KEoMvKp33~5It&=Jy0;u2kg;ix@>s+(5+ zZ%(-&Vxhs|&rb;kPq_Vp+$xdc_Ph>^) z!p`QBen2d`(!;plhMh&~)PQzzCOq6ZmbovuCc|{83hS1}$K{OfyPKzJP4-BN)&Y;~ z*`wB3)|H_ceiwyt+#)5I*Vfsprr-6=l_)wl*Nh8vssQNEkMBlod(6>UaPZN3m5|BtF9>C#@N zxAd`hoYC9cNHr)HkYPbd{9jt3VEm zjnVgIM)vdISY;`1?*oE}U#pLtA!6WsopZgg#Sf7p3=!)#qliI^Uz-1BF2q69ZB`Z6 zRW(T9Jr9t*{yxHrazLULs9YkZEKIUW8Lqk8ZTS=u1uL(re`VY;(`wTiu)@Iz1G`#7 zLx#*OO(Uc38=>Z|*Wqu%zZzyEwtJ@G&XNJN5kaP0Xxw)6soqGK zXnmG8iA+qS26+k~j4ZXc7TZvMlcgL_DCMLBJ-M?E#8{>4=c3a(0DSj;7trT%LhNepu1PXil+UyjiM%b^mhKh5z4K0E`km#m1E*q4sS5_t>%?;RsK z&4e)=5+NE8a1k~+U*{gb`s`&r{w*TH+jx56H+_%RD5%n9MIT7Ea&sys;j&pNP$=w< zBy~S>cJz>W{Vh)ZDvO^A9E@>+NtGjD&R~N~pFQ4D-1SSU-A7sm4ha*P;fq2j_x{EVTcM{%fN2rNZb? z@%Q_qKb>#vgF8f4%&>9s@2jQTE86eL01*3Wv>I!86Am_vv7{~Jow6Xqk^L1o_JCWQ zii*=|CTmw$M;)Eh(Vxd+Vtj{T=hw{ZXHivE=WL(!{O_$J8MH}0=D1^`Z$fxEZKVbH z*uK0Dkd*Wmg_V3m7~Je%XVN!cTLXd7*cg9DP)(O5KvPAp@SoCja~mloncrb?*YmM) za4gTcBuU-y$YkMTdIqt9&MwG-c`hwg2@(s;C8^Ohme?03HS#$&D0pWI?D1(mUX79R&SmhMM7F@Wm z*=5va8uyJ&Ns*F|?S3V9zA0;+-8;jGr*{B=9;8!dhG04?C`g}FGe&!Th3D9ms`Jmo z5w<;~Z>X~BP=$g?PNu7|*#?57z-+spGpN-8iEDHAAnt*yRbin{&S#sL{~VxZ!uzGyxel6O;fD3(L7!KljVK& z7lif5zmGKJ(jFZfxvzxUo2tH)Ho>pg{O@zBjr>v-Bx$prd@|AnF(DrIl+?_zg~KJ z<|V?$ti{*Af7*J|W^OWI<}teQ%^u;9{C%`Q<96&TKtE8TPSajIN+@OO_mFLA)bQo) z@nI$?w($=ZZ+9sQP>nOc+K>Nu2<{vDMpF2Ae|ZY3(dMfpvJ;|gdnv}JY7IulTxaq+ zY3rqb3PM`ko4~G{hxA$`C&MB9ObaK7lP#EXURv}d!5mm~Y_P+*IvV^G=qeX)$@==A z4Q2S-XxrDOSz3K9WxdVjU{@xq>|qj73wAtaQ@_2~b^T3$B5wFg zyl(bz2+}&3@8}=`7ZWC&>lj3m&wSP@uNvAl0*F_oaf>jhBrO24YIf8j^!wNx0cnI8 z{D4%(VY!j1_l#58S12@RL!qONi&puTqH`EoZ{Ui%CDE<7tS4ppG5`^aHf{sakvVSjh?V z@(K~GQnH5H27hpJ5?gJ;`}xzw{g}w&X()lH`%JlpXu#YG{B5b803KDoQ34p|wHGVW zUYt-6fzQo|1^Pi^oLWTUFPw3t-6?BxvdOO|<+{j!bf<$qb#0l?rPTCp?p$p8i6r!1 zX{5iwg9Yo9XZ_wCb^oyQ8N~idPOkJ)wRLF!dr#>{>&!w&hD591mQ9k@B=YcM%VnZO_?gK92IBQuBEYP z5+sgM$G{BzMY0P1X-0#hC38^OLLpH!FUM8HyUX=%Zs6A+(Qht#?o6%A%Oaq4uP!ZP zy;t(p;;_%EsEoGu4JN5g4V=L{l|hOrwtA&!1kX^Tw$qZdvNp8iz1Qz!i?|?>pN|?@-gtQN$7fYGW_xB?E?INC6F# z%-l*;if5~8v1A!>$H8~6jq;upywyJg>^BJ2M7v(cCbQ)(3%SuE+>JftGGk z&s6p=go3R&JKHxm=wKAZ#X{WzJfN$4{uO@Yc!7pYpuW22udzgw=@5E5_P1@vOU2`* z7LU4)yY1MIS@M|F5#r|N@ShzQD^{A?{YE-G$IN=r|0K|WAwBLBML2%<1^^TUAEl+d z()Q!oovH-0L3_bE!R+MR(M1D>|IW_8;3!yHrm+2XajCeJQCOY-^Y*{!i6RGl)W|fG zH=nVTe27VvSd9IBj~7QrN1Lv%-@=KlRdh5H;0K2G%FH###Gs^adw=WzsL?vbh|epU*Syh>x6{C*t!`%gl-GGp}uE zxL$A|hZ8k74+2d$CJMH@Ha3>hgtLUa4g7A(uR}0ISgG4J^nPf_v$OLm-V;T{zmdb{ zfWwYV5_zorQyWYkVDL1^LVUc;1qXY6ngx}9mP2|YzODya1jNK$D*-eSYW!IyXX^z< zMyjBF#Bh3vwhu4=y!|{S1e(lrap@hSm>h8ZB_K&2m;7XyWdAEXXz%4mM=$^Rlf=U8 z_o^x#-&SHA?xnhe=&-PD9BPzi*Pqx3={yba;Pu$6w>zul?3(A#N%MRw{J0Bps9qy1 zRfS?LPWWq%fZ@VjLTL$mgmV9avjqQpGiDdt<*coW+j^4?T5UYxm2fR^kF;p|NTA*-_!G*%Z@w%n@=YoBpm-Wra)6P34Slp?>N=bWGi+?ImP2;FSaQGuMMQ( zwOusSe9CYg37bo&+D^|ZW%P77iXClJ!vi2z>u3T4 zs(+zaFgkw~RhsCVEPhO8;&bN15ao1W&SXdQx!95$JUqwaBPM8hNh7=rE-#>< zkK=R&xi=_eO5aw@ylwu}y8@b5{daVNpyhIlrKZNW#ipQW!mm3!6H6_z0#0VK?)A|+ zrM1-qZ5|bE8hWgze~(3;Z$I~-7nd*;Pl!ESr*98YTpzy00zk>O&*iTn?PAQk2FS-; zUP1*c4!`DH!Mi!yN1WNVZ=ozM28X+eJ%iI~ zxakSDPn@}P$5In`->5?TfZGSgn?KF1UO_4H`+J4TD~xZ7c}dz>wc|QHauuf9hPe1^ zN9niG_0*NgK4nHcIFdETy?Xy3I0!8MOlx`g*@(n+T&~BZ{JN;8;Jew0*VXSIBrqn{ zf1se|4Rk?)gNtwl;gpG{u*|3j?v!JLXhFC!T=n+t8en)SP_%e6W_O>6d|PAW7LMR& z_tZk}zjS)8K{5B7OE`F4C=?Z0^7icusO z(eb)V$lVb=Bnfh>Urf`Qg0<@;4cI(A%(GApaet{~#5!HwmS|ZPSXeA$8=BD(_VOL8 z9+|Hb{|XF11WPz!*tqnN+XNaaV1>u~jsLDt*%8B^=;-(tlsH7pa$waUQ&G;TT$Q5# zZfWqL`eOm)<9Vfrm7Vg`pil4-1Hfx;@m{~)(H_;;rqwr@#UV2;Ma=oE{aHz?Y~3H- z@zDh^DjLoJA;4rLPw*%RwUeGdV|U~A=($i@;XBmnSiV<=Dy%6(V-F8VafP1J1{3>8 z$`lk`sCH%>M5gs-;vaEV;gD9-166})W3@>SZU=<{vyTAdZWgWF14n>3V&%U`#`Ppv(s0(>s!xOXI|# zm1jFPs?&qM6wGQQc=@$#{*d2?=}FxqLh@>8KhG@(=1Fy`YEhJd@(mA9k&N7HqS zw$|JzX_8(geERq}(+-!S7cl1u!sGB(AVk&4iF|8&x?JgK z_NVFcE3AgOy1}(0eP*E9`zqGmJq>vM<_#@A0~`8Wjf{H9w9LZH-goT^BGyl%qyp_N zPI(M+$z}ai31hmtVRdyqn@%1cu{_bD?N8G%$qrUCk`l#%Pg(p9U1k>c$DuA=f&viO z7@J*xJXPWNUo`wj-$R{#Y!Z%;&5K~rkf_C{0VL7h`1v|N-v&Kg7EdM6a4)ssDE{Kl z3&mO}H@I74-*9%bsaqXL%GP6Y0A&e`_qw=*!8ALb>ARgkj(z7An|o=yD#aTy zXy+IQMo=0riF$XfYTl{S#y8NC@cc5W-PQVsbf+ad+v4JzMuV(=v6y#1rp_6eE}Gq1 z>@8FJDPOUXgCkDhJ2(g|2OC6p5RgJxCsGKdmD0_lVzv4Bk{;K8hVKt4^w)7rTgq%Ob%TKp{g zK&NI{gbtfI!r%?4V1aj(39WV7xc)$IFFaGt3Cp1Ye{KqUoAm;j{i?}$MIAHENzW{e zNePM-R{1T9dA(Em@GT}p4G1wlUQmW8Gob;oZnxg(g@p-^dJAW9|L7h($YX!P8>p>l zrSs6EGMvG9e!GmnYYSa3Dam+SZ-~z?v*5a=!9%E`bix&}UJ>1VU%ZhIe?F$g zha`82rXcg4a!pV388t;8SbeHtD;WorcV@XXMQUpQxj4$dlmM||mF2jrlP($5E{xN+ zw~LcDUKF9^+-2K49Hmoxh^e+h`T_*JJ9&)WkA+MBM^{Vs-SrTExe5*{po!}EmH}2Vd#@C+K>MYH_8qU1 z+sKC|3>^rWPieVQ8DnuR^uuU!Q|z({*8t!f{t&O&zC;7@ml#cYP3+2l974dMt;3Se z*$+cKbw9dIf)^C>y z6rgcBmeM8H>>($KG0OISh^hUwS1nrr$rhUrKwYJghb)$(!&nS{p|3WX;5C~v!=D;A zD3|L&1GWfn>cI_YqtixDbcaPf{OtU=loUHP+Q)g^j(R0QwEPR zG9c5-nH6Iz@3nbWTOf2iHx~j@ve=zwAFiX7J|jwVt^J8I`st61W6cSvntY>2{ zHkEh-5OIA_w7bAX^)fI31E6%6+iE$@VbGd?!vC^}`K?Ba|B5FsBiGlve#GpsTX+-e zxWLL+ZFHxOzHPYnzGuUuM~Y z#f>VA&_naE(9yxQ(m;}wyF2;wWEuzaithyXyH%cm7jOLre@DuY5a-U$1r~$G_3p@? zEdHf5ZYD8W&ZY_2I6Dj1l=Z{49QbM4+{+%07P25v$|}&1%Whs{U10OfN`HazGjB@r z_U?8vY(5}y5D`c(zG`tP>PXSX4XK)j2)_M4E`V~<7$+4jJ`L4Wqvu#k=U9e(4LE2F ze0i%^_cxZzjo*d(^zqKCH-?YfwnsR#mo=h)Zs=caUEL7<5-k}(t@ypSHxC($eJeYkg~h4ui@*~gxVi@H}?X+}VxM=O~+2mtm=`ycRw zP9?I8QBYPzyv*L>f1dlTIhT{hmk<{A-LUDyCmYQq)r)Oupt9;~k#YvxNmtiop7r8X z5&{s1BKe_fQuN{e%Kpu(FiFOMeALSu;Nwq1b-H1MQ?!7~weRg_%S-Af_MFo=hx<>{60;*BAf|4NUKC> zOL%y>Ldx?u+}vP6U27h8)T z&yt0W(y5tkIpG1Z(SEpw+#4?Pr?G9fK`pYT3d-nxZD+OTH?W$mt2T7ixxgwAAKd%B z=B#4wlBH8WH*r79x?O0(uw6(ny}o2Z|>;$ zoRbjOT{F~m*p9M#I3&zPa)#kQ<6!)>jYn`5wo>>38k;$@+2A5Ui7#cvPX(I_uLZ{z z9@3}7*pwB;^xCEP3<6%7d|a4PMxNXo0fwU$>$R+(60sic9fqR%iAxzGcqE6n+K_U! zaP9K+5x}>5KR5|^jA``i3?sIA?ds=q#yr*j0h;sYKDIRgpotP%Hp1x5pdi1A`AxVg z%Lg4~fZR@%yb!@k{9f8b>imU9MovasJh*J9yp3x<&(GDUK?e>8S+vCAs?892Xk?H8 zA`F6Fusl+6Xn{6QXSJA^dm!nkf1ujUNp5%~1p->lX+J)Bw0mtB@F%^o`lhL>WzqVPK&eUOHWX!+d};oT;D*&_LkI8#!N(qrje>z38xHacR>N|jYbBlsZfGsFLhJeBGEF1pX3PN zfl>p?vkQT~Z&nmr=^Im}a#GS}iZ8`rrQ@(`QfwfL7>|ju{&$zfZm|%Ayc`bN$HfQ* zzpMQ6cDk;l7z;6X>ilCCQCCzW3CXy}(S7;3(81&$3&N8VFDDKi3czc>={Spp&GEjo zv_H|!l2nVWA0UbG2f=ReRTUc;r!kI~Z25d|_jj$7)1_m`Nc|2|EzGra(g6yonV!)dYg6gL{2K~HgCn!P(iCsyI7viB!pT91}~tOyWh?G$Pc#`@Qvsb-rSDR*}IeSM4%pN}?- z`dkpN-U}9efV%kl+!#GRts$GbMu&1mJMq0a;Ku_5Kjhxc4J7bgb%Ib>T#Z8UEVzRYNKOvWx2~^UpoG|AK&tGYThd!{9!ksv;|`B%j^kNoHkgD4ljcM2lCW007Q zMq9ggErW{h?mh@i6j4JL)YFz+$_L9?@FxXx2jqNME@`n&V?>^X3wxeHVE-kvVRdMu z1Kx4@`+M?`06gGv`fMX;5D+vv5Uw{_X(<(Jn7AL7y=opmF~2kJAC_hh#>5ym79O|@ zXXwfx5T4t(rZ{k-mbvd+Wbh`eIH%rFXsp`iF6a&w;+ z3ExCm$p`2PK|Qgdr-~v2j#PQY))mvh)v}oe=BkC5o*m@bK`ZG_VZKq7@AE$+;J?+A zKyQ|C+4H7$yQ1YVY`vR&oFJL;6`yzQ=Ch0{kyLRy*M`lctQj?E7rqpZBLN~+BO88% z_=8)sgDI_X6h7t_*4{VIDjAA-U%|L2j~h?myKDqI`=OFLWe}1oQqV)G?g5C*hGK~f zZ0x1|J~gXy9?3pKlIZVIS04+(SYhXA0=ZtJ2Yk{LF{YdOatnMULV#KGBoWWH{fcm! zTtK_y&)Alh->p-aKw6q>g;C1RFa{!YZ-NJl$n}1T;rh(a`W3=ufxOkq(t1RL!W!#NmYf0YyThb+cNgqmp$O1S5?er4(N#&= zgOzJmT-AKOmT9B+1TxbW;?66RHDG4cr*8MwRGYU!hJJ-dT&Pzv zHR|n|R#LnSi|$6oIM<|23_=b#720)uO`u)lcEAe!GJG&pQ^RP>-g;T*ef=%l>0e7D zB{4clytxBTbZ)JrT4EAtk|rvtx_|N`KZ-U2Y>x%peLbGMd5l*g0a$Z`qA?6qi5fLe z`mD59+0?-{S;)En{h0EXf*Pa}gI>nD(G-foL!dQ-DPj1AG__}86e028vTz>QQXfo3evMU^kslnw zX!D)p=Wwz4IGi|`VrO9R`%TgCaGyg*lVAWDXf3>rL2MxJLGJ1#=CD}F%$QlK@v+&d zbAGNV-3**9yJWkU-UB9s8ds@K5A_wPk}BTJ+WJJRlo9Y!KOIy6n8QZu*UwywSG36Q zqdgH~+Ioy;@|?z@XM@WNTJ>;jWu*?D9$546qDF!}6kHB!^4XE-FpkzkeMWCJILDvc z+f3w~V%fuP_ax9FU7p0XyObmKT-WcR`qUOvCWyCTYchhwlFW4%$BQ>a4YEnGdc^2d zJG5MQcC)8SWS_ey!gB#%F znw;feDMH#?!*pQ<9|L1C9pM1upFETKBgnS`PNYKuTe)e({at~)s&-mX{TW<3r^rm? zGVc&Ze9GCvjTj3pGr)g6mj5T8OZ&<2V1Ip;yccoj#Vz5g3Eb_qU&1o|!J`l~;Ia-C zSZ)!7Iplj>QRahES_hp(|*BF8OYdz+SK z*>JGh^&R7@Cgv&axa~$&8c(O+JfpNY2dH&BdrEj zvYOJBJmnzsW^|AOV(-#7nue?+hGB-=&5h1bq_1L_m`^w2{|L2uo~SCY^OvnuB61p@iXvKSaLW#EBoP<^mVtEnCg- zN2$q8!{Ji+j;6>C?8T-la;B;+y7nee0M{eEYtiDVFoSZF0WL7{yY`3Zz`o%3!M$2e zpTgdwU^Kr}MdRreJXGw$N#H+!B8T#FIeNSn>^sDDXH)Qa|Hn!}OFKJ2-_Y8L1kj>p zW~#x%O8`HlB5A+}cI`red7j%Y3Ln2Z7)_fn`nK5(A}6OL9c6MyF+J_N)ZBV^q0Ju2 zVQEhyq^ILw$D-BY4;S#l-x+F5%Cj89`s1n{emD_{H{3*YY*ql>=POlh?rRD{ zR{T#x&^KXmJ%8B_g|C~Lqt(5|b*?2{HpQ{a-k{O;ILe@1+$J_h$Mz%qEGu~E|9W!+y!q$Cqb4P(*O4ubiL4VB-P?Hc%Bm&SK zci>{8q8dP#u6I;g8~}Oc1G;hkPuhG=7+zxm|H#`GnKw#?q!$~9>65epIwU0DbqtmC zrT)%kJr8(9XfH}@qMZ`v)^lzQ-7!s=r=287V!FFCHYjT0pG)ghtlFKGv~9RLFtXoa z7LLA4KmmOQF$I*Koz@0ql=Ws5V&qg>{Lmd+`2hoZmavV<#3h9j=c575Y8fgZ7MD{6 zzuUSd&q$Z^wgS?+srEt)R1B=PIs-eJwbW8Sui%YNT6no@(w1ldvW+=#m6lK>LcXer zH7){SE_a4%8+T?E{!}9Vvpp09S$#MOh>C4ML9@jGP=g;Y_r#8mjXkf7+aJSOygfmX zgm`gD9e@q|UOim{-O#k-%9!rK04&xDM7S#`#4=SeW+`( za)!}}_2O;t*sW=RBZ>d5nDcg&>#j4jF3inkbvTjjvFtGU zGr}2tx$nkDNm*$*!ocHjPm6m#?nUEq>}qB(bFovwN!6O7YD3SIvcrb=@xzDo1{*vw zd@YNhy?=_F6rG?OMHx_O*8R7|LtuCAucPpu6Hj=qN_2?wYfv^MD3sT2rumr~00Lp9 zx?lvKxVm~)l(g@9mtmgFfoJRQRy3t18rL<* zFkoWBx2wk_ODTo!m}a)WmE#hHgt^Iv!vdUMm&u5W3sFnf$xpTkU=!=l)DjZwpJX`b z{90hzu5=32c-bTGlV< zkdNcnVuDdb5={<=Rf`wc^Hs&h&sW~N+S%>t#Dr2(d=5F0qE|@!<5AkD!N1Av_tObc zUfpd^=Qp>W5F{JsVrz|ZlI?cXCQ}vx*qf>*+N^0j3}kHIWK%{Mh!C${mGHm@ksi{( z)|Ju4EI=mU?P~9fF?{Pi(XoKX2MDA@zs?&S=nN&do1p$XasmL2ExkE{d|)g$s{Svn z{BewML81PC|4>hI*glmiXH^5xO4hF4ole2|o0SWEMif&cFqUJ#C%T+TPY?p_j!cOL z?SM^8u)Z-dkzrkW50_|TfI=^DbqMX9sO}Ms?5@>{B;)5q1$v_9R*FUtsU;CW6U{!$ z5t|P0sn-BFDuQVN03v@lAt#rJFsMukX;! zss?b)$McYHT25?gZSeN?)AzQg-IrT`dwg|2!2}aFZG}-O$gn1D{(u4nkjnRP>%h2k&p+ z5ZVKb2WM{7L`4fV29Ax=`8Y~EP6i#8CtqP=MuhKi+AkvGgboH5C|Jx?3{IEEX~&xe znN~XFY;6x6pPe&-f@lUkk<9e$}fbYMrvke~&^gIsQm93!(w3w8MgvUp;U82N}TCoDiTz{|sc)a1a z!-!;jM=PWZJCD-NHT#Bt(7njh%E!DYC|nlTCm$8X4s>|bWTa?ofT#7h2=qL(t26*> zqro0YxooqEj>J+6I)RUmSYH=kO+kHD>l|bBd&uonkrCc8D;V~RHJeXpw41HW47!0x z!WSP}8fBgSQmC!OAEQ1}_sBfAKp{`;q$IKEs)RL?s2$ggq>1L}_2A2*Iawozc$LV; z<+ni(=UG2m;BIqyhxdN5^$;#C|AT}U+N1H8_LJRbpD;s{cqNRuU;J=_5!cQMRIY^% zA~iO8*f1t0w0K13p|LQn%?(1;wh^S;qKc}K8EwEbSf&U4)TUtHwy~u}LPtknV*O$# zn?i;R2{geiZu47D;~?*DBR92G@+gE43$~GEy5}s3(GIy`>l}+l3XY$8}ab<2%{ObjkNIh zH#Ioj4}}4pR!?1!wUJehK#q;Avop-%bKMFDWM_{>6L+L?*}`wIV4vm!S$aS+!f$)hmX zD&*6nj+>rk*QvMNKO7@3>*#e?t@^o;bYkddE+L3od5(JDp1Sk#fpns;p)z@=2YqOhTCp^WF#ASJ1ip>&IbgN4mr@(OFtjgidaQHBe-sS=sFuV1m|RWFj3C&R%~CmCUpFr+7#T<_DHYWpQQX=#fjmLT9t2otJ3u@m+}YD>W+cr($c(hvdZAJXP?&xk*5w`b8dUJbzTstAv} zQ^PbAGKb^NlxyLBs*090RmV>$0xxS1V9bJ%yB^G?aqQ~ww-{h;Z!fVP_7_T;&T0YS}^D7<3uaP`5}dwi{e4ZGqG z2UH0?j4u5MPE?}86LA%wY0?tLvHR4>h#xn3#@l>5%k=Ajm#txQtox&h?xB70!?hxc z0=4Amh57M{vH5I7)$;%RE~h`#7%G5pObdY z7Vm4eB>2bnYC}WSFASGwXt`${n5Sey;Je592d1B?TyZV>`C19DxSekv0i#7D7HDX8 zDk`iOWAk+)V7|b6$@9KAFb~=YUbIB({ioi~__&o0to-TO>;;rH4PXaiU@xYH|FE)B z`JRE56&sL_9Tsu=&~Pau5u(!;P~k9U))h(M`Z0zHr>x!YAs?Kl<2Q?*NQf}NwgvPj zcUa`TxH`E1Z)(XpsH!WduD%s{X$627lDDP~Ii{#H*2|f#0UgWfTrR*nfdy*1V(Ccy z#tePEqK_kBBD%|Fm{f5z3>-Q@u?8C8cF+?~8R{meG%?z6a%aC(4i7t=vptxJE&uB* z#A0Lu?sQD)$)%*cygXYihV1TrV+F*%ON5f$TnK=gr0c~d|F}4e%&ftCR?nB^UA;1- zwrsFG--A;Qi{U;gfi_OBZjB{)9DzB&9SSM>y|Gx}Y>OA8t<_tn&0>E2<oM%>5<3SMDgWbEzfcV*fDiqQe$#ta2J&ZrOOfc2xB9C7SCwPFSKbb+env~lX|a?< zPpk@5dD|7159I*f(Nl#^zI}}^QBQ~y*Ddbqv;Sp;4z_hBCXw<14*s;zu4kK`DJLH# z-Z};HCnF10-KN3sCJh)FtZ8*`c<6!WFz(etaqKgRdJ7wddPHcW)z#m9We8X(ZMcrtRZ{=f%xG;o(V#f*R@z`VX2sNa?OYmK z(ik;Ayn><$fKjoSx?<(}3Eu)pSMy{7s9{u}p)Xj!z}^F>w2ZCG(02fK$MRl5TXP9P z(x$CZ(>Mmu{$MY2vW(nduUTbZrpW-B*uR+wSg5BnDDRq1-pcm9LKX5$j|#Iw2OL(K zhqG+;RZg+NFr8*&5%^e{!L6oP@&>s7JjiqSxlqJ}Nk4?Yy9BwJ`_s{gfbBshNK+G4 zW%N+hBii5ByF92!fI#>7Kd1ljeI~J;*dA*4`;^A?-;_y7r>MwTYGimY`ZJbUMM0qy zZ1khJTEV_uOY4xSW?R;x#Nw?=!OO(VRi8Axdn#=k%)+2cF}iwIgVvNLZ>}!|qKo8(=6ssh z7b`dV%XW4C2_UO*#sB3}W^t#^Q+V0tP39*MwPjY2td*yC3k@jWxD~A(m^`~Bq+0?{h6m!S{h@K07cO8^wIr#_aI=>6Qv{( zlIeT4K7my^q9G3Vd%_7BOSlQ7Q-Q#4UY<~7#B*}5-vI7e2*y`a(=s>y<3=Z+P%M_( z%3spYLCH-03Muz#_#;`wv+Y8I#~_cBE-zr$);JEfQ@QrB3MGll|} zYt~rM2G_XWaGhs+bto#EWRzThqn;BchYKG+jK~1cj?1gSOI0TUoMt3lD1+`ycigA7 z8X00L-sOmcdHT_j*i^ZGoeJ{5#p28`{#qjP3VrS(e0qLVA76C{GT7bRhNo!9U1eNx zcFliY_1N{gb*{mVWqp_6Y?}yaoGgaPXZi58FI?DSK4<#fuXXA|j%RsQbxL_JJCQOD zZw1Tkz^R^Vl62euFs*8D254-}6Q{%1zuVM8bv*JZO~sbfmhW(V`Ob z=z(Ea2mp_L7=wI1F&i8{6TO_tz+jC*)d!PJ*<^WI%2)RG{fcmsDa;LEB!RkW+2}a< zfeMvbY?ki#rb>i-ef>`+!&hqQ&~7+5RQ2_h!~=-|R;5J6Zk^?JDIDzi|K|c28aQ(i z2?OXvt~Ma)`|j>A!Ig~6^JF;%1n?n0Ty_?SqGyL=uHFVo%J|&hE*`GD9NwP!FdHAw zHM=E6tFxh}bNOtabbt>&=lM#M_=kR)CnKJ%>6Qk{Dy+byLF|0hyBwT{6aWeEJMD?J6G8(X{H zk##lxpWm2pvuW}*amz+2shh|3ej?#j!Wk?KERZTY3MKId?8^UV;Er><-zGfNo@ zbCgv7=nV5KnC35W0O3>xVB&Wb3P%%tDycA!z5_!K&2lLs;>sfqkwp4ozf53e%D z$E~V#il@%&?X!sRwx&wwYUoR;x7WqNtm$5pcX03$5fPN2(1ZYWZV(74>?H+=xHk(0D7Ut*mjLsSm zMl&wpzxm68W$W?JL@ZNa2CGw^tPUOKVr6UFm&WP%Q2F?&A|2ggDNN7q%lLJZK|+yR zy`y$7m05XdNfOXX?Qn2ZtlBjLX^ca8q|2Ap<%88#{0bS`Eh-L6Xz}rtBJ;S-LA-r2 zc~_@9r8Pyx%D~Ip7_V&i#R@zY8B5&`rcF!T7PZS0;lPYi%?aEe>NJsof#QIy(iEg} z#}^m(U3Rv^^$9tL_obNf2&e?0;j}()T5y=bw4N!i)`Jt(!(yir{5 zQhoqi!&AckQpWC5M%zt>+)xG@k3H_;a+?uzD1}UyF@*zoBR{iM!IRLa45Vs)6TJDL zQXr+Ha}Y?WE%cWT-VwF)^_vi7?BQ<-2Su~6>(KUcqnEIW!~@XC1n-jp2kFepN~^o!}@79lV00e1TN zckHAQNb&x<6Ba$yL`HBhtIKC*fKe|W1;ZlN=|!I3 z-vCrZmTRQaGbfE#Rn-+LEwF?Cxt6onsEzrhVEA9s;NQSP+D;JD0VySJHlttR{Sj3E zBBn)Aqg;*UbwYmV))XOQ#gzYw(CrM#1btjsxi~@1!21;SQpYiyy=J$SRD5Di&x|-# z3+-;$SI`lVTq&|do8|nLwZ69tdBI^sE#nF zM9LM#k;xG`;|mUt%iW-0Mkf6KT3#Uir zBIIn2dIt_U7D;_DD1o#{qA8&pMp-*u`!lQ2`OzF_RECtnV+9{pr_YwmSTHvX*nHst z0<33fCq3*thbu5iPAQ%j)sa>oSfZ=MY9xq|m#cT-NUobkLooOYzq(%KrIz%{i__yh6 zCEHQ49e+-H*B6#P`y4Wbpr?G1B%V;%1Ah+_VB6gklraKjI zr-u-3Kk_W{B&WWS6X>yo`D+lOVL~@zn{q!WA;7q}*U^G=?9fGKe6M`_i&y3|>DzuX zOd~sB*mmK1?Mh~;+SyK|cf&qe_p@Ks?}|15b%gb`v+u>N!glkY0VOH6W6hF>o3Y#5 zOdJ{{2&_z>^yUbs`nsmFp~%e4W~p^=qHrh=5zQa;KSb3h=wQJOg%|&MKKfJjU>foE z;bgJKvX!n!hz9xW(wE12{2F{1it>4LL{_x(Oj(XgCd3R3lnSq>!O0b3HEr|;a6G`T zwqIgtZ)dSzN_W{t_pv!4DDiN(E7M<$igN3X>FBDXzBlM5Agx5JuN_( zjMZ%s4UGweem9SwsTTVCzyA0k4unOOI%-{RDV$yj+3Jz-o<1hfFzPD2dS$iIb0%)e zRx=AqjkKQqtIjVhK;G!-dBpz2&VMRA#jWMCvb}uDP;fVLdv9a_Dx|>WJk^`zgs^v` zwRBET-ZwiV8GxvKgv&-x)0bF201yzk+>`@r$g$70#&q3t zRZY+ac)gq*kLF*Z873HO{{5E4H6fI;!4ni{DSh;{21|7&BZH70cTZLiYhv!XhAdpf zxD~hQSEJFj&i&8nOSdkymzn#)E>+Y4DCz zGK)suELl6JUOa%kccgItL)lwERTcez zq6bhwq#Nl*kw!XHE&_^#G!g<5(nvRobV@ghq?B}rbR*p*U6*byynX%6e`emBHM8cO z#ah5U=j^-V`~7@#?=NJ!9z(=>Z8CV%Yhb*&S)Q(+6g^@BB|Kr@?It>Xmt11B`R&`P z{KF3Sv+2E=bwM-ykRPr6VLz391)Z(gptjCBF0Im!eF=}GSmaQ{eK)@|kg~rv_lC!6s^#cNw8UB$ z7-%z!sY!(R?-YiSwD!v%`}>&N{ZM}Mj~AfJ8f+_GKk({Z)ieV3|54lXHy1BqYS@M| z@}Eb+rpGVzgv%K(jI6d|nb zZDvy}0^lJ10erd0Lb{|&OZL#WU$!yw{y4N=V-6X#bCz|ep{|OBPz;${jJfZCKnXQ z_Ey5(Fj`L3NtTay<@A*JDaoLcLJAv(*>u^u3bAxNr}W#(Ywj8MorL%Mi*k50$DaG& zey53RSo;!!$|k*H{w7a)g>jQYT=jOAYD$d!Y=; zf)ly3nL+mse*b=!+;M9N3o3O9Z1wVL`51$NJDY>rb{M<2WsE z{jup~>!^w+g{s;_WXPr9<t~)iUp&-k4qc&~@dhM74)( zGqY}cdOX6W2oB{3@gN!rv5#Q?VA)}kYIL7xzAml)!c#NrkdM-&-R3Y>kg$_wrM4#_#K7nc zb{UktyzSIiVXj!(p15s0>gdNgIcacNeL0xH5S0A(^GoKE5*|f;_D&b<}grXZQ z`C?2~HhQ05PzUytJ(BaH@L|WYi(!}%Y^XE){U*(4B}zmhd5N=Z)gV(j?^%T95o3jp z=UpDShsCErRXa6>RJ8EF=(;cGo2Eho84CwdoohNoEi(6`Uq!$Xc_%I+` zDspO4|9UTkO~!4AU&b*wnHi7zLB;#-C|?Yj5tFrKZ~Sy8Fh)OpdMG~gGUuSXDd^q6Ux62yV#{9RdH+aDU~sv4Z;s0$a?lc zF*ugWS3sj5VFNOa{xbp@q>D?grPAspG+C>b{Pnw5WkIIJ@pMI*^(@rZlB@Hndan>jM_-3!4sk`b@LZ$YuRRa`9uPK2gC0%pyOp`EhRsrO+-0I;3WMgE@N*>Cq908M6{)2KawNj< zPy}PBEV&Te_De)|w%B1goaRSZ1A0n%Y3+}`Rlk6$(afVTay|6L@F%u0EDH^e65bh- z-LZ#k9P}mzLLHqv!))c#Irjmg(WZDKLx6jge-(B|JN>r_;zGaRQ#|28#!;rpZ}o=j)C+XHl3)f%v$kBJH;x2k zczVn=yz;t5SktCIAmie!wq0W9FF%*z{}5%i)IwTeo;6x{rI7X0btj>{sX+$G%C}^5 z)t@%>cG2QK)z-^qaA2Dk}YdGRGeP|g$ORMr=QHMT&B@FXXp795!nmCagrP$&cawK=u&F<`bY7VtI*NNCDtgQq-j|QDYT7S| z>6eE^aNklp>&Py~q_J}lM&A7<6H3xnjpp-!C{HyZ|7$0o+2hBz`HOu2ff+Rri$Wka z9kR@61J{aHj zZTvN2)55uyAm+DEb82d8DbJO0FX@QL7nVp~NJjY1i?1(U%B_)-e-I{fz>H|OUB|@y z%)4k3iV8Q-10I^){8l+>m9^HK{xPKHKr@uSNld1e;0fBHveQIl~)EPbpYN=R_WSf7s1uX*h zJZrq@ z>lBFz%voeXC;gYyb;L`BXs1evMxBu_sAvkuh%E}v-~S9Am2mq4%zGp&4d&L8gJYYX zWlt0g`V2eHUR~3=J3m-ZO{_$@mUuhtkmG<%2qZk>s(C|5~@)H zZD|||3@Z#rB?olkZR|(Es`|#ZR=S_Gzlx9ulCqnpp*}t9-7V{yHEx!)L!^>1){wZ98wilcd;(}eUN?78OK(klfAU7 zz4C$4_U`zdG#Ft$@hYwNBi&*lO}(5AyePJc5I5-qnnmjRPbF1Vj@j+ttViMy2*XD< zV=jxg2$$yl>}B|;l2XFguf#vy^-!RU z0KLJ3;9Q}$g-(U++7%gE&x9SA$Qfj6B&0xaa!|Ngg7fihL4RjlE|#6h)PRzFvTT7= zIggt@%6vwq?dka1iyzN6<@;o%ebAmV-HT`u=Xed=-?OEw1vX9M6@wPDdv#nln>n;f zl;sOfGp`~frgyfxqM}x;W^Q0G_3gg(^s}1IM-X(L!H4kQ_=46(<#wz4QrZ~5WwhKiFr9D3n7V%PO-TPc-u1l zNMWC5BPX>({IDy5`BiX^Jca9+8mqpeT0yZ*Qsh%b3E`N)$8q%Zw?Pn;fs(UME`1#& z+PIVu{Sof!a@rR^LWt+__T$z8>&>)hm}pK{27O-15KC9;=ddyNhTY>YDh~ant-tZC zwq#ADd04tlH7MwXCDxv9e_A^z8GR;K(ojc+1wEbN7hk@aXo9=LYxV*+K4EydpD$(S z7wcV3nXbE@+HpOeZSuY)gB|a;R`sQO?@#D^rrEaKStDO=NO^m zQNqzxh62Ho3*Sz0H974ECs5fWJKhqF*JA6V+^lMJ*E0~dmK?l}imfP{zY@c;`>asX zYnj4P8BIdHQaDj(-r5;tmuh9VdGffMOqV6#S_TawhfQf$jX&P{o8B-oDlZ&0iAbD8nu3XQh|(glah>Uv(Xr zMBcdSmGYtQ@xc=lRY!z)=cmV6y444MIkKZtK@7o8_s?R8vobS3jOI4L_>Ftw(>)Bm zw+rdrPsPMM&K>s}MVTIM%95_HW~JK?Y{HHQL|^H7*lB8OD=nP;4IzmWUz>NoeFmG* zznxy`?m6iEkxULf<;u)tD=xBHmlG?ud9UVv9h)0AQG!WyTv0fRP#aZ=61KmOBipqsIBP+Gwq@i^>Kh7G2t^Yn?FW#v2^%_o(#AI+ zdw!yUL4eptlgea$L*v%vp1t7omWn|9*265Rx&HXgblISuw8P$)d+W1q7CN#6_aJ;V z7J2zKxs}QD>hJ1^vs!7bwslL>fF-V4wK@jt9yY0V7(^5k zl-}v)JZ}_MOMj65t=vgOq>bErt`&k>l!-~;#f{T72CX*1E%;v*&W6%&L1~sQT5n6q z1DIbRi$eL$O`YeWKPH6#4E8q**Xwgs_9(Tfl|{T(+A-X*M!T9_K2$uFb%_3A!(O^4a#UiAkGRECB+pzuXoChZq6jL z3j1H(CXTDGWrVz`w4{)M-ChjR%4dJGcDxG(YU93$ESwd3`K|WHg>P6YI#)i0t1lfJ zZqUd~K~aH*@x>^?P+O4xoR|9nrOmmH z{5=S248-P|$ciZ4nt8yh;$`!z)BWMB7IkMd8`i-a!jdSdaaVmbJ`W*b^3>6Xn5pQg z@147N8c{uN&~5`YroWhAP;xOgqtLaO)!KURR`{x9YX)t!5nT*Q+Tb2q-Y3I#y;!{q z&TwPNcx$73bUczW(K;ZeqE!XgULSd4Q8du~Oa&G4nRf-R5*|EcsQbaRS+!PfaD^Kr z_b@Hs9(uS2?62XfOQPds3^`yy(4Zan=l4X_l`g68lfAOekgd5Q<|zNJ3N%Wq8iIVg zA|$0V0o>5j?Y~Cs@i;ne!bXP)1&ul|0~m9OvU5gi9VwjLX$VNjOjAAvpP@ftiT>F0 zP%8Vidwd{^Vo~*WQQVL4mU(x8{@>86yY@@`Pm^uDJ}6#Aeh+xS*4`T`%D68UL};XB zXsliy4J5XBDpi3(<;TzB&se8qsJ9UvD$#PnOQQ}9!B)GuMWSm(bx8z^5WZabFz&En zNp-{Ffavj}uZ$jl@_l{x-Nvc1hJ_Cf8~D*NFj|jq@~K-k${;Eol}@V&)6%*@SJ6yp z^zy_anDf51TTd^ZyRAZj{-ElkaL#uNTcQ$7y*Y2A-JW{P#RqRY5(_H)_&^xD{=Lz$ z#7w)8W~!x;i%h+q`ClVXPM?R5<@a<*(kI779ALxJ&KOn27?4kgS(dF}a{oZ*mU}bp z%~L*;grh@sYA+t|y?Li%{W>F=t9CM0eu3fq;<)0s&a)w0{&aa#U6ARFB>ChV3%O6qh(lKd-zyK7Id8qM72lP^W5( zDC$9yKUIKJB!vH={B44X@xzOYN{|46ul)SEj9jlwMh`}pRJreTaGWQ7y{WETEcDa-()!7}ii*xy-o)|7TOVu0Q zMG*g-DX?;3+f#ux2&@o$y|^;h%oi8h-T5Gi>t9Ps?jHVDw^y|EfPRO~s%%+7y_`3_ zJ%)iBIq6jEbP-uc5JU&b!Jet6C9j+$*fcJ&yuMr*lDW;0Xh59CzO4%W?J-g-V)Fa5 zOTL;Stgz6IOixHG0V$euKugSV@ywncz1>$b+MoCrflf`8(Xn5oHS;9xs&d06-vv6xIVha z%*;2M6GBR&>y}5KuvhKGfjB9~`x$ZKHuJaLuekp2(J+{qa|Rx&Zr-D-Np0$^`+AkH zsU`KMmBqtZl}kHucLPaaGy7j9&~yy%%BhmOrzn(c|7{?HoBQ;ZScaO7G0!0B)u3Fj z8pCj|wi@iNNDCYuevqTkpCB@}(1HL#a_3JDwdaN=Q>A_bIY97k;(22hrQ$$ORiiZZ z2#vFx`u4E1N={w|$0w^y6oy0x+B=XNQoeD>u#%5E^U{Yg9e&=4Y#&z@H#(aAq?UzV zP1X4zQ$gYx>>r4JX%VOYG*=nMoDq!W1fO-#4+vtIbDBXZbHyNdoisW%y5dQCn;E^L zRW_-ji1-@V5t`?Dxryerc7*~plYJ$5AJB4bE%x5X|4lq8k^y=SO0K*(B{x_<@(}7Z#-qtM!z6YQT=f5oGJwUVN6_|d5cpnSXdI~ABdx8 zIvXU*q*r1u^7dnBYe%~q*DNRxBfUmWC>^xw_};sDr|jNu(2PvF2tPRAwub#43NA$O zV#Lqg*toarD=I;%LsY401W@#><{n9$FB)wvPnBt~zZ_}wl<@ZO{S?T?IiRoM0zvyA zEwlX*RwZuZ$7SvV{PvlK0y_;k?BdD0196#To}_RkjWe+(RBGI!FEaETut)cS2JjGa{Vxe z>w}rShO_kIhBcecFd7cc$m8V*?-Y@W(7>DP_1Hm)ZN%-JN*mL3@3e&)du)Q;nRvHe z4jD%$!+C1x8`&tNp{X91n?@`0_o;5kqGu|$V}G@MDdRJ)DbO1rMM#+(dk%t`DnzkG z+HXe7q#9_l(a%2zq`mx85m$dD^ItuRX5qQLaZWqhyw5f3vE=vciP^-aS%1>#j7_>M z?Di@>GHDB8>V2kbywuW}qDaQ!mXQf#zv@MWzTAD%%pA^GS9*KiF)3~p^VhznrfWag zH=4@M%SnBBlg-!#n|)ez$IUNc)M2k=mSph&=9HnSUA`fQ{BA-p8>T7r>Gldceq>$> zFd`O9_x<1g$H(~m7}fjFyKhl6^j`y^YA4~j@m*SQKG53mpRjVNi$j}2-3DbPPUGv9dAcZRPv5ih{*l5H5B!hW+maect_lv^VHB7o&Wz)>ACyw&8Xf8U8J8U$1dmga#k z7|Y^y;!#JU>%tZDJu!CC9f5)0=VC8#_O)EMVeFEZU-bWB3cqeO(U2cmDU9FF5HA4e zA&dm6UbV};TyH<$W{+fNfkI6LL*J!1OjAi{ukQi#8b5zsm@qlwd)u0uM62l%{GCvH zPsJ4BacEf3fpGG`hC{)7qQaGT2rGXPEA5_<_L71=)!i8U|BheqSt&-DIDBQTskYCb zPi>lTeg`K7V;v}ZyVYj2xKE%$(8kx6gV4vjud==jyqM$O^Shd@31IR!BCeUDDQ2Bf zY&y4o{%zzSN|)GJbiJ%v!)i9#ZZDFx@tS6r4#+zcm07RI2#0`lD0MkN z%h#y7>#9)Zy6{s?O(n+hQuSQEAN|JIJX=UyYHd*Lvzcm9S1s32)scn8>m1(fF9j4; zf2I(?PBuYXmljMv}#Yx7r>odq;y43W{J*dgyL#yM2_)!~?Hw)N5Yq3|; z=^pVb*&3Xph_$^PKse;QkXr9?LCt46?R%>Qd=x#Ia{e))Xi|iD%J~@(;=rv6q*VFPa!TIyj z?&EHM90{^h`P4`FLsEFm%uMGg3Aej~Ylpppxe>3kv7T+1Sss_>vIuLruBUc@eZGC^ zO>4pI5?6=43z38+S7}udxndQ|-~nJM z%-Hnh{_rMYs$&pgdvTAhSzihe%?eP3CCrJ{)YDcyF2^)XsqN*J#PvSfpPbEKg zd0$+WbYe;QyA&S+v*mlOw#Z)nhXt=*W0T9e`&bYp7WSZBRXt4_l?Rvk^qox9B=6st z_xc#GsETDv)tC|uf=+IVVv_S0G`))GrsXQDrU}Ev)hASZ^gjV;>H0C(g2)JYpUP=5 zUvC;@w$|skp2|w??V;p%^;)o9A;m@B!-JIoaXO=>D6v_V_shJ8IK3YSf|~K3G+UgS zJi^W1>|CLLX*8ZF*N7V@{0TO-6iL-s1#8&Mo?J@I1DYkQPEF3^P%izJ^4oJTT-dPn zk^-!~{X=WO?WaJN*Gb2dMijr(ZRhJlb?bIud_&9^|2P+QX-RC6gq8b*`=G42`qv_ovDX%zT(6XM909O-f16YW@f!I zd`$uuNMuxwW3HQAenTa?NDAQf+iXGob6FvGO%@2B`at_k=H$;ZamY_fH_ifxnA&=59b( z`x^=g%N%aqCv&Vg@B8lLJAV%644K2J{pTEO0M;o7%jf zz$d%%7737hZ($4QPVY-*G1)L3b~Ev4h0o>=O}@B;B> ztl(6#-GHPa6?7;=^_CRADqRym5_@)N@#YQ9{&Tf_?hSBh@Mchw4VaLO-W&|yp!`&cA;x6rCj>35y>_K$7d%Er( zYjX|x*I3xN!LnhNZe4w`^YwwuhxQPRyHnqZtlZ5D{~-`UyLw`DXP}3jlLLA655iZ; zUJ-6OIIXLs4!|7|mvXG#si};?!G}S)KNy{sT8zQjXs+T*DvA~JjuQ*T^@kh`+BJu9 z0W?@zA##vUAkk;Y^n_QK&39pehG?C&8BZXar?gFY2Sa-papyd?OmB?G={H>HXr~w{ z<5DlnY>OY>mb=NDn9w%4t;w&>*bI6v`OO4&Syr~SX91n_EHOcFUe@ClaRG~o8&^_# z*VTP+DD@C)$}%R+>#3)RgPHi(zqZGAmJme1NsOX*g80A`^=Io>X9Q3c!>n30wccAA zzA+C?hZGfThIvlO1I8j}gOEHiTI_d~wpB2ff93K$HgIFNib&%28ihf`_MMYm$sj^h zGY-I+3!tb85yzirt>pgJP2#6RGV!1J1Du3(n$~Oy-TyF`Ls>ks94C&7ZP7b&H}|z`NY}eE%N|O)1nJ`oG6Kws~9FW9fEaPXN1w>s?eUsYz?-|S>0rx5&NkZS@sX+Xz1@&-?;JL zqC(_CzcJ2DlPz;FISOm(Z)WIzp$@(@1g6e|>;7u?&va}~sqfc~l&e7_!^Z=8_G?s= z4OhAhpgwRhjqCf{cX${Og!;sE;8S*Gv0~3QzC{K1v9Zyu!0p zSQOS86}8kUSO`u5by-Z_c?8cmr+J)Qp01i{QO2E&g7VqQHn&LA$=%UG91zibuUJ*{n!a6&v5C zxpn^YuT!mZcdEkZwF-5~gRaf6BH^?@WFWo1O5p3Bm>^L)_e&hf+s1PBYL>z(lu zV-DO|h7(ygXxDu~`bVX?M7!}fcD}a|nU;iqiNrgvomA&zB=|iCA%mbUGvb%8hysBr z93351k9QKIvT}H+atarJ=~-(%H@4j2T0_^%9g|XUz27RgHL|t!Sb7N?{c$h`v_bab z$FIZoHWzVS&ra@JlzHp0WoBj8>81;V&&V&+Q>;uvB>qELAXw0jd)N!3Sv+6E?ANZ{ zuTEbb9o7qm>r`{Qj{UqEtJAfq+g)W%+pkIh1pYbGmWoxBxT%h-;qc{lu$nU%MD)%R zjE*bZ{Y^%QNn7*a#oAin2!_2piW#Y6|u5QVAE>00u`MuAJPFG;J0x2&|( zC$MjgM_AYnO;{G_?yW~m!99`mUbuvY|jN{^R%01|{RkICZqOf+|8G$Y5=x80Y>n?M$t6!fmT2 zHCInlzLs-%w^MeMpC zW-YKbRDbyW=8$%=KyT4l2HQx*?Pr&?dXCDD`1l!6$9vpEiawc^XwK^86}*?cskYx9 zmxJ+pUe0W8;>7E;WM&y`QA1DPdfWkr-i%XiVeP+=L>br;(jz^Qhxp(H&CzB=zw93Y zRils?Zc;XNq3MY?S*=`iG9EiXwpab5x?rcsqPPODWf5?16@+>%4PM`L)gwSlwj*8;;KZ^$3w(>6M^QN8m#^Djz0D|2}7E{ueNt6}E2digD zo{jc-5JAn&Bi1CMpj!0h_G=1?le4+A;Y_&&%h^fdm3t(9q#VB$ukbgF z0czlPaHiov^)`vOU)_VneygayQY6V~BWW9)z|&SMvYlwES7sCt6}xJ~veqwH2s>^@ z3p+WHh|sDjEv#|f9+Zq=%6P@)2~Tr>@LXIE7?gxAKHkcl2c>MX8+@CD(zBymM*jo0xA75Es zPA#-(l#d4%&kxL0a~K#?VV_NsWoVO^ASsxAEO{qYLEJJ;g49@tXizS-hX1)woZZ-2zS~}$D@NYd0 z1zAr0*?eS5N^g)^FDaty>#PqhP+@CT&}K{99!IwR#u7(A|5HwYmFxpJHJ9YnPn3W| zH)(vzRhVGTwlzReBGKde;D%IUAVm&FOyp}(0ET3QZjX0!aGcG#Fm8Il{{Uf!7P#&jg_>yR?P+uR?5cXo2?-K;Y)Q2n8}Ev$GnUE* z=WRa7QAz3*6p~=L!yxD>R;OJs+rdq+-IHcX-t6-EM+{(L%%z7yuZR@+bsUrrr0@`7 zfdj(pA+ASyZdbdRziEh}r=!cRML87Cpmpd&j%}6Z*bbB)aKlvpJ4^)&FJ4!Gz=WM!;2Ilu!AD(i^)&vVTi-C*W}7bjDFxwIA)J@8p5`TD*F!P_#WK9u;-{K! za&p7E&Z#E@qH;VuXhJW6cXYpB5S+*?spBvt(?+m43RSs@69P}`Qv#*x2wE=Bi`7k0 zr%<(YiKD*HWrL>^N$>i|U5A;<8No7p$e^Y$6K*7$!h!Dv3!*Kzvn0=RsNHVQchwp|0zDmJFz84PG&Ce;cn%Kn!*>FIJsZRx4E++s1o?Q8&;xS~`oiN+ zkF?vK;we?50qxC5%WoOo9Up?U1CTZ)KZLxe_@8^Nz!39+zS#nT!)Xphe$D`hU6XBqi&xxGX*a=X`4a=eS4i_Hbu=HIrpWRJet77d3`j=F zn-Xtuq{T#G-DOeT+Jfu)?*{k8-!uf^l;=$L<|>^h6W1Dm)O@@Ry!j&gU-2cN*3+(zqL>eS#W?{gq5v@XrjbA`>O|!{Yv(JD?MxbC{3`&0zB!tdx&8`R zyo-E5rU7d|Rn*z!{d;_Z-N_QEAR*xB?4YnkPeCyaT;%(*#q=Q4PoHbRhi?&ENa{BA zJ09y)iII%Tzl*8B4h$TE0$tckHt2zO8yjSwEyQ3ne4-i+1B7540mpW{Q9nwD(7?OV12Va$E(+WBg%@+#|KW%`)FqL{@ zqS4PYx-+!Zf8BZ)TdeiOpBr%RcTSl;u~=U#qS@7X7cAK;>*vk*-Ou|W{TDDb_m%(kcg`le)2$r8 ztB*3yZ+{cKV79OX*0N`!;3o_3dR(4j*VwocP~J9>K4Kqz?$QV<1(OkCzwomGQs-TTuUt;(U<&4174){}>oNiT1w` z<^TN1exb?kEVznN|MrA@w70ikFKVY5grMmFC_uKYKV8xr_(1@pL9bsvaQ@kNooe$) z@(MwYFtP9E;%`6fpaw9aiVR)d5rRctUS6J`yR;1CLE?E@qRs<9&A|a>h7bEYNkNNC zs3^DusG>Qjci8OLb{>NBZnRt{=#PPdiit|afCKt}+Y{1fJO+b}<*(&hFrz?pkLjA} zhru}ZbLzWvUc|&|=%mC;tD3wxM1#KE17Ao3_@^;1PqMw#&;*p#l9u%XhfsY29siQ7 z@{c3S?+fMt_dH-VqW=@C{aXv9sj#hwG=UBYN8x0aVk0opFnL-*|!laxN!c@punEK znwlD2zJn(gA!}dU$JrZ^n;5-`>ogc2p|Ox$-{7E6+Qm5{fX59jz^vD_n@cV z-F*Z4F*$K?iymFcrKrUk`w-lK@~UzfGvCVZwgGH0iNgMYxo%@A;6{&ydFjzBNxoErmC4iZBS1p*X#=E03i}4~( zMg~WN*B?IE>BX%(D5&dAlv19sk2wkgW*-|Q5pBX{{|L-fl?hOF#r3P(eG82*&RGtL zuCHt2kwX{*9?2f|c=}p%8*ge96APVqy86Q{_nv66?C7 z7mg=(XU;)=i5Ki9YZId}6EQZk=O47R98Z2STa@v9LWBND*7CZ@XFn)Q{81M8)01XN zIfk+P*$nqG?odvCi2T%6(E#d`RdaV)(?7J?1Dy_YTdED_uU&Bn#;B~BmPN$%P2k#0 z3l%hJ+42KUAB3e6r>6LhibW+ufM9MKjVVsG;AG4wsNb%w#c?R~5+)p8EqdswIk6-9 zoRU8Rh~7@SPHMr)R)}0l#?7b3Hua73)K@N~uW9YU8O|jx?T*!UBV+o>spoY+D3AWs zr@oWxt4yDp=>9&lMpd~!>=pj>H)&C4cwbi+U0=17Lk|!rlf2Bm!tqhDPqN&3P4(C7 z?HuJhIuT=E1)-z|`byzzi(SUeO9p z-Sw`^5r0luj>`v!e%rp~0wxrMZwRz@B&uMt{&#GR>p^}1nZ?`Zg_2%XzkN(vHg)aO z{{kkEvF=z~8yAOEtbN9rnVE4;@oQ1*YieA7VW0wq2^HIRmorw_=D_r>`gVf=rQjqZ z3gn}g$5ueTLk~ePIuOW(saDlkBh?(p6Zjh-Okwa@HfnSRo3A*Cu53I3+S60-Kggg( z2i5XBJOF){0Bj-rkHAL!hl5Z3{{Kk@P6zN_)ZE7i zj|KAiGYk)PUp;*JMFOA|2%bR47@%__dg%g_Qh;C^K}s9=2&4g*Xg;iJC$bk92-d_dLxCiy?|hkTY%F$m;%do}%@QIZ1ds_nl$;GEZ&e0!E{l-+9QXM~(L zsG-bj{PH&qDsXZF*Peve{CRD^<0mSLMFR-p<_5+Zgm_lxSI5&SWH^jDI5GF8G2_>B z<(N+ofN^+?4JPLgZTZ{ks|>c6(guE)nw~z{MnDfkLCzX>;cUtSA*1jTCzV3J%hz|a ze^Y~1zk`Xq7rM_5{8g&&9@W%;3G8Tc?pOC$)(_Q)SvGc6>bwimnQYO|Lvi@f-5-P2 zSRUU$3vR&zE%_M)r%h@jx`ekvoHEu$L>1#Qe^XO}44d!hLIi3Y$zIc+t1#SwxwXV} zJzkxECXk3F&q&)B7kG23q^0%tE%*t}7^O|~1Z0Qv5xqLE`F#bc&_o|l8R=SzZ8eD7 zYaSn7$qdjt5TQYsL`5h?63B_a!+DM6Tt#{(8CI9Q<#>L<-S$>1UF=~TO79lao6g<{G8M}g1Hx49P2 z>Fp78cVGqoA^Xoqv01#NA?>@d=jS>MQ7aA^IKDg#fRF-BL0IFhKjJ3Qyq{uW0zq{6OB&Ve!GG(UAM|!c$s_}!|HCrzU&A8v@~fK>SNy+RS(^Vv zJ2b0`aGzTfkyegURHWGX1PEy_7bW~;8^B=J9K~7BYAlMs1d?dXu#hH|B*<+`KfUBH zF0RY+01NRy-!aY$Z8x-YH@5t%$5 z2`-kusZQ=USvNWnUkn-N3e0URTZ)>rmU&_h#>7I*&(_!Qke zlO`req=A^R^}PG<9`k=^nNGY@$iq-XBrtIE*BhOxi7?>~FpVUBB!!zWjZi0e8VIgG zSjVLp=99 zz|DA(?fMk`J_O0Qpr0exxG+u`EhR9URik0fVY)dKAEM(ma}Gl;b%PV7l0H94!W*ua z%o%eLdjm?myfLAlXlMcK{xR}N#*)8#SG|fd4tS3xfye@qGf<9EOdnvWl@`-K`hH3G zUpNZFGIdHE_+HS@Y?_blOEqwCvkSqFWd!ePFp6%>c#-W~< z)!bSwSd+BkeB|588jbO|dktjg!tTOYAk|~67^O%Z=_U5jTe>=0L7KTpyRvVmmrR4R zIOX)R9D(6=a2*4f=cB7!z5)vaqSRQoSkEqE1_{SHXR}3Y1 zR09d@sTG^fhXiA>ll4&d{(tdad;5N*4wjTYmtQ>Jn97(jE)dRJ+fby(@q{EH(?*g$ zW6&_$N!Jpgl>t8!qWA|4sY46-7NroR%ux-UwNosDO;no7%9=~;i6AcwbgRsEaDc17 zAP<~M%=A-Bv?^C@hU0>RG$g&a@xla+AgpUtS*{8Yz1=I@D)yg6qZXwYaUhOho0P+-^a_E-Y*jb(U-b5+q4@gvIWLZM*eB8N?8eH^BB9SfUJPIlL&3e#>cU z%u>J|!Egc!`wUrRH%RQp&y63|d5`a!=jAo8oRG4`y1hQtO|>pvJyOOqAsR9jyG>Cz z8ypzWy9L^TGIJoLFKN**F~;kO3BW^J08xI|=FEHt#L)93CqQ7hrjlV}*RUJNH;hTC z=7|=W^(Rxbee2;-tKTE6>-(03q@$|!!q6Z(tPd>BukW(tS2P#i=Z2m-Y%OH*#)Sdn z4ryYyv%A$ifAjiC-)RqibmrW^;=Y4sDk!F|S5*@}Ks&Nd1R~fWN_Ski-70d?A-b2x zdv6j!M11(#3xRv%q8DALt&CJ2>F^(5+XAx2Uv05jA8mGp7p97EI{rcj1pf)72th8v zD=l*sIQvyx9-Q6S%rxh-e~>lBfM}vRUW}ur} zlL=U3dw}FrK6Puq+Z{tCM|wuVn?NAz*=T=k@cMb^h$z?C1rSK5ih9rX_WrwnJPDN9 z|6n>=lh@XC*&PG+!84c4Vt(gJu1My@U)~^t z|MZxAank1=)SS0o>hew#3FdkPcNku-_-@qzjU-k_?|Bv5vdyKt;onXe6K1bmP2W)$ z7z-oVu)O9Da@AP}A-td>h&8Fi!2gyJnWf46KScby@$!irz#i_&2n3x%ekB*(i#)fB zae^~(1z6PRfGxFSGNq16BdF*CZHN#4V~XN2-cR-{_G*X6BT4g4jd1nse*q;kpcDdR z_uZM^w$yL_7@V=u=;0Bcfz3>ana_#>jCxG8S=D!?qz*Ga$XsY;AoPI+K)#ZtIB|NH zRmYyVru<>^7D$n~A)1DqwQCIOT;}=8M$uZDE7?5<&uW>SouIahuCVjH#jFGCyDrW1no2@+&@(XB% zw5UzRql3?#fRZuMhfHgEiIhz8N0-z%qa#*w=GoC1*S76vapWP)9dCMXvLmBJIL9v5 zN>;l$I;ehZOKXCO$7`r99-a9Aw4o3%QeV~>9SG+mAH`#c5)W79(=`Zmk5E)4B#MQx zYZbm1FU|Y;!$M^Ysta2B{1_M)$gb2xdb)j#-QG?clLUmH0n;Rfn}uJ%#KEGMTQ62=Fyu|8fNFOBn0TNrF#b2hKBiGfA`+6o@f4>XXcHw&)#dTv(DMiz)22HHMTyU>%EQR z+xSYi8=aTJ4BQ%>cY@Ri2?pu2?lWepnJamxIY=4el|B2w= zdwIs$M$&}R;7NJM3z6Jh165H&R+8`qmLaO(uZazr+jUb1xw17^TO8}+4;=VhQKHgG zIscnTj~KhU_%1?TuHWF&-Vn_olHSzcXymltF6}Q;nC&-A)_p)j0q~qaa!8vB5r^tc zEnup-JjC*JSlTA89Sj;GQ~bNC`Ts>Q1uk2-j^I}7>Y5p&Ub#^|Vu}o@TFK7QMIE`e z^Ri*m><$e-tm(q|LxJpcATI2YaW8@ZpSk)=-tI(XesQDonTQn*xk zywlRxoXpBjy?~Nbh*6yALrs2tYx*znoQ=1O8BYOx$!2AXo>6k@Rc~42kVbc^zEsXh zc;71rjBnYDwsI!gOWWQrIjZmWQKut~MS5B#*qQj4z>lA%XtQy1y8yTZObVtY8;Uu* zGw;vs-3PnO$l!jCX4Jy}Q8AELutwEaxMpgjESFuvGHRptThv5J5gQHEDOY@mi)nRA z#BpZi@*^(@FU&iT77^=i_0VKT&_od=0z%xjhD$;X)VAm8)uD+^mv2Bdt-aW{465aW z41(e3GTdLYe(ce4v%J-)2lpSyR(x>hfs?KJkyMBv8!QzRZT=-NM#O;gksTBeJT3`8 z-R6bfv+G~*)Naf%jUS|h*bFedA@Dk&#sUDyQ(u7zaFTfaph7kPkuJ;;hY)gQZug*&Le7cR6`T05+Q+KEk0+}Dq` ziJvjZLA;I9aJ-0E^nJnLgw}Ao1yVCbI;CQ^^UkaXi>IQ5EFiB6k?H)N!)1dAf0ReoOPWZY=m-@e?Cfa5lH3w*@__ zX=F2#eT+)=ugzXF@!UA{Gx+;eNe1lHzg?k134|JJw{$uE`b@2!kgJm2CQyU|8bivl zO`evb+6%BYp7E6}AJL-fNElkA!lByS_G+jw1w1gf*+g;1Ww5%dl~9`%8n(>VdHz(z z`x8@Bhr8GO;%(nA$K66<;vt4y7p2xXMRa(19M5FnvBq!j=(HB){S}8GizFYEl17 za8)Gl40pDX51Dg@Q{Mh7>i;3CH}C6qg==G6$2px9hk)h*!4tb5hXmN;t*W2v#n6B! zBA-zj78ZSBh88to0^%_g%AH$zW zxH(`Z{BWN1_zwa6`R5I6Y~k)p!k8(Fl#!sIO(?>d**aN&Zs{8@+Ikyy^ZVT1(vgb( zAP$AjWUUJ`<7PKWLiq97P~mNdkX3BMr|}(8#P((Ws8?Iqffu?iYd#803Ll)xDJ93t z$vu|fR;ZNG3zm94L`N^^LIKqOpDaBeyE>Vob}<#(0q1n5-8rcA)2?q+OXF2aOue}n zuNb~7-}$zObO?s>Zk0u391sgYSuGm&0Bwykq}KOc~=PqM2;h1(o2(@3RdYRZR$ zcfqQ2{U4V9!xam^Ur7>E z8kGLl;BQC19Ad9f7dL%>mAxkWG#Y#wP}Iq;44`WIn(88C{J49$HPRKU+#`&;@Kzx6 zi_d<8mQ74;cIEoax9egF%aul3m#MJgiS6`lugz%cFa^r8j1??Evd|OFa}|uDVv7lN z{nI+II+vc`f^EeAb88`(P9U~MkpYvoQaQ!P`W1HNIr|E9Ke3;noO0k$X8o>U@UQB& zI$~;WZ;@hZPMiL$9NFqvGU;qtoPAU4>?| z?QZ_5L>@f{mgc1cUsI@hAAfUGE}>HSWLF&Q`u&cqCoixp#I|YZn|& zZS=4fbfBg|&5#=VdTE6Rd}9@hS6#yb}IHA<#_L#g;}K2ZPlJ@Lvst_RY|-m!#`hy z1ISFkDQ8qcAbj%9y2S2PeM!dB3ITyUebaHwPLo`Qjc$@M2XTTbM@iu)Ga=`cRmbDR zVNO}B>f>8YF8*}aCcMW)G3Uo8Xxxn7G$ophMAeB#3H!~kqtE*Wyeuj87krNxre>gj z2esa8a)EdTxuh4kYT44-gTj35i}wefuUelc{TNh6^TSzy%Qs{l1_M#|jfZH`y3c{r z*C0cn-iOQjghzZ`U;kK0Eo)9rAOoUyUwlZU}~57h~MRmu{Ph60Lb!)-y|(h{GGWu$D81BfL*)4_t?vCyoEo>D^?|3szy}}gb%4lL63kNFSTzYNYnEf=|hdw^b zFQM)XMbje~O>g(y9UCRba(SK~VRF?-l_bor-8x=O=%$}O?;Po<_V>};k7x9egB8I7 z?s#$5+u~k=yYU%L4a9wY?`Pv=$U>k3D?u=DHb9Q=y`T~QP)>I8f8V7aUE29es{pRx zulx^eMnnZ)*NI++QT7yu`hWU#IJ>2>$k^pbcFD*EUSVGI2&T0IICXv>iTCM zAK(~rXb7K}9L2g_Em?Z*mzlM*QvcBrwHDxd`+4vBxmE5T@)^-YuDy0UyOgibg69pR zT-%bm8Mz|l`RtobQ=nOfsf^q>L*Ow}^sdHR<45stYsW(e<;c>g4Ub|(g_qmzsCy=9=UVA2>#!a?whJ`F_83S^u zM6*)H(pkf%lr3VA`1P`sg_RoI@BTzDZnG&bH&3E}`Oj0NdTOw>j&)j0tUc2C-tJY- z_jNbEmIG-o%LC518Ng$?OZc>;Ck^6fPWukTeNs=_LEHSmZ*Zc^=~xR)fzo(Uj%K^a z)#Mm)j=Hh`t=Hg4j3#cL4z8k-nv#;5X{mghM%t3sR@H{XbuXfao?c1zXN7jmplHbX zGQH`u$h_b6(*`bzU5R7I;e&T^)hX}H+;XG`Rw{1p21?^RelOERvvMuHUT+y6s2otY zSxz;&ulN>Yw0<3dHNpEG84Wn?HioenLLL!^XSHsU;VNn7i~KV66?GR}$|} zX8CGFHmtnlfW2wi^7P>I4A}{0cc7fs2e)oaDZNlKPRUIyluqIon`-nkL*|j`d&jpA zZxnfwl7e6z+3mhYZNAt^$;ZX}#~u>!$+zlyRjiG-27t^*+&$K$oP8x~UKItFLm2`QsSum?i+^$4O28*xPwtc4&A^(J{vp?1D#VL3N3|8j<> z2I!%n;JF#^C%tCR%yi3LZqI!$5LuuqA8hY?o|fp+_G63YMcah#4iy}{{w{;J3Vt=sb9Gd%B|c&NIsRtyR~^0R^SGvl zUURY5+r?N3f%A4VRte)jJA`HK)T4K7YN%@Fc5glC&6^wXLzP^(hA>wHC`pGdhEw-a zo*QVY8Uso^)Rd)?bC1iH5|XJZ>S{Gq@LdEt>hCa$_s}P@s@sW#1gl9xN!cDc7E)VT zQz4Vro>R+Wd)-9^$g9A%d7Qgb$MH_a4YUY-RcwE(Xo`BkQJ{xldx5inuzxH4ary6> zfIauKZPF$M&s)xG{NL|wwReoG+rovQXYM=SuiSYJra9WB7CX*o$RbX|3qPlG zY~BngwvshUW~g3WAzkR6-WGpfei64F`4k-xOzY;TV1UDa(M?^T#;!h4ucSOKUg-BO zHzlnc23|G93Hi7>r_JSn&v8`_dl%hc;$(JA+12*+Yw#8NwcLrpZvaQKVsv<@Uv#Xy z$P#U}m#_EXe3WzL{sbQ?2AsSB&(&7zbX>Wf!_2TN6@+Ww9Q|0dbK>lIhMqTjxkgSk zs$5oP<7|zpIBl_QUTgz34e2Q!dVv4JcIsN^rH|-gFxD|hN`vo7obMZpZ`Nk96>*xi zs>kk-W1V9MFBz;(%P-M-!Xi^@-m&%U=K|M9D|{Ha#X<1?8<<)&`Q(Sd9#7a;KADaNV8N8c_0r(>fZX=!-pAHI*3^o68C=9NuKNj|rjDe81AvYIZ1D zhS+|akunhhw`vFaZ<;#qhxzbRJ0v>D2_wug-!Pbyo_yN;d=s^mr>62C7mX>Lu1nW& zn_w?&3vhb)%`LhBzv<;p9&_tvO%% ziFC~ENxv^-?tly>wPh20$Ov@9T0KH%^{)T4xftDB)~}aG1-mMgFVJULbD~D{t#_+G z@HKPbP!8x{Y_ip>fQWb}wlh^|^d zJeScu+Z9wV?&-+&)NFi6{TTQ9oAoT${Xvddl#Zyun!!QPqKPz#a9j1g!Q)-Os8%U`Sc_~yLh|=@j z-_l2Z!hK*0!1yzVak}CD5w`=3(U=Lv?uLT=$c&r5W*e}_M)P&iVH+@S47eE2dJb5- z-xMT--20HyxRU*3`znV;3R!GDK4#%JblSRSv1AXUjYXj)dix;2*H%0^G|BCtXJ#^R zB;hw{)2UmOL(QF(k2L8ot#ihdwzZ>)u}qQwP%M?|zfmaCn>)gt1ilXIMm3*zUnbj% zpm$W!$8FvZKNhFEsRwFnkhisx>!*bwEms>ITPv@@My&->gKA(R0o*ZPc^Ev%uI~$c z@)Q&vN3izh%_s54Ty{*)D}+3IrF0hSS333h(lzl#6^Z`CjyVe^^Jws)mF1Lj4Onop zs)<)22ZF;^ACU;SqeSjaKagy3nBsWGD~%%r9|4C2|0ZQvjxwRBCKrR2x`Xf_ktS_ z7g%1Q?;2%JjjahjR$$Bh5jN9gDW!k%8UJS5)TWz*_-LZ{3yljc0yob+pJh7NWn(}h zL5)Ii46h4uFG_=f;#X$kU=i$hIU;`kD;DC?{8)VhmKD7c9^iCj6ZaI5@Rlqb3fp7h z&bN#$XO`3O43+4h^bk~vPuP9w+Vmt%Twvx$OwRkTM|{2~+z;BQiK~(p`@abf0`umS zcQ%KAlIRD%61#t3l8ct>+tU&56Y|RIs|v!R{Qm}kb5Wp;6W%Wh9C7{N>8+QDkFxbO z+2pl&@FDIveea zE#w>5wR+vF?)=EJ(#yv*Zl&9LU3`= zJ68J4GH%T8aj-*@|rRSaaXX4c>N zmsAa*W5Y^%sD@j_FgpAL3BoCTj+TO*Rafjzlt$umPjZ6XpR@|GIQCDv$>#Kw%sti* z*&yzYaJnLY>PFGIf414?+N1Oboo`wE1-j?rX~XzbUTVkQ zOV>O-7Yz*|`(?pebMg+6C{|nzQhHBPQyO8KDW`6`BGk0`FTXZO5P1ID?WC}rRvzVc zCTu+wR6*FUYBXfQF?+<(KExBZ!#_&6NF%9j&L3)hwq9$q0=@={uNjB z+hJ!J(zPTr`!8L|V(5#PQ*~kqRw(>OaCfkD=2>Okp0GPr@r-)y-pKsTRKq@dLWdNv znRXd?6^*+&nhwMso0}3{j65qd`crT1sw0hq9@J4d_ggf=9(Y>$(3<_-%JkmYXN)bx zM_sAy!a9-^775pOYP9Qql-C)(Iq%vr7R(y0JU#Wn4&Io73lyeUb=rp59R@<)J1WUu zT83T?%?yvcOxBS$c%+*v<^X*1FWNk|J=7n(&Z|aK?8O+%Hu-*qh^amuVI3Q`I#}5Y zI@A+aUCFWE`v&-K!C6G^m|wWcYJ&w2exBMg-nBx>PycM;O6=%+?-KPYIAG5@AgpYC zlD(FHIC2K#c6(fAzF;hW;eHzLeyM#mA>}?4tT!q50T|~6_NM2wB;l@r>E)= zY4Vu$2Z%JbN6rL&fwq;Et1{!BR3Cdm%Z}6MKTn%&o}bLWo~7U`NOHp$1~$SBUU~em z@kl9v%CFX&@!w7PKVDKhd?RgA>!Rj+-JHY&yg&&8z6%~-N7aiD9A))g?IkFzolF$M z9Hwkd=bs_N_C^g|4`yqwzdiwsP+oVHWJJ98@r&M^%L!@0-15=KWKI`{>efXZ$v=(Qe*~zgW(?e`7ao`;F^Vwk!-a-h4kB6G8m2T? zpEti?_DXs|g#H>mO`L20XFWGvuCG~~^jC_S`&Hb)!PUx1gdNn|bzN8=DF4W!+g(a#k3*3tBwzm;hoz=NOaXy{q=d}^5BH7zErV`Jp z-1nS{PW1}=2%ejRg%6cFU;wU^af14JJO8$`-W^qMBEyo@8m6YeK~E{+nF zb`~)TU3CR$4wn>-^tWmDvV|eLxq!$Zx)*{}dKY7AsMqvEm!(EVM~7%8n)%AAFM$|$@unoHVxr;ucE8;JuO#e z`8K|b4aC@oTkfsdxEY4p%O~v?>dOI#zUzO}B7I?hOGtIs%4 zpRk~3>CUh524c@qZ>gwv>3oOyP4*Fxztf!mo|6gIb>O~qe9or9gI>w11LfeS{s2?$ zms%LQ#`V?K^SL+ikXUtFun#0crI?EoU3aD+%~(|-{I}D}RZ`=O;C4s1i;Y7IuAj)q z>I@2xUfcSSu7kXq`5F_S5W}P9WTXfK8PcsJUvI_lj%!g3aOADJFQ0?kl2uE$95Dgq z_`GWQJ_)U!`o?)K%S54Ryj0)U-Fb6nRl}hrCs%e$4|DhWF=I!z&4!G#JWi)6frr)Y z4qZj0ILCz^`zRtbkYBRaxOW#uoh-T)DVO^dqeQw6z=v0qIvcMqB0o?+kq>2HFRjnA zJ?H#l{bc5Tf!uj9|7Ot0enp&?W&?I_w|K>tRF*EG*d4ZdkVv_^>FCwtD$SnvV~eg? zeBtiWWv-&#_spz5m8Z+xTc_d*x9_$~u+ZCeVCz5ieymw;e_T>M((>kJ@Zb12D#u&w zTo}N0g{agmr1A#vh*!U@^`Z*St2!b)qmI9N-O4ZvQf@jyMnGo%WdLQNId8?)`;t&w z01`QpHt{GnBwStX^yR5z&E58#$T4q`4QyfXXo1u?a>V8i9l1f+0K+Q^4&1ZOoQyi+ zzPm_Eit+kJRAcuO#}W_l4kQ(nq6}#P9xuY z$T5w!q}_J}dc&^|rM5ifD*Q!X-HD~gqH8JUwFnH!F!uO2p9j}Zk5I*6!aSo+9=3?| zrti$9GQE+f(0WSVRk4=hn1(<3@Wbzi$7kKECiZK=$KMz(H}=^bL&H|CCvHLU#IsOsnTMX@leb0<#}*$2>NCjL(uHt z(KauSVk~g6Qq#0j9i@jBg}cmj`A*Sj&ZZhF=r{;{E3rI4dA3gEx!COa8MQCNj3dy9xEAuO%VC1c292h^A>fO>Pi zi(3Pwz2z;RIbFz&<^9s-GA0MBo{^~E56&0q;^rgYaZKhwMjK?|k)Jo0 z<_+f162Gev+f1A+ZZDTV*t)`)hgqLTlFWoD0r_SZ;an}&l!>9en8805pT56$#;_O9 z@}|;dc4&m1P6^!L#s%x74@1 zqOcI!m7K69np^?8ttG{MI&>OC7RoAKJPSZ^%85|>*<1yWxxc1hL;Wll` z^Dr!>4gJWV%EYNcakaBIk?%v&S2z#cuhzSPuS@s_;*uy~(v8%=nH>06YBK$FI_g12 z`;O9;UJRDZ$43(Lr3Mec6N$aRjZ-{MnEtCBZj;0!sKrpFPMcyiMO!l<{yu4Y-gzXN z&le-WJ|6^-sX>^z=3W@*Dx5uXm!anVmJaehjnKC`8E2^PEZ9GVc8(d%ZWG_DFF7}K zr+!4sET95XObhJp@7nqObmcz7(o9R97Qa&j0{I5EI3jK@;3eZJIdL0b7~CwUD-K8# znHNk_S{KX1|IocYF!zM+$^Ffxh9X@9Nn@v%I#!zSzej7cm2>=iz&U4f3PG~DbL2BQvJ_4Zr!RX-@J2PS*5!(FC@ zy7+Zl;S(9{&oknA2AnI#U>)5>=5v#|!7>6YyzHwj)>_o~VgOh(c@ApN);72y4RRE^ zu>q2yykS=TZJV(jv3%BF&2#CHI@CMWljX=pebrB$?qw`W=^|np6r+iwY5Trf@RUXP zkU@njxaOm46?hQwf$F2ICdNO_%>f-1V-t>gkC@!zcQ=%n9`{Y2Gs+T+7o)}w&3?yT zU0q!WQ{DmFQWHY#>^A2h<@8f5{r4}n6Y`2ueZeuf=ukrmlU{PV1w4~;jx|KPvsW! z>-77tRZ+3ChNaxPec}CWL;QQ$)a3p2OuxIpn`Vv5tz>aNG4sdg{xE7ipCE{+Co(;v zyC^+XjkMr4#Da&gB}G5JcwpD)+a0LhTGItinQY8%d>P<9wyH^3sIH>*X*5jZ68r+J z`~>$!PgTBdHqLlnv4HLnvZ5lV07LF$?Av__^iZ#Y0AfA3`wOerN5Ec)_o-lf z`N4_V1c7VfUf69ufSl;(bmQVMNhJIp;u)|`Cw)(Wf--H}^-HhmVFJlae-f{MdO%0# zoZWp$N8%1^IZgNQV%w7m7ex%1HZ7r53St%y)Fk0|g|FVt7~T`X`oyC_fCIAd*;co4 zsSxpk3Vy!*{az1ZHBMVW`DT008>#7Q6sej}V7<$YN}%3E`<9&SR$5T(pTJNMCcLI)_D z?eCDz!OITXEIZ^lqsS+Avub50{jZehbEmZXRz{cM9cdn*YOhMIyEwjn+6hjiAOo5==&6M zYzL2Q%af5-N9qJ{K1?Qi>b8cb)rZRmx+z=oE1h~W<@&wq2$X;EsQC|w;;P$>%k4_z zQZ?0hj55PS4pMU*^yc(@#&8_@H6VZVEV*IT&(U1{@YU5o;rpzCI%a?ahXU53=;c#z zOxLV9Jg#5efH5k5X=`LdHM4Ba=V_?0-FoUBs=Jo=Xuxxd?^k zv~bYCH_n-p*(J^Qzo+wWB>)RAi)=$8EF?%CQQZ8p{_nK|oct_ke6_pHQS^f17ZS1F>{L#68J6pLl^q%Ie+gmD{tQ<>Jtiik4>W5?q6bh4)MQ zC*E&X#FnB*_ZHj~5&g>6mZge~=8EQr?Ozy#$*Q8EFZI6CGTaeGjN>g;X!t+w1X80* z{>EV-u*(MHa^%mG)tSKM29^=YO`Sg4Ix5Md>G|U9+xqsVvowE0A(vlUp==~+ehBYE4;Y9wYenvpMnwXceisB4D_sHI%w{?3zFTdlflis z#JB05EpS*75{#CTXA$G;W;AUSEk0Ek_t4|6F~gFl%Qkjv8NAbov`Nb&0MT^Aj;oAQ zO``uCj7^=73q?;I`)+LD5hV`@z2@3FUyrVEiIv-n_yq^(-Z%v9+;(}hy;~R9BE>Z} zFgEaC)Ilk!t}DUaUM`--MYt@njG9Y8XBq~-;iug(?*F>unqC=^9l=U6=1L;ygBrpo*)*>J@hh=zst?F6I)WPhUKCdGypfaTEZ+YSgTZ_7VNi2d>1oG z=z`6{yXGj)J%Hah?nl_8#$pIkk4Sd`@ZEr%o1J-lZ<$Ye4_(8taHjrbN#{2y zv6Gy3kx$BxNbgS35S0)jW&OS|>y^MRdq0oCToPOithaA+ZfUV`U-5w0*PQcr%;fO)b| zv%CCkvT5NdOydXlACHS-6PtLP^s2fm&i*GFpXP;S#(c0b%4D~F;cM%D6Kf0kzW3V} zC*n?P8D1MlsXw)6NK$B?qW}pNXQE9C_lI)NVdGPicEJ+**I7 zEtwM^s}gfwB=h5jg#~m3Ne`nZ>%UKy;eQ`_{n>LO|iSAm!t1Mwg&tj)h1|Q-3t#RW0 zUvyEjo&;HZT6w)tzaaCQ0o_~*9pUApd~?DB_3UeNY{RnFzuM<9dNO1HW4f7ukBwVN zCTXDxYNY*;5F%W7G`I2y%5fd_c4dD%DpdnphWXm?*a{0@6it#etAxFD+5fkA1>MeL z&XwWKGI2CM{#Bn{3ggMU2D7_nk!0HauY5X8?<{~n_haIopz51GyFP}KV+D6zx+V5#CbU1ZtJ^6H&`vi z)hfP|pmPxA6TcFT#5!|p2rtH<`tFbB_v;|sIr72D>Qd8Hh8Pxp(}+ zNfR7Lz6C0Rqu#ql=ublsx8X6o`zEIvny_&#xxq7 zEOyuP&)Xk-bmf9xGJz$fNMWFDbRnLNc$>r>&5?u)%onLB9YUW|QgO%VgIgS#JLV+m zI*4@gkPM<@*(0aZ$lTrU36VVAO!!KyVbIazryhX|h?4JsrEUR_?$vW-!AODRqx^pW zhynIFY69qJKp*J*p^pI`=h@>K%Zs=`eblqy{^P$I{ds3#C-{{?pHam(Mx48ak1FQz zKUdbZMP@kbMHx%J2?xK51>3Y3jYt=Kj6;Jt*o3V4nAoosr|6(gryvE*ZXA{6 z=*Rt}5k0mmn_vW5)Ohl^VtY^oRuC2&ZnE~C53PwVI-2du28QnpHOFo<91vBe@Ujf3 zo6B+^&Drn>P3`=hgrGNqgc=sSgk7bMw%X(uP+shu;#t2TK{6pz|CjyWNZ+;1lKN_* zwBRxlWxTvI&zMWXWB9F$>9NA=eAEa9o)I?QZ<>SWef^gg;L<4j$Cxrkfd*32-W3>zR@{q_<*sW<~W+2HhDY+ zeR$Q(8XILak+D=raxY!1WsNVbfvU=9IT0#@Xd)>N*)KL^XtHGw^j6y>_O(TN#|?1)zt%5-z4Wv)> zZ?-;f7S7ZFEp0ftW)Aq`oeVJQYPIuqxrfUhdKZG!^d1;lTiogNPcr*`jjoYRtBXpH zo4Tv;;v8&v{~DZWO+H|86l5o$i9q|)!|VluynWK?W~cnQ@o`guqcWxm>B!E-(V)tL zzu$=}sk!LQJaLkN=g1*nwxRigBNC&b-avVzxX%ls6XzormUi;9qhx$ph<0R|2*V2y zM6R!eKff5W$i_v~c{B*8)f+-N{nI=kC(Cv1H||TlicJ0F8t@R%U-+T%GHrTh#Tgsp zbSQP`&^BZLmnl9yP4#Oul!fcT6^we`W*MW-RiOtwz=4`GNUPT_u8G?`P#F!2ClPhx z68C8hIb?r0f0+T`AEq89Ipj_QHTfEqNZDqlDEE{oE61XE&0@x<)gi*wh^Ac<*CCt! z9%Y*FBH&86W#jnH!E)!RxFE71`RD7@w(t3g{@+CCckX%{9K7w{a&`nB84}|IVcSs` zygu&~u&U=}kW%HUT?>dAAdXTTM0ruMqM8cSb^a|A!{>tlt-1n^m$looKW?(a4k&`; z-xR5sXgRfEELGgM@o|qEGQ_LPIw#)`>MG}i08Ae?EDT3L?p%J_z6@J0g9pt~2OEKY zzIhSCy;wAUX-=R9sdSiHymraB^mLZU!7t5YMt^X@D0nC$1;*&>p1zjG6KIgadn)9I zE)AjIX(PWYDS~gYO5%b16p5Ql>>k13(!re>=|F>l_3spE}fhC zTLM2faN5z_Ri1=HPcHoupydmC^2ASJfu)~fyG$P1BHEqj`$Pc(?Pn)M(!25WPnDkJ zWwMps;Zn4g96t2DI(hwjqwtr;FC02apu@1L=k)j8W?b{4HCsPu*0lKoqYMxQgXpR$uAg5bOSxEE=eT~Pq>=rr5Szo)+LC`; zd4AGdGgJ3O2Lry!DqCfu9;os}lDmGq-l3@CnG9sshEm^Xp_AR)@C_y76ZvO24IxEt z+DI$1QmZacweo`)0=k`6N0@xsDtPyEEl0T?-j4~sTqev4Z>da3!+Y*1&}5NOdL3(= zp5opeM(IT=zTtD5bhSL!Sf+4M(daL;7;#*zs*NDK=LjZNDjJ**{)QTgNgGAPQv*d& z_=RD|dx}$|d(L!{e8P$!Tq&;mAYA$wmaC8o{CTu+)1zOK69-Q5vM;fG!ttaVIH{jp z{tZlz@^OBLc&enhQQ(fiv1PRSE|=6uP{ObMCW-!=qK1A}y1?qbhQ=7XH|27fE*5** zBBJEP{%&=uqrXL*HUJ5t znuD7PorL}qJkM4yoqZ5aB@9U{5R?OIG#&EssILP--3_4M$uVPQK!F(i!F)CL(u>w@w(irPm#MR-?1 zGa9aL+d?z|1`4KR2~83UxQ;FaXZ4^;LCI<^%3{bG7sJur%{+sG(+?BHQ|>OmJ;CFh zyt ze`>t%|5lh!Z+P{yZ)+6h_}1-I+gR`_=LpeVX^ZBUm=mA80X+31C}!#swL`ZtT`=q0 zTMZ+sQyrFqJ*)5c7)}nLxJXWzp=vH+%1mVf)0QbTtNblWNXV^G=5%p^;i$dlL34~>V zy65UkolB2`uviSHuv`tLqRb$RJ>r45I0K!>W1`^QBFy|^Z2wpL*k9^yOrd4s>eV3; zI#70M;1{DpDq7|n64ORr_W?V}=H}Fyvlp`XUg^%6FP=(4Y3pgYxZ&H&G6-7b(;A12 z-%bR8u313#J98mq;Il*b1#uqBf;YXNr|$%KnDPrcJD0^F+_#V7362D?QTF@8M3(Ha zVZpe`lxd^cijQyFb7l&(cL)Fnx%Rx^HdNl?yi!!6!`IF|> zo{aj+MSCu%F7IwUTy}gHlxT1(-XfAX=|2xlzBwvf)X)b*CkZqOk8 zSD_`c{rK)+wt}|eHyNhnV5oVekkwP(GvHL`UcY!IqA{mXg{c=pTdOB@QZ3_>Fon#h z?|= z0Qs%*QCFBcM>xTG*BbBM5K_w>zdbrEh98D}y1CiG@wFv4^GA(p#J-BZDx ztRI})*riE1-Phe(*rj#1NhTkeIu)jh=G-iio?tk-B;Rb`>^){l(LiusaQo+OMr-L; zivX6tsPa)_ti6L#1P3?Dmlc3)G}$7+(snY)>Ro-u=yJp%WxoQ_2io_ZY`9PRU-f5; z?ww_Hz3nV$;ms?fIRXk|aYm!o+*-W99|Nh+Gs8+*6%0B`FGm3T(b?mbz(Ptt%J9ZCdfJM^%@WrV?aqaG!9^i{1aP}NYypeK=__t^q}Ca32u zoTsIFl7mD+6n*mwqF}EGmVsA~(2;T+n-hf^7?n%j-3ljjhZL97a#Tx4$(b$Y1j)ZY z$`|b|u{%LpP5gEm>sU+1fPOk*-QeK6*8j@iu*Lmoy`9SIugdp~PYbW~J)eH?965b6 zUWn;S+Op>L%24s-P`8xlPVHd9QaZ!5&GV=G*-}rl@kDDF;2$+^Qa&vKA))#G!vf## z2t$!njJHXS}3S7MM1TLR~q$!I*Gvl)UO;2c%YET1)iQu^q)OHts6fEXp72m>K zilzZthidbO#X8un_kU~IWutW*GFY|?UUt_nIzTeVeJ9i+kqodV}+@;yjqv~0vw;}L?L z_3o~r-e~FOFaFI0_ezu30b?Gb@EZL9U9AgJnXr&TwkW@2ta)~r7qX+ucFZHae(lG8 zK)khJy!_Vz$QP{sLa9p}!8V2=k>Ro>GYXZHlBIrUDb0e+xXjMx z-EihSj0?258y`)-cguGeEYa6GWomJH_))5!C&97`@E+T+`eqF`>*#8s11MT2s$ZuY zH~SohaNE;wAix)9TO%w<$s7Y6QV5MGBr~CP1NV-Kk(*YS2{sTBhptPh<-g@}`()!IfZc0B&&>%F#ijpu$7@oPYk zV-&wii9(oi4mw^ABUvB7dUt7Xu{>I_=(O+`d#=Lo&g4zWrX9R$0x$ik?5gsF2T@za ztSQ{#I5$?Q%&vqkT%1vp+;qvp!Xu%SIPzO~l$e8{$LQ4ilDGJI3HsDNbHWv*)baE| zOSMH~6NmU%b{u9WXm-Dk_if0nU%hVyh%&PI>LYvxr{f`bSV+w&EsA%o2`v#<9O#al z3s4b~;}2QivFWfu;7CwBhO}Guhe-}S!S7ZKP_2vBY_eY#?y*pg|3WATuKMcb{P?RJ zO!wMqdM56~W7*)9rc!HUUFb*k7W-+rw2kYNDUqp*e&L zt>0oV94=^OdA|)aW^fYNzD#@-t2r>%(6)NCmbohHbiBJr-JS@aNT~L^b&l^E#0(_f z?u-?T$c`2&#uBeQ(hda}y`Agd=YgJGGm7bam}V2Byf+`B0GGcs)|FpwM~AlCxlOLD zanrV0Go)Q)NL=u34mo=FY?b`h(!+#q`(Kaw>sk)`vvzW^2&$Jg_%fCk`5j#Dk`!w% zSSm^Mn|TDFn!*#nNn6ALhfY4YehK<=?0c~j?;%DP_G3;EoQ{~7iJEpM35Ev6$;@WKwD|?B#0UYi%ME}~8T@_L@ww{4wUaQTE94RqXzg=@ z+!E#b3^ua{uDVNg99(m--vtmKV6B$svP<`3)%r@1ip-zKClaWDwi_j4Ny#TP6wgCR z-Ubwjq&0%pnGqoJu%B*F`Q0#xZ$P%^NK3^&$5M?&3-Yx?98kqE%jd7w`>*e|oIJDy zCx3Ohtr+)$cxzzu=4L-g(of!JCf3#z(50nwc8(TTs+c#o6%T^4gNO)%lc`8bH!tgd zUT*^nH2r&j??ZO7<|dl*dKJa~5Nb9Rc!%7QB|83Q@57Pd_l6f>+VrN#nCN{(`f#_f z5C|EWw^8COlA>4Kq5py+$oP86;5WBZ^*NXb0Z_sUHht{GFa9$<`89AR;(B$gzw`&x zngaK};J1-IXp*=@4jK>24x*vPiAG~Yw34UON3D1<-TNv;I?GQ5GxK-nE4<@^qLz4> z*qcC|S}hF7clp*t_aj>gl5u%4y`}yt0N2lw9O#qKdXETIM8Zj_fAH2uO(i#Qx|7%? z>JZT4!H_vLHe^l+F;0M z;u4I!YaA{fSE1GIGVG-4g=_!Cvd+!HZn08uj6MJ+;0=AB6eEbr%bhJ(XT{-KaW{E; zG?W-Zgj&jDnEw%=k5ZgxG4%b_U1E&vBxq4F^h_&Jf49^lnLy=miQY;4Y5#c@dOagh zs3Mor7oVbFABu;B^kpNqm5(grqy@e}-xQY7wno!QD5p8w^_q$J0?9@T%+65^yY3+ zraG^{O>~KnYn<;+q1Z(t^{*GNKDls6jw$|-C%_7@orJ8aMBvrFaBO@DW&e3o-L{fo zIN|>h`IfOtce_>;Gj1ZvV*q_OX!t;%qy{ZB#c+^LWxvY?^aAe|gf%TG6Ke z9!eP%2nu9g?KguO?;-}=0r%ANPA}Y446_h%_oDJtQF(dm5VJtfF7|$@Pi*CRY%s=l)q9T$Ullv?+5bh;SBFK_ zM_bR(9nuX-cXy|>w6sb$(#;?xlG5FsN_R*}ch^XFcMRWo?|1L>%zra;CeClKz1P|` zdO@BMdx`H`pZG?avBZ`4@p2bqjeo}o?h{Q_RZSuHj=QKA7WIWbpL-W=qTl0n^ZH(} zrg2Ej8d9||5eVl)aJ~0>;spnONLBhVS9pR5>e3N{v)9dMq!-+#=*1T6J+i4mQbb8l zsr2y!vh#l;h4U)94v9`_7!aKDpmJI z(rgFV=WdBhg^XsIzc=Py#K-tzY)m~z{&+2eu<(nTuGwR4D;^Ra-krTHQ{loqQ_!4s zYk8fpt~k`j!(EAo=aZu|Mczm*E!P6U^D?aCp@3}^*(lk7&?@@MsV2}$Eiz?p+>}?|GJ^?ph1HM5SE5FVVePjyeL-vBsp1z4Fj6ly#pV-%zzA{ zCB&?BtTOQ(Tt2V=uPibUGDy!?pD0(I(G;Wa1=QR@@*mzQU+I<>zdppiXs4%){u&+C zCxHH1lFc`Ly?^}nfLO~Ij^MSK+NbVX5bi^25L5rFMpTtDXM_mkY`GyotDK$O_?|~U zan5im-eM>+X#rS?^OikBic9VXxDk;`G?Zf}YlY;)E3Wvrzb z0chF~`1gfAWU_xhICzp{1E^1HP8TBT1?tXNHONw5dK{Ra)+w6*ax?^ft|vXU2=`G} zL4?fCu7?MpZo;(G#oVU{Pt9F|kRT?ArVE!jYHXuy7+IPS&E$xgpKSlgiMOIHyd7fM zS5kcc9@F?{G{SRsLqle?pkPTQK5bm^ve!*qYVVlmc(Y#itSpNENsxMZRl_dtRos$H zK(a&Mpp5Lyg6gz2+i4iW!G2Hy3m;4LEU_*Qk_6Rsu72<>>q;*vT^mq>lGVY+jLs~V zLHsNK&ubVIf!)Fg4WtfW>BnnliNmAK>`8$Ks1wsf z?k$KhG(b7YWrSIHt9=oBL2AK~dNhnw|C^|b3Lqnc8l z5to$5Ex%9aR@LtdH)SZjH2hzn5*PF#+J2S0E$!WK{I03Yzdy zO3kfBjP6{X`r)c-Om@)px@^#_07H`B^+oTpstkCY*lBchNcJ5@)#MbTcZm^)D~K^K z*I8TeBk>zL-p$J}1323_Nou9qnyAc_3@7s4VXu-#Yok{4>C-^Ja?xBOs(;1g0^2jj z=2L{#P8GZ3G9bZhMzpTL9>%i~QjmR>iq2;Ol#he~XLDnTTA*vLYenN6;iFf}F)s{0 z3BC`ZE~MPEq$6^PxQi_ki}=AfC&D=0 zaAF%uv1omJBCp-Mgq>`LJUZ5!&9WeI_*j&PI@I)n#$NR5fSo7NXW!C0n2S=`5r_ZZ znkvkhaQN^3P!`YtBlAr%|DH3polXO-6?YT1w*u$M^77m`149 z#b_T%W#Xx94|97p~Jq+U>B zYeqnq=sc-rx5*#`%&t5Zdt>6g=f(=Y85(8TQbuFhc#G*K!fQ6oCOsr1XV-zr&q&_1 zsd<-df(|zDx(%1 zLuaXZpSAt9&Ir&3@g#2_4oxwx_-z9k!q9<3RVytR@8XCC3SHZ^OdDtoDe&36QeCe9 z{YvYEMc)Fh>IT|)Jt#qk!+0$zf;%*HHz~EhP~W6@l;TJJ^Nk}ic&fn%@9Gv;(dID2o^t&okIw+4XeHihyFxsE zOCUvHl#D}GSKArXEv6R}ELsmeEe84JBmHQyj3q(yibVn%DAYRCc)Ej!$Z?i5Qw zAjq%GwB7HXWGPKtQ#+JSc5dT9>S=ND!GGc{Kpz@@qk$NlZAb6opRbh@j!t$Q*6+eL zk&w;-Q4YCN^bw_$HiC!flZ? zgz>J2vGnO{Bbc1g@TqJB?a0w?rib1&eF+;1l9XcGVgnf=wxz$Xf6J0@yzRv<#N$0s zPEx7Cw54g=IQt6^HwH)gkJcY#69Js=<<)qUdR;>8dHbph1GM3tL~oA}lBtBCDBJVQ>i%!~65BKWL|#rvcuDBO4rx0n zG7YULA30=Vx%6*3yeSoDAL%I2FDFef%>KnrstzD4@=|w=t0S-pQtpEX#iLiJj%AN} zY+{3c&Xq7`C8nA!aAi&)c&B_3=V%dYvks{aJtc;lP-WuiK0;lU)mUfPh290OByzII zsw5V0rHrdBrD`t9$1M8sK*7^I55T;p7YqM$MEN~4#~O9)<&HN|$3?#4Ey;3!L2+^s zKGqq59|kvcJc&T_rM`xzY}YGrEiT4IC#7TDJ#e|jxtYvHFXNBJ)AX;wM>j2)bAfYm z`yUJD_fF4U)>|Fi?d3jj-FRy*Q*=hx_`b>eqI~55$rD^ZxhZa zm!>o_oBojY2J`xTQbHr4;Hvj z-j>OA8$BmxVa017MR{%fbfgFPp!A#(8}Eo8`WV$s7K&^_{{x{ zx8L+VmvSkNnY{#4jM?n|S(P3o9%1=mjW-g&8jOW$6x^q1hg9A2?m6as;9aY;7z79< zgyBGdQG6A41Ww-_+^)&g`sF-^cemS~Yf>FE`UrXjT7_UV5+ub3uMY2N^eFhmA&oU* zT=9^vLGK@WXl5^7m$?`sFgU;7eqvcIh9S zK(H*5If)JkInJ^ATt7SIgMI!$x{~lR^;+l>G z>3k7@ehnXwy z`n^~%S>hF9lc7`aE)hqGN$*JX9*T(fqw9MpnX~Jn;R71^?(*g^m6`7=rlhQaEWlH@ zlR=QX56)?m4ar14}Tv_l*>NVuiPGc610GG$G@TmKMH z1?d@y%K5>Mo9NOoUT~*Y+`kelPNvAiE0==#n|0ApY#_ezb4KBg>Ed;iSSy>2q~+H- z>U7$AW=G7tAMt1TiCC}%zFPx(VM#+6d#soFeyMkXptD54g_*Z%g=5LMXAl;ocOT~+ zFf5~s&-zJc`6_6R)@&1Upj^U1*}153aPIve<_!lzo67$3;`f-|vnm4`ojvwi1b5G{ zSiYlr8ADcogQMiEequFMp`>6u-_+0rf|MA@X)s#fpB}C$?_LLpW2a!=9EKD(+~VTd z9-!Q>Gd3`U*1SFhSvMg|er@JoodF@vQL%tV)pA}&dL`Dl*oA{CVxwYOeE)ji`H6il zrc>jD;eCG}Q%?c(cbq%s6~p;&MuU$^$5YjWy5V7qsu0gtJq#!aKpyUl2>mzs+7@b- zYP&zFVmNm{eCTH>SOd}-8sFk+>cTkD!ycA_!d1YvalwBvz-r>e&R72z{W+6g<*190 zAE6ukffK@`g%R-Jz^YGZIab$L3e?2gZ*rUZ_MHH+sr^o4`JeJ%mz>JUa(PN;$Lp1i zE9;B9u1#P+t<#!YmssIgs)axuoqvq-(m7+QsMy~|6}Z9n!)%G7I2nC_k;0*2SBWD` z^WT2oCkXP0eBNK4$ka8y%~<*$`|J*)S52iix0<&v(-29}Dy5g+@cY&B@TpE{j9h@# z5s0=cl_K_NPhnmH49@Wi%xu=*)p;6){F%(FR*zOqPPFK(nM=)k$?A%12FlxF`E0un z4^0(*R#~OtTOWmAUy5lHfT=fRl!Hh?8Kz5>TsDqN?&!qbWqOzI z^Ho=kCrPcYNxop(%GjTb59Tk_kb9pk*vfpr$1iD#TdJv*=O>MBqUxaduX>Cw_C3mH zB(941x@D%+kTt}r1OMFE>899E=z;zhjBN;b{SlzqpQD6G7E4c<=v$TcJbCQT+MTw>r3gwaZqrrK1@$2EM*(sR(B zI?{tZN*k_vSBrb{TQWqeelfl<8Sp(tYI@6J5}v}0kPE1+GaO2<-r|BT`|S$jX3^zq z28P+DCS4VsW%Y_gd1h1M$0$w=T~*EgWeJ)qAV*Ke+CSND{`DpdrSJratQ`6RPR8e2 zASIw2>~@ORGHw>Qfpujscb#8Nx^$!3@9Y#TR#FckH4|~)(Ow(FMVlvf=?zq0D;}Go zH3Atc)=XA9b?3;E3BBKdB(k_p%MSd3nFb*HalRJ;mAYC2>0_R!$))Nk@S)}J)0ZE= zzVmKgz!7iqS}l|Wa7%mHxb+T1B`Mb{pYp8l1tE9m9wBkDWB55_eXJc_lYTC+Rgdx$>dK6#)6$ywhQ16l|i_XjvkD*!|T;FCyMj{jgD8@R@~|C7WN= zSjKh|5GiSsP*?NY8d@6WY-1CO@(vmwWSJQpK`!VUw{Qg@=!Mt7cFb=)5y(|GNkPnc zD%E?l>Fz=JMNa$Pia>up7EyG_=ggjX3q?T&8XkrOuB@?rvDTB~#2lp(lb4G{MXKoM zz1T8S0%bV8qPam9L?PkD47QhwEEe;Ns54#gp8~$`OB`vw3D+^SI>|I*BtzGhndGu5*)B~ zDK2ory@!zFLc(OTQF1{F^z3Dif&WeT(VlyFl>q8E5>)7)`1Ps(T6RMq@EDPd^P$tF zzYXjfiW&)DroR{-&9X}xuGBx;IaGQ4cCRpGbNH<(!1@-6M2_ZIBqUB!8pV7<#qw0F zOG3@XmB)~tCP>k1z2@Ovn(yvthv#mnX{hF#5^d7JdLG#W23r$%CwW^X4_fWapBW_par z$|l;r;Kk3s*2|$ z>@qcYWRGhgiqMQ(xv93WUb(F^8EN1$umeW&P<(>U?tPL)x7)_9YU=6ytiEpSywYsv zNP2aWm{ap6aC&iec5(JvH#=2?PZ?MMg zD~Jx?$T&B4hNbo!AqV6+GuiNT#Y5T=nVLS;>lC>=oF7fai#vmZx+Q0I)X+PSjYfbxNV+%x^)fcWbL$=KEa>(+i z#by@BU9peM^TVWaa;?$$F8G8*{&(&i&(0CYcIWwps?G2k{lr$vM>>totk=?KbRjY< z)0+pP;_=s&`w|H?Q_o!S@mu?rho3~mkouvBXD_>0)Pplhlp4Lg(f4@gl!15im&VW7 zlq6Rn7V4VqhTVuLaI$vUNefvMZbG1A--Z$Gi|CZ)hAy0DNHCZl+lb{sG;JhCP4y#>LH-lT;;?D`* zJ-u?69Km^7HOnL$bc8I$$+z)iw2@rG+wb4Dq>v>Bl$~;j)w*Brz62YnOEkLKzXxNB zr{Tk@AOu`JLh~wS%Yt@kc~WFi7^^G2 zL?6E1$=5T{P<&SiU4L7F_?i;7@Di}?gX z@y<^S5#7{>+?&a15XmL!ZPWe~`@0$}=zUcXBRb!S9ucU_oEYJ}53>I#WO{IHP`Ayz zfqcjtTr`**hVKkQEVY-I%l7uB-_Y*(osQmYp7_gUXCR!v{0i;3w0c9o2J5&Kj@@&Z z-mAM?f`ui1c4pIANE@v8`~#FzipQbvrg*Td*~XK?RovuOq@fMoJ9}!|-mt;`5gR3B z6qD4AdWTBs3jb@O-c<@79?v{Waql@I!PGH|tAW;-z}YmTrd)}ao;0${WK=-)d9%+M zu3AK+N(@J*8@?KDXghWyX0KJFwNabE*)0D8Hau9b&?CVlUhsID6sQq-pF(L^j^=ev zXIW2D<9$gAbK0#}324U{{dCj^(RO?ff48a;zVUP}==|J!hZQ?4hP<}G?u@BwG2$&* zHH6zPyu_j`KSb*ZS87M%Zq#!7kODh_%^V&Hur|*Jo^)jUj&XtouXALC6R;#72X#`~ zir2hu;>l`EzTB!NT+fe|rTwUM^H0E{uB!8H{lEaSG+ekFT`A2lzLg5I89B*tG=;5Z za=hHstsGh5kMu8im}CrVf>FNZu45E>1S2RW$_-zFM zcpS*u?)X_l8W$v%ptO)&E|&}f?2p|zb93_7${JQL*V@NVlxJ7 zOeRFEg&W8vl4!DBWm{PD7`bWce_&5>)9uVee)YRS5*k~mZ}!5LShsK=i65Z5Fk@|Q z&8@1gIM#))|h+OEaKd9u}CNc2*h&x;vc13Cs;{GX=Q=d+$;a@NEd)DvPlFu{WE;p8}s#9Uo9b8KmVpavE0GGKFtu(j;E8I zPD)G-`o@@dVi$X*UY=*hlYp;WUc~a|Qu&LCPnL!syM$SV33B&oeTDAeP1_+|fp&B0 zInc?V@;n$*(fL?I=8?S^SNUAj{e@o{)F{>xtt?>{MHYS$ivfp#!VrtvSRR%*4!_WG zJvqnmk{LL7ABzT3RY*6lVLg-$?!tpOPF%-OrDToSAmys_mgyltjI63bK@3tWvaVxg zUo#|LGDnLvv2OwjOb~~hPMV57FBcQ-wqJyADy$<>zyD?)pG;}^7#QB^xMG+A(@1(y ze(m&4-0=dM0Y!ysn#Nv}c;Ohr?sicor{ zYBWK3!`POSlH~^yk7n|6h~ZUbf9d{j%7sM60pHEMho3l;ExO&FoxVu>F5*M7Rr7x{ zZIT@f91Ror#FTwKu?d|)Y9*#^ZnJ+jIF7ZtNfv1aiL>;rYTdoXO@M7H{}BArwVL*d z#6+dDYTc9s|3h!1ZbS{nf%NfRHE}#Qaeix}_U#4nJIzYA^ZRALPtcz;N|p9vQ^RAs z>W)G~h^yi&F-ad%|HLAKYKs09NB4hpy@l%EwC)S8P0>NoA_X3H)btZ&DVaLwyc}M} zeHx0Gq4T14^oQvc=?@pnS+{X;j$?H(gW}c!r6KsvODqD*)FgE7Bn8$8tEcs5bOtd^ zrSebz;d|9s;XT3J=U)MO0J;MQU;MsbXIU}7fj{B+vTgA4Wg0%Mm07f6pySK;wxGm2Zz-?I{F-yx6;q|v0ErN1GA6rx&FAUI%RIV}H=N_XAN1>Jj&xunE^`J{Vu6&S4oPCbFXs zE02R47fI=;UG`oX;%A4#h4@ErA=5);4w-q5dUOh4wdVi+&;eaZhdugx^F-{C=?2zWzdjf8RHn1e< zd4SNfc1_1nGPRrD&i)~fx=X_Ma~|+JS{w24x5+g=uPEoSeluvd$rxW5jkq{ zg$L0y+Q7PEd0toF>gKJa30mon-3auqdow-EW~; zzkM)e$?v|HiKV~dGne<(?@FQ*mrnhg`$3`Y+MHVDNF1xCU7e2MNT=MBZ3CR$%b+vZ9Y~4x4I3O+fmIpX#fo9;Eqxr~l9s12SH@WomzCF|6KI6!q{O%=uo$ zmzyk>*W;lRY|Y8X&*x-wGr|p8^?VjTDe0~GmIz;x^D?wYc@cPB`g~EdWlH5cZ%V!zK(== z2<|y#O9xTZN*7BP4wR6_H({XhX@-)+EDF836px36r-%Abj#9`0HfELjr(8e>p0gxX z2P|=YO7V@h)FZAOawVYo{Nu4KO;e>j?{gKK77ju&r(N}2x|MN@OVKTwCSqn_C#Zgq zj1@YjGj=hazgup3Q~xdz!V*9?vkT7k!Tj3wQylSmvdvTSKlwmg1cMO3*A>tZV_B9f z4JP3^G`Spto)6Vf!HE-O=DJ5Hhr~7Rwa$h-W#-}7H z;vH4>9h|bqqj6UP;#PXb{9o<|*MkCqtRS3FuP!U8L$tu?ycYQhl^_=X#-sv%~Hv zD$i2h*Lx+tZ}Vwd>T(J);pU0=2*u+orh;5FYz2a5%S|N~JeDaI4$3BzLtWP`Y+IwR znT|%LkiiN0$DUG@29e#trMhi5Fr>%!Z)Wn64u;-+$!fHMTnCEsV_1to8->?q-t5dm zk5NQ329;?_{%x*!lTQi5(dY$(E-=Bgo5*Ry{b*yb>yPmY{W_OMN4xSua5f=327-1mQJT40PC`vJfwYqB)vfuSY$$t=Ybo%jm?;!A= z(O2H%fUGF)1J`nK%#U^j zG=4=rtzdr$Y`oqYah}g4ytjaQ!h!nl@R7+23=)VS=81j|;v1-TB3CLu*Gz9;=1q)! z8E$ttROk80TzgYxoG3M)(Gn1|x;)DLtQGg1)_Z~*@)GhJ-kOI)RSapPl^iYZU&Xhki0+Q)4zw2(KiuhdaJVGT zvH9M#>OE{clNC`G^zNX{n&Q2w$XI{=cOvjo4i8ztcvykx)tO_r(z_oRu#IvI1TM$7 zbu8a6pq(v0BWTqytszwel~{rq75vIhZmweeughG_9L_kZZkfCDttN^GEhheEH+<2} z&NsK-ChMLyQ#S3|a);d|#Tu3QV8DN@H5>B9ZYO%4vKF}u*x6bBU3SoaFq5qA$~3Iz zR6@7LeQ_I6B{{vp&(i(>aSERCw@x$Ad%%1)h2|xxs#Zf%k%TyTSJ>pfvlCE~pjYwk z1JFNLF%{S--+dH+_=BFH?9Fgj2#EPC&|{RNMt5%!(QVz%iHwvc9YHY;;|(*qxmE?K z#@t!u9uY@t&6k8R{MBH7j|-7304G8P@WVueXb}CdV0!Bv6+LVXaE|VTG*M=;$&jrR zHYg@!@a#fBk8h7=A~JiZIT=54S*8GUS9kPbh#YnX{MgsH*YE%|L0RM2Gjr)C2t2^v z1sxe@)7%dCD((&ESpF8{p1)|_ioA@ctMavr8bs=LkGSt7a0#tSXBc&ZwezXrDZc7| zPC26d1;l84mL9aXZj{u8<)G4&@)K`MgGP3HPJd-+U z_g;_l@xDo_TABRr>CTqD;&sqz;fF9+olEbtj^cdSm!rI?`z|q%Cc7$=e}SE#?hn2Mx<+^-AwVYy^M1|kn>N0hCUCCL;Md(_8ns5QTI7`4;^p=(gkrC`Cc2&V| zD1wif;2N#uH&cYTFM=A>{QfjAO+p9mkzQ~=j4!a{9@Tv5! zDyR(K5VjwyQ>uldX5uO1snN=&hliTn({Ryc+<#zt^<1H9EShUHdK!~-mvKs}8L_h# zc}WM5mf7wW9V zmX<9f&aOHxUu<%Yha`lYW|e{yXNJVjV4KT|fjWpWvGtcf?G9$Jjw0q`4$KI`Kq=@e z)+_5>XQ~;ANStzn;_VLC2Z%#kALB5%KygviWrW_(=s8|z!unnLMN8>4+HaTeeXWC!}+?vK2-OSw((3kOOtU7-hRspo=d*xyyZX#4(wCA6-jsI=T%eKV#w9SaM;|9UQ86l ziap`^NZuW-4360syP{6!F)a1pR-QtDu~eIO;%X@bf76EBSBm^3{bUP zIbX8xv)-yRn0LlVxgMGZr|m|aOq7dP)7k&gLs4xova`a&;o)Uod9ns#=4*vNk;#W~ zr@aP#^>zi`5|6d<7qybc1V+U6=G>{Xvxt9y93^1JcZNIJLTK55c4E9SJq%Ykf19{k zNLb_oM*cO>xO&>k_UT0B#yr2J+PFvoCMGgqo1$%nm*qJ`CO*Ckg&$!L zVfg0{-D%~!vk^3EZSvh3MmCWXb>$@cCT@VNrwtc@vQ{bZLf{Na3fQJ2?RBq4^Kw?! z=>}(}wwN7emx)?q2?muzcm|Z7?Ha#)ZKh%dUjv^p+P9L?TdxPuK?^YVxKc5`)?Xlq zfwyirn665Wv-!4P1DBZrn0|IKuCr&_NW3@>n2Iv!sf?mzn!X6IZl*{47xE6{#+;}3 zc7g?5;Um9&rfk(eGeAcBs+TAuf3I-9Gx0G2G*ZtEk|^b;3&R>X9NK^9g~@XnO*_vV zZ9A8QeOw6samyR#eoYTWZx)~ygSG~)1L?%0;bipd;u;-esju2J@1=+D6D_US;d$!G zu5TXKM+)H}G%-O^afroN0v3$Ej%D6Ad0GRqc+9vA^a6Qc2pm%PUfa$+LyJ(IYi@9( zxRPoqXAe5m3FzH5PV;&s-KvlN>9X0s!Khn<&^fVuANiId80WD6mHt*^_*MjEEv`& zqZ-SvOJ9@SBAbTnL_gYP8hA}SQteA{f1DnT6{nAAeXh1Z&!_g%rhpg>I9OXxarx_y zz-{#|kl?B2d`(wvrZpeg+;AFp8tLkq`trP#pK?5-uKs@KZjDK~q!9g2@*1DW;C}o7 ztx%+b81zQk6|QC2N^QhkaaUcuwyks7vcD(#u3Y<0+FfVpp^>@VF>)giK29zr*f zU+qyA9qY|V&i!THvM=&7fB3suE}S^kIs9QC#2JCy={*?vQw8ho%8Tvupp2r4x~cbT z-MHr&3d(;*S+Xf%$g@>1wB`)A-ki6Xu}FguEn1KQ=}p(0HJT&;&^UF|xdw-oOH5$( zh9TU3p5Z58TE9y+G3dj6y+i&ptyCKy-=l0GS&$s|#u?O1>P1SUKGKcS>=6~=`-ku7 zq2$d#dpDoI4ggUfR#JtE8Ly*VKB9XaBb_eC6NuLY-sI2O#Jk=3#?mtmDQqa>_S@y3 zu^Gq=ovLE))`6Ham>&{0WHT1a)B&)3QmmR>{{57p=UtNZFXLD!oTKI6-q~pM6>C&o z-QL0a@Jh^*M2KVm zH^Kfz6x668Gl$JPE5+8>EcuFm({8_CAVqeC?wUxDTcQ_T?ITZVZ_bIhRMqyGK?F(HEhytKgqiCUN>*)c);$^vwdG zWH;rKFXz7Q*)d_W&%4{B^3V!ZK1+~Rvf2TH8qA^>FQ<#w+umiGPEq30)8G#_g{*v% z@``l^Q_G4?#i#>gjT)aKNjh2K?Ujz*>eUJhxNA>(7FWyZDB6|0UGo)xDlNsUP^Jwm!>BLAMA|hbrUUF_`i?@jo{ps)QXrCDeQze$ z1$PHS6NJ1m>`xys>4g||lbF$c)CziY^WYrRp!6PGgG0tM?qNIvHkGb|T#d`@j$B1~ zvuQ>$Mu2{3{F?w)s!uX1ThxDURnt3-efusZ2(5YJtP)7wR2vY)pfG3w-i56A(`us+ ztPXjNPXf?g*Vhf^R`p0+@O9q?EW|SHU;tn@QT?T zU6(PQSsL`^1$heHK~`rqM$c}Grii!(+}9}0ZKH_CQ}WxN5y&O4s43qEB9gBWDQ`PA zNWjVP6VJm@wgriR8qDcD)!0+aIzFF}u_#S%3wc<@=ktd9>HIbK3)#GZE(jaNh&|oH zl`>ZR%}U7N5ka<2$iM`G^t2gn5%Aa znr*c$5*{$&t9ssfIk{dZkV(Mu*_v>`4L$BZ>@{>EG%*xB)4O{7 zit$g8O=*rfvTd{~ofBbF3vMLDcx!Wfef55MRMCcCMwG`o0~P1cbG}4XDZ#w#B!q2d z!-zcaFodJt0hvnX87B7XsLo4ZWbAy9!p_H&>^44!+c?!YxKAZHSudTZ{9!_^6!=_0L%peYzS%#eaP0kh!aSEcZlmujV+n~ zGcW<(L;f9f@?e;UqA6?LJ-rDaH;j}KBaHj@2fVbzUY|;CbJ>#gO=_R{t@brZ9OMBf z(tAMlaZQ^SZrxx#eOKj($BO*Hyj;T9o{aQosp@A0`8arGwQzH4IILN^v`G4*P;KV_ zzS#F@Z?syg&?@6?QW1hzp^#D~i+ouYsMbY}jQ6~Ak6TEx2GST89dsW?fM4AUr3!*y zN$9a~Miljc_sq^aU_3@R&+za1?a)YJF31n>k9u^SC3rdzm5JT zwBpx)Cb_0|Doy&@9bdvyJfIDPyjr1<5*4q z@0zQyzmla{{%0Ar!F4)^U2RwCn19T2LtnD|4yze?K$rFp*O@Z|OY+^N{sjZ?qKy*M zs6qFB&w-KEN?BeOmwF+g@gc4XBJm>nO}^=832^nIp=X>^#I0gbooh0F%Xuf&ocmCo z)J3}rpM}bi3pKBc8N*#lU%wujj@%rSJm`;aBm(Xh)<_)z)IJs(GsfK8%9;g?*XnPRF3-!{&YTU~x;>pU)S}y3WWwtTnkr}Z zLqz5{xY6QETH9lmj2U4x)9nM!OOeVN=q2L1-C zQw=jOUzjuKl>08*&Xl;1Du@Vs8Q-^`iluy{qK(^Q$1``u5b1@;x#23#shq&M6TTcG zKw&d&i795Ko)O=g-^5tpfuLeyKkOp>LQ_Bo920Y4#|m~pWr(sxTs7dl*-lOX;Hj?I z>Y`h%D5WAw!oDmDK+ETj6Kdqp^#rXdP-Q{oPt!O5%x@o;5|DFC7Jc5McOy|lL8L4W zzn)|$Yv#pRIrc-rPE`+l+<)JhfwL6ub#SV8objFAUeVA7<6tOJxM8zcmzhwsY*As< z?rY_e6{{7ZN`r1)_H0guq0{5CuM6xad0xbS0uPrFBho`HVJOxK28rdyr{h2l(HpC0 zwTw_TxtfiSF71B06Qm++>f&eRs9Q2ue*GYmIN`66`|C&FHQ|U(3jKko;*V*T-acaB zH#Ul#;6U$wdwN>DbXjo=w7GZigNGxEWyVNi{RHn8M>A!qfTcHMrd_pL4ULToBEkmD zY5)hWVy_7s1&Pk|bZ!w5_4k7(k+u&JS%-W;Os%_h8Q6+s0@64i{T3h2re=V(Ow%C) zm4A}cuF{53f@$1*r8t!?pCcMJ+OKB6Rlv_=0G#~yu6~EA$=c}_QoqX*nR+OqC7edq+KOHRXQ$L#)OV`bZ6-+JVI{F#XN z&OLwXN^Alpw0uT>GRmGQC}F+`auyus0tQj_q*su1X6J+i_Bib2~W*e41f&0-H--{K_`<>;0!YXl9CGg zy{OIA?Nq3&?9kN+a>@5u8am6T^$W>!`FC(ChsC>|8PO2~8t4jNUF{sO+qJ`}I9}fs zhKKR%vMd}_de8UVEFFsp>4cx-mMeuMl%X{@4P_WL1S5aWgrZ#jK@)uS%cw}7VJJZs z&_Y~Y*IO--AjS(tLveqfvLz2PZprZV}d-X zllgNxJ)V{@1#ZeMR5;+nIT)&p3zqaP$i4}wwRO4)qgQE`Udia0^0i%Fh-87S^1%&5iMzwQlIO>l#%2{|qp;t6WIxoU&Qz`u%c!7t8n6d6Uo@x13z-Xd zjr*Up8-#*&sT;74bN!8TYObC5KdXnW7k}sB#qd@*v~kxVh6CI^y*vL5VxqR95drT- z=@4G|HI_Rm=6nAUGp-Lh3ST|ksi(ZiL`HAIDw%xm0k(*h_DhCmwJ}6-jaD_DHG;5{ z2`aKQqEl?%vgU30S8S^IO;$jlxyWDeWE(!R^R3te-=85s=j*P!(`yyYQ+^d9((RtQ zc`%T9^vVaczEP)TXgJUI1jd_lsSpGs*Fd((|K*%5UYf<8>5D#Wg&jN@ zng)Cr8bkZ{#(Jzy&Fe0=N#E!`ndRaZxiD!V{6T1@H)=Sm~|EHKuU^YRgPv!n zWEC&cK(C@frb6z$e$+pLP_R(%AvEBHH!~!jN%ccEZKkUo=MkZ(42=?d>&5pXmZHM& zWZ36bw)FDnU&8C*Ar!7~KA)lx_q_xKxYk#g{8=E)&4_F2Dd8_adqcD)^+b}eB?^e; zZ#0+z_#ZA3B}s+(dMe9ja`gzFCVx%vS&=AFSKD}w9D@c`E*-kJ#L$y=M9Q7eOW_J{ zPAAs*@0fq1HFcCc6VepBcqvju3rUe6_uo*(L)4hevdo{gb7AKAd>q9C|B=(jN=og- zdaEop^e9N&mZTs^JrYbU<0x^`pe|g*LjfXWR-(tr&oubZ=Yze{_(|sFn~(220<;x^ zWLuT3z03YMw#yYcfKU_j6|5m)T0w1eo1#vNZXf2=3t;WHKyKA`|1a*|?(Z0F>8j1s1RJ_lJLZ@Q2!P8E)e42sn64p)F?8zdTd$>g<-I;@(c z2=GstCKl;l-V{z_5BU_gx%XFLrEHsE_TtND9h|u?QzL@nCAz$P>#xMSDmm!zty#$#0kH5PK#84^e zwOQ63{v54`u2(iMb*ngF1AO`){LGJBJP47x%G$;3z>p~mC47aH7F~Ria2-LA%?STEE~3(7HcR5k4EpVOPnE82VFuJP8r3%C%f8+d-BuFw-YXBnc%)|DBm2``A&x5pUQ#}>V zY#Uq$X~%se{jwEw{Ot$g#xks`#yvn)#9QNFwrH*-Rzf@g7W9ztET>tcSW*gHVF5w+ zJKSQc-K)L2b<_%x7wbX7j5lfl+ZwG5`;x!aEj-UCT?z`Du*E1feokq*z+KADP2(e+ zg4D{6!zFKv-Pd_)^PF)jF+ za$oB>B2Hbi+0fYQdhtDrQjAn~S&n6?_5H>07QwX0|L_xwol`~ZOopMmd?;504c5OA zipRF5TJ;4IQ!&R?g#v{pw?huZ;))D>ef%nhNKLhh70u$Yj&AhsKbB^Cz2YDQ#a@{_ z_WX8oc!~$1 z0RVHp4gc(keRcZx-KbwA`;?%aU;5E*oC2^XV_X{N8Xh`ecG>N_I~3WKPOuR?r_`4Y zlGn9g66SgyB@{Jh#EXsyH8Zm%CqId@(pJW@tOyJHCaQ(AVn|-DBw{O#RITkQ)SX0i zXT9DkntBOEiRI`4|7n%-t?#D4iI|p48Zq)U>w2=d&T{^(f0us_7DkUNy(j`N8D<$0>0t3<|yl415 z&+|TOec!j%$C`iU=AILKUwiLs?{m(5bN}9s6*V70SfDwoy^p4_oz}+F`+O)kxfvy9 zBg`g5Tr`NK8mBEC0bcTr-EoOttgKbR+?qBXK3+8F!2TJ)s(Lmx2@kLjQU!%g=hMG{ zQCN__bpF{scgr9TtM}~4!_Y_W>#8fSIT4976HZuSqZrG#2aDxrIWF-Wm-fRoiM+lH;))Ew0NuK7W?dgz^`}v zc$Vn9ms1XiiLH~Brin}ck4`>0_J=)98Z}Q>mDMn%i)#kcvJ-p2Bw!UA8 z?LOQI6haI!S?M$qYcGnMGF=zC6ub>WMB%-LpDvR`tg6hgQeuHztSEE^N5_494MRFh z)kA+gw1h?b-`dn4?}K3}Lg}rJku@XlN_M_ctQ3qnFSHN_N8a(R@cr|*$jGOUq$T9W z-{WCoqP3cysriue<1+yop&OEwiXHS#KaVMy{P(9{B7OP)suQO89U!0 z*YNG*%PqUNPBd=gl-o8%qK~bFRi@p?e{VfdieR2G6Mr5;*v+aWNjQZg#L1{8Z25=c zl+eg?&EFj&NwX2wgZrd(oa-|e)zTe4#O!*5c+K(Qo1FW#(-*;EDd5*qcsLipxeK0Y7W!L8o@}!h?QD0^Ka{6au}}4f`LMoEY=Yijf^udULc&|6(4%~ z`&$Rdx1Kih?Fdh|#8DF}AM@XAtIHQ(?jE+&TxNeoUM~#5J0ktiP-I~XH9hx42p{)B zN|H!&%|m@PrcN(PZlpI1rPz){EF9I&_|n zF-&W~zqid_@gn|L6h*Snqtx%^#)+d*e7ATEQ0;!IX!I0~L2pl;#7+j?ZbZEW(KI=K z!^v>_p|U>%WGvz6#=b>ZI5{v=3aYWsWV&Ia;V_})h)ZUVWXA$ z&HgjmDoI z8&*a5IJMKJrbeH8_V6V~*H4dp|5~Z;W$BlTWlb?HFQYwues<(wzL3QMuTyCRmIWqRH!vl{WPe>|7{kfp? zsO!)8QRiQI%C?na#eU<%mp+o06p-LG98bJ?)I zUG4rPiZ8#_h!^tn@bK~QXw{Gr-#IN2otYdL%YoL~bMJI8(D(Igfvwy0uIF9vWO}me z>aFrzwRCT=O2Gq#w!dQ0m9~q0TsXME_eg&g!-H9DcXXS|ezr^mlWHx@dpknZ_|Y1i zU&*5=DCEOauRF6*Qd1h7R2)BbX(aDI_B)v%N&d(Ig;1YuN|Yv#=^HWoM}B-Pcd+_O zXq9TXrjZGL_j2a)r;~`gSE>zB(e7DfLKP$YdFVj3AlS_3kL=MtFOfb_7`QEeOE84r znc$PUNN0G5Qh3XxRJ%~q3g2qI1-TRv^Xsu2Q_!#X-mmm_ExVpejrdW_Hh7F2>kH&W zo{+q{9hA0kAj1nm=m&%CRQrx^Z&y?@%SU6O?Anm$GkXWnBaeXoQ#aP6s)oaeBiw<4 zI0pD<^&xyY5QY=RI1F#oBMJgCsbdLfGBfm?h_@KbX?UNqz?o=D3^+24n#$+1LOzb# zuBfDF=~Vyv&YbIJzB;Av=9XZ;U+9x?-zx|~8WFOF`PJ?!6MO;d^8@`{P)|PXnwsC# zS){Z48f#STr#B;Q7gB!!FmS1kcqhB#v&c7#zb95J}nElZc2PFUQ4gw8M&F=#8UY* z7uxu^wfSdc@;#+`P4ZdcMWh=c%`bV0SDh4P&Pi2?UHDA+j}Q_&*5z0p$7WiiWux+c z)nGsfR2m>V83u*nOXEne>D2EG)L|z_0YKk!KWB9|DR~}zir5ijs9>+y2?1-=HSK)A zo_dd@y(k*j#zsmt%zRevzhepE&LutxZ*-;3%5b5BKxm&S%1UV)2alUMLQJ{c|2`yw z#N&a^WVu0S)$t41+=6d;nMU6$>yioHI@)*u4`g_r{uFPD*&H!(O==7z?6f!H>jzy- zq@~fZtI_YXKkmqew$H2Jp+0RVc|+c3+|lp*A?BCo`21x~6y!Z~L!Xw&5rMKbRv<&@ z^=OVc`0^s1BBGSGF7VR3k^Xd|fK1U-Zde7${yE zOZe2yE+6IZ7T>?M{DoDg|8XjO&gaBu8{2prd&b|2x&0BpC> zxlnJ5nlNIRl%Zs~o1)IY+>^Y2H1c7YT4p)&4)hNEc`GSq0TJ=xtW)9$`~9oShmP2_ zFZ-wr(unM_r&hmYu{*fP7hl2PMD`^@ zy)>?OFuv#*ZI~Efyqr&0Ce@4sn={`Zn3Fwr2pe3-p;VRNg-UA7M*IkNBVC-iR zpDX)R0mu?c#GN#RF1Nb`HSU|Eyh=>hQ4@QO;K>?rCbqEY#?)1--nH9M?{Rz1(=Itf zVUD_Q>npf3?4Ap3p^|STOf)`yC?C3uD0RnyoCY*-HAJ{uA+U<4+|)`xfAa^_e!jMykha0CG+ly1vVv%nu$xODai#3Oj;mkNuB#iU!mk5B92ryAEn5WSd)H6vTrvB!b=%0Ya8zX<>GjkEwr? z@`21utJp}T(`t!L4&1Ru@Y!G9Ig;fH4}A7mM{Zv__y_MX*G@vlrAUC_ZfjJ_#a&4% z&5RT!uYXJlebb|1WPIZT^eGud2R(#EmHObY_$b$hL68SXpvklt1`dHf3cN2*HA@PU zA}|S&pQ9`MT+)yVY91OS5LB)41;li1ny*3Zp|{uV#^&ST^9)IWw1^I%j@GtrhAU#> zkeq`w6bbj?>6y?+KOzMV%EB3t@eWzh55#np4O=h?Dt zBeOCL@IaJMST>6oi_b)x2UE4&;h5Bf%`*<5>ljQ30tLx87gZF*@}jtN0t`W38Q%rp z^tgbtkaRP-2Dr{FG|j;cx!d$5|W_G!oL_HAztN9gGc?8?PW&bGK$jxBVpqSR;k6<{ivn=pV z6nOJ68lM8wZ{$1hsuL(2)v^pcr(z>OhuMGS&2!9Yv@1A}$VgT1Ut;8N_|%pf60Azr z{D>S}U+c4HaV2F2#DlCEPsktN;IWJOSbvp#BNP*!r1l@HBy|fJMunNY_y6Q|G-qWr zo}}HQs3CecoEK|ZM9FJhir0Ut6-*FER!`B(g!SHQq11#;1~7s@0H1UW3&c~cLqlpC zAEK_gxLjXYxZMiHL4Qjg8@co9+BUWnfZPqB4!6(c5n(u`uUY1^VVN4>vI+)NxKmK^XCP;_}TRn8KOu2t!_dX7aEaZ1FKc9c^|_?aAJ&s zYb)Fe&@=cpTXt%sg(45*=ShDhn8`e+Nay;vskCxW$9V?3Fut-_4mL)`Ps8LI&&ne- z*0maeXo9y4_l|&cc{+>nrdpQu0;h4BtHNHm3g15toDV3pD z&?ZO##|q#pe094=oJlo5e9-s4V*pPEEMUm%cMH;MRc=|36rSU-) ztb3OTxpDqV`r3c3h^`hA^AGQsVk1?_F5WgM%aXgZ7W67WLNdYw_(s{EbJaEboW{`> z1nPynU?}z=byz(~++QGo(5g%Pq>o{-`cCjkumAxyG2)u~!g^6Z&R6y~P{K?F%P%xX z_MLi@2nc!FU(uYb(K;zeCykGN`@SZwiGU=+NH8G=I1G$eQ!V1}B4z6&Wn-{;ykRPh z@0Bof&DPlZ6plLV-Gydq0@~<%0a$d>05a&>PBpR+Qk)~WG8z=)Yi%O>3Ekv zP!=xYV>es-({OfxqauGB-%uxQ+S)Cu3&``_ea8S_Sg?2k6AhHA(QRbb8*&Eqm+J2i ze@|o55rO~mBTpCQP{GUd{2ER|Z-~c^OTo}V#?4ms&*r@rNF+PcFdb+<)sCJ$z{@LZn7GnT_qhtlS z@RTLGPJK&8_QS{oyw$pm`TYHT`j~?=2K*Qfj$`IekzN!ZmR$|E_ry+H5IqJ4;4^FM zP;u`nKoLI}NXVCU>ZkL0tUCHg^~wtp?UB#sPSL5yYsHZ3dUwP0^>nKHzD-D8P7 z6_hgn@rXAY=UojCD|#SH=MPt{X2IDJ$B`T5>?X-!#H>&a>*u{~+V6ovK4;zQeRbfp zJQPD9l&FRo2pn+yBX&KtNRsYWU}!0VIF%Nl`UQpzm{-lajF=byT*t+9#efqrPmIcx z;8iV)1#o$ePvQ(jEM+zZL(dP1c9S1~i=o%AVSG*NCvK2N!fku?h8F$O#nz>Ua%sCa zFg@UYCfn&$=D#M1>Ap=71WqwI7y-O!1(cLNB+uSz_QcULegg(uOKd3wc0(^^eZ1;h zsDv7Y4dPIxc*%8QiW!+BC3;94>3Q7bgQ{t1q=6*0gE6i#^kHQf1N=FAnANhjY^C-u zf6_f5HRiX_iO=#~ZyF3y3q}{K!+9fOLU|HJ|0JA;$tpyq4@JAv$%2Y-E0^y1K%^H- zZtY3vVG%WG2L>8DfF+2lu=aq0Dt4eF5~EHb#6Mtm?Qw+4cbSvhy`y+zpNWr}@bo(j z2K_H_e+fAIvnYRk+xIlOa^>byo8iy8Ks*&97@=QWiBPa5gw~et!!KfscXq}#br6AdDFvlP@fAC$giDPJjv+TlWDhyI+Wl0J&qqw zUU6v#JXyczKYtMbFXshT6KALe3*dA zt`NMKGxkL7tnFQ=;50-z&vQv^Zs#F)IkAY0e`XqLsQ=tx87p|CAXtPtiH(w{Tle_V zfP4%xK@DyNEIMJD?IM2>!<$Jxr1MD_*V1VPwk%qSp*W9@|4dC8&K=J-{OKXIzBZ&# z_^g7XJ8ft^XTTIOQF3I_7(Y=PWibT(I<6hhCvvA-8~~A%lk<~5E^*9zuzL|hOi)5p zOO18byrk(p36p&NUi-%`pGJ!}!pZMRzarW7b&jILYVu57b7BE#puomNGa{Z|23&L* zona-q3GF9-zT8Z>@>LhMs(oJ=hUa?4UHYW~L}A2>1P-}Bz7gKyG=xKf5fXnpd_BVs z~o*xp$F>rQW8m% zaBCCpVkt-UYQa3Z zMt5sbdQ!mHPa zvKQd1dz$*+ETd#7bE??#dn;)B5xSP*@@ zPIBtRd~`pi9ZIt55#?RkXTmxrFjxV+NwN~GNw(N`h)B7gNgpd+%5+Jt_W)K_0zed=8w#QKXQmSWqADWnUU8%iQ zbjgD5rmIxBO&LPu|4L`6;g4_1dMW9=ZdjbnakmbFZEfVDrC)(9+j};X2Q}a$1Z}#O}j%#!b^_1+N)&FMlVVh)6!&qA!NG1yEqS$HT*`!_nv*|L?4$Y_ zL15-Vfe{dg|7#8lRCEDI*j|ypY!oODjq`S2DQ)fwLp)D0GP)VkYj_}jYJNd(sr(N) zX2RK=QMdwG!27h6-<)p9Yfv2QaX9dk1YAR7sTfE6yf`$m(P#LZ4zv$2W^kzSEPzmu zQ+RBmJKdf<=u;9PghUi^&cHvoJFEwfF#}7ERm_K>@9E}0xm-DdI9{+~BMLpX4-@xJ zvOU_Z&i=mMjRKWVSF2S5B|XfK`2gLQY%^zV>%pC^iv@j#M#PU5xZut?3tQFDq#vBn zT{cxec<{jB*|Qltho5?0dI&}%nppfi!K90DXDPk&=C66`R0Leq1YF948VuYttMOTJY^F{;suCMxNF>@H7HUTlvA95m-9X?ckp1%YFVcA z`D>GHO)q|#5m&%I?(@S9jDjJAjGw8fI5-jvACz1ReS2SF#->Pc)@VfTp4!E5k95|+ zMNhti-n%{ylB3-I{$sCVdP>wzd=~g|=-z7qrXy6d+|n~>wCI(vEciCD5e1)CfA+~x zN)di7e#?!KQJ|27ELChgCYy2&@tG4hmAZ44++M$q3BR%pl!pOGZk9EmpBA#KFb#j( z*eIs-RTk85p1;SSvbC+NjRf^8eEdK6zc5Nx<%)(OxX#-{pHz>NAbaK^{jdjzZagHkBx>qCxYMsUIzjDvY395*XSDCzt}>4JZJR5~%=?1c3&C1hLtjG06)CaAuf$x)MMw>mOLa zhy%>%QMg}gYksI^!!Z3}kvK10Rw4v5TnrJA#&nW+V`(J(ank)Un+ja!HU9jMGL6Wm zRk-wlFk#s?coC;mH5mn9{u;S!kCE{~JTGrT!)Od`%AZh?C{!#BrUjWvXj2LFOXICg zC=a#xf_Dfgjzm>_?Ak^QM#)`z?(MJi`OVf&LyZ+TuOGdB{koS=rNI7!ZVQC zm@J_%2gyN=Y~$?zo;GPX`#alkiH@E%^4lor_YJ~@=$YIJ5HwK&_eA*2(@A@5A8q@b zBy;&)tR&B#Z)L7ZTu@4nAr~Vr4{CHEDY+jSW#IG|2Q9vp*XF)af7RyrpprfNQ^?lL zEMry`g8IF(x_UMpL<;(}_R4}87wF>R;>y4?G;?WKdUMi!IRfEKp)qrCjcZkbh0;gi z4B&fhJ)8ornX7$xg!wbSoY#gxj_*D}VS_bX7S~(?RmHk^-;;d{?R|?NcdOEqOS#AD zm`|rB6$GNd8!Q5WwE8#GLLkrQ!hNH`H=^qLj_J4mds%Y+CIrIs$r%^oPkGfW0sB;Z zZf$~{0mo4dPl=B4Z*<+O^xyq@h_82U^hVg`tJ7}?xA2A;GHb*%W-5?0k*s|?I-8b3Akyu@FW;i2J6z?@Sx2bay@kUTQO@ZoN*V66vL>L`8-ucTl z{s04xc-iqYgIqc0M5W;Vr|HHV*3%SA-?)X4I>y~TzJCY89hL8o!u8%YjpxBhP*g`j zN_D8D<$6Fvn6j15P!!{)i#;`UQ_^xj75wd@c}%__Oi%SvG}O`c}Ntj@tm z650#yx&s?xg)GNSUn9q-^P_yP_nL15fu;M^4j+_oxA4XqGRL}Q$+m%p)<{rUyow2R z4Lc5;N!J;JGVUG?F~?%Qq8-s@@XA}?_t)B}QYdsT7Umt{dsR6gECCXu@D7^xA)6=Klr`D1-rr3_Sfh@?hPN zbJR=I(DQCm&vN#t*do>3@AyW=&w>&sOYw*q&z#wx{`b}?m>W*@Pq;46I|MJ)F71&Q zJ$}Ik*QtYJeJk<(`4s0^IteAtcMd0=aMjg<%N~y8Y>Q9bU<`7$Gux<_7sYN3hN($= zxN@Xu*)A*^$S?+RKRk&2LP*3+BBYq<{N`6;(n>lygs2(aQuDJS4$>M3QyXNTnt!;Q zb&|tKpep9|ke{sim*)q11~wM(h}ij?T%$iuD{twtY37CrgR27IYUdj*C}i&UF2=S( zN&mm559|ngw0Fwf(Gg8D0fj&$R3joHR>!wCoBy7dKp_5lt{3{Q%9h{+Cy*89W_$!_ z8~X3I86F)htl5;%B^5(j!<%X6KL2hT2yo17TTSv77gG9#|K6?#8#!rSfu#jq4W{tkekRPuIi~G6wB${n=DI=ts8*mdW=X zvdRm}6B03k9tgY3T8!>lKB{=(WmUs}y+N4wEJqX0n1FB;cXX_(6wqZKj)*T~PA)J? z8Y@DYe&2nz@GMhQre|mz?*iikkNDt9G@zmP4?mS<&2yKz% zm*m&wqHfc5yyXrD6HKL-hIh1ttki@r_Sm5vzW+WO>3+XB5n*lHGw!-E-MKEWPA}f! zmJVJSpozkkEik5`b>za8c%(lQYa%8jB!t@g!q?$rQ|0Y$iOvfVtLM!&p6;5VDWs5? zd{G|@MnC!vAuiG}kz~FKmm~yGDUw3^)?EzCopcs~xt1#mDu8iEu*Wds@mGxldR?^^G>7Ga9=QrH;JFi=oXu-{5cD5Ib}U`0WBs0n%q zoY9bYX90YmJ4kCeqoCmYzHbj=S#ZcuP@bc_l@L?)NZFb3O(8%witg`yQYYMs)O?(7 z6vs{ zEK3)c7?cmGH<}tKzXsKdb!+`^*{jqZIIteWP(DNc*?wqOSSStBTooYfZm%!?XrTRa zOiE6crIJtp{UU_|%^X7bICi$7PF0$eKqf+XIs9!tdz>-CNdc+qRO@8L+%y!xJzW0V zsf0*xb5>im+`jgB>)N8w(FP%uA^eei%af zuB$VHu}!db!=(mEQqM)ZJ(Z~fcWiuzAm|X*Ja&nVK0Coz?#USqdCQRwmLU?+W728E z%v81P%}(ei!MKRYROT=+N)&HIII4B9yIw<)qh$fUH%4}~CVT2Sd5ir&S+n7(fl=U9 z0!>_w@g1D%NNXRCagqZM>csaBMjEh|MkZ=%rcnai3U6ojuf_;UjW=JYyC&p#%g$egtr>x3|fe4&m;yJ8xOokNid9PW^)9JJf@BVJH0#QbP9fX=U>SLpIb=#o?Wv+7dC~w7&z{+;cJE?jyBu+yl zinw;DXzAdpt|_~JgsHWScRsK$f1Gl!72@WK3$W}}&-Inc=DUtWl!>?}Q!?fUPmxdM-Tl!jpAX$>m zrbf^BC%&Yxb8S?yi+G0Uw_afuKZJJdPn77N5_V1zZCFxRu_x`(5r{(z!1S4~p{Mvt z%(Pe)B$1>n@ze4CgQW^gArH|77-h<)m%<*vxklsO(LN(ks4ZMtBSbE$FQ!%*1<;UvMKi{X!y zYgA&@xjdiw5H|K7W#XV_2u8_7sR|Ar6y?vhgW->LuV?b+n2NDO1E=-nBRCLRYAwI1 z;wP1G#RZ%(UT+;NsgGQz^=W93$A(z{vzggAcghCZIHiHl12A_nwOC+5^=~R7^oaBx zej?Xqgaz3ScZ>->*l){ph6?G?;3_5td9^@EGsj6^)UX@F!Mx`ynZNLK9Sl045ZVfC z{%FZH7)swq@WYqE|GD9Pea^jPtfyY++J=?D?r%-C5UuxSfZ$oscSM`toMkUb4s2jq z+Tn6ZY+7xca+?ZD=V$gNV2%p6yxCzSqp=7cu^uV_7i%r@X?18^nA{knIII_?IHM0T z2oe9|BXPQijvc+HCwo=b(wh{HXrpY}Rpdt*)VMt}k6=t8$A=#65ve2P7z9BvISCm+cgFIb-)+bq9`SS; z36&-I#eYFQI;eSC^RlCBa|4~DeO}48{ft?cH0xle64CbYa}ohBCN#*rXq1=8O2rf+cmdmbc|$k2DA=^pR<7`RUqJhUYrg?nCb{ za)Apa`M+wRfLG{ccbiI)bqT~kR( z^M2Fir-mxNbY_xFlx|_8>lx*)EY!SC%~I=E~y=tY_r6A``Qqe@6E)M^Kz1 zCfLk1rG=@Q6A5=f3pbJGRd<=4x~}?D`8`Q<$A@Gb9oq4RAn_)G%uq|7Dl+oKev_c- zx=hzMgt6=ViMZ~!*yIHgN>*CpcGk}rMg*emTwQY4SeH&o`SH>F*($s5x~~i^Zan*q5V8!TQygPhi3EpEf(Q$8V-YgiFXxta-JGYtut=T|#gZq* zg(~Ba}Y~TzP)U*RiU?3KNp=tAknQTV#9oQ+*3YKG-?lTHo zsJ{gn2ogU)Fo_=geVXw)*noCG9_abpy9&0zh+=ZTPye^phiSx2`x!m^59MJSEs{i* z!=N@NAEA8Z&7+)GYo^Vtvdg2~!?2t_;9K;|5)xx9B1-pOE6!Aap!3p~BTV{P-?K7S zj)Zq;l8rJdMYWzo3$xnJxY`1&Fo|WyN=Eb(SEiV8}|PjkhV za$=|e3xZjQ?~w$~>^f}KL_o1lC10gU(?8W6CxTDo7<@YU{b*-)S~e@8q&@blsa71p zGH!Ng2U+ZQeWYZ}CzX2EZYOFmm2_TQ+$MH?to)0G7h_AgBPk8}MDpf(zU3)liZvlI zqL)wTsAbyogvKI*l_h}bRFA-frnSH?Pt>fpHrLq;lQyRciu24Oc)2zBF(EwDuV!;O zv#hBYXGFtoDbmhgf0BN-og=N`CrkcRCMOmJbjxoVVoeTO^(rNfXAok|iyd7&{CyMf z90bY#VjG)Opgul4NFRAeBZZzfKDy9}Bg@Sh)0aIuMJbINp{j$)F|IfMG#}BpnKarW zAh65?3joKid|?eawxIkA`nS(H;{FBsf7NazuyzZ+JN_g?5cpOrjth_O6VmH*OHzDE z>4OG6ikrs3%Ep}Hez~#WRTKqCPeGHXGCUwc_t~~Wy?NvuXT#1%4+Zn4`g(_OOGnQ| z8SU(Zl7$Jmx0bbczyh-}JT&$C?8Ku{R9ZJp%5gSJ96uC>pN+P7v0)}@T$CKBJ(Z z%Zz2wAQlnyzx8=@!X#Ts7c-Mp%tqVhlRA>KR2w9i4TXHN5;!%9#n{T$6`!IB>Fw=R z#pe?V{=PE#dM#0$nHE%J#6~03`nL52c4~4Eb72$)w(XK56BVTJT{W?Cq^On1i6Jcq z>4+jWrrNjzZy%fjDqUp<>G)~Q;tYmH96hM7`r>S1X`xfa`2_Nq@qH7ywlJ(pfE6uP zpcY<42}POusRr8NQ*;c~t`|$@smK;zUxr}thh&R`BKpYZ|AZ~6gURXrw@N3kRU%`;a`rPB#lV799+&5_|6v(Lm@{aFq<`0XZf>NP6%g+%9RqPF}Z} zy@aTmhJhb)N6s~}K|vBGqSYAh_^DynyEMJ<&-f9yp)ZNqLVQ6xW4r<2-n%GQz5H(f zTi$Us$2yFwpT!^K2&;Vk(v5GhTl~CVQwq?*xggrl*VQ?zd{E)XJBcw{PsTx7T3Ti|)8B_Pw^9VvzUcQPqa+$~+&5 z3!UYTi<;1dSmPkeUj99nD?IAS^*agHIGgBUcfLM>;9%{BgIwFlZ^KQ;2Pgue+q*!(McmQ*y5qn2b3wH52C} zgvuwkmyyL?jPL&Ru(aS6h7Vs7ESd*0w%PY?nH`=^D1t6*DgCVb9*evX=b0oB%<+6S zCsck}sCl#eo#>B{uBuMRf<@7mWl+_F@9@}4E^m2@)T%toIipl7uHPHE?U&d^3Lu_h z242&nY7<{kXYL9-mo4-H-Y8TuwB#7P^P3t?6({YtFQ>b-`c4{&pdOvcObN9 z+9YU{6qTzOI*<3-r7_`fviGW>!IwB6gYC%eHY*uk&|7A_1|^mahY~*fn`lmg|77}z zfwWpe2|>V)!huwfeU=1J_nw4u23ta&|CK&h1)xKsz|hl|)UN!0LGggdOX3wms0BLd zSHY)H3xajDi=h7|t=f__!%$$9ziF%!?#%N&Fch;n48t4>dO#`;x(F`I#eNPO4ZzEL z1c8x@^I72j1*Gs5Ly1jp5L{C0f^SsJ00bxMbOPPLoq?`ukdSq>oyU+0?&A>o4`A)o zXmN=_0Jm`n#G*u3C z$u0OopYhCaaMODHMrf$PuJ zSS`m3`oXOVR>LH6b8@ZP?8hp8FatTcyLV|3jnEhWw~k6zlZ%(|U_HZ_`y9j)Ko~Nm}evl`NJfx=5_-VHuRi{wd|HJUEY?g*C&wzfr`E z$XElA>?a0>fz>+PEPLPDsN|LAe3v7?lZwPwE-PvU`dGYYOqDIF7XCu{EU${#xU{~M zOV!sK$-@R|^D38VYcq6Tpv=w9jqako%KfR^oZVkl^UBd*C;1AQ$PgCqyGP}2D!Wy+ zM?)Am^U*3D4Y!c2g=01sctH~#_CKRU=oHdknfkgNRF2`)`piY*W@R<|G0%Q*9_G-B zb4_p|jHO5Wc3)ePAuPalcIMd&d)sxIsc-biqh9dR`-!!;LTo=9lB~~MY`>jJ|J5oR z4H3R}NL?&KzWb-~ek5CoT=Jo7zxdr=aXs<%X>t7B@%fZsb>4|44=hiy`OORL(;QJ> z$FoILDV96G^M!7|yYn)Gu)F-9b2ED5%s`pKZfjtvM(bbM%4Bp>z4<2ziP_WF4LLO} zn@%Rbr@eJ_)23g)-~sn5@Uh?r&Jg0{99b*v?5K%WkGyVpj*cpBjveF2&jTLYFC;wb zy*wS7uhi>ec(t;qRlrMe9dzCs(W8>P zOFALNm3$DhdNMTpiKyRp_Bv|rX4hIW>dNQN`KZ_6z$22oTJX}^ z&hAHajaDTCx&1`BISIRn>0FZvM9c!azW#~vnp{eaKjSfpo7%Tvy=Q{eWf(`%uZy;_ zs}YDCAt418-&cv(eNq0`@l7|jIU78jkDdrG#Ie;s{8&lG%gTBd;Bj61gwo>z*S}`G zNBiS0rO$rs>}<~ERg=~(YEC+(L8XM=S2TfNO#9Fm=JpR?_#%r*=_Aj}1Y6p)8qrroP-d?<}U2vLX9r?fOF3 z`+;V?NreX|&a0tYW656q57(jIe7U7s;yQvb*?5tk@84qEa@p&5Pgbgx6g}<^YvXJ- zEI1wOPh~0A2?0N|A1lVC^jt<>9Eq0Pu&t$e_xz9(n)UZDajbkeQ>4d|>T?)l5_MB} zT3u1uOG@t3S;L&zQwPzlJD#AE`k32x1$ggPaB!U#vdHX`xYs<`6VaauQlVZ zjw623Kfd&$F;~U+?oL*21v>W&{}|<)%;T!C0PWS=ZwaiCAJz6#sBV$rK@lT^*v#7_ z1H{-yz9vf4N!%MBhUJql*T0u+>eCI(T~k<1OSizOea} zCD@@mPEW|)Z-0e-?3IMlJSh{qT_cZkFVBffAjVWmZmBUSo_)?|B{ud2agj}5%G0f} zsrOZe_G;|JMLoROwr${1VPdt=%+kBttH$%iWI=Uw7x%qJ@wHTUU5eq`SI4k7mZfB> zS7RPHd?$?4I!pBFID{IMHVK;ZXOJ?ujv++3yTI06U(cpRc4n)KY@cd{5g!VS-D^LuqtH!poF3)JX z^F4b)wQYNi;sKe>p;SjV61=(WNeq!od!^LQ86|xBGyP`UynI4WFb*Ai$X7!a1lRv; zLDteXJ!&E$&d2k$zx`n0X#q^J-DEV#V@_(aM~ce#aNMLM)&JJ9F23i4Ls=HKAFJWk zbT-@0km69YOPB8Wry}0K&wH&8*MR|a> zNp;1#4@v_Vswpa7FGf9S-$Y;HF4*+bjeykvaq*dJ@r^%6)FAfEq@e3mmHX{Q|5=0% zOso(LeH6loadh^TjL+^4SwcDWbB%zDL_2-Te(w7ENJu45miR@(+yLr^NBBE|lt{1f zkb#VE1VO7kc$Bb=#dTIU2kq^C7u{0s+a7yK)@Tv>7J<8UEcKSd zkvev@^QEoy`u;Z)qBk3XXl(09jk$@&E1GJZyGQdu{Hb?bI12;{HtzMV^%;m1ny3_R z&%@tMx30-}LFPZ}{m$wc)_Sy7+}L%R^y~IpHj?=aIQVPkM|FHVmu2@5S7msZ$hO8a z9O3i%xx1?--!4%g`mS88-Cg`9n2OMhL$BB7JhWK=qJ6{_1>+wGw^3+j&Eltt>N$kg z9H;2@{x^HSpZ*7nmG$oaE=v&xvsF7uKty|?`I4nc;o|m8p>8R%X`^1TaoYc`V-v~# zLWj3{znO?-lD*02S7_UYD~Y`+0X_G{4a2nioVsuL&6&UdVjIbvjnz=~h%af#zn**({Vi`6 za7jpnMQkUtsBZU>|}rXaev zv-M}g>^@@sn42sE)m%OYZG3#TUM2^NGIJ!WPIAPsFfzVpoWBaDT5;{KZuYne)P2QI zCaA76PQn=UyWbyQ7ZEwviM36bQ&oDON%f01sgyjlZ#Wnvv%fCa&(1S`3LUN!3qn8| zHh#3*)hwjsv+Go>XT`FxaZ}IKI9@f~Oc7X*`V_QS$FZlouf$rr>gEa%v@{eH3!YR> zr4451jv4sd_a+r-7|g7X-KqWIg#C~M5lK_O4n% z)%MJlrHIk{8=pPuiDIVm85zDE}V6>oT15 zTJ)Lc99RoLz@4eEl%i+~Lxy&(oyw=Mm`rZekvI>CoHN+oc~Q%3E9TC7V> ztpK3nv0Lj81Rpz^pz9TOf6@J4=#%~>f2e7O6xTn_U9bA=l#Fdj=XK6xK;!Z91nwUU zj!x2*Yvp6+F)SA~>mZJ8>kNPa7;kFt&oqEAU-2fE1eC9I09XW;FMV%gVthVRE)C55 zL%}{x;HVT}0=2vNK!|+N?cFmWkr?#l?UZ6GWP8uQEPJJN;%Cmt@rzZOp-YjStrF3z z-FkyBw6(h{h}%nVA$NrTVP~bUZk>gLgq1d*bOda_`H4Z^)%?}>D1_Ifr3!{LK_Y!xL}+4&ZX@Rsj4m(vopO?ov zJ;PXd%iz148E$raIYwsXH5Sf}5HM=-V`GETgxd|oYV_$N8mjtAtKElNf*2^>G*i#A z(tzKlePgA$MQF1^Jg>;EH0|ouO@X!VSiYJL6wc0DK8*%YyQaClx}&}|Yp?junddxy zhN}j*D}_APRino4dcEPQTy`9%F@T+R2Y4a7-?xN6h9hksDC zQ+luCNpX7>U*{Ld$I@yoiQVCfUN0|(@5#|O4bMZ#_`FYJ0&xUiU*Y{Gv-4Q~k=(~q zA(QO_TKN35H{L+xD!$1lYm>#k$@gf=-v9hNRT+8avSpLkYU7zmWLp~WOCsB8#1&XZ zNw@!#etT>jxH2Nqj_Fc~E7Np|6umtuNqW)C@$od#NTL4^)%E;wAnxqkIy2GW+AAZC zu?;d_8-*N$lKmvr%@x^LTsmI0kmo* zP`FOfN3E*t}ulY`>j*Ojl3sUbKXF3Ok~)NsCj)RdUq6Haoh>qiph8L zpxxl=C_RMcYsqH)?>}t%K3(Oerczlt)riXXoxrT8Ja;OK%to0N`nyMq8=Ou%LaztJ z+nTyP7sI;K{Qb%zF^9VSu6WpVJ&Y}B-FC0%<8;zqos19x$;Bmu=z*?7^MT-tksiD} zF%rpKd7L@#J(DK?lgUcI8IrLYnn?ch?VnLE8sBYRthv9?=62Y~wr-exiu>x<_RHwL zvB$*bb^3K{tm$}WuNYv7LbJYS-;o7PwPwB5eFAG1 zzVZB~UCrhx9KA66)w!Q*->}K_xfXR|&3gr}%e$wW&f99l9SttJ^l(Le5_h|YWCugJ zzj-dz&*?cM)wY^0df8uHEN7x(YEl-DUA!KEgplt~&FK$J2#k-7y^)C5J6%h^yDrpb zcjq16o>0NzH*C2)8TzKMTLYkIs^8^^WVk%yYPW=}ZUFce+0IAiyO0Lw3%}V9$uV#l zY>X1Q%y*Iv&Oq5nZ?0$}xx)?-g}sv4NOy}i765htT*ySrRZ^@X&g@4lDC z>pHb0@#u^d$5Q&8#{wyVdiTzn&5Tnws)k;rUvq#~l<2Ln^R93zm-!p}Jr#RIZF|ig zjA4m=pz&-ra%0$jrfeysu`xMPZEow~9*?(#WyV6t=dxPrC(N909PfnLhXZMk46zbp*^bJH9SL=l5hK&EWdjXBPj( z-{{pdyza9Nzk#vb=X_%k6@RFSSrc3VM$J`QlFum)JwIqq|NPm-Z$)lU8A4qbV?sd5ThNV~dT}%a88|ytSR1;O zy6}l886bsK`X>(n$slgvyuzXF)7p!s>-UYDkIbMTwuSR0T!5xN()WM|&moyA9G6bT zafJtZ42~XBKw#>F9ifCX&&R;ff?RKjI`jTnWI?sQQ&=U!ld?h_RJ8b+>qp~Z*RKEd z(v9{UY1ADXn7=cW`J(_(*Uc;8`t7JR3xN?UOM%iojIWkE34lx-O%44WP^j%l5m=nh z;1<+w)fvE^M1fkc@wf)>H8q{xUWH8DCZKZz73a7ldDRTEiYKrEZL3XmN3Q`&AX5_n z(sONXn9Jo!eu>ZVphk{dGPm=p5&Z}TRuEXbuW~F6VWX8zb)XLXB{pop32}Rp_|r^I zzh?gyqr`J9H7dF@zVPnbhYVDxg{0{10SO7P4~O1%yYF7VK0*Dvn4BBVo>uF36Y#UI zjwaTt_E?LYq>=zOP!}n%`m?oFW6o`g>+XPx43p|^%b=RVeHzYXHZK)#^AJ)|Ct-X$ z+n5ey2-b&Dz!Lxk=tpCE?x$x>{zHXYvOp@L5GU%h4%b-izk9VM^U)6LqStF+X1aFK zGDl8$uR&DbWw3{(_%)ve%Q|{32f(!1bmAJWcH3uW%*%^0*U^O`=9iZ~g#{>r;{WAN zyLYJlhnCO^O~61mf##Kk_;8%qt4H6P)_63XW>n)c6XTFfXU~{c2@VxTj%#1L%45I@ zk1m)XfH|!@QF?SQ{H?^0!)OxK?#1SU7}nUh=WRX+ z#SRV4AB0CM`pSUVEDKk)ti;4PYx{@)Y>BweK5vO6zb@b_=!8(M=zK@HhXf<&lh@{= z0`4bAw+GeW2z3v2oFL{#EiAYCAa%$)Lg@~rl0!v4 zRG2N6RR_DRPSqjq_28pwGf)PmTzMda z{rhOR_tS4fzM$5PYcDnL`Z$IDgLAUT(SEXC37?{XjO%WKPTEEZ?%~wa>PyCNSf9GE ztaE**DodBT(I6wbACy=ZYA6dw2)9n6J-Vt?92)#vD}#KDdZ(>efz`=g|$;%*hoC*@BwL= z0*J-D$1KMk4h?jwuC7!7H4E6dabU0h)2{lj*46*~ z4SdC)L?cIY{>##GZ)^GgZ-pKts0k&T6z^*)+xS6nrJAWi+tWw5-x$qI56sycIvP3Uo?=!Zd9T zY7XPjt#>D}upm{mA+N>xI<&hd}x#Krk=fK>q`$$MGy|J_>k2&)3D^8nzU#4gTV z#R>lY&*}b)&-i~V*1um{P^S;icQAi$r(XUPHt>o0H&*q|B<_D2ZGjNg-yyEW3=Hj? zf7f_p$dB>MB?N)o*c z?n<)yVcOQ+U^dMFAEB=H5Y}k$5}(4Of?##ReY_=tETk#@H{$*$V5p}D<+L`c@x8c@ zrh6S70GOa3T7UM~Q5_p0G=7=r5F!-2k`48f0pj>Bi+(oT_EQviNb@MhmNcqB@x0@xXh%bL>K&?q2Vd>AZ&uTb+wk|Kj(SrRmhZVqZf;8}t%) zd6~DB|J+6!ix@C26Fi2vn2Y)U+zVNOZp{Vw3^CUt?;-D_q zUm4J)ELtdb<-QVb!6im?9NU}=5|x?!4f^vgrDKDuXzZYxVSme>whe#|w0I!F**V`* z3|hJ5{J;FqepHk)cwhOLr5fqls$E?HStS^-E^W&L(~mmArV+P1d&glwG05_XE}Id6 zqIA~o!5~|T5zzz%2dU&-bt*P%8GR&?Dsjx;9;leM?4^;^tv9iugeBdYc~(?Gd`Zun z1_VchPgQG)sC4A)EidwBryrH$TUJVu10G`L`adlTG7x*!r&vKa^vm7iERe8lvZp$QN;optK|mMKknUQyUCY9{Ui@+;t-a(90sS#+YLrGg~t zVP^!SO=Z`=rA;e65=(wE(Bs8N$mnPT3(E^Y@0(@^1%NYk``SehecFPn=tQ8J{QP<2 zfG6u-vOH*&;uxn0#m)NTmGbc8^s!9b%KK8?HA#u(oz3+<3f3!^@NN~R-@xmsG4o z31~B1klM1e$sttYA4((F*wW|!Hc(A|73LV1TW}D(dy~x$NXWv)#MEU)fro*$s*Ivj zN_BBgA)x?>ZU1`hX7iyiTV!Qa)fE-Vq(rg{vW1lD!xvSz4gTnK9r4sl0sl6NtRd3&sG1WZ1PK^A+ z$GKAA>kG-4LfID&CByqDP~{>cvabM_mjUZHto*|Bb0ulVi{|&#w9BKv2s$MszkZ_1 ztHb9V{&#RQ0Ry^y7Q#yW)z(`;VN{!A`rN*SAt?73nngq{SeUBy?f-xV3_Kg(glEAVGj;u#D|%x#=N_+hytp)qAD^Tq<2>327>UzfX{!oV*Gua&|4h; zVHD6^B&L8~><@~PgP@^RjyU&5X>AgRsl!9v4_&My1Od+Dhxh|^fbH6XjG=UkF2nWb zy>$x5XiWC?mKhwtk6($bgiw@!m`?svbf>_sj?#JnUAL(5?ZE&;Zw`=+^P?iGfOGnY z=Ho7^mGK>zGwiX{Ot`Hb6_>HSbsy#QErj+Fb@SMVpAUs*M9hBAj;09LR3c^rNMxoM zab7nRT9e0nomQ z4i{e~bqi>fR##U50fuPVnUJrg)jU$EtxA!_5wJR38f0U&q?fhvW(wH0HTCkeij)PJ z)dwEsYkxh(|KyL%B+}FH$F2&}f($Vq8i~I7>ZQs;x*=J_w(VE_ogNW|(5eOL8E+lL zi!GDB?MGa|d!Dy0{C({K&jS|c11g88erWe-m+>sG;j^lCOveZAbTzwA-+f3MupwR1 z22U*oMdBDCUy+`za0jhysd2`r)WQ>~*hfTR1Lq@=1pgi<&OG?;L)J(Yp~zO zZ~A=D7T>8ORJ*@`wLOC{IXWL5Jq?W<7^oZYm)GR}z3BTJbtMD7l_AK$z5ELcC07|6 zJ`5P`d;T4i|2}s6HCQ>Khykg1G)>vYGp%J$P!pGAu#SGeeQX2bt@Gf3>*)z`lPn4| zU|RkqUo8dX!2dZh`)@%0tB(bwhHotK-V4=O+XqYbDndP56$Ia}C6Mp}=Wt+PZP0G7 zD?JRbF54Fanf&xGbgX(PsP-cPsauc=;j3nJEFI`y31J68%CAy7!1u)e(MSUX;d6M{ zTKvBezLAmyOFKK>T1u42>>+{|+7%twUMT!=G72?LD>6r059T!!2>wZ}s;G?cLBB@s ap2Q(FLzECXLBM}~p}dupmneoB2K*m-q_#Bx literal 14140 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 diff --git a/qwt/tests/data/curvedemo2.png b/qwt/tests/data/curvedemo2.png index 1293ac6a4acdefa8a0b3b6ace4df8ea38613c027..aa8800c9690bc50dab1b5c4333ebf37665772207 100644 GIT binary patch literal 8845 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 diff --git a/qwt/tests/data/data.png b/qwt/tests/data/data.png index 9318ae3765830c53774228ad93dce70e957e8896..2db8948d7efe4d4428f2e96ab0bdc33ddf41915b 100644 GIT binary patch literal 13380 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 literal 13118 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 E0bS47`v3p{ diff --git a/qwt/tests/data/errorbar.png b/qwt/tests/data/errorbar.png index a8d04e564bc5473f2be959012e8cda1105f7c140..fc1ec4832e2df1270a5be71223608370d68b46b6 100644 GIT binary patch literal 13018 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 a=J)}z!;zkGP=Q@S?x<JLq{06iN7avAdX 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 diff --git a/qwt/tests/data/eventfilter.png b/qwt/tests/data/eventfilter.png index eea3fe9dbaefaf15a347f64eeb5d10d414c05554..43fedc0443e76d3037ad2c12ee4172b442a303ae 100644 GIT binary patch literal 8790 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%0DNBobh%3SQj14z0`;kt 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%0DRqNS51ke0b1*SCxi|e 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 literal 61414 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 diff --git a/qwt/tests/data/logcurve.png b/qwt/tests/data/logcurve.png index 2f52be72b6ab976e037ba111db229a965d4b4a61..dcbe08189d7452e04804a5493da44ad6d4493b4e 100644 GIT binary patch literal 16187 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 literal 22480 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

{OVUAZ0%&=U?S2vwGDDWX!o)UDg{lLH_FSh-Muk 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 Date: Sun, 16 Aug 2020 18:43:41 +0200 Subject: [PATCH 142/421] Added convenience functions for creating usual objects (curve, grid, marker, ...) --- CHANGELOG.md | 8 +++ qwt/plot_curve.py | 80 +++++++++++++++++++++++++++- qwt/plot_grid.py | 82 ++++++++++++++++++++++++++-- qwt/plot_marker.py | 95 +++++++++++++++++++++++++++++++-- qwt/symbol.py | 51 ++++++++++++++++++ qwt/tests/bodedemo.py | 100 ++++++++++++++--------------------- qwt/tests/cartesian.py | 35 ++++++------ qwt/tests/curvebenchmark1.py | 20 ++++--- qwt/tests/curvebenchmark2.py | 6 +-- qwt/tests/errorbar.py | 4 +- qwt/tests/image.py | 43 ++++++++------- qwt/tests/logcurve.py | 8 +-- qwt/tests/simple.py | 50 +++++++----------- qwt/tests/vertical.py | 16 ++---- qwt/text.py | 62 ++++++++++++++++++++++ 15 files changed, 492 insertions(+), 168 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 21e0af6..7412da5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ ### Version 0.7.0 ### +- Added convenience functions for creating usual objects (curve, grid, marker, ...): + + - `QwtPlotCurve.make` + - `QwtPlotMarker.make` + - `QwtPlotGrid.make` + - `QwtSymbol.make` + - `QwtText.make` + - Added new test launcher with screenshots (automatically generated) - Removed `guidata` dependency thanks to the new specific GUI-based test launcher - Updated documentation (added more examples, using automatically generated screenshots) diff --git a/qwt/plot_curve.py b/qwt/plot_curve.py index d9ceb7f..910d983 100644 --- a/qwt/plot_curve.py +++ b/qwt/plot_curve.py @@ -14,7 +14,7 @@ """ from .text import QwtText -from .plot import QwtPlotItem, QwtPlotItem_PrivateData +from .plot import QwtPlot, QwtPlotItem, QwtPlotItem_PrivateData from ._math import qwtSqr from .graphic import QwtGraphic from .plot_series import ( @@ -189,6 +189,84 @@ def __init__(self, title=None): QwtSeriesStore.__init__(self) self.init() + @classmethod + def make( + cls, + xdata=None, + ydata=None, + title=None, + plot=None, + z=None, + x_axis=None, + y_axis=None, + style=None, + symbol=None, + linecolor=None, + linewidth=None, + linestyle=None, + antialiased=False, + size=None, + finite=None, + ): + """ + Create and setup a new `QwtPlotCurve` object (convenience function). + + :param xdata: List/array of x values + :param ydata: List/array of y values + :param title: Curve title + :type title: qwt.text.QwtText or str or None + :param plot: Plot to attach the curve to + :type plot: qwt.plot.QwtPlot or None + :param z: Z-value + :type z: float or None + :param x_axis: curve X-axis (default: QwtPlot.yLeft) + :type x_axis: int or None + :param y_axis: curve Y-axis (default: QwtPlot.xBottom) + :type y_axis: int or None + :param style: curve style (`QwtPlotCurve.NoCurve`, `QwtPlotCurve.Lines`, `QwtPlotCurve.Sticks`, `QwtPlotCurve.Steps`, `QwtPlotCurve.Dots`, `QwtPlotCurve.UserCurve`) + :type style: int or None + :param symbol: curve symbol + :type symbol: qwt.symbol.QwtSymbol or None + :param linecolor: curve line color + :type linecolor: QColor or None + :param linewidth: curve line width + :type linewidth: float or None + :param linestyle: curve pen style + :type linestyle: Qt.PenStyle or None + :param bool antialiased: if True, enable antialiasing rendering + :param size: size of xData and yData + :type size: int or None + :param bool finite: if True, keep only finite array elements (remove all infinity and not a number values), otherwise do not filter array elements + + .. seealso:: + + :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()` + """ + item = cls(title) + if z is not None: + item.setZ(z) + if xdata is not None or ydata is not None: + if xdata is None: + raise ValueError("Missing xdata parameter") + if ydata is None: + raise ValueError("Missing ydata parameter") + item.setData(xdata, ydata, size=size, finite=finite) + x_axis = QwtPlot.xBottom if x_axis is None else x_axis + y_axis = QwtPlot.yLeft if y_axis is None else y_axis + item.setAxes(x_axis, y_axis) + if style is not None: + item.setStyle(style) + if symbol is not None: + item.setSymbol(symbol) + linecolor = Qt.black if linecolor is None else linecolor + linewidth = 1.0 if linewidth is None else linewidth + linestyle = Qt.SolidLine if linestyle is None else linestyle + item.setPen(QPen(linecolor, linewidth, linestyle)) + item.setRenderHint(cls.RenderAntialiased, antialiased) + if plot is not None: + item.attach(plot) + return item + def init(self): """Initialize internal members""" self.__data = QwtPlotCurve_PrivateData() diff --git a/qwt/plot_grid.py b/qwt/plot_grid.py index 2c6db30..b3480f4 100644 --- a/qwt/plot_grid.py +++ b/qwt/plot_grid.py @@ -14,7 +14,7 @@ """ from .scale_div import QwtScaleDiv -from .plot import QwtPlotItem +from .plot import QwtPlot, QwtPlotItem from .text import QwtText from ._math import qwtFuzzyGreaterOrEqual, qwtFuzzyLessOrEqual @@ -47,12 +47,88 @@ class QwtPlotGrid(QwtPlotItem): rectangle. """ - def __init__(self): - QwtPlotItem.__init__(self, QwtText("Grid")) + def __init__(self, title="Grid"): + QwtPlotItem.__init__(self, title) self.__data = QwtPlotGrid_PrivateData() self.setItemInterest(QwtPlotItem.ScaleInterest, True) self.setZ(10.0) + @classmethod + def make( + cls, + plot=None, + z=None, + enablemajor=None, + enableminor=None, + color=None, + width=None, + style=None, + mincolor=None, + minwidth=None, + minstyle=None, + ): + """ + Create and setup a new `QwtPlotGrid` object (convenience function). + + :param plot: Plot to attach the curve to + :type plot: qwt.plot.QwtPlot or None + :param z: Z-value + :type z: float or None + :param enablemajor: Tuple of two boolean values (x, y) for enabling major grid lines + :type enablemajor: bool or None + :param enableminor: Tuple of two boolean values (x, y) for enabling minor grid lines + :type enableminor: bool or None + :param color: Pen color for both major and minor grid lines (default: Qt.gray) + :type color: QColor or None + :param width: Pen width for both major and minor grid lines (default: 1.0) + :type width: float or None + :param style: Pen style for both major and minor grid lines (default: Qt.DotLine) + :type style: Qt.PenStyle or None + :param mincolor: Pen color for minor grid lines only (default: Qt.gray) + :type mincolor: QColor or None + :param minwidth: Pen width for minor grid lines only (default: 1.0) + :type minwidth: float or None + :param minstyle: Pen style for minor grid lines only (default: Qt.DotLine) + :type minstyle: Qt.PenStyle or None + + .. seealso:: + + :py:meth:`setMinorPen()`, :py:meth:`setMajorPen()` + """ + item = cls() + if z is not None: + item.setZ(z) + color = Qt.gray if color is None else color + width = 1.0 if width is None else width + style = Qt.DotLine if style is None else style + item.setPen(QPen(color, width, style)) + if mincolor is not None or minwidth is not None or minstyle is not None: + mincolor = Qt.gray if mincolor is None else mincolor + minwidth = 1.0 if width is None else minwidth + minstyle = Qt.DotLine if style is None else minstyle + item.setMinorPen(QPen(mincolor, minwidth, minstyle)) + if enablemajor is not None: + if isinstance(enablemajor, tuple) and len(enablemajor) == 2: + item.enableX(enablemajor[0]) + item.enableY(enablemajor[1]) + else: + raise TypeError( + "Invalid enablemajor %r (expecting tuple of two booleans)" + % enablemajor + ) + if enableminor is not None: + if isinstance(enableminor, tuple) and len(enableminor) == 2: + item.enableXMin(enableminor[0]) + item.enableYMin(enableminor[1]) + else: + raise TypeError( + "Invalid enableminor %r (expecting tuple of two booleans)" + % enableminor + ) + if plot is not None: + item.attach(plot) + return item + def rtti(self): """ :return: Return `QwtPlotItem.Rtti_PlotGrid` diff --git a/qwt/plot_marker.py b/qwt/plot_marker.py index 75e0a76..72cf7f2 100644 --- a/qwt/plot_marker.py +++ b/qwt/plot_marker.py @@ -13,7 +13,7 @@ :members: """ -from .plot import QwtPlotItem +from .plot import QwtPlot, QwtPlotItem from .text import QwtText from .painter import QwtPainter from .graphic import QwtGraphic @@ -76,6 +76,93 @@ def __init__(self, title=None): self.__data = QwtPlotMarker_PrivateData() self.setZ(30.0) + @classmethod + def make( + cls, + xvalue=None, + yvalue=None, + title=None, + label=None, + symbol=None, + plot=None, + z=None, + x_axis=None, + y_axis=None, + align=None, + orientation=None, + spacing=None, + linestyle=None, + color=None, + width=None, + style=None, + antialiased=False, + ): + """ + Create and setup a new `QwtPlotMarker` object (convenience function). + + :param xvalue: x position (optional, default: None) + :type xvalue: float or None + :param yvalue: y position (optional, default: None) + :type yvalue: float or None + :param title: Marker title + :type title: qwt.text.QwtText or str or None + :param label: Label text + :type label: qwt.text.QwtText or str or None + :param symbol: New symbol + :type symbol: qwt.symbol.QwtSymbol or None + :param plot: Plot to attach the curve to + :type plot: qwt.plot.QwtPlot or None + :param z: Z-value + :type z: float or None + :param int x_axis: curve X-axis (default: QwtPlot.yLeft) + :param int y_axis: curve Y-axis (default: QwtPlot.xBottom) + :param align: Alignment of the label + :type align: Qt.Alignment or None + :param orientation: Orientation of the label + :type orientation: Qt.Orientation or None + :param spacing: Spacing (distance between the position and the label) + :type spacing: int or None + :param int linestyle: Line style + :param QColor color: Pen color + :param float width: Pen width + :param Qt.PenStyle style: Pen style + :param bool antialiased: if True, enable antialiasing rendering + + .. seealso:: + + :py:meth:`setData()`, :py:meth:`setPen()`, :py:meth:`attach()` + """ + item = cls(title) + if z is not None: + item.setZ(z) + if symbol is not None: + item.setSymbol(symbol) + if xvalue is not None: + item.setXValue(xvalue) + if yvalue is not None: + item.setYValue(yvalue) + if label is not None: + item.setLabel(label) + x_axis = QwtPlot.xBottom if x_axis is None else x_axis + y_axis = QwtPlot.yLeft if y_axis is None else y_axis + item.setAxes(x_axis, y_axis) + if align is not None: + item.setLabelAlignment(align) + if orientation is not None: + item.setLabelOrientation(orientation) + if spacing is not None: + item.setSpacing(spacing) + color = Qt.black if color is None else color + width = 1.0 if width is None else width + style = Qt.SolidLine if style is None else style + item.setLinePen(QPen(color, width, style)) + item.setRenderHint(cls.RenderAntialiased, antialiased) + if linestyle is not None: + item.setLineStyle(linestyle) + if plot is not None: + item.attach(plot) + return item + def rtti(self): """:return: `QwtPlotItem.Rtti_PlotMarker`""" return QwtPlotItem.Rtti_PlotMarker @@ -338,6 +425,8 @@ def setLabel(self, label): :py:meth:`label()` """ + if not isinstance(label, QwtText): + label = QwtText(label) if label != self.__data.label: self.__data.label = label self.itemChanged() @@ -444,7 +533,7 @@ def setLinePen(self, *args): """ Build and/or assigna a line pen, depending on the arguments. - .. py:method:: setPen(color, width, style) + .. py:method:: setLinePen(color, width, style) Build and assign a line pen @@ -456,7 +545,7 @@ def setLinePen(self, *args): :param float width: Pen width :param Qt.PenStyle style: Pen style - .. py:method:: setPen(pen) + .. py:method:: setLinePen(pen) Specify a pen for the line. diff --git a/qwt/symbol.py b/qwt/symbol.py index b9cb06e..a496792 100644 --- a/qwt/symbol.py +++ b/qwt/symbol.py @@ -538,6 +538,57 @@ def __init__(self, *args): % (self.__class__.__name__, len(args)) ) + @classmethod + def make( + cls, style=None, brush=None, pen=None, size=None, path=None, pixmap=None, graphic=None, svgdocument=None, pinpoint=None, + ): + """ + Create and setup a new `QwtSymbol` object (convenience function). + + :param style: Symbol Style + :type style: int or None + :param brush: Brush to fill the interior + :type brush: QBrush or None + :param pen: Outline pen + :type pen: QPen or None + :param size: Size + :type size: QSize or None + :param path: Painter path + :type path: QPainterPath or None + :param path: Painter path + :type path: QPainterPath or None + :param pixmap: Pixmap as symbol + :type pixmap: QPixmap or None + :param graphic: Graphic + :type graphic: qwt.graphic.QwtGraphic or None + :param svgdocument: SVG icon as symbol + + .. seealso:: + + :py:meth:`setPixmap()`, :py:meth:`setGraphic()`, :py:meth:`setPath()` + """ + style = QwtSymbol.NoSymbol if style is None else style + brush = QBrush(Qt.gray) if brush is None else QBrush(brush) + pen = QPen(Qt.black, 0) if pen is None else QPen(pen) + size = QSize() if size is None else size + if not isinstance(size, QSize): + if isinstance(size, tuple) and len(size) == 2: + size = QSize(size[0], size[1]) + else: + raise TypeError("Invalid size %r" % size) + item = cls(style, brush, pen, size) + if path is not None: + item.setPath(path) + elif pixmap is not None: + item.setPixmap(pixmap) + elif graphic is not None: + item.setGraphic(graphic) + elif svgdocument is not None: + item.setSvgDocument(svgdocument) + if pinpoint is not None: + item.setPinPoint(pinpoint) + return item + def setCachePolicy(self, policy): """ Change the cache policy diff --git a/qwt/tests/bodedemo.py b/qwt/tests/bodedemo.py index c0416e5..84a5b34 100644 --- a/qwt/tests/bodedemo.py +++ b/qwt/tests/bodedemo.py @@ -105,10 +105,7 @@ def __init__(self, *args): self.insertLegend(legend, QwtPlot.BottomLegend) # grid - self.grid = QwtPlotGrid() - self.grid.enableXMin(True) - self.grid.attach(self) - self.grid.setPen(QPen(Qt.darkGray, 1, Qt.DotLine)) + QwtPlotGrid.make(plot=self, enableminor=(True, False), color=Qt.darkGray) # axes self.enableAxis(QwtPlot.yRight) @@ -121,63 +118,48 @@ def __init__(self, *args): self.setAxisScaleEngine(QwtPlot.xBottom, QwtLogScaleEngine()) # curves - self.curve1 = QwtPlotCurve("Amplitude") - self.curve1.setRenderHint(QwtPlotItem.RenderAntialiased) - self.curve1.setPen(QPen(Qt.yellow)) - self.curve1.setYAxis(QwtPlot.yLeft) - self.curve1.attach(self) - - self.curve2 = QwtPlotCurve("Phase") - self.curve2.setRenderHint(QwtPlotItem.RenderAntialiased) - self.curve2.setPen(QPen(Qt.cyan)) - self.curve2.setYAxis(QwtPlot.yRight) - self.curve2.attach(self) - - # alias - fn = "Helvetica" - - # marker - self.dB3Marker = m = QwtPlotMarker() - m.setValue(0.0, 0.0) - m.setLineStyle(QwtPlotMarker.VLine) - m.setLabelAlignment(Qt.AlignRight | Qt.AlignBottom) - m.setLinePen(QPen(Qt.green, 2, Qt.DashDotLine)) - text = QwtText("") - text.setColor(Qt.white) - text.setBackgroundBrush(Qt.red) - text.setFont(QFont(fn, 10, QFont.Light)) - m.setLabel(text) - m.attach(self) - - self.peakMarker = m = QwtPlotMarker() - m.setLineStyle(QwtPlotMarker.HLine) - m.setLabelAlignment(Qt.AlignRight | Qt.AlignBottom) - m.setLinePen(QPen(Qt.red, 2, Qt.DashDotLine)) - text = QwtText("") - text.setColor(Qt.red) - text.setBackgroundBrush(QBrush(self.canvasBackground())) - text.setFont(QFont(fn, 10, QFont.Bold)) - - m.setLabel(text) - m.setSymbol( - QwtSymbol(QwtSymbol.Diamond, QBrush(Qt.yellow), QPen(Qt.green), QSize(7, 7)) + self.curve1 = QwtPlotCurve.make( + title="Amplitude", linecolor=Qt.yellow, plot=self, antialiased=True ) - m.attach(self) - - # text marker - m = QwtPlotMarker() - m.setValue(0.1, -20.0) - m.setLabelAlignment(Qt.AlignRight | Qt.AlignBottom) - text = QwtText( - "[1-(\u03c9/\u03c90)2+2j\u03c9/Q]" "-1" + self.curve2 = QwtPlotCurve.make( + title="Phase", linecolor=Qt.cyan, plot=self, antialiased=True + ) + self.dB3Marker = QwtPlotMarker.make( + label=QwtText.make(color=Qt.white, brush=Qt.red, weight=QFont.Light), + linestyle=QwtPlotMarker.VLine, + align=Qt.AlignRight | Qt.AlignBottom, + color=Qt.green, + width=2, + style=Qt.DashDotLine, + plot=self, + ) + self.peakMarker = QwtPlotMarker.make( + label=QwtText.make( + color=Qt.red, brush=self.canvasBackground(), weight=QFont.Bold + ), + symbol=QwtSymbol.make(QwtSymbol.Diamond, Qt.yellow, Qt.green, (7, 7)), + linestyle=QwtPlotMarker.HLine, + align=Qt.AlignRight | Qt.AlignBottom, + color=Qt.red, + width=2, + style=Qt.DashDotLine, + plot=self, + ) + QwtPlotMarker.make( + xvalue=0.1, + yvalue=-20.0, + align=Qt.AlignRight | Qt.AlignBottom, + label=QwtText.make( + "[1-(\u03c9/\u03c90)2+2j\u03c9/Q]" + "-1", + color=Qt.white, + borderradius=2, + borderpen=QPen(Qt.lightGray, 5), + brush=Qt.lightGray, + weight=QFont.Bold, + ), + plot=self, ) - text.setFont(QFont(fn, 10, QFont.Bold)) - text.setColor(Qt.white) - text.setBackgroundBrush(QBrush(Qt.lightGray)) - text.setBorderPen(QPen(Qt.lightGray, 5)) - text.setBorderRadius(2) - m.setLabel(text) - m.attach(self) self.setDamp(0.01) diff --git a/qwt/tests/cartesian.py b/qwt/tests/cartesian.py index e73430c..744ed7f 100644 --- a/qwt/tests/cartesian.py +++ b/qwt/tests/cartesian.py @@ -66,10 +66,7 @@ def __init__(self, *args): self.plotLayout().setCanvasMargin(0) self.plotLayout().setAlignCanvasToScales(True) # attach a grid - grid = QwtPlotGrid() - grid.attach(self) - grid.setPen(QPen(Qt.lightGray, 0, Qt.DotLine)) - grid.setZ(-1) + QwtPlotGrid.make(plot=self, color=Qt.lightGray, width=0, style=Qt.DotLine, z=-1) # attach a x-axis xaxis = CartesianAxis(QwtPlot.xBottom, QwtPlot.yLeft) xaxis.attach(self) @@ -80,20 +77,26 @@ def __init__(self, *args): self.enableAxis(QwtPlot.yLeft, False) # calculate 3 NumPy arrays x = np.arange(-2 * np.pi, 2 * np.pi, 0.01) - y = np.pi * np.sin(x) - z = 4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x) # attach a curve - curve = QwtPlotCurve("y = pi*sin(x)") - curve.setRenderHint(QwtPlotCurve.RenderAntialiased, True) - curve.attach(self) - curve.setPen(QPen(Qt.green, 2)) - curve.setData(x, y) + QwtPlotCurve.make( + x, + np.pi * np.sin(x), + title="y = pi*sin(x)", + linecolor=Qt.green, + linewidth=2, + plot=self, + antialiased=True, + ) # attach another curve - curve = QwtPlotCurve("y = 4*pi*sin(x)*cos(x)**2") - curve.setRenderHint(QwtPlotCurve.RenderAntialiased, True) - curve.attach(self) - curve.setPen(QPen(Qt.blue, 2)) - curve.setData(x, z) + QwtPlotCurve.make( + x, + 4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x), + title="y = 4*pi*sin(x)*cos(x)**2", + linecolor=Qt.blue, + linewidth=2, + plot=self, + antialiased=True, + ) self.replot() diff --git a/qwt/tests/curvebenchmark1.py b/qwt/tests/curvebenchmark1.py index 2e767ff..48c0e05 100644 --- a/qwt/tests/curvebenchmark1.py +++ b/qwt/tests/curvebenchmark1.py @@ -13,7 +13,6 @@ from qwt.qt.QtGui import ( QApplication, - QPen, QMainWindow, QGridLayout, QTabWidget, @@ -56,16 +55,15 @@ def __init__(self, title, xdata, ydata, style, symbol=None, *args): self.curve_nb = 0 for idx in range(1, 11): self.curve_nb += 1 - curve = QwtPlotCurve() - curve.setPen(QPen(get_curve_color())) - curve.setStyle(style) - curve.setRenderHint(QwtPlotCurve.RenderAntialiased) - if symbol is not None: - curve.setSymbol(symbol) - curve.attach(self) - curve.setData(xdata, ydata * idx) # , finite=False) - # self.setAxisScale(self.yLeft, -1.5, 1.5) - # self.setAxisScale(self.xBottom, 9.9, 10.) + QwtPlotCurve.make( + xdata, + ydata * idx, + style=style, + symbol=symbol, + linecolor=get_curve_color(), + antialiased=True, + plot=self, + ) self.replot() diff --git a/qwt/tests/curvebenchmark2.py b/qwt/tests/curvebenchmark2.py index dd0536c..5d650d9 100644 --- a/qwt/tests/curvebenchmark2.py +++ b/qwt/tests/curvebenchmark2.py @@ -24,10 +24,10 @@ class CSWidget(cb.BMWidget): def params(self, *args, **kwargs): (symbols,) = args - symb1 = QwtSymbol( - QwtSymbol.Ellipse, QBrush(Qt.yellow), QPen(Qt.blue), QSize(5, 5) + symb1 = QwtSymbol.make( + QwtSymbol.Ellipse, brush=Qt.yellow, pen=Qt.blue, size=(5, 5) ) - symb2 = QwtSymbol(QwtSymbol.XCross, QBrush(), QPen(Qt.darkMagenta), QSize(5, 5)) + symb2 = QwtSymbol.make(QwtSymbol.XCross, pen=Qt.darkMagenta, size=(5, 5)) if symbols: if kwargs.get("only_lines", False): return ( diff --git a/qwt/tests/errorbar.py b/qwt/tests/errorbar.py index 2060d49..98e692d 100644 --- a/qwt/tests/errorbar.py +++ b/qwt/tests/errorbar.py @@ -12,7 +12,7 @@ from qwt.qt.QtGui import QPen, QBrush from qwt.qt.QtCore import QSize, QRectF, QLineF, Qt -from qwt import QwtPlot, QwtSymbol, QwtPlotGrid, QwtPlotCurve, QwtText +from qwt import QwtPlot, QwtSymbol, QwtPlotGrid, QwtPlotCurve class ErrorBarPlotCurve(QwtPlotCurve): @@ -274,7 +274,7 @@ def drawSeries(self, painter, xMap, yMap, canvasRect, first, last=-1): class ErrorBarPlot(QwtPlot): def __init__(self, parent=None, title=None): - super(ErrorBarPlot, self).__init__(QwtText("Errorbar Demonstation")) + super(ErrorBarPlot, self).__init__("Errorbar Demonstation") self.setCanvasBackground(Qt.white) self.plotLayout().setAlignCanvasToScales(True) grid = QwtPlotGrid() diff --git a/qwt/tests/image.py b/qwt/tests/image.py index 46eae75..17220a3 100644 --- a/qwt/tests/image.py +++ b/qwt/tests/image.py @@ -19,7 +19,6 @@ QwtPlotGrid, QwtPlotCurve, QwtPlotItem, - QwtText, QwtLegendData, QwtLinearColorMap, QwtInterval, @@ -58,7 +57,7 @@ def square(n, min, max): class PlotImage(QwtPlotItem): - def __init__(self, title=QwtText()): + def __init__(self, title=""): QwtPlotItem.__init__(self) self.setTitle(title) self.setItemAttribute(QwtPlotItem.Legend) @@ -148,33 +147,33 @@ def __init__(self, *args): y = np.pi * np.sin(x) z = 4 * np.pi * np.cos(x) * np.cos(x) * np.sin(x) # attach a curve - curve = QwtPlotCurve("y = pi*sin(x)") - curve.attach(self) - curve.setPen(QPen(Qt.green, 2)) - curve.setData(x, y) + QwtPlotCurve.make( + x, y, title="y = pi*sin(x)", linecolor=Qt.green, linewidth=2, plot=self + ) # attach another curve - curve = QwtPlotCurve("y = 4*pi*sin(x)*cos(x)**2") - curve.attach(self) - curve.setPen(QPen(Qt.black, 2)) - curve.setData(x, z) + QwtPlotCurve.make( + x, z, title="y = 4*pi*sin(x)*cos(x)**2", linewidth=2, plot=self + ) # attach a grid grid = QwtPlotGrid() grid.attach(self) grid.setPen(QPen(Qt.black, 0, Qt.DotLine)) # attach a horizontal marker at y = 0 - marker = QwtPlotMarker() - marker.attach(self) - marker.setValue(0.0, 0.0) - marker.setLineStyle(QwtPlotMarker.HLine) - marker.setLabelAlignment(Qt.AlignRight | Qt.AlignTop) - marker.setLabel(QwtText("y = 0")) + QwtPlotMarker.make( + label="y = 0", + linestyle=QwtPlotMarker.HLine, + align=Qt.AlignRight | Qt.AlignTop, + plot=self, + ) # attach a vertical marker at x = pi - marker = QwtPlotMarker() - marker.attach(self) - marker.setValue(np.pi, 0.0) - marker.setLineStyle(QwtPlotMarker.VLine) - marker.setLabelAlignment(Qt.AlignRight | Qt.AlignBottom) - marker.setLabel(QwtText("x = pi")) + QwtPlotMarker.make( + np.pi, + 0.0, + label="x = pi", + linestyle=QwtPlotMarker.VLine, + align=Qt.AlignRight | Qt.AlignBottom, + plot=self, + ) # attach a plot image plotImage = PlotImage("Image") plotImage.attach(self) diff --git a/qwt/tests/logcurve.py b/qwt/tests/logcurve.py index 38f72b7..415fec7 100644 --- a/qwt/tests/logcurve.py +++ b/qwt/tests/logcurve.py @@ -24,15 +24,9 @@ def __init__(self): ) self.enableAxis(QwtPlot.xBottom) self.setAxisScaleEngine(QwtPlot.yLeft, QwtLogScaleEngine()) - curve = QwtPlotCurve() - curve.setRenderHint(QwtPlotCurve.RenderAntialiased) - pen = QPen(Qt.magenta) - pen.setWidth(1) - curve.setPen(pen) - curve.attach(self) x = np.arange(0.0, 10.0, 0.1) y = 10 * np.cos(x) ** 2 - 0.1 - curve.setData(x, y) + QwtPlotCurve.make(x, y, linecolor=Qt.magenta, plot=self, antialiased=True) self.replot() diff --git a/qwt/tests/simple.py b/qwt/tests/simple.py index 1222c05..f0d8b87 100644 --- a/qwt/tests/simple.py +++ b/qwt/tests/simple.py @@ -16,47 +16,37 @@ class SimplePlot(QwtPlot): - def __init__(self, *args): - QwtPlot.__init__(self, *args) + def __init__(self): + QwtPlot.__init__(self) self.setTitle("ReallySimpleDemo.py") self.insertLegend(QwtLegend(), QwtPlot.RightLegend) - self.setAxisTitle(QwtPlot.xBottom, "x -->") - self.setAxisTitle(QwtPlot.yLeft, "y -->") + self.setAxisTitle(QwtPlot.xBottom, "X-axis") + self.setAxisTitle(QwtPlot.yLeft, "Y-axis") self.enableAxis(self.xBottom) - # self.setFlatStyle(False) - # insert a few curves - cSin = QwtPlotCurve("y = sin(x)") - cSin.setPen(QPen(Qt.red)) - cSin.attach(self) - cCos = QwtPlotCurve("y = cos(x)") - cCos.setPen(QPen(Qt.blue)) - cCos.attach(self) - - # make a Numeric array for the horizontal data x = np.arange(0.0, 10.0, 0.1) - # initialize the data - cSin.setData(x, np.sin(x)) - cCos.setData(x, np.cos(x)) + # insert a few curves + QwtPlotCurve.make(x, np.sin(x), "y = sin(x)", self, linecolor=Qt.red) + QwtPlotCurve.make(x, np.cos(x), "y = cos(x)", self, linecolor=Qt.blue) # insert a horizontal marker at y = 0 - mY = QwtPlotMarker() - mY.setLabel(QwtText("y = 0")) - mY.setLabelAlignment(Qt.AlignRight | Qt.AlignTop) - mY.setLineStyle(QwtPlotMarker.HLine) - mY.setYValue(0.0) - mY.attach(self) + QwtPlotMarker.make( + label="y = 0", + align=Qt.AlignRight | Qt.AlignTop, + linestyle=QwtPlotMarker.HLine, + plot=self, + ) # insert a vertical marker at x = 2 pi - mX = QwtPlotMarker() - mX.setLabel(QwtText("x = 2 pi")) - mX.setLabelAlignment(Qt.AlignRight | Qt.AlignTop) - mX.setLineStyle(QwtPlotMarker.VLine) - mX.setXValue(2 * np.pi) - mX.attach(self) + QwtPlotMarker.make( + xvalue=2 * np.pi, + label="x = 2 pi", + align=Qt.AlignRight | Qt.AlignTop, + linestyle=QwtPlotMarker.VLine, + plot=self, + ) - # replot self.replot() diff --git a/qwt/tests/vertical.py b/qwt/tests/vertical.py index 3f48251..8d3e7ea 100644 --- a/qwt/tests/vertical.py +++ b/qwt/tests/vertical.py @@ -30,10 +30,8 @@ def __init__(self, parent=None): self.enableAxis(self.xTop, True) self.enableAxis(self.yRight, True) y = np.linspace(0, 10, 500) - curve1 = QwtPlotCurve("Test Curve 1") - curve1.setData(np.sin(y), y) - curve2 = QwtPlotCurve("Test Curve 2") - curve2.setData(y ** 3, y) + curve1 = QwtPlotCurve.make(np.sin(y), y, title="Test Curve 1") + curve2 = QwtPlotCurve.make(y ** 3, y, title="Test Curve 2") if USE_PYQWT5: # PyQwt curve2.setAxis(self.xTop, self.yRight) @@ -64,16 +62,14 @@ def __init__(self, parent=None): ticks_font = self.axisFont(axis_id) self.setAxisFont(axis_id, ticks_font) - self.marker = QwtPlotMarker() - self.marker.setValue(0, 5) - self.marker.attach(self) + self.marker = QwtPlotMarker.make(0, 5, plot=self) def resizeEvent(self, event): super(VerticalPlot, self).resizeEvent(event) self.show_layout_details() def show_layout_details(self): - text = QwtText( + text = ( "plotLayout().canvasRect():\n%r\n\n" "canvas().geometry():\n%r\n\n" "plotLayout().scaleRect(QwtPlot.yLeft):\n%r\n\n" @@ -97,9 +93,7 @@ def show_layout_details(self): self.axisWidget(QwtPlot.xTop).geometry().getCoords(), ) ) - text.setFont(QFont("Courier New")) - text.setColor(Qt.blue) - self.marker.setLabel(text) + self.marker.setLabel(QwtText.make(text, family="Courier New", color=Qt.blue)) if __name__ == "__main__": diff --git a/qwt/text.py b/qwt/text.py index 67a3368..14c2fb8 100644 --- a/qwt/text.py +++ b/qwt/text.py @@ -608,6 +608,68 @@ def __init__(self, text=None, textFormat=None, other=None): self.__data.textEngine = self.textEngine(text, textFormat) self.__layoutCache = QwtText_LayoutCache() + @classmethod + def make( + cls, + text=None, + textformat=None, + renderflags=None, + font=None, + family=None, + pointsize=None, + weight=None, + color=None, + borderradius=None, + borderpen=None, + brush=None, + ): + """ + Create and setup a new `QwtText` object (convenience function). + + :param str text: Text content + :param int textformat: Text format + :param int renderflags: Flags from `Qt.AlignmentFlag` and `Qt.TextFlag` + :param font: Font + :type font: QFont or None + :param family: Font family (default: Helvetica) + :type family: str or None + :param pointsize: Font point size (default: 10) + :type pointsize: int or None + :param weight: Font weight (default: QFont.Normal) + :type weight: int or None + :param color: Pen color + :type color: QColor or None + :param borderradius: Radius for the corners of the border frame + :type borderradius: float or None + :param borderpen: Background pen + :type borderpen: QPen or None + :param brush: Background brush + :type brush: QBrush or None + + .. seealso:: + + :py:meth:`setText()` + """ + item = cls(text=text, textFormat=textformat) + if renderflags is not None: + item.setRenderFlags(renderflags) + if font is not None: + item.setFont(font) + elif family is not None or pointsize is not None or weight is not None: + family = "Helvetica" if family is None else family + pointsize = 10 if pointsize is None else pointsize + weight = QFont.Normal if weight is None else weight + item.setFont(QFont(family, pointsize, weight)) + if color is not None: + item.setColor(color) + if borderradius is not None: + item.setBorderRadius(borderradius) + if borderpen is not None: + item.setBorderPen(borderpen) + if brush is not None: + item.setBackgroundBrush(brush) + return item + @property def _desktopwidget(self): """ From 59ebdc18d30d394a04c73a18185397d414c1aa21 Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 17 Aug 2020 08:19:54 +0200 Subject: [PATCH 143/421] Changed PythonQwt theme to classic --- doc/conf.py | 94 ++++++++++++++++++++++++++++------------------------- 1 file changed, 49 insertions(+), 45 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 1c9413a..5567b4a 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -15,34 +15,36 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.append(os.path.abspath('.')) +# sys.path.append(os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc'] +extensions = ["sphinx.ext.autodoc"] try: import sphinx.ext.viewcode - extensions.append('sphinx.ext.viewcode') + + extensions.append("sphinx.ext.viewcode") except ImportError: print("WARNING: the Sphinx viewcode extension was not found", file=sys.stderr) # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix of source filenames. -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8' +# source_encoding = 'utf-8' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = 'PythonQwt' +project = "PythonQwt" import time + this_year = time.strftime("%Y", time.localtime()) copyright = "2002 Uwe Rathmann (for the original C++ code/doc), 2015 Pierre Raybaut (for the Python translation/optimization/doc adaptation)" @@ -52,55 +54,56 @@ # # The short X.Y version. import qwt -version = ".".join(qwt.__version__.split('.')[:2]) + +version = ".".join(qwt.__version__.split(".")[:2]) # The full version, including alpha/beta/rc tags. release = qwt.__version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -#language = None +# language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. -#unused_docs = [] +# unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = [] # The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -modindex_common_prefix = ['qwt.'] +modindex_common_prefix = ["qwt."] -autodoc_member_order = 'bysource' +autodoc_member_order = "bysource" # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. -html_theme = 'sphinxdoc' +html_theme = "classic" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -109,95 +112,96 @@ ## 'sidebarlinkcolor': '#98ff99'} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -html_title = '%s %s Manual' % (project, version) +html_title = "%s %s Manual" % (project, version) # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = '%s Manual' % project +# html_short_title = '%s Manual' % project # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = 'images/qwt.png' +# html_logo = 'images/qwt.png' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = 'favicon.ico' +# html_favicon = 'favicon.ico' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ["_static"] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. html_use_modindex = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = '' +# html_file_suffix = '' # Output file base name for HTML help builder. -htmlhelp_basename = 'PythonQwt' +htmlhelp_basename = "PythonQwt" # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' +# latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' +# latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'qwt.tex', 'PythonQwt Manual', 'Pierre Raybaut', 'manual'), + ("index", "qwt.tex", "PythonQwt Manual", "Pierre Raybaut", "manual"), ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # Additional stuff for the LaTeX preamble. -#latex_preamble = '' +# latex_preamble = '' # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_use_modindex = True +# latex_use_modindex = True + From 89b4cb2f7ada0bb1d2c1528a96915ccfbff0470c Mon Sep 17 00:00:00 2001 From: Pierre Raybaut Date: Mon, 17 Aug 2020 11:48:15 +0200 Subject: [PATCH 144/421] Updated test screenshots --- qwt/tests/data/bodedemo.png | Bin 26025 -> 24267 bytes qwt/tests/data/cartesian.png | Bin 51093 -> 51079 bytes qwt/tests/data/cpudemo.png | Bin 38415 -> 30984 bytes qwt/tests/data/curvebenchmark1.png | Bin 40598 -> 40883 bytes qwt/tests/data/curvebenchmark2.png | Bin 114259 -> 113752 bytes qwt/tests/data/curvedemo1.png | Bin 14140 -> 13859 bytes qwt/tests/data/curvedemo2.png | Bin 7630 -> 8845 bytes qwt/tests/data/data.png | Bin 13118 -> 13380 bytes qwt/tests/data/errorbar.png | Bin 13001 -> 13018 bytes qwt/tests/data/eventfilter.png | Bin 8732 -> 8790 bytes qwt/tests/data/image.png | Bin 61414 -> 61754 bytes qwt/tests/data/logcurve.png | Bin 15871 -> 16187 bytes qwt/tests/data/mapdemo.png | Bin 22480 -> 22739 bytes qwt/tests/data/multidemo.png | Bin 6724 -> 6944 bytes qwt/tests/data/simple.png | Bin 32700 -> 13199 bytes qwt/tests/data/testlauncher.png | Bin 96839 -> 96708 bytes qwt/tests/data/vertical.png | Bin 25579 -> 28954 bytes 17 files changed, 0 insertions(+), 0 deletions(-) diff --git a/qwt/tests/data/bodedemo.png b/qwt/tests/data/bodedemo.png index c6a71b3be4272342b4523217ed89f019a7180d10..6a43a3837b985c117f0c9567fafc3de5104d86b5 100644 GIT binary patch literal 24267 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 literal 51093 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 diff --git a/qwt/tests/data/cpudemo.png b/qwt/tests/data/cpudemo.png index 47a4cd1196099f54e08a63f8039ba4f31f64d566..50792dd97b22440629e9821ba6a53f69a9ac8ecc 100644 GIT binary patch literal 30984 zcmYJa1yoe;_dQIvfOI2Bi3kWocS}omcXzjR3rG#!44p%Rh=6qG&?z8Y(*Nt{`~KF; zf;Gckcb<9fxhMA7XW!`0N;0o7$S~mG;9kjol2nC*Ljb|S!PB6j07tC7`JuoIy7MO; zH#j)#pa1^gQ{Q8g!@<3Qla&-x_s;&a>f@Z{}pM}fcbXmN}XKVES#Rk0$wx+;=lt|5j?L)O8ey78T+_WP6@rZwJ18F~ddv!(+( zPDj{LZb6Zz-fzD9>@-OTO>(~EIf7XBY3yylElx1OC-^s_TeNrnw(SxA=Ue@Wk$;8% zKIN`oGHp69N~6();hIvb9SOk!Z^Wazl7s&{^pJ}L5~uKnA9%R`eRO0d`1N$t<^CRc zPtFL33pQuEy;KbsM;eH{=!w7;SI-1aj>16u=;QJ=31ZxZN*l&oOmR&Wj9b|2?Mr%n zJMTvzj;2C{ZXJfJ7tTORmi^`vPTw=UKU@LaHZdC~A(o}`#WbgX2z(wY+DAUnFUgw% zNRn_VRM0E=JQm+xY0ca3w@6TeVIHI3oA2K1XlmXEr>9%PKMBNgxA}xO5c91TCxTCV z&k(i);uJz!g5stOam3N!8+Pcz7FB}Jdy}$_QQrKT{k1WE#}VRkkK*=)GdQhj%eXk4q_N9LH}yvk;~ zXcv!?khQc9p9_bG*jl@ZkC$ocPC84QCbBgF^GOfRPip!#O^_q$Jnd)Z}K~ zt$DdrY;e8Nu?mjL;Y*V)WKL_Sdzr5+g%1x|geSK6+_>H1A(cqnX<5GQN#4?E^*R4s zWXl!fRB@|!|HxuvWeK5I&T}5wHLaqQgcRp19~mvX4`0@x+7E@;vh+)#CA&BUc*FY% zS>Cr{-We=>=zx84iq-}CC7olUd*3m*Qo|I+uP2v~k!W~7ep;7g2=O*J&>s^L6p^p1 z6wsTRk+9PGT6qbFoUjl1aIV*LttZfZ&(m|Km_Q}e-ohsKZ*SoT2R4CE3qh1EFoQD+ zDV4h8$E@gBA(Z?I<}{1r`}0_0wlsG(Av9Kl_Sx3(>+ZWTC!&DIy2r1;w}MLV?tBs` z_{3#oWV#}g7s`aM-@zIB9+dDW7PlMv>=NedrhXAn+Rn**8-{~JvuD|vEsXm4ck90k z@A1EylDVc5AL4erN7eCwI{5J)U>I)dqM;dV%hkmyDJN|M7ynb(ZF}IAuAbhJ5LS{# z2|Xh%&CQK3jtUx$Wc+G( zKo%4VZSRCyKvp_^BFgdt8(C}DqktRom*mU|Q_&ys?-Qbr(g){GvEmt*N{f&?9+W9V2%jJVtjE%x9miUbdJE;;#;*ZllS7mt?{XQP}G`Al+MJy^g^ z&>)DGj2hgg5DDyLtqs~9NN@ExLUvpa3}N%%obY};hk207ytP>@-q6KF3H5(@aN-c~ z!<>1i0%6N+>RIz2oBQ6!QV6w2IaG#;Pq6dcvZR%q|J`mm z0QL(}YviSnUaAe)9*}QcwbM)B;-a^=;txzcvYXXw4z+)&%m2)7-o#VfF9HJkF} z-zoaBji2`$e7uFuwn{e+S5&d__W65aa_qSDJj|5?%l9b`8LWDQ>fj#nlv_;mL|x;;te03_q2qr zt4n*wmOQw!(ij|GxRbZ*(y>s_g1S)i6cDJL8Vz1q9TG-Cc{9Uh{B`Lv5XJwiO|*OF zj9F238~4u*Np`pPmc05YPW=vEF?O`j0Q^kST+Rho%Ye?S#Q5nEItgN{1JfADn=7nD zm-~x1_`RbMg&~3hG1vwz$Diniou2o4w&tsQl<6+o3ip{k1*nN2KeX@dgeR`9MjrQ^ zp6xWX`UFIPj3Frjc&}88{d(t}YOiQX8=thDT}E0O*YkaCkKz20Vb3$(*w}gDez`3e zI4UT`phQvIrFqr!=n#ya7cc zTNllx953Lr%rLEBYw7pExy+7;UrWp$I1+l=*hVme@xYJWXrk?+@NS-w_1yZsBz-RT zmJipD{)rj3y#8e_wZX6w7v@MyaL-_7*3&QYvj38?J(#Gm)BZ0FSOo@lTl*xC^K?tP zx!H8YgR_c8$Ax9A_FpAX88G>t#FHBpLf)y&Yh%jxJYKA^ZjgUJJ+|$Q5wn^dd5EXzd7r7s|{aB z;S5fHsA`;?ejPHbxw{J*Z|Qk*dhe?UB*5m6A|gi4kuyJj41OxhDYreijo;fN3HiPd zliS$2BF5rL5GlcCS4Bt&z)3I2JJ4Xj)%76bpla$n?^hKY+8eNe?n3NWOF>dNK z$HdXBnu&Kr&|Cmb;mq~~W1jUmixk{NLjB^k($musravM)9(jY1h>&3^+mY>Q3R7hH z@botDp{1vfr<*4F2T)}46qJ>>-T5ztJ)iF7EhY-fZOLZbfr>&Zd=0TfHk{E~H%9pf zs5nEft{o_T(Vh9aQr{ZVbZ{f(DrJxqJJI@izG!=Tsk80--IE+-4O5UGSy|U5qNX2P z{Sm+G6F7q(v#aeIKRmROEmJ-|yi?h>Db=$&kWGbJ>M$Fe(h>M3Ef{8P?WX&A27Up+ zcEsoM$eD|VNbg6q4qb z4!zP4L96UHpV5-3&o1vI{8--e!4V6~<5q4>l9EV7y!bB=C+Ts=%C7pa;bE=2ZIS2L z7(+E6BY3c|vLXo1-n_x{32Sbav9Vo#vhOZEpi6OB>3#|y1Csb_BBI>FHa_Ul(R_^4 zo1lOUUA{W_vByWj+Y>4FxURvN(twyFLJ~FM=$}^TD5s5ep9MP%fR&#Jmp4H|PqY>7 zZk5?Nt*ftVjDn&iX=gb0Z;mINh<@YuQ!WPYJ*)?%l$5Y(?C7dIkvcYO)Kbq(Pix)v z;#4g9NdT)zg^3qLdh+&f%d`f)48@EUg1G2`GGjQvu0J{|7zyiYX$sRa^eLg;wslA4 zc*jc=`x>MF6N89e(oz4mFp<);mUf($dHReeWOnclNCt1u*3}=Ef$(GAABZP!)vx(5 z$Sf4Q<<6jEB+`o$^tU;i;ai8>!E^~me8oBCui(A=Yx1gE>gvU7mLrmi65J|hA+UbT z1r~MSUz!QQONBW@V3$AF0DR&mFJ4!}!zu7UQC*$tU^g?}Fn;06=-@Eo*FL_idnZtH zQ;FENb2XE<#z6L@EmaGFCAw5%G;)&9&*yF)w}@0NUjvo!&uWf<7u0^K+il;?FIQ@4 zqO>ajVvH|$UKhYAp;kU8)@{C=DBLbZcj1;{X(1R3__4)(1b4NGG1|8_v@>O|cxHxI~Loe;pPethA5CZKA} z8F#I#>$ge7I*0A5=MFG(mJwOn*EC6=HaxXF{{Z&7aeN>jZ|1^DYj$!hLR|~dbB!6? z{_T4{f7oH7Gsaud={DZ59MwYJ-zjN&92DL`01<${NC{K4zOZX z#tPTtPdiwQN(vgg%W#m{x5YE54qx5@9rUTf%+6YupS!0g0&XI8A2co zx5Bo_c_ReVT3w?AV&n916N`=#S>frBZudHJ+k38t4fwPd5fPCyFVzZ1(UjT)bI=~U zI;OBQAE>&znm1?47spI1d)#_0?Fz8j;rn&$vL|){w~SAsGot_hVLL}hN8nO-cV~EW zQfp-yJWszPgB)AP6=8YN%@xf5U15~tYJ0QJ+tCJ4;ZzE5j&F_(y(?vFaA|XM>fYXb zOp{A3y~dnNN8%?HA)w>CeBg0BqZa;~zt+dZOoHV&o-b3Bs18{TS&Rkj4kvi=OGQ_= zX2Fld!p5d;+$@o@@|Haew{XuiqIdUb;bZjx79Ligv5${WBg)wQ{X6>y(KX>%Ohpb5 zNY=W{%%j1{laJ8WIv|Bhsm z8s7LG31vsFba>$?&Txwu=^Tj9n72Wu{$vH0&KfGgDGOZ_fNzNBs8pqFmOpf^)z15o z0F;AUOx#Kzzh2Ygha)eVaU%e*0N6RByo}p<|W8tK;tE z`sfw$wW6ApS?m=-Zy7c|8(N-)hQS0Opg^zRTdL})QK1!i2d2Xp0X+ti? zh+wrcrKu^GxbSeCsQ%o_TW1VgJ3s2geI!OD^)iD{-0Q8+1kXp0f;~4YZWKxcg((@S_Q*x2L!}T z_MI&rpvo(^l|?YL>2GR9BDRm%^i4diqDg z4*GD8gb1d-Zdw{{^!8ODMu6ck=#K(ja( z%?KL$YaXRw%qiXD6~PDemP%)~`P_X1b)2BD5ZTKWw~6|O3)W5N?cH(;k!S3@r$1K3 zH*vgQX(0rOO-;D1UWski-^QU(UmRIbenw4E1&%mavn=H^Xn1T+L)fSDx$F33wWGzt zf72QD!-q-_3KgL{5|S)403JlgORNPBNH^Na;D=r*+EY-O&2ER(2S%Vg{2mc{5%-Yx z%10y%uJzxQvb22uD!GLO`DV4xI2$#>C9kz0;D0yLqkUR{rb4LFx1sIE=@=RMa`yb- ze-!NXNZ5fdU)H;}j6YOu^VmCp!|%gnxG5@AiM$8YX<^C)f%K zI{NTDWLNv~eqK*MCy%jEYwz@FbaZqNYb@}nE?`mpLq579_SC{c`kj-Y75oSGZXf?n z=_6Y>qnCS;9Y|TXS_d)9kE18-p2v}wy0t#sLfgXj?%hOrKQ;W91;5id2f;#@ek{b1 zz*f6vHI2Izy_OhZue0lg=wek08{4h(c}>CNV};1R#}k;-C3(V>bRJcOJ?-KLNC;yb)_6ovIq`|DVq5A13SAj}_>_R|Iv+Vlmd=A~u)1V*BfUQSlM z?nG{J6>4j0rn6T|S{kP5DWT-r@oCwe*(Y$~Zlm54t^{F9~~lh?DNEufg!LwT}by$Y2y zJ?dC$HcuY9UE6-2D5P1I6fKRfYtTP>*?}-w!}K^5PySeq&**GJc8iDpe4Q9H`qq)h zH#ak@(>^Qn`r2Uiy()wNq8?+;Axr0qF(Q|uq}3iMe+|G=R{(|i;uKj{;7=kA9CY}D z0g4reh9UBvL?n;#p)KmTD+~I*Ovggl=wW%{A|+2B0G5@b6G7q5e-DHV*z(K9 zg7RdBS=(y?!^NdkPAt zcT}Y{DEZrtyZ!gnEa+3e=G_C_($!eQ6&m(~GOI^>xaw0KbryXtRLGWm`QwW|iMkCR z@8O)TY{IDhzYiH`W@`q|so(XVnbt2_;*>f69qQBj?37n7C%S#`ht_+Sj9iB~q*BdW z*~`9~gQR^R)tETPgZ0(6XUAP;-W{#c(;;Ry-=*+`@B<8>dV+@Q&8Q12N)$iXf_v-D zM0U5SU+{ASZd&-<_5!-^=ZNoywYsB5b}KHl-biliaK?S{d0ht1x?^i>q`R4#eF{9c ztL+(I6_n?Rw>MabMFC+ruk3F9q`jB&ZhkjGf&-wc9?mH`gRcN;g95$5fHb-9@?xs(%8&RetHsVqtqhGB6qh z=}ld8V-=-JZqYg3awu8Fm6kGriTZYJ_kTuf=K5BIGUj^MuNlSQdbFg;5q8P)X{2g} ziUnTd=ap}kV?(1%@|iL0+LdHHvs{WA9kMcPT+Jg(@`(o595pbUgNQ@cq(xH{sCq#; zAg*J5VwqXxIVkKe3Puz1?W>Ji^PV&2-@kw7zl9xhrOG9JqWi><@(IS*`$1zJy_fJJ_2) zUNf|zgH`b@0b3BKGz(E*1IyOAOeH(BicLe1H!5qoJOUBTFu{k0ou-1-%{La{$E6jD zAa0&WAf0YO)ciMR-wAtMS+7x0s4Tj2L`%$Myf0{XEQ%_dncXV;qpGoIR^O0Ej2$@z zivLucFqB(pjt8*o%#N$P>vYexIa%^f-Vz_nSuIOn2iTProQ$>z) z3}eP5#>b9y;mxk96%n&LQYDnpHejPX8>k}>N2JexEv~NaXg0jM{Hqe}h<|Xniqchk zHNM~4g;#sV1MdKIBE&E~|Ko;;bgq~g<2^)O2YzgMnXLWfozI}%TLG-OFE~;y4m6U- zKN~t6m`!*D)UYcbhUmt?P@nBJ9AGPJ!b)?-Nj8n2698!9z8dN=M zIJPdNECAtdbTy4l2E&c%Rpt=ZE z6b!UoXF#IneqhL7T7$_VP|%R6{b*orh}-bwZEZ}1zFC-wsWG$kvuXpyw;9;0)I>Tn zYcv_E(6@oAtHKWAg_X|#%Ieo#Gbbnjv%lZ8`Xt9=3zhBWzSVkU?!u;`Hi{7*eR*z#ji{@lTe+uWM|QG`m$58tnM0qsTus`@NMh!h#6 z_)jT;VBsJfbIv zovN}C-5cooylHMr{&#@f>5Q%W3|ZK1OR~R)e98mduwBEgp~CKvRcncw4nqP7v}WN?+OM_F*eo-HvN$|$S(P;C z^$V6-UQM}!W$aqJ{LN6cec;EQ4-E}@0InK^5e;Fo51{m@X&Bg)aItK(J8VtXKxHO90(5+uLr$OoM(4U>%VY{yqoz6JsvaP)2(BP)i5Zl40AK9Cpoz4 zb@01fwyPx!c-&1lV%@fdA3$aNO?Jb17&^Iw8@dhuh$!sKcI9RljPVz;P-Kn74DQtn-*oS+Zbs4WXP%Hn%Zl3%Yp_YBx?Gtv2(WM(Nc|^r#k_&Ll9$)jLUefY9uG(m%5hzRu>0_1a<%fv4_{ z93RUWg6}Lt*RUq}FFP>Xk~C>rllC4vv%5uk@_(R9$@uJ=i)wB=xd=lcz<2lMnvCV_x_q@H8A){plc3NmR?jjjE=;Itc=k>QNR)T!{ z8qOpf5;In?V6}nDw`;Xr9e%*Ib$GG83kr>}36%5XOZ_?cU0XyV zG~fz8vv?!^y3BC=_Uhv_PdG5yzBCBMx>1DNI6mmr>s9&mFE3`a+Nd5#AE>jW1P_d-7v98XHGPBqQPnOPEhX@8^EPWLU z!^HH~8(D`mev>=D`GLS_z?#e_50W*oa`eeGBSf>^)6}fP3N??%4^?Yda&~#`l~huu z&YXHDq|{#TK-q|WC!FfMc#;TYxFka*aZtB+`-MTYLB+5*bGQYJYkf~o-tC;X#vZN+ z0TVKt0I%5kizPBOCwfs)l(V@>y^db&T_bskwsIK{jB7U80ajJ4I%&we$wQS`RKXmv zDXmgGa}$_!SxYa;#QyRIzm1O4{jcCFjeBi06_L5&SZ5}TSfKIT-EpG;d8NqeFOhdD zGA!M03n0C%Y*#91T8_^z*9Wo^bxoD?@U^oFUs*+icERz+YlA_ZNVsO%nT&Ol2Orub zQ5Aye10wyJX0rGyUtj{83V=)oR|K$+Atk9vMOB&AFu6S7LBXRPC$^pYQ2Q);1Ccsl zumxi|;!m^;jj~kS_5{gIyiFtsSaVGZE(Lt5BewmcR$4md_&6_N_%6oSq~y#2n5%TO z`Qx^h0&UXw1`x|g{izub~aqNA9tuE@fd33zyN7y&q;-H9mASI4w8)eSUh#3Yqg%(y(Y2m+k#H zvtzBMCRL-6z@T9P2@7V(@uZCU0Lw%OiR^<0m&PisLsk0=;8JQ0>G9jMOCR*vy8nC| z9Z;bO3$}-aGIt(%+L84NIZ8O1!!YM1whtS@bl3F4@M24})ZNiN=t-y~yL=^*<+H&Rl)mpkAE!qWQVg|C+(l z5-uY%(|Bjg9C|9=eHo4$sWS_z1j_7uQ?mU0smw@wLUZ-6Y*Uy3YdlM-Dl#G&oTA2v z+}6{j-z~2uU9f7yOaD#AV@_RFJA-#+jB1mcx20y0!#W!eB{v@@2%dp)Q=yiPk-U*OcthSp>HdX)9qqpy@Ovq%Y)@Tjv8XGXh`9Qe@Rb)!q zNI@o37*N1>D_bIlF=Q*bHGIcYt!e2qA&^?)o2+vvENv?bG>CR@XXUbXtv=*WB>puN zBS|Yt4mCJciE-U|#5@ds{}$`!)kk5{#q98dlS~uSy2S2o;d>OujG^O+H(|JZTN>a3 z_|F6-rULe4W2@#D1-3l^VWB65fl*VeDu6;gKR~pLr?02;&SoL0kV*0;gCx6-rQ8J; zs!v2PhP<3nP;g?B&LpE0bqtIO-+A4*ga;S9~Tdy#6A)=L+rVXN{9o+)26*v5AFK9~`hT z0MK|X#LCw{V^hAJoT8@Es(2F-c%^NVzF%1j4HV+`iwu5Re72|c%X}RJ>41<<3KHf+mYQ30Ngo0G%gpQDLn=>9p87j zYR1Q1@7;O!xe>EQu&@(=B){)J&dLbrGQP5p#oW3K@6LlPv5ig78fu8M=Tw8k%{iPz zIrBaVHYqe4K=fLII-#1NHeRiiiiW1aU;tbrAMMY6v5Q>Qt=Gotq$fY1Nr~Tc36rKrr$53;{$-O-Cy*x4GbMTNB8z%?vh%==pk8C9(4VhkZ z`fC8>`3=!Q9kjTdE1E3~2AeQOk(e-mOsKs7Zl>q6`N$1GZU5^-^fY^Yx!NsU%mQ*` zXmZ+(PIli{D{aK@MshzK5EHj2gdX8Bxz3Tfd zeM@3WAw@PRxX)M~JKpL0gtpfkSbhUy9^D8UjT}L>n8Rx+mDVhU3;P`1HwqtEFGBmJ zuwZ-Xx!zxhm9rNwxlYSekz<#D&IY;aH$S86G7`a2L)YrSDCFpWV_YeKJqa)^%?C(M+AO*qn{a2k7T`FNLXv^J>G48QcQ%EBf%o z{}3mUfymt%&U5&hftat3uieDnw@{gRM^B z598)pO`zos6#^Ly8V%z<_Q19V6NHBga)QpiDf)Ox;@`bz1r1GZAc?{G9yW-TXGGd* zp@uH?V$et)%qun?!pBQ!=qQ!|4R6z*hO1|weIwxL@aqmZBI@2Ayepw?3wcpy|795V_#T!Bms z*p^$$S2s6&LBlVUSQm+1YYhV&d7u8Y?#ygCvv)Yyn43hFerp3siM6ocl|~CNqP4em zcOSvcLYP+8cNKJ+G1=3G3o3qI+S?>b(lW^j%r>iz3pZHIqnzCk`>e>nELxZHm=pf# z?#RFu--*g(aNx40ut|X=!{(+{Z`|HS^sY*p$~O)aVWaX==;!9_#_w7@n^-Xpg28`z zr~{)+VDw{1&6XV@K@WS1&x6W=4Lj#yc+r%IDe-zQs?7cG(lKYCIy2YFPlk|Aa2xU`plU~M=Qm@<4M7xYd0Isu$EZi=ZisM%^w;FaX3no zTz{-)Wf;8MTA$8!#vh(COCbN7u&9+RrqYYJ@266U^rShq#W_o86drcv1S|){U;VUYxC^Ovg@HjfpZhqG!Sg}|+)1$zi zpSF2U{HLJ9&ttM7p6*hwD1I{ubvUs?1Zx8{lswHtX1A5c7KvshG#K^r2lNiW~EBlpTxs#U3+}#mA zcxNlMG44+0-26RmBI+a7Uxc{C(MgfLvUH#`9YhCdt0v(V`lF8&-n(&@ z!4TaYn7T!;fcr5R}y}P6E;=k+N+Dh23CXpTr3SI?T)S{`;OI1h%CJFbu;j~qg)383j zVKbEw(ASmz387r2(?$ADO^TR{$@yczhDE3q$6|Bd|5Fj(2vfCtS{#+qDl;1Nq8nDL z1f*AtPL58X9PkIk7j)axP7Wl`JhJrGoQ#Q<{o}6@+>}e8+}b)iklDI$+zxl1)F13v zp0~MO{+9e>)epCPh68vDen&?n?Mf9WcjWIQdSREB*{sR?7b+k*)dl(cT*&uh@9fl6 zLdWVV#2nb zDI3dV@0Ut=4Hl+6a?GdW9mq3YK?OByV%DkM@cdC9I07h9BWkC476*|4gs`M})Bk_% zq60<6R-EE_56XWC*dlEvo1C}LKRCG(RoUR5oEQg}JOnRu14kPpDnnmA6x5>9B50FJ3CVQ5Gsa0(Y zF|-g@v1|m}y0BE|R#=H#Kjw$466

spowwL52VPA7WsyM3u%Yhfu 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�qEH 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 literal 0 HcmV?d00001 diff --git a/qwt/tests/data/curve_benchmark1.png b/qwt/tests/data/curve_benchmark1.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a15acf92ef8040ab2f33e99eacb00416649ea0 GIT binary patch literal 70237 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 X8I?eCNb-vV;LmkUy{o0_Ht_!sl;1B^ literal 0 HcmV?d00001 diff --git a/qwt/tests/data/curve_benchmark2.png b/qwt/tests/data/curve_benchmark2.png new file mode 100644 index 0000000000000000000000000000000000000000..e68310c29a1f657b8fd4a508a10a498bed9b13b1 GIT binary patch literal 129327 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⪚xbpK1ae)YK` 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 JF6*2UngBn)Zu|fM literal 0 HcmV?d00001 diff --git a/qwt/tests/data/curves1.png b/qwt/tests/data/curves1.png new file mode 100644 index 0000000000000000000000000000000000000000..ff0fe275ed9a8ba4bdbdec0c47d08dbcacc507ca GIT binary patch literal 17760 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 literal 0 HcmV?d00001 diff --git a/qwt/tests/data/curves2.png b/qwt/tests/data/curves2.png new file mode 100644 index 0000000000000000000000000000000000000000..89278efa4a3892499f4185f7b420e3826eda0c59 GIT binary patch literal 15297 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 literal 0 HcmV?d00001 diff --git a/qwt/tests/data/data.png b/qwt/tests/data/data.png new file mode 100644 index 0000000000000000000000000000000000000000..7c0cfbf54e67ef00cb3060d554067cd71d310aa0 GIT binary patch literal 22914 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