Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.1.7¶
Added¶
- JSON textarea editor in demo page replacing read-only data display
- Radio button selection for three example datasets (User Profile, E-commerce Data, API Response) and custom JSON input
- Consolidated path validation tests into
test_normalize_path.pywith new test cases for complex keys and None value handling
Fixed¶
- Fixed
normalize_path()converting all list path keys to strings, now preserves integer and other key types.
1.1.6¶
Added¶
- Interactive demo page powered by Pyodide - try nestedutils directly in your browser without installation
- Demo page includes examples for all core functions (
get_at,set_at,exists_at,delete_at) with real-time JSON editing - Added interactive demo badge and link to README
1.1.5¶
Changed¶
- Enhanced docstrings across all modules (
access.py,constants.py,enums.py,exceptions.py) with improved examples and detailed parameter descriptions - Improved API reference page structure to better organize documentation sections
- Comprehensive examples in enum docstrings for
PathErrorCodeandFillStrategy
1.1.4¶
Added¶
- Custom MkDocs theme overrides for enhanced SEO and social media integration
- Comprehensive meta tags including Open Graph and Twitter Card support for better link previews
- Structured data (JSON-LD) with SoftwareApplication schema for improved search engine visibility
- Dynamic keywords meta tag support that combines page-specific and global keywords
Changed¶
- Fixed Open Graph image URL in documentation to use correct repository path
- Synchronized keywords between
pyproject.tomlandmkdocs.ymlfor consistent SEO across PyPI and documentation - Configured MkDocs to use custom theme directory for template customization
1.1.3¶
Fixed¶
- Fixed CONTRIBUTING link in README to use absolute GitHub URL instead of relative path
1.1.2¶
Fixed¶
- Corrected package image link in README
1.1.1¶
Changed¶
- Updated documentation badge in README to include
/nestedutilspath
1.1.0¶
Added¶
exists_at()function to check if a path exists in nested data structures- Safety limits: Maximum path depth (100 levels) and maximum list index (10,000) to prevent resource exhaustion
- Comprehensive MkDocs documentation with Material theme
- CONTRIBUTING.md guide for contributors
- GitHub Actions workflow for automated documentation deployment
Changed¶
- BREAKING: Renamed API functions for consistency:
get_path()→get_at()set_path()→set_at()del_path()→delete_at()- Improved docstrings across all functions with detailed examples and parameter descriptions
- Enhanced path validation with better error messages for edge cases
- Refactored fill strategy handling using enums for better type safety
- Updated README with improved documentation and examples
Fixed¶
- Fixed bugs with negative index handling in
get_at(),set_at(), anddelete_at()methods - Improved validation in path normalization function
- Fixed edge cases with empty paths and empty keys
1.0.1¶
Added¶
- GitHub Actions workflow enhancement to automatically create releases on publish
Changed¶
- Updated package description for better clarity and discoverability
- Expanded keywords in
pyproject.tomlfor improved PyPI searchability - Updated README with enhanced description and OG image
1.0.0¶
Added¶
- Initial release of nestedutils
get_path()function for accessing nested values in dictionaries, listsset_path()function for setting nested values with automatic container creationdel_path()function for deleting nested values- Support for dot-notation string paths (
"a.b.c") and list paths (["a", "b", "c"]) - List index support with positive and negative indices
- Multiple fill strategies for
set_path(): "auto": Intelligently creates containers based on next key type"none": Fills missing list items withNone"dict": Always creates dictionaries"list": Always creates lists- Comprehensive error handling with
PathErrorexception andPathErrorCodeenum - Support for navigating through
Nonevalues (replaces with appropriate containers) - Sparse list creation when setting values at high indices
- Full test coverage with comprehensive test suite
Features¶
- Zero external dependencies
- Python 3.8+ compatibility
- Immutable container protection (tuples cannot be modified)
- Safe list deletion (requires explicit
allow_list_mutation=Trueflag)