- Add support for
whence=2
inPackedObjectReader.seek
[5515ab6] - Add support for changing compression when repacking, and add auto compression heuristics [599e87c]
- Improve efficiency when accessing packed compressed objects [10edd63]
-
A number of API methods changed the return type from bare dictionaries to dataclass instances [7a63462]
Container.get_object_stream_and_meta -> ObjectMeta
Container.get_objects_meta -> ObjectMeta
Container.get_object_meta -> ObjectMeta
Container.count_objects -> ObjectCount
Container.get_total_size -> TotalSize
Container.validate -> ValidationIssues
The dataclasses are importable from
disk_objectstore.dataclasses
. -
A number of API methods replaced using
os.path
withstr
paths, forpathlib.Path
[df96142] The following methods now return apathlib.Path
instance:Container.get_folder
LazyOpener.path
-
Various improvements to docs and code [5ba9316]
- Moving documentation to
sphinx+myst
[2002f3c] - Adopt PEP 621 and move build spec to
pyproject.toml
[4bd0c4e] - Make types more permissive [c012056]
- Add Python 3.11 support [afdae26]
- Unpin
sqlalchemy
adding support for>=1.4.22
[a2a987f] - Removed uneeded
ablog
dependencies [8165f58]
- ⬆️ UPGRADE: Remove Python support for 3.5 and 3.6, and add support for 3.9.
- ⬆️ UPGRADE: SQLAlchemy v1.4 (with v2 API) [#114]
- ✨ NEW: Add basic CLI [#117] (see README.md for details)
- 🔧 MAINTAIN: Add type annotations and mypy type checking [#113]
- Various general (but very important) speed improvements [#96] [#102]
- Add callbacks to a number of functions (e.g. export, add_objects_to_pack, ... to allow showing progress bars or similar indicators [#96]
- Implement repacking (at least when not changing hashing or compression) [#96]
- Remove
export
function, implementimport_objects
function instead, to be called on the other side (it's more efficient) [#96] - Add support for VACUUMing operations on the SQLite database (very important for efficiency) [#96]
- Add support for multiple hashing algorithms [#96]
- Add concept of (unique)
container_id
[#97] - Generalize the compression algorithm implementation, and multiple algorithms are supported now [#99]
- Major robustness improvements and new functionality (possibility to pack while using the repository, tested on all platforms)
- Not deleting loose files when packing; now there is a
clean_storage()
function to do it afterwards, as a maintenance operation - Backward-incompatible change to the Container format (now it expects a
duplicates
folder, so old repositories do not work out of the box) - Added various functionality to delete objects, validate the packs, list all objects, possibility to seek() into returned objects
- Added continuous-integation benchmarks
- Various bugfixes
- Changed the logic of packing: now packs are not determined anymore from the first few characters of the UUID/hash, but they are sequential integers with capped max size
- Complete major rewrite of the library, where now objects are deduplicated and use a SHA256 hash to be identified. This is a backward-incompatible version, but provides much higher robustness and features, making it almost production ready (only a few useful functions need still to be implemented to facilitate repository management, like the option to perform a full repack of a repository.
- Improving testing and continuous integration, badges, and homepage
- Rename of the project and implementation of a number of functions
- This is the very first version. Uses random UUIDs to identify objects.