Changelog#
FabIO-2025.10.0:#
- Include patches from debian (Thanks Rolland Mas) 
- Compatibility with recent version of Glymur 
- Supports Python 3.10-3.14 
FabIO-2024.9.0:#
- Link peak from sparse dataset to the dense one when using densify_Bragg 
- New tool hdf2neggia which converts any HDF5 file compatible into something compatible with XDS+neggia pluggin 
- support new detector: LambdaImage 
- Fix endianness issue in several file-format 
- Fix bug in edf.fast_data_read 
- Fix warning which became errors in gcc14 
- Supports Python 3.8-3.12 
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 (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