Technical reference
Maintainer-focused layout for the open-fdd PyPI package (rules engine on pandas).
Setup: python3 -m venv .venv && source .venv/bin/activate (Windows: .venv\Scripts\activate). Install: pip install -e ".[dev]". Tests: pytest.
Directory structure
open-fdd/
├── open_fdd/
│ ├── engine/ # RuleRunner, checks, column_map resolvers, rule YAML schema
│ ├── schema/ # FDD result / event models (pydantic)
│ ├── reports/ # Optional: fault_viz, docx, fault_report (extra deps may apply)
│ └── tests/ # pytest suite (engine + schema)
├── docs/ # Jekyll / Just the Docs site
├── examples/ # Runnable examples and notebooks
├── packages/
│ └── openfdd-engine/ # Optional thin PyPI wrapper (separate distribution)
├── scripts/ # build_docs_pdf.py (optional doc bundle)
├── tools/ # Optional maintainer scripts
└── pyproject.toml
Tests
| Path | Role |
|---|---|
open_fdd/tests/engine/ | RuleRunner, expressions, schedules, column maps |
open_fdd/tests/test_schema.py | Result / event schema |
open_fdd/tests/examples/ | Import smoke tests |
CI runs pytest from the repo root after pip install -e ".[dev]".