Skip to content

Releases: allen2c/dictpress

v0.3.0

30 Jul 13:38
b72263f

Choose a tag to compare

🎉 dictpress v0.3.0: Zero-Dependency Power-Up! ⚡

🚀 What's New

  • Version bump: 0.2.00.3.0 🆙
  • Zero dependencies: Dropped python-benedict and all its friends! 🎊
  • Pure Python: Now 100% self-contained with custom implementations 💪

🔧 Core Improvements

  • Enhanced flatten/unflatten: Now handles non-string keys like a champ! 🔑
  • Better key handling: Non-string keys are preserved during round-trips 🔄
  • Case-insensitive search: More robust get_deep with proper key type checking 🔍

🧪 New Tests Added

  • test_set_deep_overwrite() - Verify overwrite behavior ✏️
  • test_flatten_dict_non_string_key() - Non-string key preservation 🎯
  • test_round_trip_with_non_string_keys() - Full round-trip validation 🎪

📦 Dependency Cleanup

  • Removed: python-benedict, python-fsutil, python-slugify, text-unidecode
  • Updated: coverage, docutils, pbs-installer, rich (dev dependencies)
  • Simplified: Clean requirements.txt with no runtime deps! ✨

🎯 Breaking Changes

None! All existing functionality remains intact while adding new superpowers 🦸‍♂️

Ready to merge! 🚢

What's Changed

Full Changelog: v0.2.0...v0.3.0

v0.2.0

22 Jul 07:45
b7c15e6

Choose a tag to compare

🚀 Release v0.2.0: Deep Access Functions

✨ What's New

This release introduces two powerful new functions for working with nested dictionaries:

🔍 get_deep() - Smart Value Retrieval

  • Exact matching: get_deep(data, "user.profile.name")
  • Suffix matching: get_deep(data, "name") finds any key ending with .name
  • Case-insensitive option: case_sensitive=False parameter
  • Default values: Built-in fallback support

✏️ set_deep() - Immutable Value Setting

  • Dot notation: set_deep(data, "user.profile.name", "Alice")
  • Auto-nesting: Creates intermediate dictionaries as needed
  • Immutable: Returns new dict without modifying original
  • JSON-safe: Maintains serializable data structures [[memory:3975571]]

📦 Package Improvements

  • 🏷️ Version management: Added VERSION file and dynamic version loading
  • 🔗 Better discoverability: Added repository and PyPI links to README and pyproject.toml
  • 📚 Enhanced docs: Updated usage examples and API reference
  • Comprehensive tests: Full test coverage including edge cases

📋 Files Changed

  • dictpress/__init__.py - Core functionality additions
  • README.md - Updated documentation and examples
  • pyproject.toml - Version bump and project URLs
  • tests/test_readme_usages.py - Extensive test coverage
  • dictpress/VERSION - Version file for dynamic loading

🎯 Migration

Fully backward compatible! Existing code continues to work unchanged. New functions are available immediately:

from dictpress import get_deep, set_deep  # New functions
from dictpress import flatten_dict, unflatten_dict, merge  # Existing functions

What's Changed

New Contributors

Full Changelog: v0.1.0...v0.2.0

v0.1.0

21 Jul 10:06

Choose a tag to compare