fix(core): Enhance BaseComponent serialization with robust unpickling and validation #17199
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR improves the serialization/deserialization mechanism in the
BaseComponent
class by enhancing the__setstate__
method with better handling of unpickleable attributes and state validation. The changes prevent potential data corruption issues and provide better error reporting during object reconstruction.Key improvements:
New Package?
Did I fill in the
tool.llamahub
section in thepyproject.toml
and provide a detailed README.md for my new integration or package?Version Bump?
Did I bump the version in the
pyproject.toml
file of the package I am updating? (Except for thellama-index-core
package)Type of Change
How Has This Been Tested?
The changes are covered by existing tests in:
tests/schema/test_base_component.py
tests/schema/test_schema.py
All tests pass successfully, including serialization/deserialization tests.
Suggested Checklist:
make format; make lint
to appease the lint gods