PythonQwt 0.12.4__py3-none-any.whl → 0.12.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PythonQwt
3
- Version: 0.12.4
3
+ Version: 0.12.6
4
4
  Summary: Qt plotting widgets for Python
5
5
  Author-email: Pierre Raybaut <pierre.raybaut@gmail.com>
6
6
  License: PythonQwt License Agreement
@@ -686,7 +686,7 @@ Classifier: Programming Language :: Python :: 3.12
686
686
  Requires-Python: <4,>=3.8
687
687
  Description-Content-Type: text/markdown
688
688
  License-File: LICENSE
689
- Requires-Dist: NumPy <2,>=1.21
689
+ Requires-Dist: NumPy >=1.21
690
690
  Requires-Dist: QtPy >=1.9
691
691
  Provides-Extra: dev
692
692
  Requires-Dist: ruff ; extra == 'dev'
@@ -1,4 +1,4 @@
1
- qwt/__init__.py,sha256=cx5xUKhENb9fy3nbA0TH2FKtKDhSOX7eS-IQYBeGbhE,5917
1
+ qwt/__init__.py,sha256=-KDWFo8KawLNnOwdv-KjrxmwND1YxmzLeGawWILJbjY,5917
2
2
  qwt/_math.py,sha256=Y4qZ0b3RPSliSUdeqVvR8wJ6tqVIAmqyN1Vldrz1UGg,1576
3
3
  qwt/color_map.py,sha256=D8hCwm6u88vqlDDYd8Cw9H24DDbgv7-3DYmsmu1w_g4,11733
4
4
  qwt/column_symbol.py,sha256=d25qz_LtVODQ8sJz1SQXoctoSWqwwbL88kAoeaSMkUo,5716
@@ -11,7 +11,7 @@ qwt/painter.py,sha256=UGh-MC_9qw3fNF9GJ_1xbcAkVG6hD5op7jg9M2CcIXI,16527
11
11
  qwt/painter_command.py,sha256=b_uZb56YlzYFG3ZmB5ykjkBQQAadQD8epknsQSEai54,6957
12
12
  qwt/plot.py,sha256=T0z-0t-4FexibCHMl1NmDxEx9dy5LHg3J0CU80Bs3pg,75777
13
13
  qwt/plot_canvas.py,sha256=BxRz9EJtzmBEntKt-Wug7NIRwX391WxgcTgB3_rqFGo,30273
14
- qwt/plot_curve.py,sha256=2wKjSI-4vfyvVwEvC2esiXH8dATbAm8lQzH5VSSNKqI,37081
14
+ qwt/plot_curve.py,sha256=ilb1ts7E-Ql-IE3eigjmb5LwjdCf7LMPBlYuu_cjKPw,37061
15
15
  qwt/plot_directpainter.py,sha256=BKcHrYqKZJ7Y8bMKAlgV-Nmu7mpUue8d-_CSTVxW9Lw,10130
16
16
  qwt/plot_grid.py,sha256=w9JVrDruw69VMH9hUSnp28XHuQv6WzVn0Nhy6ZWff2A,16563
17
17
  qwt/plot_layout.py,sha256=OZ37rC9xHmhl6R_jFGJFNWfqObbOF5dxRdVWbsHUwkM,46139
@@ -24,12 +24,13 @@ qwt/scale_draw.py,sha256=0bdr6sy_R6lHDSsjX0EFa2dDPzGq6zWBrNbU2Cca3Y4,37835
24
24
  qwt/scale_engine.py,sha256=h5GiwVAphx75DXzm9LCzjHoxz7INGSOYT97sjtGLcd8,29044
25
25
  qwt/scale_map.py,sha256=WobkNna6_RPXYZjGK7gZLykNxN_kYnrcB6fEaWgnL2w,9182
26
26
  qwt/scale_widget.py,sha256=RyPD4Hx-ID2O8ibhJrKY0ndLRA3NjVHPOGRIVC5fBBA,27081
27
- qwt/symbol.py,sha256=8gBX7Hba0VlUS9Gu2uPFv0t120tXycYsPeCIzoFWgUA,40379
28
- qwt/text.py,sha256=Z3qg6HBKqgCuTPhJ4VpKTqUBGbLtbPMJ-UBI9V6DAGI,42074
27
+ qwt/symbol.py,sha256=mxyQ1q8DDT2gSPkG4nMIxSu6uz5NwOnFfXFeX0ZuMiI,40350
28
+ qwt/text.py,sha256=8DWpASdJEDPysOerYaj5MHfpJw-EoRXzg6nwt9ggL-A,42118
29
29
  qwt/toqimage.py,sha256=H2u_qDt32n7HGZakWvs3Ve0G3u04Uk2ZQYp8MuZkkmU,1723
