# {py:mod}`feedback_forensics.data.operations.merge`

```{py:module} feedback_forensics.data.operations.merge
```

```{autodoc2-docstring} feedback_forensics.data.operations.merge
:allowtitles:
```

## Module Contents

### Functions

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`merge_ap <feedback_forensics.data.operations.merge.merge_ap>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge.merge_ap
    :summary:
    ```
* - {py:obj}`_categorize_comparisons <feedback_forensics.data.operations.merge._categorize_comparisons>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._categorize_comparisons
    :summary:
    ```
* - {py:obj}`_merge_single_comparison <feedback_forensics.data.operations.merge._merge_single_comparison>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_single_comparison
    :summary:
    ```
* - {py:obj}`_merge_value <feedback_forensics.data.operations.merge._merge_value>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_value
    :summary:
    ```
* - {py:obj}`_merge_dict <feedback_forensics.data.operations.merge._merge_dict>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_dict
    :summary:
    ```
* - {py:obj}`_merge_prompt <feedback_forensics.data.operations.merge._merge_prompt>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_prompt
    :summary:
    ```
* - {py:obj}`_merge_response <feedback_forensics.data.operations.merge._merge_response>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_response
    :summary:
    ```
* - {py:obj}`_merge_annotations <feedback_forensics.data.operations.merge._merge_annotations>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_annotations
    :summary:
    ```
* - {py:obj}`_merge_comparison_metadata <feedback_forensics.data.operations.merge._merge_comparison_metadata>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_comparison_metadata
    :summary:
    ```
* - {py:obj}`_merge_annotators <feedback_forensics.data.operations.merge._merge_annotators>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_annotators
    :summary:
    ```
* - {py:obj}`_merge_name_or_description <feedback_forensics.data.operations.merge._merge_name_or_description>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_name_or_description
    :summary:
    ```
* - {py:obj}`_merge_default_annotator <feedback_forensics.data.operations.merge._merge_default_annotator>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_default_annotator
    :summary:
    ```
* - {py:obj}`_merge_metadata <feedback_forensics.data.operations.merge._merge_metadata>`
  - ```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_metadata
    :summary:
    ```
````

### API

````{py:function} merge_ap(first_data: typing.Dict[str, typing.Any], second_data: typing.Dict[str, typing.Any], dataset_name: typing.Optional[str] = None, description: typing.Optional[str] = None) -> typing.Dict[str, typing.Any]
:canonical: feedback_forensics.data.operations.merge.merge_ap

```{autodoc2-docstring} feedback_forensics.data.operations.merge.merge_ap
```
````

````{py:function} _categorize_comparisons(comps1: typing.List[typing.Dict], comps2: typing.List[typing.Dict]) -> typing.Tuple[typing.List[typing.Tuple[int, int]], typing.List[int], typing.List[int]]
:canonical: feedback_forensics.data.operations.merge._categorize_comparisons

```{autodoc2-docstring} feedback_forensics.data.operations.merge._categorize_comparisons
```
````

````{py:function} _merge_single_comparison(comp1: typing.Dict, comp2: typing.Dict) -> typing.Dict
:canonical: feedback_forensics.data.operations.merge._merge_single_comparison

```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_single_comparison
```
````

````{py:function} _merge_value(value1: typing.Any, value2: typing.Any, context: str, strict: bool) -> typing.Any
:canonical: feedback_forensics.data.operations.merge._merge_value

```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_value
```
````

````{py:function} _merge_dict(dict1: typing.Dict, dict2: typing.Dict, context: str, strict: bool) -> typing.Dict
:canonical: feedback_forensics.data.operations.merge._merge_dict

```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_dict
```
````

````{py:function} _merge_prompt(comp1: typing.Dict, comp2: typing.Dict) -> typing.Optional[str]
:canonical: feedback_forensics.data.operations.merge._merge_prompt

```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_prompt
```
````

````{py:function} _merge_response(comp1: typing.Dict, comp2: typing.Dict, field_name: str) -> typing.Optional[typing.Dict]
:canonical: feedback_forensics.data.operations.merge._merge_response

```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_response
```
````

````{py:function} _merge_annotations(comp1: typing.Dict, comp2: typing.Dict) -> typing.Dict
:canonical: feedback_forensics.data.operations.merge._merge_annotations

```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_annotations
```
````

````{py:function} _merge_comparison_metadata(comp1: typing.Dict, comp2: typing.Dict) -> typing.Dict
:canonical: feedback_forensics.data.operations.merge._merge_comparison_metadata

```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_comparison_metadata
```
````

````{py:function} _merge_annotators(ann1: typing.Dict, ann2: typing.Dict) -> typing.Dict
:canonical: feedback_forensics.data.operations.merge._merge_annotators

```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_annotators
```
````

````{py:function} _merge_name_or_description(value1: typing.Optional[str], value2: typing.Optional[str]) -> typing.Optional[str]
:canonical: feedback_forensics.data.operations.merge._merge_name_or_description

```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_name_or_description
```
````

````{py:function} _merge_default_annotator(annotator1: typing.Optional[str], annotator2: typing.Optional[str]) -> typing.Optional[str]
:canonical: feedback_forensics.data.operations.merge._merge_default_annotator

```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_default_annotator
```
````

````{py:function} _merge_metadata(meta1: typing.Dict, meta2: typing.Dict) -> typing.Dict
:canonical: feedback_forensics.data.operations.merge._merge_metadata

```{autodoc2-docstring} feedback_forensics.data.operations.merge._merge_metadata
```
````
