Skip to content

Design Plugin Architecture for UQ Methods #21

@kiplangatkorir

Description

@kiplangatkorir

Problem

As UEQ grows, adding new UQ methods directly to core risks:

  • Tight coupling
  • Slower review cycles
  • High maintenance burden
    A lack of clear extension points also discourages external contributions.

Proposal

Design and implement a plugin architecture that allows UQ methods to be added as first-class extensions without modifying core logic.

Scope

  • Abstract base classes for:
    • UQ methods
    • Calibration strategies
    • Evaluation hooks
  • Well-defined lifecycle:
    • fit → calibrate → predict → evaluate
  • Plugin discovery mechanism (entry points or registry)
  • Backward compatibility with existing UEQ methods

API Sketch

class BaseUQMethod:
    def fit(self, model, X, y): ...
    def calibrate(self, X_cal, y_cal): ...
    def predict(self, X): ...

UQ(model, method="my_custom_uq")

Acceptance Criteria

  • New UQ methods can be added without touching core code
  • Clear, documented extension points
  • Minimal performance overhead
  • Example plugin included in repo
  • Architecture diagram in documentation

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions