Skip to content

v2.3.2 — DotDict Gets Its Groove Back

Latest

Choose a tag to compare

@speedyk-005 speedyk-005 released this 02 Jun 22:11
· 2 commits to main since this release

v2.3.2 — DotDict Gets Its Groove Back

What happened

v2.3.0 replaced python-box with dotdict3 for a 12x speedup, but dropped all serialization methods. .to_dict() calls in the CLI and user code would crash with AttributeError. This release fixes that — we vendored dotdict3 in-tree and added back all the Box-compatible serialization methods.

What's new

  • DotDict.to_dict() — recursive conversion to plain dicts/lists
  • DotDict.to_json() — JSON string or file (stdlib, zero deps)
  • DotDict.to_yaml() — YAML string or file (needs pyyaml)
  • DotDict.to_toml() — TOML string or file (needs toml)
  • DotDict.to_msgpack() — msgpack bytes or file (needs msgpack)

Performance

to_dict() is 2.3x faster than python-box's equivalent (8.44µs vs 19.23µs per op), since we're not dragging in SphinxBox, configBox, and the rest of python-box's feature creep.

Breaking changes

  • dotdict3 is no longer a dependency — if you were importing from dotdict3 import DotDict directly in your code, change to from chunklet.common.dotdict import DotDict

What's gone

  • External dotdict3 dependency (vendored in chunklet.common.dotdict)
  • Stale "Box" references in docs (now pointing to auto-generated API docs)

Full changelog

https://github.com/speedyk-005/chunklet-py/blob/main/CHANGELOG.md#232