30
30
  qwt/transform.py,sha256=XA5-y7k6odCFzuNaFcLcX3HX5J2pJrO47AdWkFtmv_0,5992
31
31
  qwt/tests/__init__.py,sha256=BNCdp7BHS9JyrFgm-zW_m5Hexr8YxgqTOP-l-v57ZvU,1148
32
32
  qwt/tests/comparative_benchmarks.py,sha256=nGhNjsA_pRG4W065fDFpyOQL36fMW6D5TCsLMU39Bhs,1883
33
+ qwt/tests/conftest.py,sha256=wjTrWJ7R6iaEgZ-ttq_-Tx18bYWuzmyHHf0hwn8RYXU,726
33
34
  qwt/tests/test_backingstore.py,sha256=HU9UQmElbQ6X5b3Nbpr8LtGURRZ0vPzhBJ3IlD1_LvA,547
34
35
  qwt/tests/test_bodedemo.py,sha256=_ya6NroUuvGs0BaUcAGn8Adp0ek90JTDevfqN9ew_LE,9691
35
36
  qwt/tests/test_cartesian.py,sha256=5CJyC85P_YFF5iAIaAL6m7Nt1y1-_UDpZAbHKyIVAFk,3964
@@ -39,7 +40,7 @@ qwt/tests/test_curvebenchmark2.py,sha256=XBMzvKOkh54InjGEaTlzZtSBXyhZQoYfFXfejrF
39
40
  qwt/tests/test_curvedemo1.py,sha256=hwHS6ceSqnvflhIuw_7Y05yroE8cDAvchubOgw3Dzd4,4309
40
41
  qwt/tests/test_curvedemo2.py,sha256=IfZIuuIQk2pzOC15pMhzHkHzg9Ey4YvHmDpvP4CyVOY,4207
41
42
  qwt/tests/test_data.py,sha256=c-rHb6wUrLK-8NJUI1fnf5c4G-gr0uypzYqCLy4C9EQ,3255
42
- qwt/tests/test_errorbar.py,sha256=fEcQrMYAQBiHh5SWkBjFMJnQ_caf3hhzlLN26TzEXxA,11133
43
+ qwt/tests/test_errorbar.py,sha256=CcKacBVWoIHpVq1kJtM4MR_7VfU7cMGI4zSVpj_cuDI,11134
43
44
  qwt/tests/test_eventfilter.py,sha256=sfsxeTb9ddb27rZzqdPBdQwMLkKXCaXTA4qeJwM1j7Q,16800
44
45
  qwt/tests/test_highdpi.py,sha256=PJYSUjuf_Pqb7UsB43bi7cMQa2jBF-zjK0BayGbGqPM,1089
45
46
  qwt/tests/test_image.py,sha256=IDScsN7Ii-uhNG3lMEXuDXSNQxdfbhr7-qnEMquyWJI,6753
@@ -51,7 +52,7 @@ qwt/tests/test_simple.py,sha256=BjbDpn8lkGa_2pWFktREdg1bhx1zbmAFXZSDU3ksvxw,2425
51
52
  qwt/tests/test_stylesheet.py,sha256=7KxMwAVKVTriPCpgK0GvlEQjbWgULt_nGRHK4ogodqs,987
52
53
  qwt/tests/test_symbols.py,sha256=JSusDGUV7Q6xxMLsINj9wYPGzg9RWf1cdIXKAqTR_us,5808
53
54
  qwt/tests/test_vertical.py,sha256=lBRg8Dyig5xakM8sqnujiCNpDYGK2M-5jrCl5d6R3fU,3369
54
- qwt/tests/utils.py,sha256=cZ_qBvLbK2MoH_ZcZfOqYQeWJ3tTMN6fLYwatIF6448,10810
55
+ qwt/tests/utils.py,sha256=6346_U2HU1Qx1Z5pqId3u2gCO6fMrteYB8vwxHLmO20,10830
55
56
  qwt/tests/data/PythonQwt.svg,sha256=9sFaZUZ49NTcFDNh38BhSg4D6ZzPk1I4L8CF8DMPff8,15716
