All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added Changelog to docs (#227)
- Upgrade to libzim 9.5.1 and upgrade other Python dependencies, especially Cython 3.2.4 (#250)
- Fixed broken links in docs (#246)
- Maintenance upgrades (#237):
- Drop support of Python 3.9
- Add support for Python 3.14
- Upgrade dependencies, especially Cython 3.1.6
- Upgrade supported macOS to 14.0+ (instead of 13.0+)
- Add support for free-threaded CPython (3.13 and 3.14)
- Upgrade Github CI Actions
- Run tests on minimum supported platforms + more recent stable ones
- Fix various Cython warning and deprecation notices (#239)
- libzim 9.4.0 Cache Control API
- remove
Archive.dirent_lookup_cache_max_size, does not exists anymore in libzim - move
Archive.cluster_cache_max_sizeandArchive.cluster_cache_current_sizeto methods outside ofArchiveobject:get_cluster_cache_max_size,set_cluster_cache_max_size,get_cluster_cache_current_size(size is now in bytes) - deprecate usage of
get_illustration_sizes()
- remove
- Set up documentation using
mkdocs, published on readthedocs.com (#186) Archive.get_random_entry()- libzim 9.3.0 Cache Control API:
Archive.cluster_cache_max_sizeArchive.cluster_cache_current_sizeArchive.dirent_cache_max_sizeArchive.dirent_cache_current_sizeArchive.dirent_lookup_cache_max_size
- Using C++ libzim 9.3.0-1
- Support for Python 3.13 (#208)
delocatedependency only required on Windows platform
- Windows (x64) support (#91)
- Type stubs (#198)
- Using C++ libzim 9.2.3-2
- Support for Python 3.8 (EOL)
- New
Creator.add_aliasmethod for multiple entries pointing to same content
- Using C++ libzim 9.1.0
- Support for Python 3.12
- Support (and wheels) for musl/Alpine
- Using C++ libzim 9.0.0
- Added
cleancommand to setup.py to remove downloaded libzim
- Build with (and target) libzim 8.2.1
- Fixed setup checking download platform even when using own libzim (not downloading)
- Support for Python 3.7 (EOL)
- Revamped setup to create proper wheels and sdist out-of-the-box (
python3 -m build)- Build can now sign + notarize for macOS
- Build can now create macOS universal wheels
- Added cibuildwheel config
- Build with (and target) libzim 8.2.0
versionmodule withversion.get_versions()returning an OrderedDict of library:version inclusing libzimversion.print_versions()print it on stdout (or another fd)version.get_libzim_version()returns the libzim version only
Creator.add_metadatano longer transforms (~pascalize) name (#161)
writer.pascalizefunction
Archive.media_count- Python 3.11 Support
- Using libzim 8.1.0
- Exceptions in getIndexData dont crash interpreter (#153)
- Removed
lzmacompression option (#150)
- Using libzim 8.0.0
- Building with Cython 0.29.30
- Specifying max python version to 3.10.x in metadata
Archive.get_metadata_item()(#127)- Python 3.10 Support
- using libzim 7.2.2
- RuntimeError exception is now raised on invalid/duplicate entries
- Allow setting mimetype for metadata
- Updated Cython to 0.29.28
- Fixed
Archive.filesize(#137)
- skip cython on setup.py clean (#131)
OFFLINEenviron skips network-using tests (#132)
- using libzim 7.0.0
- Python 3.9 support
- [breaking] Using new libzim 7-based API for both reader and writer
- No more namespaces
- Defaulting to zstd compression
- https://github.com/openzim/libzim/blob/master/ChangeLog
- Rewrote all tests for new API ; using libzim's own test ZIM files to test reader
- Code-coverage now includes Cython code as well
- macOS releases are signed and notarized
- Early-failure on invalid destination ZIM path
- added compression argument to Creator to set compression algorithm (libzim.writer.Compression)
- Creator positional arguments order changed: min_chunk_size moved after compression
- Reader
get_suggestions_results_countrenamedget_estimated_suggestions_results_count(#71) - Reader
get_search_results_countrenamedget_estimated_search_results_count(#71) - Article subclasses must implement
get_size() - Fixed using
get_filename()(#71) - using libzim 6.1.8
- fixed access to bundled libzim on macOS (missing rpath)
- [reader] fixed
main_pageretrieval - [reader] provide access to redirect target via
get_redirect_article()(#51) - [reader] fixed
ReadArticle.__repr__(#37) - [reader] raising
IndexErrorandKeyErroron incorrect url/ID (#38) - [reader]
File.get_metadata()now returnsbytes(#30) - [reader] cleaner reader API
- added/fixed all docstrings, including annotations
Filecan be used as a contextmanagerFile.get_namespaces_count()renamed toget_namespace_count()
- [writer] removed ZIM filename printed on stdout at Creator init
- [writer] Creator now closed upon deletion (#31)
- [writer]
min_chunk_sizeandindex_languagenow optional at Creator init (#29) - [writer] Creator now uses
pathlib.Pathforfilename(#45) - [writer] cleaner Creator API
- added/fixed all docstrings, including annotations
- added
_closedproperty - removed
_get_counter_string() - removed
write_metadata() - removed
_update_article_counter)_ - removed
pascalize() update_metadata()acceptsdatetime.datetimeforDate
- [writer] exceptions in
Articlemethods now forwarded to python (asRuntimeErrorwith details in message) - [writer] fixed creation of redirect from
Article(get_redirect_url()) - added macOS support (#35)
- building with Cython 0.29.20+
- using libzim 6.1.7
- initial release
- using libzim 6.1.6