Skip to content

result

BaseResult

Bases: BaseModel

Source code in docprompt/tasks/result.py
class BaseResult(BaseModel):
    provider_name: str = Field(
        description="The name of the provider which produced the result"
    )
    when: datetime = Field(
        default_factory=datetime.now, description="The time the result was produced"
    )

    task_name: ClassVar[str]

    @property
    def task_key(self):
        return f"{self.provider_name}_{self.task_name}"

    @abstractmethod
    def contribute_to_document_node(
        self, document_node: "DocumentNode", **kwargs
    ) -> None:
        """
        Contribute this task result to the document node or a specific page node.

        :param document_node: The DocumentNode to contribute to
        :param page_number: If provided, contribute to a specific page. If None, contribute to the document.
        """

contribute_to_document_node(document_node, **kwargs) abstractmethod

Contribute this task result to the document node or a specific page node.

:param document_node: The DocumentNode to contribute to :param page_number: If provided, contribute to a specific page. If None, contribute to the document.

Source code in docprompt/tasks/result.py
@abstractmethod
def contribute_to_document_node(
    self, document_node: "DocumentNode", **kwargs
) -> None:
    """
    Contribute this task result to the document node or a specific page node.

    :param document_node: The DocumentNode to contribute to
    :param page_number: If provided, contribute to a specific page. If None, contribute to the document.
    """

ResultContainer

Bases: BaseModel, Generic[PageOrDocumentTaskResult]

Represents a container for results of a task

Source code in docprompt/tasks/result.py
class ResultContainer(BaseModel, Generic[PageOrDocumentTaskResult]):
    """
    Represents a container for results of a task
    """

    results: Dict[str, PageOrDocumentTaskResult] = Field(
        description="The results of the task, keyed by provider", default_factory=dict
    )

    @property
    def result(self):
        return next(iter(self.results.values()), None)