class AnnotationResult
A dataclass that encapsulates the results of an annotation detection process on PDF documents, containing detected annotations, processing statistics, and a summary.
/tf/active/vicechatdev/e-ink-llm/annotation_detector.py
29 - 34
simple
Purpose
This dataclass serves as a structured container for the output of annotation detection operations. It aggregates all detected annotations (as AnnotationInfo objects), tracks the number of annotations found and pages processed, and provides a human-readable summary of the detection results. It's designed to be returned by annotation detection functions to provide comprehensive information about the detection process outcome.
Source Code
class AnnotationResult:
"""Result of annotation detection process"""
annotations: List[AnnotationInfo]
total_annotations: int
pages_processed: int
detection_summary: str
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
bases |
- | - |
Parameter Details
annotations: A list of AnnotationInfo objects representing all annotations detected during the processing. Each AnnotationInfo contains details about a single annotation found in the document.
total_annotations: An integer count of the total number of annotations detected across all processed pages. This provides a quick summary metric without needing to count the annotations list.
pages_processed: An integer indicating how many pages were analyzed during the annotation detection process. Useful for understanding the scope of the detection operation.
detection_summary: A string providing a human-readable summary of the detection results. Typically includes information about what was found, any issues encountered, or overall statistics in text form.
Return Value
When instantiated, returns an AnnotationResult object containing all the annotation detection results. This object is immutable by default (as a dataclass) and provides attribute access to all four fields: annotations (list), total_annotations (int), pages_processed (int), and detection_summary (str).
Class Interface
Methods
__init__(annotations: List[AnnotationInfo], total_annotations: int, pages_processed: int, detection_summary: str) -> None
Purpose: Initializes an AnnotationResult instance with detection results. Auto-generated by @dataclass decorator.
Parameters:
annotations: List of AnnotationInfo objects representing detected annotationstotal_annotations: Total count of annotations detectedpages_processed: Number of pages that were processeddetection_summary: Human-readable summary of the detection process
Returns: None (constructor)
__repr__() -> str
Purpose: Returns a string representation of the AnnotationResult instance. Auto-generated by @dataclass decorator.
Returns: String representation showing all field values
__eq__(other: object) -> bool
Purpose: Compares two AnnotationResult instances for equality based on all fields. Auto-generated by @dataclass decorator.
Parameters:
other: Another object to compare with
Returns: True if all fields are equal, False otherwise
Attributes
| Name | Type | Description | Scope |
|---|---|---|---|
annotations |
List[AnnotationInfo] | List containing all AnnotationInfo objects detected during the annotation detection process | instance |
total_annotations |
int | Integer count of the total number of annotations found across all processed pages | instance |
pages_processed |
int | Integer indicating the number of pages that were analyzed during the detection operation | instance |
detection_summary |
str | Human-readable string summary describing the results of the annotation detection process | instance |
Dependencies
typingdataclasses
Required Imports
from typing import List
from dataclasses import dataclass
Usage Example
from dataclasses import dataclass
from typing import List
# Assuming AnnotationInfo is defined elsewhere
# Create an AnnotationResult instance
result = AnnotationResult(
annotations=[annotation1, annotation2, annotation3],
total_annotations=3,
pages_processed=10,
detection_summary="Successfully detected 3 annotations across 10 pages"
)
# Access the results
print(f"Found {result.total_annotations} annotations")
print(f"Processed {result.pages_processed} pages")
print(result.detection_summary)
# Iterate through annotations
for annotation in result.annotations:
# Process each annotation
pass
Best Practices
- This is a dataclass, so it automatically generates __init__, __repr__, __eq__, and other methods. No need to manually implement these.
- The class is immutable by default unless frozen=True is explicitly set in the @dataclass decorator. Consider adding frozen=True if immutability is desired.
- Always ensure that the total_annotations count matches the length of the annotations list for consistency.
- The detection_summary should provide meaningful information about the detection process, including any warnings or errors encountered.
- When creating instances, ensure all four fields are provided as they are required (no default values are specified).
- This class is designed as a return type for annotation detection functions, not for direct manipulation of annotation data.
- The annotations list should contain only AnnotationInfo objects to maintain type consistency.
- Consider validating that pages_processed is a positive integer and total_annotations is non-negative when creating instances.
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
class AnnotationInfo 76.7% similar
-
class MultiPageAnalysisResult 71.6% similar
-
class AnalysisResult 71.4% similar
-
class AnalysisResult_v1 70.9% similar
-
class EditingWorkflowResult 69.4% similar