diff --git a/README.md b/README.md index 23c35d2..f28c528 100644 --- a/README.md +++ b/README.md @@ -11,14 +11,9 @@ ![PythonQwt Test Launcher](https://raw.githubusercontent.com/PlotPyStack/PythonQwt/master/qwt/tests/data/testlauncher.png) -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, ...). 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. @@ -71,19 +66,13 @@ PythonQwt-tests --mode unattended ## 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`. +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](https://pythonqwt.readthedocs.io/en/latest/) -for more details on API limitations when comparing to Qwt. +See "Overview" section in [documentation](https://pythonqwt.readthedocs.io/en/latest/) for more details on API limitations when comparing to Qwt. ## Roadmap @@ -94,13 +83,23 @@ The `qwt` package short-term roadmap is the following: - [X] Replace `setup.py` by `pyproject.toml`, using `setuptools` (e.g. see `guidata`) - [ ] Add more unit tests: the ultimate goal is to reach 90% code coverage -## Dependencies +## Dependencies and installation + +### Supported Qt versions and bindings + +The whole PlotPyStack set of libraries relies on the [Qt](https://doc.qt.io/) GUI toolkit, thanks to [QtPy](https://pypi.org/project/QtPy/), an abstraction layer which allows to use the same API to interact with different Python-to-Qt bindings (PyQt5, PyQt6, PySide2, PySide6). + +Compatibility table: + +| PythonQwt version | PyQt5 | PyQt6 | PySide2 | PySide6 | +|-------------------|-------|-------|---------|---------| +| 0.16 and earlier | ✅ | ⚠️ | ❌ | ⚠️ | +| Latest | ✅ | ✅ | ❌ | ✅ | ### Requirements - Python >=3.8 -- PyQt5, PyQt6 or PySide6 -- QtPy >= 1.3 +- QtPy >= 1.3 (and a Python-to-Qt binding library, see above) - NumPy >= 1.5 ### Optional dependencies @@ -108,7 +107,7 @@ The `qwt` package short-term roadmap is the following: - coverage, pytest (for unit tests) - sphinx (for documentation generation) -## Installation +### Installation From the source package: @@ -121,27 +120,16 @@ python -m build ### 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 - -### PyQt, PySide and Python2/Python3 compatibility modules - -- Copyright © 2009-2013 Pierre Raybaut -- Copyright © 2013-2015 The Spyder Development Team +- 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 ### 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 © 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. +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.