Skip to content

Plugin Patterns

Practical plugin implementation patterns.

Idempotent Column Additions

import polars as pl
from honestroles import JobDataset
from honestroles.plugins.types import LabelStageContext


def add_label(dataset: JobDataset, ctx: LabelStageContext) -> JobDataset:
    return dataset.transform(
        lambda frame: frame.with_columns(pl.lit(ctx.plugin_name).alias("plugin_label"))
    )

Settings-Driven Threshold Filter

import polars as pl
from honestroles import JobDataset
from honestroles.plugins.types import FilterStageContext


def min_score(dataset: JobDataset, ctx: FilterStageContext) -> JobDataset:
    threshold = float(ctx.settings.get("min_score", 0.0))
    return dataset.transform(
        lambda frame: frame.filter(pl.col("rate_composite").fill_null(0.0) >= threshold)
    )

Bounded Score Adjustment

import polars as pl
from honestroles import JobDataset
from honestroles.plugins.types import RateStageContext


def bonus(dataset: JobDataset, ctx: RateStageContext) -> JobDataset:
    delta = float(ctx.settings.get("bonus", 0.0))
    return dataset.transform(
        lambda frame: frame.with_columns(
            (pl.col("rate_composite").fill_null(0.0) + delta).clip(0.0, 1.0).alias("rate_composite")
        )
    )