Skip to content

Releases: strawgate/py-key-value

0.3.0: The Store is now Open

17 Nov 16:46
6736113

Choose a tag to compare

Unstable stores may have had breaking changes to how they store data.

🚀 New Features & Storage Backends

  • New Stores: Added support for DuckDB and FileTreeStore.
  • Routing Wrappers: Introduced RoutingWrapper and CollectionRoutingWrapper to manage request routing between stores.
  • Dataclasses: Added DataclassAdapter utilizing Pydantic TypeAdapter for better object serialization.

⚡ Core API & Architecture

  • Lifecycle Management: Refactored client ownership to better handle store lifecycle (setup/teardown). If you provide a client you own entering / exiting it.
  • Serialization Updates: Serialized documents now explicitly include key, collection, and version fields.
  • Input Refactoring: Switched input parameters from strict dict/list to abstract Mapping/Sequence for better compatibility.
  • Batch Operations: put_many now requires a single TTL for all items in the batch, rather than individual TTLs.
  • Sanitization: Introduced SanitizationStrategy for configurable input cleaning during store initialization. Stores no long sanitize by default, you must select the sanitization method when providing the store.

🛡️ Reliability & Type Safety

  • Runtime Enforcement: extensive application of BearType across Stores, Wrappers, and utility functions to enforce runtime type safety.
  • Bug Fixes: Resolved critical bugs regarding Memory Store TTL, Windows Registry operations, and DynamoDB TTL creation.
  • Relaxed Dependencies: Loosened version constraints for pymongo, elasticsearch, cachetools, and diskcache.

0.2.8: 🔒 Encrypted 🪟 Windows

24 Oct 13:27
153abc5

Choose a tag to compare

What's Changed

  • Add FernetEncryptionWrapper
  • Add Windows Registry store

Full Changelog: 0.2.7...0.2.8

0.2.7: Add Encryption Wrapper

23 Oct 13:06
6c46b5b

Choose a tag to compare

What's Changed

  • Add EncryptionWrapper for securing stored values by @Copilot in #75

Full Changelog: 0.2.6...0.2.7

0.2.6: ⤵️ Down with Redis

21 Oct 16:27
27d9251

Choose a tag to compare

What's Changed

  • fix bearspray type checking by @strawgate in #65
  • Add aws_session_token parameter to DynamoDBStore for IAM role assumption support by @Copilot in #69
  • Loosen redis version constraint from >=6.0.0 to >=4.3.0 by @Copilot in #68
  • Bump to 0.2.6 by @strawgate in #72

Full Changelog: 0.2.5...0.2.6

0.2.5: Sync don't sink

16 Oct 16:53
4781120

Choose a tag to compare

pin the shared dep to the same version as the package version

Full Changelog: 0.2.4...0.2.5

0.2.4: Stores and Wrappers

16 Oct 16:39
d2f2116

Choose a tag to compare

What's Changed

Full Changelog: 0.2.2...0.2.4

0.2.2: Keep it a secret, okay?

14 Oct 18:08
2040b11

Choose a tag to compare

What's Changed

  • Add Apache 2.0 LICENSE file and py.typed markers to all packages by @Copilot in #36
  • Add beartype when developing, fix various float vs int violations, add sequence support to pydantic adapter by @strawgate in #35
  • Add KeyRing Store for secret storage by @strawgate in #38

New Contributors

  • @Copilot made their first contribution in #36

Full Changelog: 0.2.1...0.2.2

0.2.1: Add validation error controls to Pydantic Adapter

09 Oct 03:23
9df81ef

Choose a tag to compare

What's Changed

  • Add-raise-on-validation-error to Pydantic Adapter by @strawgate in #27

Full Changelog: 0.2.0...0.2.1

0.2.0: 🎂 100 hours old

29 Sep 02:25
81bdc3e

Choose a tag to compare

What's Changed

  • Stabilize the Protocol and implement add't Stores by @strawgate in #16

Full Changelog: 0.1.2...0.2.0

0.1.2: Fixes for 🥧dantic Adapter

25 Sep 01:41
5fecbdb

Choose a tag to compare

What's Changed

  • Fix pydantic adapter model dump to use json mode by @strawgate in #5

Full Changelog: 0.1.1...0.1.2