New Features and Improvements
1. **Note Class Enhancements**
- New `update()` method signature: `update(self, indices, *args, filter=None, overwrite=True, dict_sequence=True, sort_list=False, custom_sort=None)`
- Allows merging multiple dictionaries or Notes
- Optional filtering of values during update
- Control over key conflicts with `overwrite` and `dict_sequence` parameters
- Unified index handling: All methods now use `to_list()` for consistent index processing
- Performance optimization for nested structure operations
2. **Pile Class Refinements**
- Introduced `PILE_KEY_TYPE = int | str | slice` for improved type consistency
- Simplified async methods: Removed redundant overloads for `asetitem`, `apop`, `ainclude`, and `aexclude`
- Enhanced type annotations for better static type checking
3. **Flow Class Updates**
- Improved type hints for method parameters and return values
- Refined `__init__` method signature for clearer instantiation
4. **Global Type Hinting Improvements**
- Added or updated type hints in `BaseLog`, `Edge`, and various utility functions
- Consistent use of `Any` type where appropriate
Breaking Changes
1. **Note Class**
- `update()` method now requires `indices` as the first parameter
- Changed behavior for nested updates: use new `indices` parameter to specify update location
2. **Pile Class**
- `__setitem__`, `pop`, and `get` methods now use `PILE_KEY_TYPE` instead of separate `int | str | slice`
- Async method signatures changed (e.g., `asetitem`, `apop`)
Migration Guide
1. For `Note.update()` calls, add the indices as the first argument. Use an empty list `[]` to update at the root level:
python
Old: note.update({"key": "value"})
New:
note.update([], {"key": "value"})
2. Review all `Pile` async method calls, ensuring they comply with the new signatures.
3. Check your type annotations against the updated method signatures in `Note`, `Pile`, and `Flow` classes.
Performance Improvements
- Optimized `Note` class operations for faster handling of nested structures
- Improved `Pile` class efficiency, especially for asynchronous operations
Bug Fixes
- Fixed inconsistent behavior in `Note` class when handling nested updates
- Resolved type-related issues in `Pile` and `Flow` classes
We strongly recommend updating to this version to benefit from these improvements and to ensure compatibility with future releases.