PythonQwt 0.14.6__tar.gz → 0.16.0__tar.gz
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.
- {pythonqwt-0.14.6/PythonQwt.egg-info → pythonqwt-0.16.0}/PKG-INFO +24 -12
- {pythonqwt-0.14.6 → pythonqwt-0.16.0/PythonQwt.egg-info}/PKG-INFO +24 -12
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/PythonQwt.egg-info/SOURCES.txt +1 -1
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/PythonQwt.egg-info/requires.txt +3 -1
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/README.md +18 -8
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/conf.py +6 -1
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/index.rst +7 -7
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/installation.rst +4 -0
- pythonqwt-0.16.0/doc/issue93_optimization_summary.md +284 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/overview.rst +6 -6
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/plot_example.py +2 -2
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/pyproject.toml +4 -4
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/__init__.py +13 -5
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/graphic.py +30 -13
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/null_paintdevice.py +5 -1
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/painter_command.py +49 -12
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/plot.py +3 -3
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/plot_canvas.py +1 -1
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/scale_div.py +5 -3
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/scale_draw.py +163 -41
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/scale_engine.py +189 -10
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/scale_map.py +19 -10
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/conftest.py +22 -8
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_bodedemo.py +1 -2
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_cpudemo.py +1 -1
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_relativemargin.py +2 -2
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/text.py +177 -39
- pythonqwt-0.14.6/doc/requirements.txt +0 -4
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/LICENSE +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/MANIFEST.in +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/PythonQwt-tests.desktop +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/PythonQwt.egg-info/dependency_links.txt +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/PythonQwt.egg-info/entry_points.txt +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/PythonQwt.egg-info/top_level.txt +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/_static/PythonQwt_logo.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/_static/QwtPlot_example.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/_static/panorama.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/_static/symbol_path_example.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/bodedemo.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/cartesian.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/cpudemo.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/curvebenchmark1.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/curvebenchmark2.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/curvedemo1.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/curvedemo2.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/data.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/errorbar.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/eventfilter.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/image.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/logcurve.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/mapdemo.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/multidemo.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/simple.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/examples/vertical.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/index.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/graphic.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/index.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/interval.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/plot.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/plot_directpainter.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/plot_layout.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/plot_series.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/scale.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/symbol.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/text.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/toqimage.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/reference/transform.rst +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/doc/symbol_path_example.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/_math.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/color_map.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/column_symbol.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/dyngrid_layout.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/interval.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/legend.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/painter.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/plot_curve.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/plot_directpainter.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/plot_grid.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/plot_layout.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/plot_marker.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/plot_renderer.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/plot_series.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/qthelpers.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/scale_widget.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/symbol.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/__init__.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/comparative_benchmarks.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/PythonQwt.svg +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/bodedemo.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/cartesian.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/cpudemo.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/curvebenchmark1.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/curvebenchmark2.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/curvedemo1.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/curvedemo2.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/data.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/errorbar.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/eventfilter.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/image.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/loadtest.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/logcurve.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/mapdemo.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/multidemo.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/simple.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/stylesheet.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/symbol.svg +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/symbols.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/testlauncher.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/data/vertical.png +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_backingstore.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_cartesian.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_curvebenchmark1.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_curvebenchmark2.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_curvedemo1.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_curvedemo2.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_data.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_errorbar.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_eventfilter.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_highdpi.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_image.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_loadtest.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_logcurve.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_mapdemo.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_multidemo.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_simple.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_stylesheet.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_symbols.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/test_vertical.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/tests/utils.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/toqimage.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/qwt/transform.py +0 -0
- {pythonqwt-0.14.6 → pythonqwt-0.16.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PythonQwt
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.16.0
|
|
4
4
|
Summary: Qt plotting widgets for Python
|
|
5
5
|
Author-email: Pierre Raybaut <pierre.raybaut@gmail.com>
|
|
6
6
|
License: PythonQwt License Agreement
|
|
@@ -666,12 +666,11 @@ License: PythonQwt License Agreement
|
|
|
666
666
|
Project-URL: Homepage, https://github.com/PlotPyStack/PythonQwt/
|
|
667
667
|
Project-URL: Documentation, https://PythonQwt.readthedocs.io/en/latest/
|
|
668
668
|
Classifier: Topic :: Scientific/Engineering
|
|
669
|
+
Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
|
|
669
670
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
670
671
|
Classifier: Topic :: Software Development :: Widget Sets
|
|
671
672
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
672
673
|
Classifier: Topic :: Utilities
|
|
673
|
-
Classifier: Topic :: Scientific/Engineering
|
|
674
|
-
Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
|
|
675
674
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
676
675
|
Classifier: Operating System :: MacOS
|
|
677
676
|
Classifier: Operating System :: Microsoft :: Windows
|
|
@@ -683,15 +682,18 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
683
682
|
Classifier: Programming Language :: Python :: 3.11
|
|
684
683
|
Classifier: Programming Language :: Python :: 3.12
|
|
685
684
|
Classifier: Programming Language :: Python :: 3.13
|
|
685
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
686
686
|
Requires-Python: <4,>=3.9
|
|
687
687
|
Description-Content-Type: text/markdown
|
|
688
688
|
License-File: LICENSE
|
|
689
|
-
Requires-Dist: NumPy>=1.
|
|
689
|
+
Requires-Dist: NumPy>=1.21
|
|
690
690
|
Requires-Dist: QtPy>=1.9
|
|
691
691
|
Provides-Extra: dev
|
|
692
|
+
Requires-Dist: build; extra == "dev"
|
|
692
693
|
Requires-Dist: ruff; extra == "dev"
|
|
693
694
|
Requires-Dist: pylint; extra == "dev"
|
|
694
695
|
Requires-Dist: Coverage; extra == "dev"
|
|
696
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
695
697
|
Provides-Extra: doc
|
|
696
698
|
Requires-Dist: PyQt5; extra == "doc"
|
|
697
699
|
Requires-Dist: sphinx>6; extra == "doc"
|
|
@@ -736,8 +738,8 @@ plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)
|
|
|
736
738
|
|
|
737
739
|
# Create two curves and attach them to plot
|
|
738
740
|
x = np.linspace(-10, 10, 500)
|
|
739
|
-
qwt.QwtPlotCurve.make(x, np.cos(x), "
|
|
740
|
-
qwt.QwtPlotCurve.make(x, np.sin(x), "
|
|
741
|
+
qwt.QwtPlotCurve.make(x, np.cos(x), "Cosine", plot, linecolor="red", antialiased=True)
|
|
742
|
+
qwt.QwtPlotCurve.make(x, np.sin(x), "Sine", plot, linecolor="blue", antialiased=True)
|
|
741
743
|
|
|
742
744
|
# Resize and show plot
|
|
743
745
|
plot.resize(600, 300)
|
|
@@ -760,7 +762,7 @@ tests.run()
|
|
|
760
762
|
or from the command line:
|
|
761
763
|
|
|
762
764
|
```bash
|
|
763
|
-
PythonQwt
|
|
765
|
+
PythonQwt-tests
|
|
764
766
|
```
|
|
765
767
|
|
|
766
768
|
Tests may also be executed in unattended mode:
|
|
@@ -773,9 +775,9 @@ PythonQwt-tests --mode unattended
|
|
|
773
775
|
|
|
774
776
|
The `qwt` package is a pure Python implementation of `Qwt` C++ library with the following limitations.
|
|
775
777
|
|
|
776
|
-
The following `Qwt` classes won't be reimplemented in `qwt` because more powerful features already exist in `
|
|
778
|
+
The following `Qwt` classes won't be reimplemented in `qwt` because more powerful features already exist in `PlotPy`: `QwtPlotZoomer`, `QwtCounter`, `QwtEventPattern`, `QwtPicker`, `QwtPlotPicker`.
|
|
777
779
|
|
|
778
|
-
Only the following plot items are currently implemented in `qwt` (the only plot items needed by `
|
|
780
|
+
Only the following plot items are currently implemented in `qwt` (the only plot items needed by `PlotPy`): `QwtPlotItem` (base class), `QwtPlotGrid`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`.
|
|
779
781
|
|
|
780
782
|
See "Overview" section in [documentation](https://pythonqwt.readthedocs.io/en/latest/) for more details on API limitations when comparing to Qwt.
|
|
781
783
|
|
|
@@ -798,14 +800,14 @@ Compatibility table:
|
|
|
798
800
|
|
|
799
801
|
| PythonQwt version | PyQt5 | PyQt6 | PySide2 | PySide6 |
|
|
800
802
|
|-------------------|-------|-------|---------|---------|
|
|
801
|
-
| 0.
|
|
803
|
+
| 0.15 and earlier | ✅ | ⚠️ | ❌ | ⚠️ |
|
|
802
804
|
| Latest | ✅ | ✅ | ❌ | ✅ |
|
|
803
805
|
|
|
804
806
|
### Requirements
|
|
805
807
|
|
|
806
808
|
- Python >=3.9
|
|
807
|
-
- QtPy >= 1.
|
|
808
|
-
- NumPy >= 1.
|
|
809
|
+
- QtPy >= 1.9 (and a Python-to-Qt binding library, see above)
|
|
810
|
+
- NumPy >= 1.21
|
|
809
811
|
|
|
810
812
|
### Optional dependencies
|
|
811
813
|
|
|
@@ -814,12 +816,22 @@ Compatibility table:
|
|
|
814
816
|
|
|
815
817
|
### Installation
|
|
816
818
|
|
|
819
|
+
From PyPI:
|
|
820
|
+
|
|
821
|
+
```bash
|
|
822
|
+
pip install PythonQwt
|
|
823
|
+
```
|
|
824
|
+
|
|
817
825
|
From the source package:
|
|
818
826
|
|
|
819
827
|
```bash
|
|
820
828
|
python -m build
|
|
821
829
|
```
|
|
822
830
|
|
|
831
|
+
## Performance investigation
|
|
832
|
+
|
|
833
|
+
Tooling for performance benchmarks, profiling and visual-regression checks across PyQt5/PyQt6/PySide6 lives in [`scripts/`](scripts/README.md). See [`doc/issue93_optimization_summary.md`](doc/issue93_optimization_summary.md) for a worked example.
|
|
834
|
+
|
|
823
835
|
## Copyrights
|
|
824
836
|
|
|
825
837
|
### Main code base
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PythonQwt
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.16.0
|
|
4
4
|
Summary: Qt plotting widgets for Python
|
|
5
5
|
Author-email: Pierre Raybaut <pierre.raybaut@gmail.com>
|
|
6
6
|
License: PythonQwt License Agreement
|
|
@@ -666,12 +666,11 @@ License: PythonQwt License Agreement
|
|
|
666
666
|
Project-URL: Homepage, https://github.com/PlotPyStack/PythonQwt/
|
|
667
667
|
Project-URL: Documentation, https://PythonQwt.readthedocs.io/en/latest/
|
|
668
668
|
Classifier: Topic :: Scientific/Engineering
|
|
669
|
+
Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
|
|
669
670
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
670
671
|
Classifier: Topic :: Software Development :: Widget Sets
|
|
671
672
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
672
673
|
Classifier: Topic :: Utilities
|
|
673
|
-
Classifier: Topic :: Scientific/Engineering
|
|
674
|
-
Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
|
|
675
674
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
676
675
|
Classifier: Operating System :: MacOS
|
|
677
676
|
Classifier: Operating System :: Microsoft :: Windows
|
|
@@ -683,15 +682,18 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
683
682
|
Classifier: Programming Language :: Python :: 3.11
|
|
684
683
|
Classifier: Programming Language :: Python :: 3.12
|
|
685
684
|
Classifier: Programming Language :: Python :: 3.13
|
|
685
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
686
686
|
Requires-Python: <4,>=3.9
|
|
687
687
|
Description-Content-Type: text/markdown
|
|
688
688
|
License-File: LICENSE
|
|
689
|
-
Requires-Dist: NumPy>=1.
|
|
689
|
+
Requires-Dist: NumPy>=1.21
|
|
690
690
|
Requires-Dist: QtPy>=1.9
|
|
691
691
|
Provides-Extra: dev
|
|
692
|
+
Requires-Dist: build; extra == "dev"
|
|
692
693
|
Requires-Dist: ruff; extra == "dev"
|
|
693
694
|
Requires-Dist: pylint; extra == "dev"
|
|
694
695
|
Requires-Dist: Coverage; extra == "dev"
|
|
696
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
695
697
|
Provides-Extra: doc
|
|
696
698
|
Requires-Dist: PyQt5; extra == "doc"
|
|
697
699
|
Requires-Dist: sphinx>6; extra == "doc"
|
|
@@ -736,8 +738,8 @@ plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)
|
|
|
736
738
|
|
|
737
739
|
# Create two curves and attach them to plot
|
|
738
740
|
x = np.linspace(-10, 10, 500)
|
|
739
|
-
qwt.QwtPlotCurve.make(x, np.cos(x), "
|
|
740
|
-
qwt.QwtPlotCurve.make(x, np.sin(x), "
|
|
741
|
+
qwt.QwtPlotCurve.make(x, np.cos(x), "Cosine", plot, linecolor="red", antialiased=True)
|
|
742
|
+
qwt.QwtPlotCurve.make(x, np.sin(x), "Sine", plot, linecolor="blue", antialiased=True)
|
|
741
743
|
|
|
742
744
|
# Resize and show plot
|
|
743
745
|
plot.resize(600, 300)
|
|
@@ -760,7 +762,7 @@ tests.run()
|
|
|
760
762
|
or from the command line:
|
|
761
763
|
|
|
762
764
|
```bash
|
|
763
|
-
PythonQwt
|
|
765
|
+
PythonQwt-tests
|
|
764
766
|
```
|
|
765
767
|
|
|
766
768
|
Tests may also be executed in unattended mode:
|
|
@@ -773,9 +775,9 @@ PythonQwt-tests --mode unattended
|
|
|
773
775
|
|
|
774
776
|
The `qwt` package is a pure Python implementation of `Qwt` C++ library with the following limitations.
|
|
775
777
|
|
|
776
|
-
The following `Qwt` classes won't be reimplemented in `qwt` because more powerful features already exist in `
|
|
778
|
+
The following `Qwt` classes won't be reimplemented in `qwt` because more powerful features already exist in `PlotPy`: `QwtPlotZoomer`, `QwtCounter`, `QwtEventPattern`, `QwtPicker`, `QwtPlotPicker`.
|
|
777
779
|
|
|
778
|
-
Only the following plot items are currently implemented in `qwt` (the only plot items needed by `
|
|
780
|
+
Only the following plot items are currently implemented in `qwt` (the only plot items needed by `PlotPy`): `QwtPlotItem` (base class), `QwtPlotGrid`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`.
|
|
779
781
|
|
|
780
782
|
See "Overview" section in [documentation](https://pythonqwt.readthedocs.io/en/latest/) for more details on API limitations when comparing to Qwt.
|
|
781
783
|
|
|
@@ -798,14 +800,14 @@ Compatibility table:
|
|
|
798
800
|
|
|
799
801
|
| PythonQwt version | PyQt5 | PyQt6 | PySide2 | PySide6 |
|
|
800
802
|
|-------------------|-------|-------|---------|---------|
|
|
801
|
-
| 0.
|
|
803
|
+
| 0.15 and earlier | ✅ | ⚠️ | ❌ | ⚠️ |
|
|
802
804
|
| Latest | ✅ | ✅ | ❌ | ✅ |
|
|
803
805
|
|
|
804
806
|
### Requirements
|
|
805
807
|
|
|
806
808
|
- Python >=3.9
|
|
807
|
-
- QtPy >= 1.
|
|
808
|
-
- NumPy >= 1.
|
|
809
|
+
- QtPy >= 1.9 (and a Python-to-Qt binding library, see above)
|
|
810
|
+
- NumPy >= 1.21
|
|
809
811
|
|
|
810
812
|
### Optional dependencies
|
|
811
813
|
|
|
@@ -814,12 +816,22 @@ Compatibility table:
|
|
|
814
816
|
|
|
815
817
|
### Installation
|
|
816
818
|
|
|
819
|
+
From PyPI:
|
|
820
|
+
|
|
821
|
+
```bash
|
|
822
|
+
pip install PythonQwt
|
|
823
|
+
```
|
|
824
|
+
|
|
817
825
|
From the source package:
|
|
818
826
|
|
|
819
827
|
```bash
|
|
820
828
|
python -m build
|
|
821
829
|
```
|
|
822
830
|
|
|
831
|
+
## Performance investigation
|
|
832
|
+
|
|
833
|
+
Tooling for performance benchmarks, profiling and visual-regression checks across PyQt5/PyQt6/PySide6 lives in [`scripts/`](scripts/README.md). See [`doc/issue93_optimization_summary.md`](doc/issue93_optimization_summary.md) for a worked example.
|
|
834
|
+
|
|
823
835
|
## Copyrights
|
|
824
836
|
|
|
825
837
|
### Main code base
|
|
@@ -12,9 +12,9 @@ PythonQwt.egg-info/top_level.txt
|
|
|
12
12
|
doc/conf.py
|
|
13
13
|
doc/index.rst
|
|
14
14
|
doc/installation.rst
|
|
15
|
+
doc/issue93_optimization_summary.md
|
|
15
16
|
doc/overview.rst
|
|
16
17
|
doc/plot_example.py
|
|
17
|
-
doc/requirements.txt
|
|
18
18
|
doc/symbol_path_example.py
|
|
19
19
|
doc/_static/PythonQwt_logo.png
|
|
20
20
|
doc/_static/QwtPlot_example.png
|
|
@@ -33,8 +33,8 @@ plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)
|
|
|
33
33
|
|
|
34
34
|
# Create two curves and attach them to plot
|
|
35
35
|
x = np.linspace(-10, 10, 500)
|
|
36
|
-
qwt.QwtPlotCurve.make(x, np.cos(x), "
|
|
37
|
-
qwt.QwtPlotCurve.make(x, np.sin(x), "
|
|
36
|
+
qwt.QwtPlotCurve.make(x, np.cos(x), "Cosine", plot, linecolor="red", antialiased=True)
|
|
37
|
+
qwt.QwtPlotCurve.make(x, np.sin(x), "Sine", plot, linecolor="blue", antialiased=True)
|
|
38
38
|
|
|
39
39
|
# Resize and show plot
|
|
40
40
|
plot.resize(600, 300)
|
|
@@ -57,7 +57,7 @@ tests.run()
|
|
|
57
57
|
or from the command line:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
PythonQwt
|
|
60
|
+
PythonQwt-tests
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
Tests may also be executed in unattended mode:
|
|
@@ -70,9 +70,9 @@ PythonQwt-tests --mode unattended
|
|
|
70
70
|
|
|
71
71
|
The `qwt` package is a pure Python implementation of `Qwt` C++ library with the following limitations.
|
|
72
72
|
|
|
73
|
-
The following `Qwt` classes won't be reimplemented in `qwt` because more powerful features already exist in `
|
|
73
|
+
The following `Qwt` classes won't be reimplemented in `qwt` because more powerful features already exist in `PlotPy`: `QwtPlotZoomer`, `QwtCounter`, `QwtEventPattern`, `QwtPicker`, `QwtPlotPicker`.
|
|
74
74
|
|
|
75
|
-
Only the following plot items are currently implemented in `qwt` (the only plot items needed by `
|
|
75
|
+
Only the following plot items are currently implemented in `qwt` (the only plot items needed by `PlotPy`): `QwtPlotItem` (base class), `QwtPlotGrid`, `QwtPlotMarker`, `QwtPlotSeriesItem` and `QwtPlotCurve`.
|
|
76
76
|
|
|
77
77
|
See "Overview" section in [documentation](https://pythonqwt.readthedocs.io/en/latest/) for more details on API limitations when comparing to Qwt.
|
|
78
78
|
|
|
@@ -95,14 +95,14 @@ Compatibility table:
|
|
|
95
95
|
|
|
96
96
|
| PythonQwt version | PyQt5 | PyQt6 | PySide2 | PySide6 |
|
|
97
97
|
|-------------------|-------|-------|---------|---------|
|
|
98
|
-
| 0.
|
|
98
|
+
| 0.15 and earlier | ✅ | ⚠️ | ❌ | ⚠️ |
|
|
99
99
|
| Latest | ✅ | ✅ | ❌ | ✅ |
|
|
100
100
|
|
|
101
101
|
### Requirements
|
|
102
102
|
|
|
103
103
|
- Python >=3.9
|
|
104
|
-
- QtPy >= 1.
|
|
105
|
-
- NumPy >= 1.
|
|
104
|
+
- QtPy >= 1.9 (and a Python-to-Qt binding library, see above)
|
|
105
|
+
- NumPy >= 1.21
|
|
106
106
|
|
|
107
107
|
### Optional dependencies
|
|
108
108
|
|
|
@@ -111,12 +111,22 @@ Compatibility table:
|
|
|
111
111
|
|
|
112
112
|
### Installation
|
|
113
113
|
|
|
114
|
+
From PyPI:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
pip install PythonQwt
|
|
118
|
+
```
|
|
119
|
+
|
|
114
120
|
From the source package:
|
|
115
121
|
|
|
116
122
|
```bash
|
|
117
123
|
python -m build
|
|
118
124
|
```
|
|
119
125
|
|
|
126
|
+
## Performance investigation
|
|
127
|
+
|
|
128
|
+
Tooling for performance benchmarks, profiling and visual-regression checks across PyQt5/PyQt6/PySide6 lives in [`scripts/`](scripts/README.md). See [`doc/issue93_optimization_summary.md`](doc/issue93_optimization_summary.md) for a worked example.
|
|
129
|
+
|
|
120
130
|
## Copyrights
|
|
121
131
|
|
|
122
132
|
### Main code base
|
|
@@ -101,7 +101,12 @@ autodoc_member_order = "bysource"
|
|
|
101
101
|
|
|
102
102
|
# The theme to use for HTML and HTML Help pages. Major themes that come with
|
|
103
103
|
# Sphinx are currently 'default' and 'sphinxdoc'.
|
|
104
|
-
|
|
104
|
+
try:
|
|
105
|
+
import python_docs_theme # noqa: F401
|
|
106
|
+
|
|
107
|
+
html_theme = "python_docs_theme"
|
|
108
|
+
except ImportError:
|
|
109
|
+
html_theme = "default"
|
|
105
110
|
|
|
106
111
|
# Theme options are theme-specific and customize the look and feel of a theme
|
|
107
112
|
# further. For a list of options available for each theme, see the
|
|
@@ -6,19 +6,19 @@ Examples
|
|
|
6
6
|
The test launcher
|
|
7
7
|
-----------------
|
|
8
8
|
|
|
9
|
-
A lot of examples are available in the ``qwt.
|
|
9
|
+
A lot of examples are available in the ``qwt.tests`` module ::
|
|
10
10
|
|
|
11
11
|
from qwt import tests
|
|
12
12
|
tests.run()
|
|
13
13
|
|
|
14
|
-
The two lines above execute the ``PythonQwt`` test launcher:
|
|
14
|
+
The two lines above execute the ``PythonQwt-tests`` test launcher:
|
|
15
15
|
|
|
16
16
|
.. image:: /../qwt/tests/data/testlauncher.png
|
|
17
17
|
|
|
18
|
-
GUI-based test launcher can be executed from the command line thanks to the
|
|
19
|
-
``PythonQwt`` test script.
|
|
18
|
+
GUI-based test launcher can be executed from the command line thanks to the
|
|
19
|
+
``PythonQwt-tests`` test script.
|
|
20
20
|
|
|
21
|
-
Unit tests may be executed from the
|
|
21
|
+
Unit tests may be executed from the command line thanks to the console-based script
|
|
22
22
|
``PythonQwt-tests``: ``PythonQwt-tests --mode unattended``.
|
|
23
23
|
|
|
24
24
|
Tests
|
|
@@ -26,11 +26,11 @@ Tests
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
Here are some examples from the `qwt.
|
|
29
|
+
Here are some examples from the `qwt.tests` module:
|
|
30
30
|
|
|
31
31
|
.. toctree::
|
|
32
32
|
:maxdepth: 2
|
|
33
|
-
|
|
33
|
+
|
|
34
34
|
bodedemo
|
|
35
35
|
cartesian
|
|
36
36
|
cpudemo
|