# {py:mod}`feedback_forensics.data.loader`

```{py:module} feedback_forensics.data.loader
```

```{autodoc2-docstring} feedback_forensics.data.loader
:allowtitles:
```

## Module Contents

### Functions

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

* - {py:obj}`load_json_file <feedback_forensics.data.loader.load_json_file>`
  - ```{autodoc2-docstring} feedback_forensics.data.loader.load_json_file
    :summary:
    ```
* - {py:obj}`convert_vote_to_string <feedback_forensics.data.loader.convert_vote_to_string>`
  - ```{autodoc2-docstring} feedback_forensics.data.loader.convert_vote_to_string
    :summary:
    ```
* - {py:obj}`get_votes_dict <feedback_forensics.data.loader.get_votes_dict>`
  - ```{autodoc2-docstring} feedback_forensics.data.loader.get_votes_dict
    :summary:
    ```
* - {py:obj}`add_virtual_annotators <feedback_forensics.data.loader.add_virtual_annotators>`
  - ```{autodoc2-docstring} feedback_forensics.data.loader.add_virtual_annotators
    :summary:
    ```
* - {py:obj}`get_votes_dict_from_annotated_pairs_json <feedback_forensics.data.loader.get_votes_dict_from_annotated_pairs_json>`
  - ```{autodoc2-docstring} feedback_forensics.data.loader.get_votes_dict_from_annotated_pairs_json
    :summary:
    ```
* - {py:obj}`_check_for_nondefault_annotators <feedback_forensics.data.loader._check_for_nondefault_annotators>`
  - ```{autodoc2-docstring} feedback_forensics.data.loader._check_for_nondefault_annotators
    :summary:
    ```
* - {py:obj}`_remove_empty_response_comparisons <feedback_forensics.data.loader._remove_empty_response_comparisons>`
  - ```{autodoc2-docstring} feedback_forensics.data.loader._remove_empty_response_comparisons
    :summary:
    ```
* - {py:obj}`create_votes_dict_from_icai_log_files <feedback_forensics.data.loader.create_votes_dict_from_icai_log_files>`
  - ```{autodoc2-docstring} feedback_forensics.data.loader.create_votes_dict_from_icai_log_files
    :summary:
    ```
````

### API

````{py:function} load_json_file(path: str)
:canonical: feedback_forensics.data.loader.load_json_file

```{autodoc2-docstring} feedback_forensics.data.loader.load_json_file
```
````

````{py:function} convert_vote_to_string(vote: bool | None) -> str
:canonical: feedback_forensics.data.loader.convert_vote_to_string

```{autodoc2-docstring} feedback_forensics.data.loader.convert_vote_to_string
```
````

````{py:function} get_votes_dict(results_path: pathlib.Path, cache: dict | None = None) -> dict
:canonical: feedback_forensics.data.loader.get_votes_dict

```{autodoc2-docstring} feedback_forensics.data.loader.get_votes_dict
```
````

````{py:function} add_virtual_annotators(votes_dict: dict, cache: dict | None, dataset_cache_key: pathlib.Path, reference_models: list | None, target_models: list | None) -> dict
:canonical: feedback_forensics.data.loader.add_virtual_annotators

```{autodoc2-docstring} feedback_forensics.data.loader.add_virtual_annotators
```
````

````{py:function} get_votes_dict_from_annotated_pairs_json(results_path: pathlib.Path) -> dict
:canonical: feedback_forensics.data.loader.get_votes_dict_from_annotated_pairs_json

```{autodoc2-docstring} feedback_forensics.data.loader.get_votes_dict_from_annotated_pairs_json
```
````

````{py:function} _check_for_nondefault_annotators(df: pandas.DataFrame) -> dict
:canonical: feedback_forensics.data.loader._check_for_nondefault_annotators

```{autodoc2-docstring} feedback_forensics.data.loader._check_for_nondefault_annotators
```
````

````{py:function} _remove_empty_response_comparisons(df: pandas.DataFrame) -> pandas.DataFrame
:canonical: feedback_forensics.data.loader._remove_empty_response_comparisons

```{autodoc2-docstring} feedback_forensics.data.loader._remove_empty_response_comparisons
```
````

````{py:function} create_votes_dict_from_icai_log_files(results_dir: pathlib.Path) -> list[dict]
:canonical: feedback_forensics.data.loader.create_votes_dict_from_icai_log_files

```{autodoc2-docstring} feedback_forensics.data.loader.create_votes_dict_from_icai_log_files
```
````
