feedback_forensics.data.operations.merge#
Merge operation for AnnotatedPairs datasets.
Module Contents#
Functions#
Merge two AnnotatedPairs datasets. |
|
Categorize comparisons between datasets by ID overlap. |
|
Merge two comparisons, first takes precedence in conflicts. |
|
Generic value merging with conflict checking. |
|
Generic dictionary merging with optional strict conflict checking. |
|
Merge prompt strings from two comparisons, raising on conflicts. |
|
Merge response objects from two comparisons, raising on conflicts. |
|
Merge annotation dictionaries from two comparisons, warning on conflicts. |
|
Merge comparison-level metadata from two comparisons, detecting conflicts. |
|
Merge annotator definitions, first takes precedence. |
|
Merge name or description fields, reusing if identical or creating combined name. |
|
Merge default annotator fields with first precedence and warning on disagreement. |
|
Create merged metadata. |
API#
- feedback_forensics.data.operations.merge.merge_ap(first_data: Dict[str, Any], second_data: Dict[str, Any], dataset_name: Optional[str] = None, description: Optional[str] = None) Dict[str, Any]#
Merge two AnnotatedPairs datasets.
Args: first_data: First AnnotatedPairs dataset (takes precedence in conflicts) second_data: Second AnnotatedPairs dataset dataset_name: Override dataset name for merged result description: Override description for merged result
Returns: Merged AnnotatedPairs data structure
Raises: ValueError: If inputs are invalid
- feedback_forensics.data.operations.merge._categorize_comparisons(comps1: List[Dict], comps2: List[Dict]) Tuple[List[Tuple[int, int]], List[int], List[int]]#
Categorize comparisons between datasets by ID overlap.
Returns: Tuple of: - paired: List of (first_idx, second_idx) tuples for matches - first_only: List of indices only in first dataset - second_only: List of indices only in second dataset
- feedback_forensics.data.operations.merge._merge_single_comparison(comp1: Dict, comp2: Dict) Dict#
Merge two comparisons, first takes precedence in conflicts.
- feedback_forensics.data.operations.merge._merge_value(value1: Any, value2: Any, context: str, strict: bool) Any#
Generic value merging with conflict checking.
- feedback_forensics.data.operations.merge._merge_dict(dict1: Dict, dict2: Dict, context: str, strict: bool) Dict#
Generic dictionary merging with optional strict conflict checking.
- feedback_forensics.data.operations.merge._merge_prompt(comp1: Dict, comp2: Dict) Optional[str]#
Merge prompt strings from two comparisons, raising on conflicts.
- feedback_forensics.data.operations.merge._merge_response(comp1: Dict, comp2: Dict, field_name: str) Optional[Dict]#
Merge response objects from two comparisons, raising on conflicts.
- feedback_forensics.data.operations.merge._merge_annotations(comp1: Dict, comp2: Dict) Dict#
Merge annotation dictionaries from two comparisons, warning on conflicts.
- feedback_forensics.data.operations.merge._merge_comparison_metadata(comp1: Dict, comp2: Dict) Dict#
Merge comparison-level metadata from two comparisons, detecting conflicts.
- feedback_forensics.data.operations.merge._merge_annotators(ann1: Dict, ann2: Dict) Dict#
Merge annotator definitions, first takes precedence.
- feedback_forensics.data.operations.merge._merge_name_or_description(value1: Optional[str], value2: Optional[str]) Optional[str]#
Merge name or description fields, reusing if identical or creating combined name.
- feedback_forensics.data.operations.merge._merge_default_annotator(annotator1: Optional[str], annotator2: Optional[str]) Optional[str]#
Merge default annotator fields with first precedence and warning on disagreement.
- feedback_forensics.data.operations.merge._merge_metadata(meta1: Dict, meta2: Dict) Dict#
Create merged metadata.