Skip to content

Commit 1027d78

Browse files
committed
Updated CHANGELOG/README
1 parent 86551b6 commit 1027d78

File tree

2 files changed

+65
-107
lines changed

2 files changed

+65
-107
lines changed

CHANGELOG.md

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ Supported versions of Python and Qt bindings have been updated:
3232

3333
PlotPy 2.0 is a major release because it also brings a lot of new features:
3434

35-
* ``plot.PlotWidget``, ``plot.PlotDialog``, and ``plot.PlotWindow``: API overhaul
35+
* `plot.PlotWidget`, `plot.PlotDialog`, and `plot.PlotWindow`: API overhaul
3636
(simple, more consistent, more flexible, more extensible - see documentation
3737
for details)
38-
* ``plot.SyncPlotWindow``: new class to show multiple plots in a single window,
38+
* `plot.SyncPlotWindow`: new class to show multiple plots in a single window,
3939
in a synchronized way (zoom, pan, etc.)
40-
* ``widgets.selectdialog.SelectDialog``: a dialog box to select items using a
40+
* `widgets.selectdialog.SelectDialog`: a dialog box to select items using a
4141
shape tool (segment, rectangle or custom)
4242
* Image lookup table (LUT):
4343
* Initially, the LUT alpha channel was either constant (input parameter
@@ -56,56 +56,56 @@ PlotPy 2.0 is a major release because it also brings a lot of new features:
5656
* This is one of the benefits of porting back [guiqwt](https://pypi.org/project/guiqwt/)
5757
changes since the merge (i.e. between 2016 and 2023)
5858
* New SVG-based shapes:
59-
* ``items.RectangleSVGShape``: rectangle shape based on SVG data or file
60-
* ``items.SquareSVGShape``: square shape based on SVG data or file
61-
* ``items.CircleSVGShape``: circle shape based on SVG data or file
62-
* ``builder.PlotBuilder``:
63-
* Renamed ``PlotBuilder`` (originally ``guiqwt.builder.PlotItemBuilder``)
64-
* Builder instance is still available using ``from plotpy.builder import make``
59+
* `items.RectangleSVGShape`: rectangle shape based on SVG data or file
60+
* `items.SquareSVGShape`: square shape based on SVG data or file
61+
* `items.CircleSVGShape`: circle shape based on SVG data or file
62+
* `builder.PlotBuilder`:
63+
* Renamed `PlotBuilder` (originally `guiqwt.builder.PlotItemBuilder`)
64+
* Builder instance is still available using `from plotpy.builder import make`
6565
* Plot widget creation is now supported:
66-
* ``make.widget()`` for ``plot.PlotWidget``
67-
* ``make.dialog()`` for ``plot.PlotDialog``
68-
* ``make.window()`` for ``plot.PlotWindow``
66+
* `make.widget()` for `plot.PlotWidget`
67+
* `make.dialog()` for `plot.PlotDialog`
68+
* `make.window()` for `plot.PlotWindow`
6969
* Added support for more plot items:
70-
* ``make.contours()`` for generating a list of ``items.ContourItem`` objects
71-
* ``make.annotated_point()`` for ``items.AnnotatedPoint``
72-
* ``make.polygon()`` for ``items.PolygonShape``
73-
* ``make.svg()`` for ``items.RectangleSVGShape``, ``items.SquareSVGShape``,
74-
and ``items.CircleSVGShape``
70+
* `make.contours()` for generating a list of `items.ContourItem` objects
71+
* `make.annotated_point()` for `items.AnnotatedPoint`
72+
* `make.polygon()` for `items.PolygonShape`
73+
* `make.svg()` for `items.RectangleSVGShape`, `items.SquareSVGShape`,
74+
and `items.CircleSVGShape`
7575
* Added JSON serialization support for all plot items (curve, image, etc.)
7676

7777
* Brand new documentation, based on Sphinx with links to other projects API, examples
7878
and tutorials (e.g. on development related topics).
7979
* Black code formatting on all Python files
8080
* New automated test suite:
81-
* Automatic execution: ``--unattended`` command line option (Qt loop is bypassed)
82-
* Test suite based on ``pytest``, supporting ``pytest-cov`` for coverage testing,
83-
``pytest-xvfb`` for headless testing, and ``pytest-qt`` for Qt testing
81+
* Automatic execution: `--unattended` command line option (Qt loop is bypassed)
82+
* Test suite based on `pytest`, supporting `pytest-cov` for coverage testing,
83+
`pytest-xvfb` for headless testing, and `pytest-qt` for Qt testing
8484
* Added support for Coverage: test coverage improved up to 70%
8585
* Added typing annotations on (almost) all Python files
86-
* Distribution: switched to ``pyproject.toml`` (still relying on ``setuptools`` and
87-
``setup.py`` for building Cython/C++ extensions)
86+
* Distribution: switched to `pyproject.toml` (still relying on `setuptools` and
87+
`setup.py` for building Cython/C++ extensions)
8888
* Added code quality configuration files:
89-
* ``.pylintrc``: pylint configuration file
90-
* ``.isort.cfg``: isort configuration file
91-
* ``.coveragerc``: coverage configuration file
89+
* `.pylintrc`: pylint configuration file
90+
* `.isort.cfg`: isort configuration file
91+
* `.coveragerc`: coverage configuration file
9292
* Added Visual Studio Code configuration files:
93-
* ``.vscode/settings.json``: Python interpreter, code formatting, etc.
94-
* ``.vscode/tasks.json``: build, test, etc.
95-
* ``.vscode/launch.json``: run current file, run tests, etc.
93+
* `.vscode/settings.json`: Python interpreter, code formatting, etc.
94+
* `.vscode/tasks.json`: build, test, etc.
95+
* `.vscode/launch.json`: run current file, run tests, etc.
9696

9797
PlotPy 2.0 also brings a lot of bug fixes and improvements:
9898

9999
* Handled all Cython/C++ extensions compilation warnings
100-
* Fixed all NumPy deprecation issues (e.g. ``numpy.matrix``)
100+
* Fixed all NumPy deprecation issues (e.g. `numpy.matrix`)
101101
* Fixed (annotated) circle/ellipse item creation/test
102102
* Fixed all documentation build warnings
103103
* Fixed regressions introduced by PlotPy V1 on top of guiqwt:
104104
* Global references for the Debian package management
105105
* Major aspect ratio issues:
106106
* When resizing the plot widget (images were downsized indefinitely)
107107
* When auto-scaling the plot widget (images were not displayed entirely)
108-
* ``TrImageItem`` rotation algorithm
108+
* `TrImageItem` rotation algorithm
109109
* Oblique cross-section test
110110
* About dialog, version informations
111111
* Ported all [guiqwt](https://pypi.org/project/guiqwt/) bug fixes since the merge
@@ -115,7 +115,7 @@ PlotPy 2.0 also brings a lot of bug fixes and improvements:
115115
* Optimized colormap icon caching
116116
* X-axis direction and auto-scale
117117
* Added load test (with a very large number of plot widgets)
118-
* Coordinates inversion in ``EllipseShape``
118+
* Coordinates inversion in `EllipseShape`
119119
* ValueError with levels histogram
120120
* Various fixes regarding plot item creation, cross-section features,
121121
PyQt5 support, DICOM support, TIFF support, etc.

README.md

Lines changed: 34 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,6 @@ providing a unified framework for creating scientific GUIs with Python and Qt.
2323
* [PythonQwt](https://pypi.python.org/pypi/PythonQwt) plotting widgets library
2424
* [NumPy](https://pypi.python.org/pypi/NumPy) and [SciPy](https://pypi.python.org/pypi/SciPy) scientific computing libraries
2525

26-
Based on PythonQwt and on the scientific modules NumPy and SciPy, plotpy is a
27-
Python library providing efficient 2D data-plotting features (curve/image
28-
visualization and related tools) for interactive computing and signal/image
29-
processing application development.
30-
3126
<img src="https://raw.githubusercontent.com/PlotPyStack/plotpy/master/doc/images/panorama.png">
3227

3328
See [documentation](https://plotpy.readthedocs.io/en/latest/) for more details on
@@ -38,80 +33,43 @@ Copyrights and licensing:
3833
* Copyright © 2023 [CEA](https://www.cea.fr), [Codra](https://codra.net/), [Pierre Raybaut](https://github.com/PierreRaybaut).
3934
* Licensed under the terms of the BSD 3-Clause (see [LICENSE](LICENSE)).
4035

41-
### Features
42-
43-
The `plotpy` library also provides the following features:
44-
45-
* Ready-to-use [plot widgets and dialog boxes](https://plotpy.readthedocs.io/en/latest/features/plot/index.html)
46-
47-
* [pyplot](https://plotpy.readthedocs.io/en/latest/features/pyplot.html): interactive plotting widgets, equivalent to `matplotlib.pyplot`, at
48-
least for the implemented functions
49-
50-
* supported [plot items](https://plotpy.readthedocs.io/en/latest/features/items/index.html): curve, image, histogram, label, shape, annotation, ...
51-
52-
* interactive features:
53-
54-
* multiple object selection for moving objects or editing their
55-
properties through automatically generated dialog boxes
56-
57-
* item list panel: move objects from foreground to background,
58-
show/hide objects, remove objects, ...
59-
60-
* customizable aspect ratio for images
61-
62-
* tons of ready-to-use tools: plot canvas export to image file, image
63-
snapshot, interval selection, image rectangular filter, etc.
64-
65-
* curve fitting tool with automatic fit, manual fit with sliders, ...
66-
67-
* contrast adjustment panel for images: select the LUT by moving a range selection
68-
object on the image levels histogram, eliminate outliers, ...
36+
## Features
6937

70-
* X-axis and Y-axis cross-sections: support for multiple images, average
71-
cross-section tool on a rectangular area, ...
38+
The `plotpy` library also provides the following features.
7239

73-
* apply any affine transform to displayed images in real-time (rotation,
74-
magnification, translation, horizontal/vertical flip, ...)
40+
General plotting features:
7541

76-
* application development helpers:
77-
78-
* ready-to-use [plot widgets and dialog boxes](https://plotpy.readthedocs.io/en/latest/features/plot/index.html)
79-
* load/save graphical objects (curves, images, shapes)
80-
* a lot of test scripts which demonstrate `plotpy` features (see [examples](https://plotpy.readthedocs.io/en/latest/intro/examples.html))
81-
82-
## Dependencies
83-
84-
### Requirements
85-
86-
* Python 3.8+
87-
* [PyQt5](https://pypi.python.org/pypi/PyQt5) (Python Qt bindings)
88-
* [QtPy](https://pypi.org/project/QtPy/) (abstraction layer for Python-Qt binding libraries)
89-
* [PythonQwt](https://pypi.org/project/PythonQwt/) (Python wrapper for the Qwt C++ class library)
90-
* [guidata](https://pypi.org/project/guidata/) (Python library generating graphical user interfaces for easy dataset editing and display)
91-
92-
### Build requirements
93-
94-
* [setuptools](https://pypi.org/project/setuptools/) (Python packages management)
95-
* [wheel](https://pypi.org/project/wheel/) (Python built-package format)
96-
* [build](https://pypi.org/project/build/) (Python package builder)
97-
* [numpy](https://pypi.org/project/numpy/) (Python package for scientific computing)
98-
* [Cython](https://pypi.org/project/Cython/) (Python package for writing C extensions for the Python language)
99-
* C++ compiler (e.g. [GCC](https://gcc.gnu.org/), [MSVC](https://visualstudio.microsoft.com/vs/features/cplusplus/))
100-
101-
## Installation
102-
103-
### From PyPI
104-
105-
Using ``pip``:
106-
107-
```bash
108-
pip install plotpy
109-
```
42+
* Ready-to-use [plot widgets and dialog boxes](https://plotpy.readthedocs.io/en/latest/features/plot/index.html)
43+
* [pyplot](https://plotpy.readthedocs.io/en/latest/features/pyplot.html): interactive
44+
plotting widgets, equivalent to `matplotlib.pyplot`, at least for the implemented functions
45+
* Supported [plot items](https://plotpy.readthedocs.io/en/latest/features/items/index.html):
46+
curves, images, contours, histograms, labels, shapes, annotations, ...
47+
48+
Interactive features (i.e. not only programmatic plotting but also with mouse/keyboard):
49+
50+
* Multiple object selection for moving objects or editing their properties through
51+
automatically generated dialog boxes
52+
* Item list panel: move objects from foreground to background, show/hide objects,
53+
remove objects, ...
54+
* Customizable aspect ratio for images
55+
* Tons of ready-to-use tools: plot canvas export to image file, image snapshot,
56+
interval selection, image rectangular filter, etc.
57+
* Curve fitting tool with automatic fit, manual fit with sliders, ...
58+
* Contrast adjustment panel for images: select the LUT by moving a range selection
59+
object on the image levels histogram, eliminate outliers, ...
60+
* X-axis and Y-axis cross-sections: support for multiple images, average
61+
cross-section tool on a rectangular area, ...
62+
* Apply any affine transform to displayed images in real-time (rotation,
63+
magnification, translation, horizontal/vertical flip, ...)
64+
65+
Application development helpers:
11066

111-
### From the source package
67+
* Ready-to-use [plot widgets and dialog boxes](https://plotpy.readthedocs.io/en/latest/features/plot/index.html)
68+
* Load/save graphical objects (curves, images, shapes) into HDF5, JSON or INI files
69+
* A lot of test scripts which demonstrate `plotpy` features
70+
(see [examples](https://plotpy.readthedocs.io/en/latest/intro/examples.html))
11271

113-
Using ``build``:
72+
## Dependencies and installation
11473

115-
```bash
116-
python -m build
117-
```
74+
See [Installation](https://plotpy.readthedocs.io/en/latest/intro/installation.html)
75+
section in the documentation for more details.

0 commit comments

Comments
 (0)