This repo builds a small framework for Bayesian-network classification from relational tabular data. Keep the code easy to read, explicit, and boring.
- Prefer direct code over abstraction layers.
- Each module should have one clear responsibility.
- Keep public APIs typed and small.
- Keep defaults deterministic.
- Avoid hidden behavior and side effects.
- Add a dependency only when it removes real complexity.
schema.pyowns config parsing and validation.materialize.pyowns relational joins and aggregates.preprocess.pyowns deterministic discretization and category handling.engine_pgmpy.pyis the only place allowed to callpgmpy.automl.pyowns candidate training and model selection.model.pyowns persistence and prediction.cli.pystays thin.
- Install:
uv sync --dev - Lint:
uv run ruff check . - Test:
uv run pytest - Train sample:
uv run auto-bayesian train examples/lead_scoring.toml