[bugfix]Adapt the method of writing objects to the database. #404
+137
−47
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.
Title: Enhance Result-Capturing Decorator to Handle Both Single Objects and Lists
Description:
This PR improves the logic of the result-capturing decorator (used in
proj_process) to correctly handle two common return patterns:Previously, the decorator assumed
_projalways contained a list. Passing a single object would cause unexpected iteration (e.g., over dictionary keys) or runtime errors.Changes:
_ensure_list()utility to normalize input: wraps non-list inputs into a single-item list while preserving actual lists._to_dict()to safely convert common object types (dicts, dataclasses, namedtuples, and regular objects with__dict__) into dictionaries.proj_processto use these utilities, ensuring robust ingestion into the database regardless of whether the source returns one item or many.Test:
