schrodinger.application.transforms.scorers.composite module

Composite scorer for running multiple scorers in parallel.

class schrodinger.application.transforms.scorers.composite.CompositeScorer(scorers: list[tuple[str, dict]])

Bases: PTransform

Run multiple scorers in parallel and merge results by SourceID.

Async scorers (AsyncScorer subclasses) are split into submit and collect phases. Sync scorers run between submit and collect, using WaitOn barriers to enforce the ordering:

submit all async -> run all sync (WaitOn submits)
-> collect all async (WaitOn syncs) -> merge by SourceID
Parameters:

scorers – List of (scorer_id, config) tuples where scorer_id is a key in SCORER_REGISTRY and config is a dict of keyword arguments forwarded to the scorer constructor.

__init__(scorers: list[tuple[str, dict]])