- Support free-threaded Python
- Drop support for Python 3.9
- Switch extension module to multi-phase initialization
- Drop support for Python 3.8
- Switch to PEP 639 project license metadata
- examples: Update OpenSeadragon to 5.0.1
- examples: Add license files for bundled JavaScript
- tests: Add PEP 735 dependency group for test dependencies
- Fix
setup.py installwith old setuptools (1.4.0 regression) - examples: Fix
deepzoom_tile.py -rwith Jinja < 2.11.0 (1.4.0 regression)
- Support OpenSlide installed from PyPI with
pip install openslide-bin - Add type hints for Python ≥ 3.10
- Add wheels for Linux aarch64, Linux x86_64, and macOS arm64 + x86_64
- Build version-independent wheels on Python ≥ 3.11
- examples: Default
deepzoom_tile.pyjob count to available CPUs when known
- Drop wheel for 32-bit Windows
- Rename source distribution to
openslide_pythonper PEP 625 - Require
AbstractSlidesubclasses to implement all abstract methods - Provide default
AbstractSlide.set_cache()implementation - Switch to PEP 621 project metadata
- docs: Document existence of
AbstractSlide - examples: Update OpenSeadragon to 5.0.0
- If OpenSlide cannot be loaded, report errors from all attempts
- Fix
OpenSlidesupport forbytesfilename arguments (1.2.0 regression) - Disallow arbitrary types as
OpenSlidefilename arguments (1.2.0 regression) - Encode
OpenSlidefilename arguments using Python filesystem encoding - Add error check to
OpenSlide.set_cache() - docs: Fix types of properties that return tuples of items
- docs: Document using ICC profile's default intent, not absolute colorimetric
- examples: Default to ICC profile's default intent, not absolute colorimetric
- tests: Correctly require pytest ≥ 7.0
- Support new soname in OpenSlide ≥ 4.0.0
- Drop support for Python 3.7
- Expose color management profiles where available
- Notate available OpenSlide functions in low-level API
- docs: Update OpenSlide 3.5.0 references to 4.0.0
- docs: Consolidate license information
- docs: Drop support for building with Sphinx < 1.6
- examples: Fix startup failure with Flask ≥ 2.3.0
- examples: Transform to sRGB (with absolute colorimetric intent) by default
- examples: Update OpenSeadragon to 4.1.0
- examples: Correctly import
openslideon Windows ifOPENSLIDE_PATHnot set - tests: Fix
pytestof installed package from source directory
- Drop support for Python < 3.7
- Support cache customization with OpenSlide 3.5.0
- Improve pixel read performance
- Clarify exception raised on Windows or macOS when OpenSlide can't be found
- Raise
OpenSlideVersionErrorwhen an operation requires a newer OpenSlide - Support
pathlib.Pathin filename arguments - Fix Pillow
Image.ANTIALIASdeprecation warning - docs: Add detailed installation instructions
- docs: Convert
READMEandCHANGELOGto Markdown - examples: Share cache among all multiserver slides, if supported
- examples: Fix
deepzoom_tile.py --viewerwith Jinja 3.x - examples: Read OpenSlide DLL path from
OPENSLIDE_PATHenv var on Windows - examples: Update OpenSeadragon to 3.0.0
- Fix install with setuptools ≥ 46
- Fix
ImportErrorwith Python 3.9 - Fix docs build with Sphinx 2.x
- Remove
--without-performanceinstall option
- Change default Deep Zoom tile size to 254 pixels
- Fix image reading with Pillow 3.x when installed
--without-performance - Fix reading ≥ 229 pixels per call
--without-performance - Fix some
unclosed fileResourceWarnings on Python 3 - Improve object reprs
- Add test suite
- examples: Drop support for Internet Explorer < 9
- Improve pixel read performance using optional extension module
- examples: Add scale bar via OpenSeadragonScalebar plugin
- examples: Update OpenSeadragon to 1.2.1
- examples: Enable rotation buttons in multiserver
- examples: Verify at server startup that file was specified
- examples: Disable pinch zoom outside of viewer
- Fix documentation build breakage
- Add documentation
- Switch from distutils to setuptools
- Declare Pillow dependency in
setup.py(but still support PIL)
- Fix breakage on Python 2.6
- examples: Fix tile server breakage on classic PIL
- Require OpenSlide 3.4.0
- Support Python 3
- Return Unicode strings on Python 2
- Replace
OpenSlide.can_open()withOpenSlide.detect_format() - Optionally generate Deep Zoom tiles only for the non-empty slide region
- Fix Deep Zoom tile positioning bug affecting Aperio slides
- Fix library loading with MacPorts
- Propagate open errors from
openslide.open_slide() - examples: Add multiple-slide Deep Zoom server
- examples: Enable multithreading in tile servers
- examples: Avoid loading smallest Deep Zoom levels
- examples: Update OpenSeadragon to 1.0.0
- Require OpenSlide 3.3.0
- Rename
layertolevelthroughout API - Provide OpenSlide version in
openslide.__library_version__ - Properly report
openslide_open()errors on OpenSlide 3.3.0 - Fix library loading on Mac OS X
- Fix segfault if properties/associated images accessed after
OpenSlideis closed - Add methods to get Deep Zoom tile coordinates and dimensions
- Fix loading libopenslide on Windows
- Fix for large JPEG tiles in example Deep Zoom tilers
- Make example static tiler output self-contained
- Initial library release
- Example static Deep Zoom tiler and web viewer applications