Skip to content

Commit 2037904

Browse files
adding the API contracts (#7)
* adding the API contracts * addressing comments * addressing changes * addressing comments * addressing comments * addressing comments * addressing comments * Update CONTRIBUTING.md Co-authored-by: Dave Bunten <ekgto445@gmail.com> * addressing comments --------- Co-authored-by: Dave Bunten <ekgto445@gmail.com>
1 parent 333d530 commit 2037904

12 files changed

Lines changed: 2280 additions & 468 deletions

‎.gitignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,4 +172,5 @@ cython_debug/
172172

173173
# PyPI configuration file
174174
.pypirc
175+
data/*
175176
testing.ipynb

‎CONTRIBUTING.md‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,32 @@ You can run pytest on your work using the following example:
5151
% uv run pytest
5252
```
5353

54+
### Linting, testing, coverage, and updating coverage badges
55+
56+
We apply a custom script to update our coverage badge in the README during our CI workflow.
57+
When running `scripts/update_coverage_badge.py` the script will parse the `coverage.xml` file generated from pytest and update the badge in the README with the new coverage percentage.
58+
When running `just all` locally, the coverage badge will not be updated since it is intended to be updated as part of the CI workflow.
59+
60+
```sh
61+
just all
62+
```
63+
64+
Where `all` is runnins all defined steps in the `justfile` which includes running tests and generating coverage reports.
65+
To see all of the steps defined in the `justfile`, you can run:
66+
67+
```sh
68+
just --list
69+
```
70+
71+
the coverage badge will be automatically updated as part of the workflow.
72+
If you want to update the coverage, run:
73+
74+
```sh
75+
just coverage
76+
```
77+
78+
This will run the tests and update the coverage badge in the README.
79+
5480
## Making changes to this repository
5581

5682
We welcome anyone to use [GitHub issues](https://docs.github.com/en/issues/tracking-your-work-with-issues/about-issues) (requires a GitHub login) or create [pull requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) (to directly make changes within this repository) to modify content found within this repository.

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ZedProfiler
22

3-
[![Coverage](https://img.shields.io/badge/coverage-89%25-green)](#quality-gates)
3+
[![Coverage](https://img.shields.io/badge/coverage-96%25-brightgreen)](#quality-gates)
44

55
CPU-first 3D image feature extraction toolkit for high-content and high-throughput image-based profiling.
66

‎ROADMAP.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ The roadmap is intended to be a living document and may be updated as needed.
3636

3737
1. PR 1: Packaging and environment baseline
3838

39-
- [ ] Python package scaffold, uv dependency management, version metadata 0.0.1, lint/test tooling, CI skeleton.
40-
- [ ] Linux support and CPU-only scope statements in metadata and docs.
39+
- [x] Python package scaffold, uv dependency management, version metadata 0.0.1, lint/test tooling, CI skeleton.
40+
- [x] Linux support and CPU-only scope statements in metadata and docs.
4141

4242
2. PR 2: Core data model and API contracts
4343

44-
- [ ] Canonical input contracts, loader interfaces, common error types.
45-
- [ ] Return schema contract (required keys, types, deterministic ordering).
44+
- [x] Canonical input contracts, loader interfaces, common error types.
45+
- [x] Return schema contract (required keys, types, deterministic ordering).
4646

4747
3. PR 3: RFC2119 naming specification and validators
4848

‎pyproject.toml‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ dependencies = [
2424
"jinja2>=3.1.6",
2525
"matplotlib>=3.10.8",
2626
"pandas>=3.0.2",
27-
"pyarrow>=24",
27+
"pandera>=0.31.1",
28+
"pyarrow>=23.0.1",
29+
"pydantic>=2.10",
2830
"scikit-image>=0.26",
31+
"tomli>=2.4.1",
2932
]
3033
scripts.ZedProfiler = "ZedProfiler.cli:trigger"
3134

0 commit comments

Comments
 (0)