56
57
  qwt/tests/data/bodedemo.png,sha256=8jP1YLE6HdwjEmrQyJclLxiYI4Zs4t0z0BoN1JT3GPQ,24414
57
58
  qwt/tests/data/cartesian.png,sha256=Cwbn5Jy3VT-OisFHxzMCVbfdbJacUMZ9uGCD9sCxA-Q,51094
@@ -74,9 +75,9 @@ qwt/tests/data/symbol.svg,sha256=UaJE-IbdgVejSV-WVGzkQf8qWHWXYL2gjglWeNRFg9Y,132
74
75
  qwt/tests/data/symbols.png,sha256=wiqRBc2MJluJ-am9LtZ0K9DHV9BnreYMiEvfzJUFzCk,55586
75
76
  qwt/tests/data/testlauncher.png,sha256=WmucObp30QYYKsVRBs5-6t1aEN0FbIWRmOVFN1gt-vQ,139676
76
77
  qwt/tests/data/vertical.png,sha256=EvyG6q6rZm6pTT08Y_nzdBYCnqmoX1QDuEQtp2pyGlw,34076
77
- PythonQwt-0.12.4.dist-info/LICENSE,sha256=qjEk8TRuXmFS7QC-omINvD1UPGqWaOs6CzcCZoMEhdI,33457
78
- PythonQwt-0.12.4.dist-info/METADATA,sha256=LUhrX_kachZguliZ7OgmxDDHuG0Do_CwUozVZ9eBhWE,45442
79
- PythonQwt-0.12.4.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
80
- PythonQwt-0.12.4.dist-info/entry_points.txt,sha256=pdPda-YcYigCi00hR4tMxWKu6byxM2x3zA8BQFDYvwI,46
81
- PythonQwt-0.12.4.dist-info/top_level.txt,sha256=KB1IBdWRWnaItyJMaECwZiEi1jWt3IvqCrRVVhMjTu8,4
82
- PythonQwt-0.12.4.dist-info/RECORD,,
78
+ PythonQwt-0.12.6.dist-info/LICENSE,sha256=qjEk8TRuXmFS7QC-omINvD1UPGqWaOs6CzcCZoMEhdI,33457
79
+ PythonQwt-0.12.6.dist-info/METADATA,sha256=Ykf1BAmrIzvcSuE2KzzM4P5MbC9yBN05x77HXrQ9taA,45439
80
+ PythonQwt-0.12.6.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
81
+ PythonQwt-0.12.6.dist-info/entry_points.txt,sha256=pdPda-YcYigCi00hR4tMxWKu6byxM2x3zA8BQFDYvwI,46
82
+ PythonQwt-0.12.6.dist-info/top_level.txt,sha256=KB1IBdWRWnaItyJMaECwZiEi1jWt3IvqCrRVVhMjTu8,4
83
+ PythonQwt-0.12.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.1.0)
2
+ Generator: setuptools (70.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
qwt/__init__.py CHANGED
@@ -55,7 +55,7 @@ from qwt.symbol import QwtSymbol as QSbl # see deprecated section
55
55
  from qwt.text import QwtText # noqa: F401
56
56
  from qwt.toqimage import array_to_qimage as toQImage # noqa: F401
57
57
 
58
- __version__ = "0.12.4"
58
+ __version__ = "0.12.6"
59
59
  QWT_VERSION_STR = "6.1.5"
60
60
 
61
61
 
qwt/plot_curve.py CHANGED
@@ -94,8 +94,8 @@ def array2d_to_qpolygonf(xdata, ydata):
94
94
  buffer = polyline.data()
95
95
  buffer.setsize(16 * size) # 16 bytes per point: 8 bytes per X,Y value (float64)
96
96
  memory = np.frombuffer(buffer, np.float64)
97
- memory[: (size - 1) * 2 + 1 : 2] = np.array(xdata, dtype=np.float64, copy=False)
98
- memory[1 : (size - 1) * 2 + 2 : 2] = np.array(ydata, dtype=np.float64, copy=False)
97
+ memory[: (size - 1) * 2 + 1 : 2] = np.asarray(xdata, dtype=np.float64)
98
+ memory[1 : (size - 1) * 2 + 2 : 2] = np.asarray(ydata, dtype=np.float64)
99
99
  return polyline
100
100
 
101
101
 
qwt/symbol.py CHANGED
@@ -19,7 +19,6 @@ from qtpy.QtCore import QLineF, QPoint, QPointF, QRect, QRectF, QSize, QSizeF, Q
19
19
  from qtpy.QtGui import (
20
20
  QBrush,
21
21
  QPainter,
22
- QPainterPath,
23
22
  QPen,
24
23
  QPixmap,
25
24
  QPolygonF,
@@ -342,7 +341,7 @@ class QwtSymbol_PrivateData(object):
342
341
  self.brush = br
343
342
  self.pen = pn
344
343
  self.isPinPointEnabled = False
345
- self.pinPoint = QPointF()
344
+ self.pinPoint = None
346
345
 
347
346
  class Path(object):
348
347
  def __init__(self):
@@ -1236,7 +1235,7 @@ class QwtSymbol(object):
1236
1235
  :py:meth:`setCachePolicy()`, :py:meth:`drawSymbols()`
1237
1236
  """
1238
1237
  if self.__data.cache.pixmap is not None:
1239
- self.__data.cache.pixmap = QPixmap()
1238
+ self.__data.cache.pixmap = None
1240
1239
 
1241
1240
  def setStyle(self, style):
1242
1241
  """
qwt/tests/conftest.py ADDED
@@ -0,0 +1,24 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ """pytest configuration for PythonQwt package tests."""
4
+
5
+ import os
6
+
7
+ import qtpy
8
+
9
+ import qwt
10
+ from qwt.tests.utils import TestEnvironment
11
+
12
+ # Set the unattended environment variable to 1 to avoid any user interaction
13
+ os.environ[TestEnvironment.UNATTENDED_ENV] = "1"
14
+
15
+
16
+ def pytest_report_header(config):
17
+ """Add additional information to the pytest report header."""
18
+ qtbindings_version = qtpy.PYSIDE_VERSION
19
+ if qtbindings_version is None:
20
+ qtbindings_version = qtpy.PYQT_VERSION
21
+ return [
22
+ f"PythonQwt {qwt.__version__} [closest Qwt version: {qwt.QWT_VERSION_STR}]",
23
+ f"{qtpy.API_NAME} {qtbindings_version} [Qt version: {qtpy.QT_VERSION}]",
24
+ ]
@@ -255,7 +255,7 @@ class ErrorBarPlotCurve(QwtPlotCurve):
255
255
  # draw the caps
256
256
  if self.errorCap > 0:
257
257
  cap = self.errorCap / 2
258
- n, i, j = len(x), 0, 0
258
+ n, i, _j = len(x), 0, 0
259
259
  lines = []
260
260
  while i < n:
261
261
  xi = xMap.transform(x[i])
qwt/tests/utils.py CHANGED
@@ -162,7 +162,10 @@ class TestLauncher(QW.QMainWindow):
162
162
  all_act.triggered.connect(lambda checked: run_all_tests(wait=False))
163
163
  folder_act = QW.QAction(self.get_std_icon("DirOpenIcon"), "", self)
164
164
  folder_act.setIconText("Open tests folder")
165
- open_test_folder = lambda checked: os.startfile(TEST_PATH)
165
+
166
+ def open_test_folder(checked):
167
+ return os.startfile(TEST_PATH)
168
+
166
169
  folder_act.triggered.connect(open_test_folder)
167
170
  about_act = QW.QAction(self.get_std_icon("FileDialogInfoView"), "", self)
168
171
  about_act.setIconText("About")
qwt/text.py CHANGED
@@ -474,11 +474,11 @@ class QwtText_PrivateData(object):
474
474
 
475
475
  class QwtText_LayoutCache(object):
476
476
  def __init__(self):
477
- self.textSize = QSizeF()
477
+ self.textSize = None
478
478
  self.font = None
479
479
 
480
480
  def invalidate(self):
481
- self.textSize = QSizeF()
481
+ self.textSize = None
482
482
 
483
483
 
484
484
  class QwtText(object):
@@ -987,7 +987,8 @@ class QwtText(object):
987
987
  """
988
988
  font = QFont(self.usedFont(defaultFont))
989
989
  if (
990
- not self.__layoutCache.textSize.isValid()
990
+ self.__layoutCache.textSize is None
991
+ or not self.__layoutCache.textSize.isValid()
991
992
  or self.__layoutCache.font is not font
992
993
  ):
993
994
  self.__layoutCache.textSize = self.__data.textEngine.textSize(