PythonQwt 0.12.1__tar.gz → 0.12.2__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.12.1/PythonQwt.egg-info → pythonqwt-0.12.2}/PKG-INFO +5 -8
- {PythonQwt-0.12.1 → pythonqwt-0.12.2/PythonQwt.egg-info}/PKG-INFO +5 -8
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/PythonQwt.egg-info/SOURCES.txt +1 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/PythonQwt.egg-info/requires.txt +2 -5
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/README.md +2 -2
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/conf.py +1 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/installation.rst +1 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/plot_example.py +5 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/symbol_path_example.py +11 -5
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/pyproject.toml +26 -3
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/__init__.py +19 -19
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/_math.py +6 -6
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/column_symbol.py +3 -5
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/dyngrid_layout.py +1 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/legend.py +9 -8
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/null_paintdevice.py +1 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/painter.py +0 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/painter_command.py +2 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/plot.py +1 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/plot_curve.py +2 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/plot_grid.py +5 -5
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/plot_layout.py +8 -2
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/plot_marker.py +7 -9
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/plot_series.py +2 -3
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/qthelpers.py +0 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/scale_div.py +2 -2
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/scale_engine.py +7 -8
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/scale_widget.py +11 -9
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/__init__.py +8 -2
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/comparative_benchmarks.py +1 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_cartesian.py +1 -2
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_cpudemo.py +8 -8
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_curvedemo1.py +3 -4
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_curvedemo2.py +3 -5
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_data.py +6 -6
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_errorbar.py +11 -6
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_eventfilter.py +1 -1
- pythonqwt-0.12.2/qwt/tests/test_highdpi.py +36 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_image.py +7 -8
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_logcurve.py +1 -1
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_mapdemo.py +4 -4
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_multidemo.py +2 -3
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_simple.py +2 -3
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_stylesheet.py +9 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/toqimage.py +1 -2
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/transform.py +2 -2
- PythonQwt-0.12.1/qwt/tests/conftest.py +0 -9
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/LICENSE +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/MANIFEST.in +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/PythonQwt-tests.desktop +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/PythonQwt.egg-info/dependency_links.txt +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/PythonQwt.egg-info/entry_points.txt +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/PythonQwt.egg-info/top_level.txt +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/_static/PythonQwt_logo.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/_static/QwtPlot_example.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/_static/panorama.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/_static/symbol_path_example.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/bodedemo.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/cartesian.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/cpudemo.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/curvebenchmark1.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/curvebenchmark2.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/curvedemo1.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/curvedemo2.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/data.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/errorbar.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/eventfilter.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/image.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/index.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/logcurve.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/mapdemo.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/multidemo.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/simple.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/examples/vertical.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/index.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/overview.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/graphic.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/index.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/interval.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/plot.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/plot_directpainter.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/plot_layout.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/plot_series.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/scale.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/symbol.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/text.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/toqimage.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/reference/transform.rst +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/doc/requirements.txt +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/color_map.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/graphic.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/interval.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/plot_canvas.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/plot_directpainter.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/plot_renderer.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/scale_draw.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/scale_map.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/symbol.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/PythonQwt.svg +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/bodedemo.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/cartesian.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/cpudemo.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/curvebenchmark1.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/curvebenchmark2.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/curvedemo1.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/curvedemo2.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/data.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/errorbar.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/eventfilter.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/image.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/loadtest.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/logcurve.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/mapdemo.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/multidemo.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/simple.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/stylesheet.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/symbol.svg +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/symbols.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/testlauncher.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/data/vertical.png +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_backingstore.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_bodedemo.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_curvebenchmark1.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_curvebenchmark2.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_loadtest.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_symbols.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/test_vertical.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/tests/utils.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/qwt/text.py +0 -0
- {PythonQwt-0.12.1 → pythonqwt-0.12.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PythonQwt
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.2
|
|
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,11 +686,10 @@ 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
|
|
689
|
+
Requires-Dist: NumPy<2,>=1.21
|
|
690
690
|
Requires-Dist: QtPy>=1.9
|
|
691
691
|
Provides-Extra: dev
|
|
692
|
-
Requires-Dist:
|
|
693
|
-
Requires-Dist: isort; extra == "dev"
|
|
692
|
+
Requires-Dist: ruff; extra == "dev"
|
|
694
693
|
Requires-Dist: pylint; extra == "dev"
|
|
695
694
|
Requires-Dist: Coverage; extra == "dev"
|
|
696
695
|
Provides-Extra: doc
|
|
@@ -699,8 +698,6 @@ Requires-Dist: sphinx>6; extra == "doc"
|
|
|
699
698
|
Requires-Dist: python-docs-theme; extra == "doc"
|
|
700
699
|
Provides-Extra: test
|
|
701
700
|
Requires-Dist: pytest; extra == "test"
|
|
702
|
-
Requires-Dist: pytest-cov; extra == "test"
|
|
703
|
-
Requires-Dist: pytest-qt; extra == "test"
|
|
704
701
|
Requires-Dist: pytest-xvfb; extra == "test"
|
|
705
702
|
|
|
706
703
|
# PythonQwt: Qt plotting widgets for Python
|
|
@@ -714,7 +711,7 @@ Requires-Dist: pytest-xvfb; extra == "test"
|
|
|
714
711
|
|
|
715
712
|
ℹ️ Created in 2014 by Pierre Raybaut and maintained by the [PlotPyStack](https://github.com/PlotPyStack) organization.
|
|
716
713
|
|
|
717
|
-

|
|
714
|
+

|
|
718
715
|
|
|
719
716
|
The `PythonQwt` project was initiated to solve -at least temporarily- the
|
|
720
717
|
obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is
|
|
@@ -810,7 +807,7 @@ The `qwt` package short-term roadmap is the following:
|
|
|
810
807
|
|
|
811
808
|
### Optional dependencies
|
|
812
809
|
|
|
813
|
-
- coverage, pytest
|
|
810
|
+
- coverage, pytest (for unit tests)
|
|
814
811
|
- sphinx (for documentation generation)
|
|
815
812
|
|
|
816
813
|
## Installation
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PythonQwt
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.2
|
|
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,11 +686,10 @@ 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
|
|
689
|
+
Requires-Dist: NumPy<2,>=1.21
|
|
690
690
|
Requires-Dist: QtPy>=1.9
|
|
691
691
|
Provides-Extra: dev
|
|
692
|
-
Requires-Dist:
|
|
693
|
-
Requires-Dist: isort; extra == "dev"
|
|
692
|
+
Requires-Dist: ruff; extra == "dev"
|
|
694
693
|
Requires-Dist: pylint; extra == "dev"
|
|
695
694
|
Requires-Dist: Coverage; extra == "dev"
|
|
696
695
|
Provides-Extra: doc
|
|
@@ -699,8 +698,6 @@ Requires-Dist: sphinx>6; extra == "doc"
|
|
|
699
698
|
Requires-Dist: python-docs-theme; extra == "doc"
|
|
700
699
|
Provides-Extra: test
|
|
701
700
|
Requires-Dist: pytest; extra == "test"
|
|
702
|
-
Requires-Dist: pytest-cov; extra == "test"
|
|
703
|
-
Requires-Dist: pytest-qt; extra == "test"
|
|
704
701
|
Requires-Dist: pytest-xvfb; extra == "test"
|
|
705
702
|
|
|
706
703
|
# PythonQwt: Qt plotting widgets for Python
|
|
@@ -714,7 +711,7 @@ Requires-Dist: pytest-xvfb; extra == "test"
|
|
|
714
711
|
|
|
715
712
|
ℹ️ Created in 2014 by Pierre Raybaut and maintained by the [PlotPyStack](https://github.com/PlotPyStack) organization.
|
|
716
713
|
|
|
717
|
-

|
|
714
|
+

|
|
718
715
|
|
|
719
716
|
The `PythonQwt` project was initiated to solve -at least temporarily- the
|
|
720
717
|
obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is
|
|
@@ -810,7 +807,7 @@ The `qwt` package short-term roadmap is the following:
|
|
|
810
807
|
|
|
811
808
|
### Optional dependencies
|
|
812
809
|
|
|
813
|
-
- coverage, pytest
|
|
810
|
+
- coverage, pytest (for unit tests)
|
|
814
811
|
- sphinx (for documentation generation)
|
|
815
812
|
|
|
816
813
|
## Installation
|
|
@@ -81,7 +81,6 @@ qwt/toqimage.py
|
|
|
81
81
|
qwt/transform.py
|
|
82
82
|
qwt/tests/__init__.py
|
|
83
83
|
qwt/tests/comparative_benchmarks.py
|
|
84
|
-
qwt/tests/conftest.py
|
|
85
84
|
qwt/tests/test_backingstore.py
|
|
86
85
|
qwt/tests/test_bodedemo.py
|
|
87
86
|
qwt/tests/test_cartesian.py
|
|
@@ -93,6 +92,7 @@ qwt/tests/test_curvedemo2.py
|
|
|
93
92
|
qwt/tests/test_data.py
|
|
94
93
|
qwt/tests/test_errorbar.py
|
|
95
94
|
qwt/tests/test_eventfilter.py
|
|
95
|
+
qwt/tests/test_highdpi.py
|
|
96
96
|
qwt/tests/test_image.py
|
|
97
97
|
qwt/tests/test_loadtest.py
|
|
98
98
|
qwt/tests/test_logcurve.py
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
ℹ️ Created in 2014 by Pierre Raybaut and maintained by the [PlotPyStack](https://github.com/PlotPyStack) organization.
|
|
11
11
|
|
|
12
|
-

|
|
12
|
+

|
|
13
13
|
|
|
14
14
|
The `PythonQwt` project was initiated to solve -at least temporarily- the
|
|
15
15
|
obsolescence issue of `PyQwt` (the Python-Qwt C++ bindings library) which is
|
|
@@ -105,7 +105,7 @@ The `qwt` package short-term roadmap is the following:
|
|
|
105
105
|
|
|
106
106
|
### Optional dependencies
|
|
107
107
|
|
|
108
|
-
- coverage, pytest
|
|
108
|
+
- coverage, pytest (for unit tests)
|
|
109
109
|
- sphinx (for documentation generation)
|
|
110
110
|
|
|
111
111
|
## Installation
|
|
@@ -21,7 +21,7 @@ import sys
|
|
|
21
21
|
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
|
22
22
|
extensions = ["sphinx.ext.autodoc"]
|
|
23
23
|
try:
|
|
24
|
-
import sphinx.ext.viewcode
|
|
24
|
+
import sphinx.ext.viewcode # noqa: F401
|
|
25
25
|
|
|
26
26
|
extensions.append("sphinx.ext.viewcode")
|
|
27
27
|
except ImportError:
|
|
@@ -12,4 +12,8 @@ plot = qwt.QwtPlot("Trigonometric functions")
|
|
|
12
12
|
plot.insertLegend(qwt.QwtLegend(), qwt.QwtPlot.BottomLegend)
|
|
13
13
|
qwt.QwtPlotCurve.make(x, np.cos(x), "Cosinus", plot, linecolor="red", antialiased=True)
|
|
14
14
|
qwt.QwtPlotCurve.make(x, np.sin(x), "Sinus", plot, linecolor="blue", antialiased=True)
|
|
15
|
-
qth.take_screenshot(
|
|
15
|
+
qth.take_screenshot(
|
|
16
|
+
plot,
|
|
17
|
+
osp.join(osp.abspath(osp.dirname(__file__)), "_static", "QwtPlot_example.png"),
|
|
18
|
+
size=(600, 300),
|
|
19
|
+
)
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import os.path as osp
|
|
2
|
+
|
|
3
|
+
import numpy as np
|
|
3
4
|
from qtpy import QtCore as QC
|
|
5
|
+
from qtpy import QtGui as QG
|
|
6
|
+
from qtpy import QtWidgets as QW
|
|
7
|
+
|
|
4
8
|
import qwt
|
|
5
|
-
import numpy as np
|
|
6
|
-
import os.path as osp
|
|
7
9
|
from qwt import qthelpers as qth
|
|
8
10
|
|
|
9
11
|
app = QW.QApplication([])
|
|
@@ -46,4 +48,8 @@ plot = qwt.QwtPlot()
|
|
|
46
48
|
curve.attach(plot)
|
|
47
49
|
plot.replot()
|
|
48
50
|
|
|
49
|
-
qth.take_screenshot(
|
|
51
|
+
qth.take_screenshot(
|
|
52
|
+
plot,
|
|
53
|
+
osp.join(osp.abspath(osp.dirname(__file__)), "_static", "symbol_path_example.png"),
|
|
54
|
+
size=(600, 300),
|
|
55
|
+
)
|
|
@@ -31,7 +31,7 @@ classifiers = [
|
|
|
31
31
|
"Programming Language :: Python :: 3.12",
|
|
32
32
|
]
|
|
33
33
|
requires-python = ">=3.8, <4"
|
|
34
|
-
dependencies = ["NumPy>=1.21", "QtPy>=1.9"]
|
|
34
|
+
dependencies = ["NumPy>=1.21,<2", "QtPy>=1.9"]
|
|
35
35
|
dynamic = ["version"]
|
|
36
36
|
|
|
37
37
|
[project.urls]
|
|
@@ -42,9 +42,9 @@ Documentation = "https://PythonQwt.readthedocs.io/en/latest/"
|
|
|
42
42
|
PythonQwt-tests = "qwt.tests:run"
|
|
43
43
|
|
|
44
44
|
[project.optional-dependencies]
|
|
45
|
-
dev = ["
|
|
45
|
+
dev = ["ruff", "pylint", "Coverage"]
|
|
46
46
|
doc = ["PyQt5", "sphinx>6", "python-docs-theme"]
|
|
47
|
-
test = ["pytest", "pytest-
|
|
47
|
+
test = ["pytest", "pytest-xvfb"]
|
|
48
48
|
|
|
49
49
|
[tool.setuptools.packages.find]
|
|
50
50
|
include = ["qwt*"]
|
|
@@ -54,3 +54,26 @@ include = ["qwt*"]
|
|
|
54
54
|
|
|
55
55
|
[tool.setuptools.dynamic]
|
|
56
56
|
version = { attr = "qwt.__version__" }
|
|
57
|
+
|
|
58
|
+
[tool.ruff]
|
|
59
|
+
exclude = [".git", ".vscode", "build", "dist"]
|
|
60
|
+
line-length = 88 # Same as Black.
|
|
61
|
+
indent-width = 4 # Same as Black.
|
|
62
|
+
target-version = "py38" # Assume Python 3.8
|
|
63
|
+
|
|
64
|
+
[tool.ruff.lint]
|
|
65
|
+
# all rules can be found here: https://beta.ruff.rs/docs/rules/
|
|
66
|
+
select = ["E", "F", "W", "I"]
|
|
67
|
+
ignore = [
|
|
68
|
+
"E203", # space before : (needed for how black formats slicing)
|
|
69
|
+
]
|
|
70
|
+
|
|
71
|
+
[tool.ruff.format]
|
|
72
|
+
quote-style = "double" # Like Black, use double quotes for strings.
|
|
73
|
+
indent-style = "space" # Like Black, indent with spaces, rather than tabs.
|
|
74
|
+
skip-magic-trailing-comma = false # Like Black, respect magic trailing commas.
|
|
75
|
+
line-ending = "auto" # Like Black, automatically detect the appropriate line ending.
|
|
76
|
+
|
|
77
|
+
[tool.ruff.lint.per-file-ignores]
|
|
78
|
+
"doc/*" = ["E402"]
|
|
79
|
+
"qwt/tests/*" = ["E402"]
|
|
@@ -27,36 +27,36 @@ External resources:
|
|
|
27
27
|
.. _GitHub: https://github.com/PlotPyStack/PythonQwt
|
|
28
28
|
"""
|
|
29
29
|
|
|
30
|
-
__version__ = "0.12.1"
|
|
31
|
-
QWT_VERSION_STR = "6.1.5"
|
|
32
|
-
|
|
33
30
|
import warnings
|
|
34
31
|
|
|
35
|
-
from qwt.color_map import QwtLinearColorMap
|
|
32
|
+
from qwt.color_map import QwtLinearColorMap # noqa: F401
|
|
36
33
|
from qwt.interval import QwtInterval
|
|
37
|
-
from qwt.legend import QwtLegend, QwtLegendData, QwtLegendLabel
|
|
38
|
-
from qwt.painter import QwtPainter
|
|
39
|
-
from qwt.plot import QwtPlot
|
|
40
|
-
from qwt.plot_canvas import QwtPlotCanvas
|
|
34
|
+
from qwt.legend import QwtLegend, QwtLegendData, QwtLegendLabel # noqa: F401
|
|
35
|
+
from qwt.painter import QwtPainter # noqa: F401
|
|
36
|
+
from qwt.plot import QwtPlot # noqa: F401
|
|
37
|
+
from qwt.plot_canvas import QwtPlotCanvas # noqa: F401
|
|
41
38
|
from qwt.plot_curve import QwtPlotCurve as QPC # see deprecated section
|
|
42
|
-
from qwt.plot_curve import QwtPlotItem
|
|
43
|
-
from qwt.plot_directpainter import QwtPlotDirectPainter
|
|
39
|
+
from qwt.plot_curve import QwtPlotItem # noqa: F401
|
|
40
|
+
from qwt.plot_directpainter import QwtPlotDirectPainter # noqa: F401
|
|
44
41
|
from qwt.plot_grid import QwtPlotGrid as QPG # see deprecated section
|
|
45
|
-
from qwt.plot_marker import QwtPlotMarker
|
|
46
|
-
from qwt.plot_renderer import QwtPlotRenderer
|
|
47
|
-
from qwt.plot_series import (
|
|
42
|
+
from qwt.plot_marker import QwtPlotMarker # noqa: F401
|
|
43
|
+
from qwt.plot_renderer import QwtPlotRenderer # noqa: F401
|
|
44
|
+
from qwt.plot_series import ( # noqa: F401
|
|
48
45
|
QwtPlotSeriesItem,
|
|
49
46
|
QwtPointArrayData,
|
|
50
47
|
QwtSeriesData,
|
|
51
48
|
QwtSeriesStore,
|
|
52
49
|
)
|
|
53
|
-
from qwt.scale_div import QwtScaleDiv
|
|
54
|
-
from qwt.scale_draw import QwtAbstractScaleDraw, QwtScaleDraw
|
|
55
|
-
from qwt.scale_engine import QwtLinearScaleEngine, QwtLogScaleEngine
|
|
56
|
-
from qwt.scale_map import QwtScaleMap
|
|
50
|
+
from qwt.scale_div import QwtScaleDiv # noqa: F401
|
|
51
|
+
from qwt.scale_draw import QwtAbstractScaleDraw, QwtScaleDraw # noqa: F401
|
|
52
|
+
from qwt.scale_engine import QwtLinearScaleEngine, QwtLogScaleEngine # noqa: F401
|
|
53
|
+
from qwt.scale_map import QwtScaleMap # noqa: F401
|
|
57
54
|
from qwt.symbol import QwtSymbol as QSbl # see deprecated section
|
|
58
|
-
from qwt.text import QwtText
|
|
59
|
-
from qwt.toqimage import array_to_qimage as toQImage
|
|
55
|
+
from qwt.text import QwtText # noqa: F401
|
|
56
|
+
from qwt.toqimage import array_to_qimage as toQImage # noqa: F401
|
|
57
|
+
|
|
58
|
+
__version__ = "0.12.2"
|
|
59
|
+
QWT_VERSION_STR = "6.1.5"
|
|
60
60
|
|
|
61
61
|
|
|
62
62
|
## ============================================================================
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization
|
|
6
6
|
# (see LICENSE file for more details)
|
|
7
7
|
|
|
8
|
-
from qtpy.QtCore import qFuzzyCompare
|
|
9
|
-
|
|
10
8
|
import math
|
|
11
9
|
|
|
10
|
+
from qtpy.QtCore import qFuzzyCompare
|
|
11
|
+
|
|
12
12
|
|
|
13
13
|
def qwtFuzzyCompare(value1, value2, intervalSize):
|
|
14
14
|
eps = abs(1.0e-6 * intervalSize)
|
|
@@ -38,16 +38,16 @@ def qwtSign(x):
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
def qwtSqr(x):
|
|
41
|
-
return x
|
|
41
|
+
return x**2
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
def qwtFastAtan(x):
|
|
45
45
|
if x < -1.0:
|
|
46
|
-
return -0.5 * math.pi - x / (x
|
|
46
|
+
return -0.5 * math.pi - x / (x**2 + 0.28)
|
|
47
47
|
elif x > 1.0:
|
|
48
|
-
return 0.5 * math.pi - x / (x
|
|
48
|
+
return 0.5 * math.pi - x / (x**2 + 0.28)
|
|
49
49
|
else:
|
|
50
|
-
return x / (1.0 + x
|
|
50
|
+
return x / (1.0 + x**2 * 0.28)
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
def qwtFastAtan2(y, x):
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
# Copyright (c) 2015 Pierre Raybaut, for the Python translation/optimization
|
|
6
6
|
# (see LICENSE file for more details)
|
|
7
7
|
|
|
8
|
-
from
|
|
8
|
+
from qtpy.QtCore import QLineF, QRectF, Qt
|
|
9
|
+
from qtpy.QtGui import QPalette, QPolygonF
|
|
9
10
|
|
|
10
|
-
from
|
|
11
|
-
from qtpy.QtCore import QRectF, Qt, QLineF
|
|
11
|
+
from qwt.interval import QwtInterval
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def qwtDrawBox(p, rect, pal, lw):
|
|
@@ -80,7 +80,6 @@ class QwtColumnSymbol_PrivateData(object):
|
|
|
80
80
|
|
|
81
81
|
|
|
82
82
|
class QwtColumnSymbol(object):
|
|
83
|
-
|
|
84
83
|
# enum Style
|
|
85
84
|
NoStyle = -1
|
|
86
85
|
Box = 0
|
|
@@ -134,7 +133,6 @@ class QwtColumnSymbol(object):
|
|
|
134
133
|
|
|
135
134
|
|
|
136
135
|
class QwtColumnRect(object):
|
|
137
|
-
|
|
138
136
|
# enum Direction
|
|
139
137
|
LeftToRight, RightToLeft, BottomToTop, TopToBottom = list(range(4))
|
|
140
138
|
|
|
@@ -15,8 +15,8 @@ The `dyngrid_layout` module provides the `QwtDynGridLayout` class.
|
|
|
15
15
|
:members:
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
|
+
from qtpy.QtCore import QRect, QSize, Qt
|
|
18
19
|
from qtpy.QtWidgets import QLayout
|
|
19
|
-
from qtpy.QtCore import Qt, QRect, QSize
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class QwtDynGridLayout_PrivateData(object):
|
|
@@ -21,22 +21,23 @@ QwtLegend
|
|
|
21
21
|
|
|
22
22
|
import math
|
|
23
23
|
|
|
24
|
+
from qtpy.QtCore import QEvent, QPoint, QRect, QRectF, QSize, Qt, Signal
|
|
25
|
+
|
|
26
|
+
# qDrawWinButton,
|
|
27
|
+
from qtpy.QtGui import QPainter, QPalette, QPixmap
|
|
24
28
|
from qtpy.QtWidgets import (
|
|
29
|
+
QApplication,
|
|
25
30
|
QFrame,
|
|
26
31
|
QScrollArea,
|
|
27
|
-
QWidget,
|
|
28
|
-
QVBoxLayout,
|
|
29
|
-
QApplication,
|
|
30
|
-
QStyleOption,
|
|
31
32
|
QStyle,
|
|
32
|
-
|
|
33
|
+
QStyleOption,
|
|
34
|
+
QVBoxLayout,
|
|
35
|
+
QWidget,
|
|
33
36
|
)
|
|
34
|
-
from qtpy.QtGui import QPalette, QPixmap, QPainter
|
|
35
|
-
from qtpy.QtCore import Signal, QEvent, QSize, Qt, QRect, QRectF, QPoint
|
|
36
37
|
|
|
37
|
-
from qwt.text import QwtText, QwtTextLabel
|
|
38
38
|
from qwt.dyngrid_layout import QwtDynGridLayout
|
|
39
39
|
from qwt.painter import QwtPainter
|
|
40
|
+
from qwt.text import QwtText, QwtTextLabel
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
class QwtLegendData(object):
|
|
@@ -13,13 +13,13 @@ QwtPlotGrid
|
|
|
13
13
|
:members:
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
|
-
from
|
|
17
|
-
from
|
|
16
|
+
from qtpy.QtCore import QLineF, Qt
|
|
17
|
+
from qtpy.QtGui import QPen
|
|
18
|
+
|
|
18
19
|
from qwt._math import qwtFuzzyGreaterOrEqual, qwtFuzzyLessOrEqual
|
|
20
|
+
from qwt.plot import QwtPlotItem
|
|
19
21
|
from qwt.qthelpers import qcolor_from_str
|
|
20
|
-
|
|
21
|
-
from qtpy.QtGui import QPen
|
|
22
|
-
from qtpy.QtCore import Qt, QLineF
|
|
22
|
+
from qwt.scale_div import QwtScaleDiv
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
class QwtPlotGrid_PrivateData(object):
|
|
@@ -136,7 +136,10 @@ class QwtPlotLayout_LayoutData(object):
|
|
|
136
136
|
if layout is not None:
|
|
137
137
|
mgn = layout.contentsMargins()
|
|
138
138
|
self.canvas.contentsMargins = [
|
|
139
|
-
mgn.left(),
|
|
139
|
+
mgn.left(),
|
|
140
|
+
mgn.top(),
|
|
141
|
+
mgn.right(),
|
|
142
|
+
mgn.bottom(),
|
|
140
143
|
]
|
|
141
144
|
|
|
142
145
|
|
|
@@ -575,7 +578,10 @@ class QwtPlotLayout(object):
|
|
|
575
578
|
else:
|
|
576
579
|
mgn = layout.contentsMargins()
|
|
577
580
|
left, top, right, bottom = (
|
|
578
|
-
mgn.left(),
|
|
581
|
+
mgn.left(),
|
|
582
|
+
mgn.top(),
|
|
583
|
+
mgn.right(),
|
|
584
|
+
mgn.bottom(),
|
|
579
585
|
)
|
|
580
586
|
for axis in QwtPlot.AXES:
|
|
581
587
|
if plot.axisEnabled(axis):
|
|
@@ -13,14 +13,14 @@ QwtPlotMarker
|
|
|
13
13
|
:members:
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
|
-
from
|
|
17
|
-
from
|
|
16
|
+
from qtpy.QtCore import QLineF, QPointF, QRect, QRectF, QSizeF, Qt
|
|
17
|
+
from qtpy.QtGui import QPainter, QPen
|
|
18
|
+
|
|
18
19
|
from qwt.graphic import QwtGraphic
|
|
19
|
-
from qwt.
|
|
20
|
+
from qwt.plot import QwtPlot, QwtPlotItem
|
|
20
21
|
from qwt.qthelpers import qcolor_from_str
|
|
21
|
-
|
|
22
|
-
from
|
|
23
|
-
from qtpy.QtCore import Qt, QPointF, QRectF, QSizeF, QRect, QLineF
|
|
22
|
+
from qwt.symbol import QwtSymbol
|
|
23
|
+
from qwt.text import QwtText
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class QwtPlotMarker_PrivateData(object):
|
|
@@ -240,9 +240,7 @@ class QwtPlotMarker(QwtPlotItem):
|
|
|
240
240
|
if self.__data.symbol and self.__data.symbol.style() != QwtSymbol.NoSymbol:
|
|
241
241
|
sz = self.__data.symbol.size()
|
|
242
242
|
width, height = int(sz.width()), int(sz.height())
|
|
243
|
-
clipRect = QRectF(
|
|
244
|
-
canvasRect.adjusted(-width, -height, width, height)
|
|
245
|
-
)
|
|
243
|
+
clipRect = QRectF(canvasRect.adjusted(-width, -height, width, height))
|
|
246
244
|
if clipRect.contains(pos):
|
|
247
245
|
self.__data.symbol.drawSymbols(painter, [pos])
|
|
248
246
|
self.drawLabel(painter, canvasRect, pos)
|
|
@@ -20,7 +20,7 @@ QwtSeriesData
|
|
|
20
20
|
|
|
21
21
|
.. autoclass:: QwtSeriesData
|
|
22
22
|
:members:
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
QwtPointArrayData
|
|
25
25
|
~~~~~~~~~~~~~~~~~
|
|
26
26
|
|
|
@@ -35,12 +35,11 @@ QwtSeriesStore
|
|
|
35
35
|
"""
|
|
36
36
|
|
|
37
37
|
import numpy as np
|
|
38
|
+
from qtpy.QtCore import QPointF, QRectF, Qt
|
|
38
39
|
|
|
39
40
|
from qwt.plot import QwtPlotItem, QwtPlotItem_PrivateData
|
|
40
41
|
from qwt.text import QwtText
|
|
41
42
|
|
|
42
|
-
from qtpy.QtCore import Qt, QRectF, QPointF
|
|
43
|
-
|
|
44
43
|
|
|
45
44
|
class QwtPlotSeriesItem_PrivateData(QwtPlotItem_PrivateData):
|
|
46
45
|
def __init__(self):
|
|
@@ -25,17 +25,16 @@ QwtLogScaleEngine
|
|
|
25
25
|
:members:
|
|
26
26
|
"""
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
from qwt.transform import QwtLogTransform
|
|
31
|
-
from qwt._math import qwtFuzzyCompare
|
|
32
|
-
from qwt.transform import QwtTransform
|
|
28
|
+
import math
|
|
29
|
+
import sys
|
|
33
30
|
|
|
31
|
+
import numpy as np
|
|
34
32
|
from qtpy.QtCore import qFuzzyCompare
|
|
35
33
|
|
|
36
|
-
import
|
|
37
|
-
import
|
|
38
|
-
|
|
34
|
+
from qwt._math import qwtFuzzyCompare
|
|
35
|
+
from qwt.interval import QwtInterval
|
|
36
|
+
from qwt.scale_div import QwtScaleDiv
|
|
37
|
+
from qwt.transform import QwtLogTransform, QwtTransform
|
|
39
38
|
|
|
40
39
|
DBL_MAX = sys.float_info.max
|
|
41
40
|
LOG_MIN = 1.0e-100
|
|
@@ -15,17 +15,16 @@ QwtScaleWidget
|
|
|
15
15
|
|
|
16
16
|
import math
|
|
17
17
|
|
|
18
|
+
from qtpy.QtCore import QRectF, QSize, Qt, Signal
|
|
19
|
+
from qtpy.QtGui import QPainter, QPalette
|
|
20
|
+
from qtpy.QtWidgets import QSizePolicy, QStyle, QStyleOption, QWidget
|
|
21
|
+
|
|
22
|
+
from qwt.color_map import QwtColorMap, QwtLinearColorMap
|
|
23
|
+
from qwt.interval import QwtInterval
|
|
24
|
+
from qwt.painter import QwtPainter
|
|
18
25
|
from qwt.scale_draw import QwtScaleDraw
|
|
19
26
|
from qwt.scale_engine import QwtLinearScaleEngine
|
|
20
|
-
from qwt.color_map import QwtLinearColorMap
|
|
21
27
|
from qwt.text import QwtText
|
|
22
|
-
from qwt.painter import QwtPainter
|
|
23
|
-
from qwt.interval import QwtInterval
|
|
24
|
-
from qwt.color_map import QwtColorMap
|
|
25
|
-
|
|
26
|
-
from qtpy.QtGui import QPainter, QPalette
|
|
27
|
-
from qtpy.QtWidgets import QWidget, QSizePolicy, QStyleOption, QStyle, QApplication
|
|
28
|
-
from qtpy.QtCore import Qt, QRectF, QSize, Signal, QEvent
|
|
29
28
|
|
|
30
29
|
|
|
31
30
|
class ColorBar(object):
|
|
@@ -639,7 +638,10 @@ class QwtScaleWidget(QWidget):
|
|
|
639
638
|
else:
|
|
640
639
|
mgn = self.layout().contentsMargins()
|
|
641
640
|
left, top, right, bottom = (
|
|
642
|
-
mgn.left(),
|
|
641
|
+
mgn.left(),
|
|
642
|
+
mgn.top(),
|
|
643
|
+
mgn.right(),
|
|
644
|
+
mgn.bottom(),
|
|
643
645
|
)
|
|
644
646
|
return size + QSize(left + right, top + bottom)
|
|
645
647
|
|