# Harley

![harley logo](docs/images/harley.jpg)

Harley contains polars helper methods that will make you more productive.

Harley is also a great way to learn about polars best practices like:
* how to validate schemas
* How to use plugins for custom polars functionality.

Harley is a polars port of Harley's sister project, [Quinn](https://github.com/MrPowers/quinn).

Harley is neither associated with motorbikes 🏍️, nor the DC universe 🦸.

# Features
Harley supports developer productivity functions for:

* [column_functions](https://tomburdge.github.io/harley/reference/harley/column_functions/): boolean expressions for null aware between handling, multi-equals expression evaluation, and approximate equals.
* [dataframe_helpers](https://tomburdge.github.io/harley/reference/harley/dataframe_helper/#harley.dataframe_helper): fast and strict small DataFrame data structure conversion.
* [dataframe_validators](https://tomburdge.github.io/harley/reference/harley/dataframe_validator): Strict Data/LazyFrame schema validation.
* [maths](https://tomburdge.github.io/harley/reference/harley/maths/): Zero-aware division.
* [schema_helpers](https://tomburdge.github.io/harley/reference/harley/schema_helpers/): Print your schema as python code.
* [string_functions](https://tomburdge.github.io/harley/reference/harley/string_functions/): String blankspace transformations without regex.
* [to_boolean](https://tomburdge.github.io/harley/reference/harley/to_boolean/): Null & whitespace aware boolean evaluation. Many valued logic boolean assignment.
* [transformations](https://tomburdge.github.io/harley/reference/harley/transformations/): Flatten struct types columns with reasonable performance.


## Documentation
You can check out all the supported functionality in [the documentation](https://tomburdge.github.io/harley/reference/harley).
