← Về thư mục
skills/retrosynthesis_planning/yield_benchmark.py
- _components · function · L34-L43 — def _components( value: Any, *, field: str, allow_empty: bool, canonicalizer: Canonicalizer ) -> str
- validate_yield_inputs · function · L46-L101 — def validate_yield_inputs( rows: Iterable[Mapping[str, Any]], *, canonicalizer: Canonicalizer = rdkit_canonicalize, require_all_splits: bool = True, ) -> tuple[dict[str, str], ...]
- normalize_yield_outputs · function · L104-L155 — def normalize_yield_outputs( inputs: Sequence[Mapping[str, str]], predictions: Iterable[Mapping[str, Any]], ) -> tuple[dict[str, Any], ...]
- _average_ranks · function · L158-L170 — def _average_ranks(values: Sequence[float]) -> list[float]
- _pearson · function · L173-L183 — def _pearson(left: Sequence[float], right: Sequence[float]) -> float | None
- _group_metrics · function · L186-L230 — def _group_metrics(rows: Sequence[Mapping[str, Any]]) -> dict[str, Any]
- evaluate_yield_predictions · function · L233-L301 — def evaluate_yield_predictions( predictions: Sequence[Mapping[str, Any]], reference_rows: Iterable[Mapping[str, Any]], ) -> dict[str, Any]: # The non-empty invariant is enforced on the normalize side by every # validate_* helper; without it here the metric divisions below reduce # to a bare ZeroDivisionError instead of a protocol refusal.