From f93b7686c3e59e0f6636d1dd8dda3325fa5e275a Mon Sep 17 00:00:00 2001 From: Igor Ilic <30923996+dexters1@users.noreply.github.com> Date: Wed, 17 Sep 2025 11:14:05 +0200 Subject: [PATCH] fix: Resolve issue with Data object serialization (#1407) ## Description Enable Data object serialization when returning PipelineRunInfo type objects in backend ## Type of Change - [ ] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Code refactoring - [ ] Performance improvement - [ ] Other (please specify): ## Changes Made - - - ## Testing ## Screenshots/Videos (if applicable) ## Pre-submission Checklist - [ ] **I have tested my changes thoroughly before submitting this PR** - [ ] **This PR contains minimal changes necessary to address the issue/feature** - [ ] My code follows the project's coding standards and style guidelines - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] I have added necessary documentation (if applicable) - [ ] All new and existing tests pass - [ ] I have searched existing PRs to ensure this change hasn't been submitted already - [ ] I have linked any relevant issues in the description - [ ] My commits have clear and descriptive messages ## Related Issues ## Additional Notes ## DCO Affirmation I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin. --- cognee/modules/pipelines/models/PipelineRunInfo.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cognee/modules/pipelines/models/PipelineRunInfo.py b/cognee/modules/pipelines/models/PipelineRunInfo.py index 5f5a91c34..2a1da34cc 100644 --- a/cognee/modules/pipelines/models/PipelineRunInfo.py +++ b/cognee/modules/pipelines/models/PipelineRunInfo.py @@ -1,6 +1,7 @@ -from typing import Any, Optional +from typing import Any, Optional, List, Union from uuid import UUID from pydantic import BaseModel +from cognee.modules.data.models.Data import Data class PipelineRunInfo(BaseModel): @@ -8,11 +9,15 @@ class PipelineRunInfo(BaseModel): pipeline_run_id: UUID dataset_id: UUID dataset_name: str - payload: Optional[Any] = None + # Data must be mentioned in typing to allow custom encoders for Data to be activated + payload: Optional[Union[Any, List[Data]]] = None data_ingestion_info: Optional[list] = None model_config = { "arbitrary_types_allowed": True, + "from_attributes": True, + # Add custom encoding handler for Data ORM model + "json_encoders": {Data: lambda d: d.to_json()}, }