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")
)
)