All notable changes to this project are documented here. Format follows Keep a Changelog. No versioned release has been tagged yet; everything below is grouped under Unreleased.
- Restructured the flat script layout into a proper
clintab/package (ml.py,epi.py,stats.py,spline.py,plots.py,store.py), imported byapp.py,routes.py, andclintab_cli.py. - Automated test suite (
tests/) coveringclintab.stats,clintab.epi,clintab.ml, andclintab.spline— 27 tests, run viapytest. requirements-dev.txtfor test/dev dependencies.Data/README.mddocumenting the syntheticsample_clinical.csvdataset.docs/install.md,docs/usage.md,docs/api.md..github/ISSUE_TEMPLATE/bug_report.mdandfeature_request.md,.github/PULL_REQUEST_TEMPLATE.md, and.github/workflows/tests.yml(runs the test suite on every push/PR tomain, Python 3.10 and 3.12).- Statement of Need and Contributing & Support sections in the README.
CONTRIBUTING.md,CODE_OF_CONDUCT.md,CITATION.cff.- ORCID identifiers for all three authors in
CITATION.cff.
clintab_cli.py'stestcommand crashed withKeyError: Nonewhen evaluating a raw (non-dict) pickled pipeline with no recorded outcome column; it now skips such models with a clear message instead./api/epi/hlchecked the model before checking for an active session, and had no error handling around a bad/missing model name; session check now runs first, and the model lookup is wrapped in try/except.- A comment in
epi.two_by_twoincorrectly said the chi-square test ran on the "original" table; it actually runs on the Haldane-Anscombe-corrected table, and the comment now says so. clintab/store.pyresolvedruntime/andmodels/relative to its own file location. After the package restructure moved it intoclintab/, this silently redirected generated session/model data intoclintab/instead of the repo root; fixed to resolve relative to the repo root regardless of wherestore.pylives./runtime/and/models/were never excluded from git; added to.gitignore.- CI failed on every push with
ModuleNotFoundError: No module named 'clintab', since the barepytestcommand doesn't add the repo root tosys.paththe waypython -m pytestdoes. Addedpytest.iniwithpythonpath = .soclintabis importable regardless of how pytest is invoked.