summaryrefslogtreecommitdiff
path: root/CHANGELOG.rst
blob: 3556fbbccaf923023189163fa975b50b92aa8fde (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
Change Log
==========

0.15.2: 2021/06/21
------------------

Minor release:

* `silx.io`:

  * `silx.io.spech5`: Enhanced robustness for missing positioner values (PR #3477)
  * `silx.io.url`: Fixed `DataUrl.is_absolute` (PR #3467)

* `silx.gui`:

  * Fixed naming of some loggers (PR #3477)
  * Fixed assert on `ImageStack` when length of urls > 0 (PR #3491)
  * `silx.gui.plot`: Fixed `ArcROI.setGeometry` (PR #3493)

* `silx.opencl`: Expose the double-word library and include it in tests (PR #3466)
* Misc: Fixed support of `numpy` 1.21rc1 (PR #3477)

0.15.1: 2021/05/17
------------------

Minor release:

* silx.gui.plot.PlotWidget: Fixed `PlotWidget` OpenGL backend memory leak (PR #3448)
* silx.gui.plot.ImageView:

  * Fixed profile window default behavior (PR #3458)
  * Added `setProfileWindowBehavior` method (PR #3458)


0.15.0: 2021/03/18
------------------

Main new features are the `silx.io.h5py_utils` module which provides `h5py` concurrency helpers and image mask support by `silx.gui.plot.PlotWidget`'s tools.

* `silx view`:

  * Fixed zoom reseting when scrolling a NXdata 3D stack (PR #3351)
  * Fixed support of very large 1D datasets in "Raw" table view (PR #3418)

* `silx.io`:

  * Added `h5py_utils` helper module for concurrent HDF5 reading and writing without SWMR (PR #3368, #3426)
  * Enhanced `dictdump` module functions regarding overwriting existing files (PR #3376)

* `silx.gui`:

  * Added scale to visible or selected area buttons options to `silx.gui.dialog.ColormapDialog` (PR #3365)
  * Fixed and enhanced`silx.gui.utils.glutils.isOpenGLAvailable` (PR #3356, #3385)
  * Fixed `silx.gui.widgets.FlowLayout` (PR #3389)
  * Enhanced `silx.gui.data.ArrayTableWidget`: Added support of array clipping if data is too large (PR #3419)

  * `silx.gui.plot`:

    * Added mask support to Image items and use it in plot tools (histogram, profile, colormap) (PR #3369, #3381)
    * Added `ImageStack` methods to configure automatic reset zoom (PR #3373)
    * Added some statistic indicators in `PixelIntensitiesHistoAction` action (PR #3391)
    * Enhanced `silx.gui.plot.ImageView` integration of ROI profiles in side plots (PR #3380)
    * Enhanced `PositionInfo`: snapping to histogram (PR #3405) and information labels layout (PR #3399)
    * Fixed `LegendSelector` blinking when updated (PR #3346)
    * Fixed profile tool issue when closing profile window after attaced PlotWidget (PR #3375)
    * Fixed histogram action (PR #3396)
    * Fixed support of histogram plot items in `stats` module (PR #3398, #3407)
    * Fixed `ColorBar` when deleting attached PlotWidget (PR #3403)

    * `silx.gui.plot.PlotWidget`:

      * Added `getValueData` method to image items (PR #3378)
      * Added `discardItem` method (PR #3400)
      * Added unified `selection()` handler compatible with active item management (PR #3401)
      * Fixed `addCurve` documentation (PR #3371)
      * Fixed complex image first displayed mode (PR #3364)
      * Fixed curve and scatter items support of complex data input (PR #3384)
      * Fixed histogram picking (PR #3405)
      * Fixed rendering (PR #3416)

  * `silx.gui.plot3d`:

    * Added `HeightMapData` and `HeightMapRGBA` items (PR #3386, #3397)
    * Fixed support for RGB colored points in internal scene graph (PR #3374)
    * Fixed `ImageRgba` alpha channel display (PR #3414)

* `silx.image`:

  * Added mask support to `bilinear` interpolator (PR #3286)

* `silx.opencl`:

  * Added print statics of OpenCL kernel execution time (PR #3395)

* Miscellaneous:

  * Removed debian 9 packaging (PR #3383)
  * Enhanced test functions: `silx.test.run_tests` (PR #3331), `silx.utils.testutils.TestLogging` (PR #3393)
  * Continuous integration: Added github actions and removed travis-ci (PR #3353, #3359), fixed (PR #3361, #3366)
  * Updated documentation (PR #3383, #3387, #3409, #3416, #3427)
  * Fixed debian packaging (PR #3362)
  * Fixed `silx test` application on Windows (PR #3411)


0.14.1: 2021/04/30
------------------

This is a bug-fix version of silx.

* silx.gui.plot: Fixed `PlotWidget` OpenGL backend memory leak (PR #3445)
* silx.gui.utils.glutils: Fixed `isOpenGLAvailable` (PR #3356)


0.14.0: 2020/12/11
------------------

This is the first version of `silx` supporting `h5py` >= v3.0.

This is the last version of `silx` officially supporting Python 3.5.

* `silx.gui`:

  * Added support for HDF5 external data (virtual and raw) (PR #3222)
  * Added lazy update handling of OpenGL textures (PR #3205)
  * Deprecated `silx.gui.plot.matplotlib` module (use `silx.gui.utils.matplotlib` instead) (PR #3158)
  * Improved memory allocation by using already defined `fontMetrics` instread of creating a new one (PR #3239)
  * Make `TextFormatter` compatible with `h5py`>=3 (PR #3253)
  * Fixed `matplotlib` 3.3.0rc1 deprecation warnings (PR #3145)

  * `silx.gui.colors.Colormap`:

    * Added `Colormap.get|setNaNColor` to change color used for NaN, fix different NaN displays for matplotlib/openGL backends (PR #3143)
    * Refactored PlotWidget OpenGL backend to enable extensions (PR #3147)
    * Fixed use of `QThreadPool.tryTake` to be Qt5.7 compliant (PR #3250)

  * `silx.gui.plot`:

    * Added the feature to compute statistics inside a specific region of interest (PR #3056)
    * Added an action to switch on/off OpenGL rendering on a plot (PR #3261)
    * Added test for ROI interaction mode (PR #3283)
    * Added saving of error bars when saving a plot (PR #3199)
    * Added `ImageStack.clear` (PR #3167)
    * Improved image profile tool to support `PlotWidget` item extension (PR #3150)
    * Improved `Stackview`: replaced `setColormap` `autoscale` argument by `scaleColormapRangeToStack` method (PR #3279)
    * Updated `3 stddev` autoscale algorithm, clamp it with the minmax data in order to improve the contrast (PR #3284)
    * Updated ROI module: splitted into 3 modules base/common/arc_roi (PR #3283)
    * Fixed `ColormapDialog` custom range input (PR #3153)
    * Fixed issue when changing ROI mode while a ROI is being created (PR #3186)
    * Fixed `RegionOfInterest` refresh when highlighted (PR #3197)
    * Fixed arc roi shape: make sure start and end points are part of the shape (PR #3257)
    * Fixed issue in `Colormap` `3 stdev` autoscale mode and avoided warnings (PR #3295)

    * Major improvements of `PlotWidget`:

      * Added `get|setAxesMargins` methods to control margin ratios around plot area (PR #3196)
      * Added `PlotWidget.[get|set]Backend` enabling switching backend (PR #3255)
      * Added multi interaction mode for ROIs (can be switched with a single click on an handle, or the context menu) (PR #3260)
      * Added polar interaction mode for arc ROI (PR #3260)
      * Added `PlotWidget.sigDefaultContextMenu` to allow to feed the default context menu (PR #3260)
      * Added context menu to the selected ROI to remove it (PR #3260)
      * Added pan interaction to ROI authoring (`select-draw`) interaction mode (PR #3291)
      * Added support of right axis label with OpenGL backend (PR #3293)
      * Added item visible bounds feature to PlotWidget items (PR #3223)
      * Added a `DataItem` base class for items having a "data extent" in the plot (PR #3212)
      * Added support for float16 texture in OpenGL backend (PR #3194)
      * Improved support of high-DPI screen in OpenGL backend (PR #3203)
      * Updated: Use points rather than pixels for marker size and line width with OpenGL backend (PR #3203)
      * Updated: Expose `PlotWidget` colors as Qt properties (PR #3269)
      * Fixed time serie axis for range < 2.5 microseconds (PR #3195)
      * Fixed initial size of OpenGL backend (PR #3209)
      * Fixed `PlotWidget` image items displayed below the grid by default (PR #3235)
      * Fixed OpenGL backend image display with sqrt colormap normalization (PR #3248)
      * Fixed support of shapes with multiple polygons in the OpenGL backend (PR #3259)
      * Fixes duplicated callback on ROIs (there was one for each ROI managed created on the plot) (PR #3260)
      * Fixed RegionOfInterest `contains` methods (PR #3336)

  * `silx.gui.colors.plot3d`:

    * Improved scene rendering (PR #3149)
    * Fixed handling of transparency of cut plane (PR #3204)

* `silx.image`:

  * Fixed slow `image.tomography.get_next_power()` (PR #3168)

* `silx.io`:

  * Added support for HDF5 link preservation in `dictdump` (PR #3224)
  * Added support for numpy arrays of `numbers` (PR #3251)
  * Make `h5todict` resilient to issues in the HDF5 file (PR #3162)

* `silx.math`:

  * Improved colormap performances for small datasets (PR #3282)

* `silx.opencl`:

  * Added textures availability check (PR #3273)
  * Added a warning when there is an issue in the Ocl destruction (PR #3280)
  * Fixed Sift test on modern GPU (PR #3262)

* Miscellaneous:

  * Added HDF5 strings: handle `h5py` 2.x and 3.x (PR #3240)
  * Fixed `cython` 3 compatibility and deprecation warning (PR #3164, #3189)


0.13.2: 2020/09/15
------------------

Minor release:

* silx view application: Prevent collapsing browsing panel, Added `-f` command line option (PR #3176)

* `silx.gui`:

  * `silx.gui.data`: Fixed `DataViews.titleForSelection` method (PR #3171).
  * `silx.gui.plot.items`: Added `DATA_BOUNDS` visualization parameter for `Scatter` item histogram bounds (PR #3180)
  * `silx.gui.plot.PlotWidget`: Fixed support of curves with infinite data (PR #3175)
  * `silx.gui.utils.glutils`: Fixed `isOpenGLAvailable` function (PR #3184)

* Documentation:

  * Update silx view command line options documentation (PR #3173)
  * Update version number and changelog (PR #3190)


0.13.1: 2020/07/22
------------------

Bug fix release:

* `silx.gui.plot.dialog`: Fixed `ColormapDialog` custom range input (PR #3155)
* Build: Fixed cython 3 compatibility (PR #3163).
* Documentation: Update version number and changelog (PR #3156)


0.13.0: 2020/06/23
------------------

This version drops the support of Python 2.7 and Python <= 3.4.

* silx view application:

  * Added support of compound data (PR #2948)
  * Added `Close All` menu (PR #2963)
  * Added default title to plots (PR #2979, #2999)
  * Added a button to enable/disable file content sorting (PR #3132)
  * Added support of a `SILX_style` HDF5 attribute to provide axes and colormap scale (PR #3092)
  * Improved `HDF5TableView` information table to make text selectable and ease copy (PR #2903)
  * Fixes (PR #2881, #2902, #3083)

* `silx.gui`:

  * `silx.gui.colors.Colormap`:

    * Added mean+/-3std autoscale mode (PR #2877, #2900)
    * Added sqrt, arcsinh and gamma correction colormap normalizations (PR #3010, #3054, #3057, #3066, #3070, #3133)
    * Limit number of threads used for computing the colormap (PR #3073)
    * Reordered colormaps (PR #3137)

  * `silx.gui.dialog.ColormapDialog`: Improved widget (PR #2874, #2915, #2924, #2954, #3136)
  * `silx.gui.plot`:

    * Major rework/extension of the regions of interest (ROI) (PR #3007, #3008, #3018, #3020, #3022, #3026, #3029, #3044, #3045, #3055, #3059, #3074, #3076, #3078, #3079, #3081, #3131)
    * Major rework/extension of the profile tools (PR #2933, #2980, #2988, #3004, #3011, #3037, #3048, #3058, #3084, #3088, #3095, #3097)
    * Added `silx.gui.plot.ImageStack` widget (PR #2480)
    * Added support of scatter in `PixelIntensitiesHistoAction` (PR #3089, #3107)
    * Added auto update of `FitAction` fitted data and range (PR #2960, #2961, #2969, #2981)
    * Improved mask tools (PR #2986)
    * Fixed `PlotWindow` (PR #2965) and `MaskToolsWidget` (PR #3125)

    * `silx.gui.plot.PlotWidget`:

      * Changed behaviour of `PlotWidget.addItem` and `PlotWidget.removeItem` to handle object items (previous behavior deprecated, not removed) and added `PlotWidget.addShape` method to add `Shape` items (PR #2873, #2904, #2919, #2925, #3120)
      * Added support of uint16 RGBA images (PR #2889)
      * Improved interaction (PR #2909, #3014, #3033)
      * Fixed `PlotWidget` (PR #2884, #2901, #2970, #3002)
      * Fixed and cleaned-up backends (PR #2887, #2910, #2913, #2957, #2964, #2984, #2991, #3023, #3064, #3135)

    * `silx.gui.plot.items`:

      * Added `sigDragStarted` and `sigDragFinished` signals to marker items and `sigEditingStarted` and `sigEditingFinished` signals to region of interest items (PR #2754)
      * Added `XAxisExtent` and `YAxisExtent` items in `silx.gui.plot.items` to control the plot data extent (PR #2932)
      * Added `ImageStack` item (PR #2994)
      * Added `Scatter` item histogram visualization mode (PR #2912, #2923)
      * Added `isDragged` method to marker items (PR #3000)
      * Improved performance of colormapped items by caching data min/max (PR #2876, #2886)
      * Improved `Scatter` item regular grid (PR #2918) and irregular grid (PR #3108) visualizations

  * `silx.gui.qt`:

    * Changed behavior of `QObject` multiple-inheritance (PR #3052)
    * Limit `silxGlobalThreadPool` function to use 4 threads maximum (PR #3072)

  * `silx.gui.utils.glutils`: Added `isOpenGLAvailable` to check the availability of OpenGL (PR #2878)
  * `silx.gui.widgets`:

    * Added `ElidedLabel` widget (PR #3110, #3111)
    * Fixed `LegendIconWidget` (PR #3112)

* `silx.io`:

  * Added support of signal dataset name-based errors to NXdata (PR #2976)
  * Added `dicttonx` function and support of HDF5 attibutes in `dicttoh5` function (PR #3013, #3017, #3031, #3093)
  * Fixed `url.DataUrl.path` (PR #2973)

* `silx.opencl`:

  * Fixed issue with Python 3.8 (PR #3036)
  * Disable textures for Nvidia Fermi GPUs for `convolution` (PR #3101)

* Miscellaneous:

  * Requires fabio >= 0.9 (PR #2937)
  * Fixed compatibility with h5py<v2.9 (PR #3024), cython 3 (PR #3034)
  * Avoid deprecation warnings (PR #3104) from Python 3.7 (PR #3012), Python 3.8 (PR #2891, #2934, #2989, #2993, #3127), h5py (PR #2854, #2893), matplotlib (PR #2890), fabio (PR #2930) and numpy (PR #3129)
  * Use `numpy.errstate` to ignore warnings rather than the `warnings` module (PR #2920)

* Build, documentation and tests:

  * Dropped Python2 support (PR #3119, #3140) and removed Python 2 tests and packaging (PR #2838, #2917)
  * Added debian 11/Ubuntu 20.04 packaging (PR #2875)
  * Improved test environment (PR #2870, #2949, #2995, #3009, #3061, #3086, #3087, #3122), documentation (PR #2872, #2894, #2937, #2987, #3042, #3053, #3068, #3091, #3103, #3115) and sample code (PR #2978, #3130, #3138)
  * Fixed Windows "fat binary" build (PR #2971)


0.12.0: 2020/01/09
------------------

Python 2.7 is no longer officially supported (even if tests pass and most of the library should work).

* silx view application:

  * Added: keep the same axes selection when changing dataset except for the stack view (PR #2701, #2780)
  * Added a Description column in the browsing tree to display NeXus title or name (PR #2804)
  * Added support of URL as filename (PR #2750)
  * Behavior changed: no longer lock HDF5 files by default, can be changed with `--hdf5-file-locking` option (PR #2861)

* `silx.gui`:

  * `silx.gui.plot`:

    * Added scatter plot regular and irregular grid visualization mode (PR #2810, #2815, #2820, #2824, #2831)
    * Added `baseline` argument to `PlotWidget` `addCurve` and `addHistogram` methods (PR #2715)
    * Added right axis support to `PlotWidget` marker items (PR #2744)
    * Added `BoundingRect` `PlotWidget` item (PR #2823)
    * Added more markers to `PlotWidget` items using symbols (PR #2792)
    * Improved and fixed `PlotWidget` and backends rendering and picking to guarantee rendering order of items (PR #2602, #2694, #2726, #2728, #2730, #2731, #2732, #2734, #2746, #2800, #2822, #2829, #2851, #2853)
    * Improved `RegionOfInterest`: Added `sigItemChanged` signal, renamed `get|setLabel` to `get|setName` (PR #2684, #2729, #2794, #2803, #2860)
    * Improved `StackView`: Allow to save dataset to HDF5 (PR #2813)

  * `silx.gui.plot3d`:

    * Added colormapped isosurface display to `ComplexField3D` (PR #2675)

  * Miscellaneous:

    * Added `cividis` colormap (PR #2763)
    * Added `silx.gui.widgets.ColormapNameComboBox` widget (PR #2814)
    * Added `silx.gui.widgets.LegendIconWidget` widget (PR #2783)
    * Added `silx.gui.utils.blockSignals` context manager (PR #2697, #2702)
    * Added `silx.gui.utils.qtutils.getQEventName` function (PR #2725)
    * Added `silx.gui.colors.asQColor` function (PR #2753)
    * Minor fixes (PR #2662, #2667, #2674, #2719, #2724, #2747, #2757, #2760, #2766, #2789, #2798, #2799, #2805, #2811, #2832, #2834, #2839, #2849, #2852, #2857, #2864, #2867)

* `silx.opencl`:

  * Added `silx.opencl.sparse.CSR` with support of different data types (PR #2671)
  * Improved support of different platforms like PoCL (PR #2669, #2698, #2806)
  * Moved non-OpenCL related utilities to `silx.opencl.utils` module (PR #2782)
  * Fixed `silx.opencl.sinofilter.SinoFilter` to avoid importing scikit-cuda (PR #2721)
  * Fixed kernel garbage collection (PR #2708)
  * Fixed `silx.opencl.convolution.Convolution` (PR #2781)

* `silx.math`/`silx.image`:

  * Added trilinear interpolator: `silx.math.interpolate.interp3d` (PR #2678)
  * Added `silx.image.utils.gaussian_kernel` function (PR #2782)
  * Improved `silx.image.shapes.Polygon` argument check (PR #2761)
  * Fixed and improved `silx.math.fft` with FFTW backend (PR #2751)
  * Fixed support of not finite data in fit manager (PR #2868)

* `silx.io`:

  * Added `asarray=True` argument to `silx.io.dictdump.h5todict` function (PR #2692, #2767)
  * Improved `silx.io.utils.DataUrl` (PR #2790)
  * Increased max number of motors in `specfile` (PR #2817)
  * Fixed data conversion when reading images with `fabio` (PR #2735)

* Build, documentation and tests:

  * Added `Cython` as a build dependency (PR #2795, #2807, #2808)
  * Added Debian 10 packaging (PR #2670, #2672, #2666, #2686, #2706)
  * Improved documentation (PR #2673, #2680, #2679, #2772, #2759, #2779, #2801, #2802, #2833, #2857, #2869)
  * Improved testing tools (PR #2704, #2796, #2818)
  * Improved `bootstrap.py` script (PR #2727, #2733)


0.11.0: 2019/07/03
------------------

 * Graphical user interface:

   * Plot:

     * Add sample code on how to update a plot3d widget from a thread
     * ScatterPlot: add the possibility to plot as a surface using Delaunay triangulation
     * ScatterView: add a tool button to change scatter visualization mode (ex. Solid)
     * (OpenGL backend) Fix memory leak when creating/deleting widgets in a loop


   * Plot3D:

     * Add an action to toggle plot3d's `PositionInfoWidget` picking.
     * Add a 3D complex field visualization: Complex3DField (also available from silx view)
     * Add a PositionInfoWidget and a tool button to toggle the picking mode to SceneWindow
     * Add the possibility to render the scene with linear fog.

   * `silx.gui.widgets`:

     * Fix ImageFileDialog selection for a cube with shape like `1,y,x`.

 * Miscellaneous:

    * Requires numpy version >= 1.12
    * HDF5 creator script
    * Support of Python 3.4 is dropped. Please upgrade to at least Python 3.5.
    * This is the last version to officially support Python 2.7.
    * The source code is Python 3.8 ready.
    * Improve PySide2 support. PyQt4 and PySide are deprecated.



0.10.0: 2019/02/19
------------------

 * Graphical user interface:

   * Plot:

    * Add support of foreground color
    * Fix plot background colors
    * Add tool to mask ellipse
    * StatsWidget:

     * Add support for plot3D widgets
     * Add a PyMca like widget

    * `Colormap`: Phase colormap is now editable
    * `ImageView`: Add ColorBarWidget
    * `PrintPreview`:

     * Add API to define 'comment' and 'title'
     * Fix resizing in PyQt5

    * Selection: Allow style definition
    * `ColormapDialog`: display 'values' plot in log if colormap uses log
    * Synchronize ColorBar with plot background colors
    * `CurvesROIWidget`: ROI is now an object.

   * Plot3D:

    * `SceneWidget`: add ColormapMesh item
    * Add compatibility with the StatsWidget to display statistic on 3D volumes.
    * Add `ScalarFieldView.get|setOuterScale`
    * Fix label update in param tree
    * Add `ColormapMesh` item to the `SceneWidget`

   * HDF5 tree:

    * Allow URI drop
    * Robustness of hdf5 tree with corrupted files

   * `silx.gui.widgets`:

    * Add URL selection table

 * Input/output:

   * Support compressed Fabio extensions
   * Add a function to create external dataset for .vol file

 * `silx view`:

    * Support 2D view for 3D NXData
    * Add a NXdata for complex images
    * Add a 3d scalar field view to the NXdata views zoo
    * Improve shortcuts, view loading
    * Improve silx view loading, shortcuts and sliders ergonomy
    * Support default attribute pointing to an NXdata at any group level

 * `silx convert`

    * Allow to use a filter id for compression

 * Math:

    * fft: multibackend fft

 * OpenCL:

    * Compute statistics on a numpy.ndarray
    * Backprojection:

     * Add sinogram filters (SinoFilter)
     * Input and/or output can be device arrays.

 * Miscellaneous:

    * End of PySide support (use PyQt5)
    * Last version supporting numpy 1.8.0. Next version will drop support for numpy < 1.12
    * Python 2.7 support will be dropped before end 2019. From version 0.11, a deprecation warning will be issued.
    * Remove some old deprecated methods/arguments
    * Set Cython language_level to 3


0.9.0: 2018/10/23
-----------------

 * Graphical user interface:

   * `silx.gui.widgets`:

     * Adds `RangeSlider` widget, a slider with 2 thumbs
     * Adds `CurveLegendsWidget` widget to display PlotWidget curve legends
       (as an alternative to `LegendSelector` widget)
     * Adds `FlowLayout` QWidget layout

   * Plot:

     * Adds `CompareImages` widget providing tools to compare 2 images
     * `ScatterView`: Adds alpha channel support
     * `MaskToolsWidget`: Adds load/save masks from/to HDF5 files

     * `PlotWidget`:

       * Adds `getItems` method, `sigItemAdded` and `sigItemAboutToBeRemoved` signals
       * Adds more options for active curve highlighting (see `get|setActiveCurveStyle` method)
       * Deprecates `get|setActiveCurveColor` methods
       * Adds `get|setActiveCurveSelectionMode` methods to change the behavior of active curve selection
       * Adds configurable line style and width to line markers
       * Fixes texture cache size in OpenGL backend

   * Plot3D:

     * Adds `SceneWidget.pickItems` method to retrieve the item and data at a given mouse position
     * Adds `PositionInfoWidget` widget to display data value at a given mouse position

   * `silx.gui.utils`:

     * Adds `image` module for QImage/numpy array conversion functions
     * Adds `testutils` helper module for writing Qt tests
       (previously available internally as `silx.gui.test.utils`)

   * Adds `silx.gui.qt.inspect` module to inspect Qt objects

 * Math:

   * Updates median filter with support for Not-a-Number and a 'constant' padding mode

 * `silx view`:

    * Fixes file synchronization
    * Adds a refresh button to synchronize file content

 * Dependencies:

   * Deprecates support of PySide Qt4 binding
     (We intend to drop official support of PySide in silx 0.10.0)
   * Deprecates support of PyQt4
   * Adds `h5py` and `fabio` as strong dependencies

 * Miscellaneous:

   * Adds `silx.examples` package to ship the example with the library

0.8.0: 2018/07/04
-----------------

 * Graphical user interface:

   * Plot:

     * Adds support of x-axis date/time ticks for time series display (see `silx.gui.plot.items.XAxis.setTickMode`)
     * Adds support of interactive authoring of regions of interest (see `silx.gui.plot.items.roi` and `silx.gui.plot.tools.roi`)
     * Adds `StatsWidget` widget for displaying statistics on data displayed in a `PlotWidget`
     * Adds `ScatterView` widget for displaying scatter plot with tools such as line profile and mask
     * Overcomes the limitation to float32 precision with the OpenGL backend
     * Splits plot toolbar is several reusable thematic toolbars

   * Plot3D: Adds `SceneWidget` items to display many cubes, cylinders or hexagonal prisms at once
   * Adds `silx.gui.utils` package with `submitToQtMainThread` for asynchronous execution of Qt-related functions
   * Adds Qt signals to `Hdf5TreeView` to manage HDF5 file life-cycle
   * Adds `GroupDialog` dialog to select a group in a HDF5 file
   * Improves colormap computation with a Cython/OpenMP implementation

   * Main API changes:

     * `Colormap` is now part of `silx.gui.colors`
     * `ColormapDialog` is now part of `silx.gui.dialogs`
     * `MaskToolsWidget.getSelectionMask` method now returns `None` if no image is selected
     * Clean-up `FrameBrowser` API

 * Image

   * Adds an optimized marching squares algorithm to compute many iso contours from the same image

 * Input/output:

   * Improves handling of empty Spec scans
   * Add an API to `NXdata` parser to get messages about malformed input data

 * `silx.sx`

   * Allows to use `silx.sx` in script as in Python interpreter
   * `sx.imshow` supports custom y-axis orientation using argument `origin=upper|lower`
   * Adds `sx.enable_gui()` to enable silx widgets in IPython notebooks

 * `silx convert`

   * Improves conversion from EDF file series to HDF5

 * `silx view`

   * Adds user preferences to restore colormap, plot backend, y-axis of plot image,...
   * Adds `--fresh` option to clean up user preferences at startup
   * Adds a widget to create custom viewable `NXdata` by combining different datasets
   * Supports `CTRL+C` shortcut in the terminal to close the application
   * Adds buttons to collapse/expand tree items
   * NXdata view now uses the `ScatterView` widget for scatters

 * Miscellaneous

   * Drops official support of Debian 7
   * Drops versions of IPython console widget before the `qtconsole` package
   * Fixes EDF file size written by `EdfFile` module with Python 3

0.7.0: 2018/02/27
-----------------

 * Input/output:

   * Priovides `silx.io.url.DataUrl` to parse supported links identifying
     group or dataset from files.
   * `silx.io.open` now supports h5pyd and silx custom URLs.
   * `silx.io.get_data` is provided to allow to reach a numpy array from silx.

 * OpenCL:

   * Provides an API to share memory between OpenCL tasks within the same device.
   * Provides CBF compression and decompression.
   * Simple processing on images (normalization, histogram).
   * Sift upgrade using memory sharing.

 * `silx.sx`:

   * Added `contour3d` function for displaying 3D isosurfaces.
   * Added `points3d` function for displaying  2D/3D scatter plots.
   * Added `ginput` function for interactive input of points on 1D/2D plots.

 * Graphic user interface:

   * Provides a file dialog to pick a dataset or a group from HDF5 files.
   * Provides a file dialog to pick an image from HDF5 files or multiframes formats.
   * The colormap dialog can now be used as non-modal.
   * `PlotWidget` can save the displayed data as a new `NXentry` of a HDF5 file.
   * `PlotWidget` exports displayed data as spec files using more digits.
   * Added new OpenGL-based 3D visualization widgets:

     * Supports 3D scalar field view 2D/3D scatter plots and images.
     * Provides an object oriented API similar to that of the 1D/2D plot.
     * Features a tree of parameters to edit visualized item's properties
       (e.g., transforms, colormap...)
     * Provides interactive panning of cut and clip planes.

   * Updates of `ScalarFieldView` widget:

     * Added support for a 3x3 transform matrix (to support non orthogonal axes)
     * Added support of an alternative interaction when `ctrl` is pressed
       (e.g., rotate by default and pan when ctrl/command key is pressed).
     * Added 2 sliders to control light direction in associated parameter tree view.

 * `silx view`:

   * Uses a single colormap to show any datasets.
   * The colormap dialog can stay opened while browsing the data.
   * The application is associated with some file types to be used to load files
     on Debian.
   * Provides a square amplitude display mode to visualize complex images.
   * Browsing an `NXentry` can display a default `NXdata`.
   * Added explanation when an `NXdata` is not displayable.
   * `NXdata` visualization can now show multiple curves (see `@auxiliary_signals`).
   * Supports older `NXdata` specification.

 * `silx convert`:

   * Added handling of file series as a single multiframe
   * Default behavior changes to avoid to add an extra group at the root,
     unless explicitly requested (see `--add-root-group`).
   * Writer uses now utf-8 text as default (NeXus specification).
   * EDF files containing MCA data are now interpreted as spectrum.

 * Miscellaneous:

   * Added `silx.utils.testutils` to share useful unittest functions with other
     projects.
   * Python 2 on Mac OS X is no longer tested.
   * Experimental support to PySide2.
   * If fabio is used, a version >= 0.6 is mandatory.

0.6.0: 2017/10/02
-----------------

 * OpenCl. Tomography. Implement a filtered back projection.
 * Add a *PrintPreview* widget and a *PrintPreviewToolButton* for *PlotWidget*.
 * Plot:

   * Add a context menu on right click.
   * Add a *ComplexImageView* widget.
   * Merged abstract *Plot* class with *PlotWidget* class.
   * Make colormap an object with signals (*sigChanged*)
   * Add a colorbar widget *silx.gui.plot.ColorBar*.
   * Make axis an object, allow axis synchronization between plots,
     allow adding constraints on axes limits.
   * Refactor plot actions, new sub-package *silx.gui.plot.actions*.
   * Add signals on *PlotWidget* items notifying updates.
   * Mask. Support loading of TIFF images.

 * Plot3d:

   * Rework toolbar and interaction to use only the left mouse button.
   * Support any colormap.

 * Hdf5TreeView:

   * Add an API to select a single tree node item (*setSelectedH5Node*)
   * Better support and display of types.
   * New column for displaying the kind of links.
   * Broken nodes are now selectable.

 * StackView. Add a *setTitleCallback* method.
 * Median filter. Add new modes (*reflect, mirror, shrink*) in addition to *nearest*.

 * IO:

   * Rename module *spectoh5* to *convert*. Add support for conversion of *fabio* formats.
   * Support NPZ format.
   * Support opening an URI (*silx.io.open(filename::path)*).
   * *Group* methods *.keys*, *.value* and *.items* now return lists in Python 2
     and iterators in Python 3.

 * Image. Add tomography utils: *phantomgenerator* to produce Shepp-Logan phantom, function to compute center of rotation (*calc_center_corr*, *calc_center_centroid*) and rescale the intensity of an image (*rescale_intensity*).

 * Commands:

   * *silx view*:

     * Add command line option *--use-opengl-plot*.
     * Add command line option *--debug*, to print dataset reading errors.
     * Support opening URI (*silx view filename::path*).

   * *silx convert*. New command line application to convert supported data files to HDF5.

 * Enable usage of *silx.resources* for other projects.
 * The *silx* license is now fully MIT.


0.5.0: 2017/05/12
-----------------

 * Adds OpenGL backend to 1D and 2D graphics
 * Adds Object Oriented plot API with Curve, Histogram, Image, ImageRgba and Scatter items.
 * Implements generic launcher (``silx view``)
 * NXdataViewer. Module providing NeXus NXdata support
 * Math/OpenCL. Implementation of median filter.
 * Plot. Implementation of ColorBar widget.
 * Plot. Visualization of complex data type.
 * Plot. Implementation of Scatter Plot Item supporting colormaps and masks.
 * Plot. StackView now supports axes calibration.
 * I/O. Supports SPEC files not having #F or #S as first line character.
 * I/O. Correctly exposes UB matrix when found in file.
 * ROIs. Simplification of API: setRois, getRois, calculateRois.
 * ROIs. Correction of calculation bug when the X-axis values were not ordered.
 * Sift. Moves package from ``silx.image`` to ``silx.opencl``.


0.4.0: 2017/02/01
-----------------

 * Adds plot3D package (include visualization of 3-dimensional scalar fields)
 * Adds data viewer (it can handle n-dimensional data)
 * Adds StackView (ex. Visualization of stack of images)
 * Adds depth profile calculation (ex. extract profile of a stack of images)
 * Adds periodic table widget
 * Adds ArrayTableWidget
 * Adds pixel intensity histogram action
 * Adds histogram parameter to addCurve
 * Refactoring. Create silx.gui.data (include widgets for data)
 * Refactoring. Rename utils.load as silx.io.open
 * Changes active curve behavior in Plot. No default active curve is set by default
 * Fit Action. Add polynomial functions and background customization
 * PlotWindow. Provide API to access toolbar actions
 * Handle SPEC, HDF5 and image formats through an unified API
 * hdf5widget example. Inspect and visualize any datasets
 * Improves mask tool
 * Deprecates PlotWindow dock widgets attributes in favor of getter methods


0.3.0: 2016/10/12
-----------------

 * Adds OpenCL management
 * Adds isosurface marching cubes
 * Adds sift algorithm for image alignement
 * Adds octaveh5 module to insure communication between octave and python using HDF5 file
 * Adds silx.utils module containing weakref and html-escape
 * Adds silx.sx for flat import (helper for interactive shell)
 * Adds HDF5 load API (supporting Spec files) to silx.io.utils module
 * Adds SpecFile support for multiple MCA headers
 * Adds HDF5 TreeView
 * Adds FitManager to silx.math.fit and FitWidget to silx.gui.fit
 * Adds ThreadPoolPushButton to silx.gui.widgets
 * Adds getDataRange function to plot widget
 * Adds loadUi, Slot and Property to qt.py
 * Adds SVG icons and support
 * Adds examples for plot actions, HDF5 widget, helper widgets, converter from Spec to HDF5
 * Adds tutorials for plot actions, spech5, spectoh5, sift and fitmanager
 * Improves right axis support for plot widget
 * Improves mask tool
 * Refactors widgets constructor: first argument is now the parent widget
 * Changes plot documentation and add missing module to the documentation


0.2.0: 2016/07/12
-----------------

 * Adds bilinear interpolator and line-profile for images to silx.image
 * Adds Levenberg-Marquardt least-square fitting algorithm to silx.math.fit
 * Histogramnd changed to become a class rather than a function, API and return values changed
 * Adds HistogramndLut, using a lookup table to bin data onto a regular grid for several sets of
   data sharing the same coordinates
 * Adds legend widget and bottom toolbar to PlotWindow
 * Adds a line-profile toolbar to PlotWindow
 * Adds ImageView widget with side histograms and profile toolbar
 * Adds IPython console widget, to be started from PlotWindow toolbar
 * Adds Plot1D widget for curves and Plot2D widget for images
 * Adds ROI widget for curves in PlotWindow
 * Adds a mask widget and toolbar to plot (2D)
 * Renames silx.io.dicttoh5 to silx.io.dictdump
 * Adds configuration dictionary dumping/loading to/from JSON and INI files in silx.io.configdict
 * Adds specfile wrapper API compatible with legacy wrapper: silx.io.specfilewrapper
 * Transposes scan data in specfile module to have detector as first index
 * Set up nigthly build for sources package, debian packages (http://www.silx.org/pub/debian/)
   and documentation (http://www.silx.org/doc/)


0.1.0: 2016/04/14
-----------------

 * Adds project build, documentation and test structure
 * Adds continuous integration set-up for Travis-CI and Appveyor
 * Adds Debian packaging support
 * Adds SPEC file reader, SPEC file conversion to HDF5 in silx.io
 * Adds histogramnd function in silx.math
 * Adds 1D, 2D plot widget with a toolbar, refactored from PyMca PlotWindow in silx.gui.plot