# Eido Built-in Filters API

## Overview

Eido provides built-in filter functions that can transform PEP projects into different output formats. These filters are useful for converting PEPs to various representations like YAML, CSV, or other formats.

### Available Filters

Eido includes several built-in filters for converting and exporting PEP data:

- **basic_pep_filter**: Returns the basic PEP representation
- **yaml_pep_filter**: Converts PEP to YAML format
- **csv_pep_filter**: Exports sample tables as CSV
- **yaml_samples_pep_filter**: Exports only sample data as YAML

## API Reference

### Filter Functions

<a id="eido.basic_pep_filter"></a>

### `basic_pep_filter`

```python
def basic_pep_filter(p, **kwargs) -> Dict[str, str]
```

Basic PEP filter, that does not convert the Project object.

This filter can save the PEP representation to file, if kwargs include `path`.

:param peppy.Project p: a Project to run filter on

<a id="eido.yaml_pep_filter"></a>

### `yaml_pep_filter`

```python
def yaml_pep_filter(p, **kwargs) -> Dict[str, str]
```

YAML PEP filter, that returns Project object representation.

This filter can save the YAML to file, if kwargs include `path`.

:param peppy.Project p: a Project to run filter on

<a id="eido.csv_pep_filter"></a>

### `csv_pep_filter`

```python
def csv_pep_filter(p, **kwargs) -> Dict[str, str]
```

CSV PEP filter, that returns Sample object representations

This filter can save the CSVs to files, if kwargs include
`sample_table_path` and/or `subsample_table_path`.

:param peppy.Project p: a Project to run filter on

<a id="eido.yaml_samples_pep_filter"></a>

### `yaml_samples_pep_filter`

```python
def yaml_samples_pep_filter(p, **kwargs) -> Dict[str, str]
```

YAML samples PEP filter, that returns only Sample object representations.

This filter can save the YAML to file, if kwargs include `path`.

:param peppy.Project p: a Project to run filter on
