Changelog
=========

FabIO-2024.4.0: 
................
- Support for new style GE-files (contribution from Patrick Avery)
- Support sparse frames without background
- Fix documentation (Thanks Wout)
- Automatize the release (Thanks Thomas)
- Support for Numpy v2.0
- Support Python 3.7-3.12

FabIO-2023.10.0: 
................
- New tutorial on the ccreation of multiframe Tiff
- Fix regression related to the depreciation of `fopen` on MSVC compilers (validation code)
- Clean-up packaging
- Support Python 3.7-3.12

FabIO-2023.6.0: 
...............
- Move source code to src
- Remove anything related to setup.py (i.e. exit setuptools and numpy.distutils)
- Debian build works only on debian12 (impossible to meet requirements on former versions)
- Supports python 3.7 - 3.11

FabIO-2023.4.1: 
...............
- Bugfix (#528) wrong checksum with small CBF files 

FabIO-2023.04: 
..............
- `eiger2crysalis` generates full CrysalisPro projects, including mask & scan description
- Support Python 3.7 to 3.11 with Cython 0.21-3.0

FabIO-2022.12: (12/12/2022):
............................
- First version declared stable
- Change the versioning system to calendar 
- Change build-system from `numpy.distutils` to `meson-python`
- Deprecate the usage of setup.py (will be removed in next release)
- Fix Tif-reader for wrong photometric interpretation
- Update HiPiCimage
- Support BigTIFF
- Improvement of test-coverage
- Fix issue in ProgressBar in the viewer
- Fix memory leak in densify
- Fix EigerImage behavour
- Drop Python-3.6 (declared EOL 12-2021)

FabIO-0.14.0 (06/2022):
.......................
- fix infinite loop when iterating over lima/eiger image files (#468) 
- fix typo when saving in pilatus/CBF format (#471)
- fix noisy test on densification (#440)
- limit version of setuptools (related to the PEP517 and associated regressions)
- Change logo in documentation
- Support for Python versions 3.6 to 3.10, tested on amd64, ppc64le and arm64
- Linux is officially the main platform, Windows and MacOS are supported in best effort mode.

FabIO-0.13.0 (01/2022):
.......................
- Allow files to be larger than 2GB (Thanks Wout)
- Simplify the `eiger2cbf` tool
- Correct densification with missing wavelength
- Correct issue with EDF headers (#459)
- Update documentation (Thanks Loïc)
- Support for Python versions 3.6 to 3.10, tested on amd64, ppc64le and arm64
- Linux is officially the main platform, Windows and MacOS are supported in best effort mode.

FabIO-0.12.0 (07/2021):
.......................
- Densification of sparse data (densify-Bragg) produced by pyFAI (sparsify-Bragg)
- Writer for EigerImage format
- Writer for LimaImage format
- Refactor all CLI tools
- Disable the mask calculation by default in `eiger2crysalis`
- Clean-up some debuging prints in CbfImage
- Correct MrcImage format (and change in tests) 
- Support for Python versions 3.6 to 3.9, tested on amd64, ppc64le and arm64
- Linux is officially the main platform, Windows and MacOS are supported in best effort mode.

FabIO-0.11.0 (01/2021):
.......................

- New support for Esperanto image format (includes bitfield compression) read & write
- New support for HDF5 files generated by LImA (read-only so far)
- New support for HDF5 files generated by Bragg-sparsify (definitevely read-only)
- Improved support for CBF: Magic bytes, headers, + other bug corrections
- Improved supportfor Tiff: Miss interpretation of colormap tags
- Improved support for GE files gernerated at APS
- Improved support for Bruker100 image format (read & write)
- Stop testing for 32-bit operating systems.
- Support for Python versions 3.6 to 3.9
- Linux is officially the main platform, Windows and MacOS are supported in best effort mode.

FabIO-0.10.0 (04/2020):
.......................

- `edfimage`:

  - Improved robustness (PR #315)
  - Read without all restrictions of the "Klora" convention (PR #318)
  - Fixed example (PR #322)
  - Improved performances: Do not create a temporary string (PR #323)
  - Recognize a Global Header Section and using it as default (PR #328)
  - Fixed cleaning header block reading (PR #332)
  - Reading binary data from files and tests (PR #333)
  - Make magic readable (PR #339)

- `mar345image`: Provide all the default file extension for mar345 (PR #354)
- `numpyimage`: Fixes (PR #314, #344)
- `pixiimage`: Improved file series filename parsing (PR #317)
- `tifimage`: Improved TIFF via Pillow (PR #321)
- Added support of esperanto format (PR #347, #351)
- Fixed minor issues (PR #338) and compatibility with `h5py` (PR #350)
- Improved tests (PR #320, #341, #345) and `requirement.txt` (PR #331)
- Updated debian packaging (PR #324, #326), added debian11/ubuntu20.04 support (PR #355)
- Added changelog file (PR #357)
- Remove packagin for debian 6, 7 and 8, add support for debian11
- Drop support for Python2 and 3.4, validated version are 3.5-3.8 on mac, win & linux 


FabIO-0.9.0 (03/2019):
......................

- Separate the concept of FabioFrame from FabioImage
- FileSeries are available from fabio.open_series
- Shape and dtype are directly exposed
- Support d*TREK format which is a superset of ADSC
- Improve code coverage on PiXi image
- Major refactoring of EdfImage (for better performances, padding, ...)
- Clean up TiffIO (remove tests & demo from source)
- Improved binning handling in DM3 images, and more quiet
- Implement deprecation warnings àla *silx*
- Enhanced installation on unsupported architectures
- Enhanced tests (spr, Fit2dSpreadsheet, Rigaku, ...)
- Tested on Python (2.7, 3.4), 3.5, 3.6 & 3.7 on mac, win & linux

FabIO-0.8.0 (10/2018):
......................

- Increased maximum header size for EDF (contribution from OlivierU38)
- Fix EDF header (contribution from Yann Diorcet)
- New explicit registry (no more metaclass)
- Lazy iterator for EDF (useful for huge multi-frames)
- Improved JPEG 2000 support via glymur
- Manylinux1 wheels built against the oldest numpy possible
- Improved debian packaging
- clean up repository and tests
- Fix compilation with Python 3.7, python 2.7 still works but for how long ?

FabIO-0.7.0 (06/2018):
......................

- Improve CBF support (support Python3, better support of loops)
- Improve Bruker100 image detection (contribution from Tomoya Onozuka)
- Support TIFF multi-frames
- Improve Pilatus TIFF support (contribution from Mika Pflüger)
- Improve support of TIFF using indexed colors
- Support pathlib and pathlib2 as opennable paths
- Provide a copy operator for single frame images
- Clean up EDF image API (contribution from Yann Diorcet)
- Fix parsing of EDF headers
- Fix convertion from EDF to TIFF
- Fix support of `#` in filenames
- Clean up of code and documentation (including contribution from Thomas Kluyver)

FabIO-0.6.0 (01/2018):
......................

- Improve the EDF reader (faster for file compound by many compressed blocks).
- Refactoring fabio_viewer to support one of installed Qt binding PySide/PyQt4/PyQt5
- Fix closing of file descriptor in case of unsupported format
- Fix DM3 format under Python3
- Small clean up and fix on the documentation
- Update Debian package scripts to support Ubuntu
- provide dummy "register" decorator to prepare explicit registration in v0.7
- Last version to support Python2.7 and will be supported until 2020.
  v0.7 will require Python3.4+

FabIO-0.5.0 (08/2017):
......................

- All source files are now under MIT license (re-implement PCK/packbits in Cython)
- Context manager for fabio.open + automatic closing of file.
- Iterator over all frames in a file.
- Debian packaging for debian 8 and 9.
- Use (patched-) ordered dictionaries for storing headers.
- Many clean up and bug-fixes
- New formats: mpa, jpeg and jpeg2000
- Provide "convert" and "viewer" scripts in the fabio-bin debian package.


FabIO-0.4.0 (07/2016):
......................

- Write support for Bruker100 (contribution from Sigmund Neher)
- Read support for Princeton instrumentation cameras (contribution from Clemens Percher)
- Read support for FIT2D binary format
- Read support for Eiger detector (Dectris) and generic HDF5 (partial)
- Switch ESRF-contributed file formats to MIT license (more liberal)
- Drop support for python 2.6, 3.2 and 3.3. Supports only 2.7 and 3.4+
- Include TiffIO into core of FabIO (no more third-party)
- Refactor mar345 (contributed by Henri Payno)
- Enhanced byte-offset compression using Cython
- Move master repository to silx-kit (https://github.com/silx-kit)

FabIO-0.3.0 (12/2015):
......................

- Migrate to PEP8 for class names.
- Use a factory & registry instead of fiddling in sys.modules for instance creation
- dim1, dim2, bpp and bytecode are properties. Use their private version while reading.
- FabioImage.header["filename"] has disappeared. Use FabioImage.filename instead.
- Automatic backported package down to debian-8
- Compatibility checked with 2.6, 2.7, 3.2, 3.3, 3.4 and 3.5
- Continuous integration based on appveyor (windows) and travis (linux)
- Support for numpy 2d-array and PNM saving
- Move away from Sourceforge -> Github.

FabIO-0.2.2 (07/2015):
......................

- work on the auto-documentation on ReadTheDocs (see http://fabio.readthedocs.org)
- fix regression when reading BytesIO
- Python3 compatibility
- prepare multiple package for debian

FabIO-0.2.1 (02/2015):
......................

- Fix issues with variable endianness (tested PPC, PPC64le, i386, x86-64, ARM processors)
- Optimization of byte-offset reader (about 20% faster on some processors)

FabIO-0.2.0 (01/2015):
......................

- Compatibility with Python3 (tested on Python 2.6, 2.7, 3.2 and 3.4)
- Support for Mar555 flat panel
- Optimization of CBF reader (about 2x faster)
- include tests into installed module (and download in /tmp)

FabIO-0.1.4:
............
- Work on compatibility with Python3
- Specific debian support with test images included but no auto-generated files
- Image viewer (fabio_viewer) based on Qt4 (Thanks for Gaël Goret)
- Reading images from HDF5 datasets
- Read support for "MRC" images
- Read support for "Pixi detector (Thanks for Jon Wright)
- Read support for "Raxis" images from Rigaku (Thanks to Brian Pauw)
- Write support for fit2d mask images
- Drop support for python 2.5 + Cythonization of other algorithms

FabIO-0.1.3:
............
- Fixed a memory-leak in mar345 module
- Improved support for bruker format (writer & reader)
- Fixed a bug in EDF headers (very long headers)
- Provide template for new file-formats
- Fix a bug related to PIL in new MacOSX
- Allow binary-images to be read from end

FabIO-0.1.2 (04/2013):
......................

- Fixed a bug in fabioimage.write (impacted all writers)
- added Sphinx documentation "python setup.py build_doc"
- PyLint compliance of some classes (rename, ...)
- tests from installer with "python setup.py build test"

FabIO-0.1.1:
............

- Merged Mar345 image reader and writer with cython bindings (towards python3 compliance)
- Improve CBF image writing under windows
- Bz2, Gzip and Flat files are managed through a common way ... classes are more (python v2.5) or less (python v2.7) overloaded
- Fast EDF reading if one assumes offsets are the same between files, same for ROIs

FabIO-0.1.0:
............

- OXD reader improved and writer implemented
- Mar345 reader improved and writer implemented
- CBF writer implemented
- Clean-up of the code & bug fixes
- Move towards python3
- Make PIL optional dependency
- Preliminary Python3 support (partial).

FabIO-0.0.8:
............

- Support for Tiff using TiffIO module from V.A.Solé
- Clean-up of the code & bug fixes

FabIO-0.0.7 (03/2011):
......................

- Support for multi-frames EDF files
- Support for XML images/2D arrays used in EDNA
- new method: fabio.open(filename) that is an alias for fabio.openimage.openimage(filename)

FabIO-0.0.6 (01/2011):
......................

- Support for CBF files from Pilatus detectors
- Support for KCD files from Nonius Kappa CCD images
- write EDF with their native data type (instead of uint16 by default)

FabIO-0.0.4 (2009):
...................

- Support for EDF and many other formats
