# {py:mod}`haniwers.v1.preprocess.reader`

```{py:module} haniwers.v1.preprocess.reader
```

```{autodoc2-docstring} haniwers.v1.preprocess.reader
:allowtitles:
```

## Module Contents

### Functions

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

* - {py:obj}`load_csv_files <haniwers.v1.preprocess.reader.load_csv_files>`
  - ```{autodoc2-docstring} haniwers.v1.preprocess.reader.load_csv_files
    :summary:
    ```
* - {py:obj}`_has_valid_headers <haniwers.v1.preprocess.reader._has_valid_headers>`
  - ```{autodoc2-docstring} haniwers.v1.preprocess.reader._has_valid_headers
    :summary:
    ```
* - {py:obj}`validate_columns <haniwers.v1.preprocess.reader.validate_columns>`
  - ```{autodoc2-docstring} haniwers.v1.preprocess.reader.validate_columns
    :summary:
    ```
````

### API

````{py:function} load_csv_files(file_paths: typing.List[pathlib.Path]) -> polars.DataFrame
:canonical: haniwers.v1.preprocess.reader.load_csv_files

```{autodoc2-docstring} haniwers.v1.preprocess.reader.load_csv_files
```
````

````{py:function} _has_valid_headers(df: polars.DataFrame) -> bool
:canonical: haniwers.v1.preprocess.reader._has_valid_headers

```{autodoc2-docstring} haniwers.v1.preprocess.reader._has_valid_headers
```
````

````{py:function} validate_columns(df: polars.DataFrame) -> None
:canonical: haniwers.v1.preprocess.reader.validate_columns

```{autodoc2-docstring} haniwers.v1.preprocess.reader.validate_columns
```
````
