Thanks for contributing to PyKMExtract.
This project is intentionally conservative. Please prefer:
- small, reviewable changes
- explicit heuristics over opaque complexity
- failure visibility over silent overfitting
- opt-in AI enhancement over implicit behavior changes
Install in editable mode:
pip install -e .Run tests:
python3 -m unittest discover -s tests -vIf you are working from source without installation:
PYTHONPATH=src python3 -m pykmextract.cli ...- Keep the default extraction path simple and deterministic.
- Add AI behavior only as an explicit enhancement path.
- Preserve KM curves as step functions; do not smooth them into continuous curves.
- Prefer relative links in documentation so the repository renders correctly on GitHub.
- Keep difficult figures visible as manual-review or failure cases instead of forcing the default pipeline to fit them.
- Python 3.9+
- Prefer small functions with clear boundaries.
- Avoid adding duplicate public APIs when an existing result object already exposes the capability.
- Add tests for every behavioral change.
- Avoid broad architectural rewrites unless they clearly reduce complexity.
If you contribute new real KM examples, use predictable grouped filenames:
studyXX_full.pngstudyXX_pfs.pngstudyXX_os.png
Recommended supporting files:
images/literatures.mddata/real_km/notes/data/real_km/semantic_seed/
A good PR should include:
- what changed
- why it changed
- what risks remain
- which tests were run
If the change affects extraction quality, include at least one before/after example or point to the relevant files under runs/.