Skip to content

Releases: dClimate/py-hamt

v2.2.0 - Transformers plugins, encryption, and IPFS network debugging information

18 Feb 18:58
9fe5ab5
Compare
Choose a tag to compare

Added transformer plugin to HAMT

Now users can plug in arbitrary transformers that change data before it is sent the HAMT's backing store, e.g. IPFS.

Zarr partial encryption transformers

There is a transformer plugin to create encrypted Zarrs. It is possible to also create partially encrypted Zarrs, which can be loaded and read normally without an encryption key, such that only specific variables will need the encryption key.

IPFS Network Debug Stats

You can now enable debug=True in constructing IPFSStore to collect stats about the amount of data sent and retrieved from IPFS.

HAMT hash indexing bug fix

Previously, py-hamt started indexing from the second byte of a hash when navigating the tree, rather than starting from the first as it should. This release fixes this. This also means previously created HAMTs will not work with this release.

Detailed List of What's Changed

Full Changelog: v2.0.4...v2.2.0

v2.0.4

08 Jan 21:00
76deec0
Compare
Choose a tag to compare

Bug fix release, addresses #15

What's Changed

  • Reimplement lru with python dictionary insertion order by @abidsikder in #16

Full Changelog: v2.0.3...v.2.0.4

v2.0.3

19 Dec 22:41
0867b85
Compare
Choose a tag to compare

Mostly bug fixes, added through the below PRs:

  • Allow for specifying whether to pin in IPFSStore, this previously pinned all objects on IPFS which would result in undesired behavior #10
  • Other bug fixes #13

py-hamt Version 2

12 Dec 16:23
aff9aaf
Compare
Choose a tag to compare

This release refactors and rewrites pretty much the entire library, with a focus on consolidating usage from ipldstore as well as rigorous testing. The version number was bumped due to the incompatible API changes.

Here's an overview of major changes

  • py-hamt now functions as a general MutableMapping, allowing for familiar usage patterns like python dicts.
  • documentation is now automatically generated and uploaded to our github pages, and is thorough.
  • py-hamt provides the ability to store data on IPFS in a HAMT out of the box with its IPFSStore

Internally

  • The data structure now only uses one type of Node, greatly simplifying implementation and reducing the overall amount of code
  • uv is used for project management
  • ruff is used for code formatting and linting
  • we now use fuzz testing and 100% code coverage, which allows for higher confidence from users

Align with js-ipld-hashmap

16 Mar 19:27
0dff1ca
Compare
Choose a tag to compare
  1. Change fields in HAMT config to use camelCase
  2. Change internal representation of keys within HAMT from str to bytes

Initial release

07 Mar 18:26
08e9fe2
Compare
Choose a tag to compare

Python version of HAMT based on rvagg's JS implementation