Python SDK¶
Overview¶
METIS provides two entry points for programmatic usage:
Evaluatorclass — full control with method callsevaluate_from_config()— one-liner convenience function
Quick Usage¶
from metis import Evaluator, evaluate_from_config
# One-liner
summary = evaluate_from_config("config.yaml")
# Full control
evaluator = Evaluator()
summary = evaluator.run_from_config("config.yaml")
Evaluator Class¶
run_from_config(config_path: str) -> RunSummary¶
Run the full pipeline from a YAML config file.
summary = evaluator.run_from_config("metis/configs/config_cardio.yaml")
print(summary.aggregates["composite_score"])
evaluate(real, synth, config, seed=42) -> RunSummary¶
Evaluate pre-loaded DataFrames.
import pandas as pd
real = pd.read_csv("data/real/cardio.csv")
synth = pd.read_csv("data/synth/cardio_synth.csv")
config = {
"data": {
"target": "cardio",
"task_type": "classification",
"schema": {
"age": "continuous",
"gender": "categorical",
"cardio": "categorical",
},
},
"metrics": ["fidelity.ks", "fidelity.wasserstein", "privacy.dcr"],
"reproducibility": {"seed": 42},
"evaluation": {"n_runs": 1},
"report": {"output_dir": "reports/", "formats": ["json"]},
}
summary = evaluator.evaluate(real, synth, config, seed=42)
evaluate_from_config(config_path: str) -> RunSummary¶
Convenience function equivalent to Evaluator().run_from_config(path).
RunSummary Object¶
The result of any evaluation:
summary.plan # EvalPlan: metric_ids, seed, cv_splits
summary.results # list[MetricResult]: per-metric results
summary.aggregates # dict: fidelity_score, utility_score, privacy_score, composite_score
summary.artifacts # dict: metadata (schema_applied, seeds_used, etc.)
MetricResult¶
for result in summary.results:
print(f"{result.id}: {result.value:.3f} ({result.family})")
# fidelity.ks: 0.850 (fidelity)
| Attribute | Type | Description |
|---|---|---|
id | str | Metric identifier (e.g., fidelity.ks) |
value | float | Normalized score [0, 1] |
family | str | Dimension: fidelity, utility, or privacy |
details | dict | Per-column or additional details |
purpose_tags | set[str] | Semantic tags |