Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 6 additions & 24 deletions .github/workflows/run_qaqc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,32 +29,14 @@ jobs:
run: |
poetry install --no-root --with dev
poetry run pytest
badge:
# only run on pushes to main
if: ${{ github.event_name == 'push' && github.ref_name == 'main' }}

name: update coverage badge
runs-on: ubuntu-latest

# requires the pytest job above
needs: tests

steps:
- name: Build badge
if: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
run: |
poetry run coverage-badge -f -o docs/assets/badges/coverage.svg
echo '<!-- timestamp: '"$(date '+%Y-%m-%d %H:%M:%S')"' -->' >> docs/assets/badges/coverage.svg

- name: Check-in Coverage Badge
run: |
if [ -z "${{ github.head_ref }}" ];
then
echo "Not a pull request, skipping badge update."
exit 0
else
git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor }}@users.noreply.github.com"
git add docs/assets/badges/coverage.svg
git commit -m "Update coverage badge"
git push origin HEAD:${{ github.head_ref }}
fi
git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor }}@users.noreply.github.com"
git add docs/assets/badges/coverage.svg
git commit -m "Update coverage badge"
git push origin HEAD:${{ github.head_ref }}
6 changes: 6 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ The versioning pattern is `YYYY.MM.DD.micro(a/b/{none if release})

---

## [2025.08.14.1a]

### Fixes

- Conditional coverage badge update only when pulling to main

## [2025.08.14.0a]

- Updates to documentation
Expand Down
132 changes: 66 additions & 66 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,66 +1,66 @@
[project]
name = "cfa.dataops"
version = "2025.08.14.0a"
description = "Data cataloging, ETL, modeling, verification, and validation for CFA"
authors = [
{ name = "Phil Rogers", email = "ap66@cdc.gov" },
{ name = "Ryan Raasch", email = "xng3@cdc.gov" },
]
readme = "README.md"
requires-python = ">=3.10,<3.11"
dependencies = [
"cfa-azure @ git+https://github.com/CDCgov/cfa_azure.git",
"tomli (>=2.2.1,<3.0.0)",
"httpx (>=0.28.1,<0.29.0)",
"mako (>=1.3.9,<2.0.0)",
"duckdb (>=1.2.0,<2.0.0)",
"tqdm (>=4.67.1,<5.0.0)",
"pyarrow (>=19.0.1,<20.0.0)",
"fastparquet (>=2024.11.0,<2025.0.0)",
"matplotlib (~=3.9)",
"pandas (>=2.2.3)",
"polars (>=1.26.0)",
"tqdm (>=4.67.0)",
"altair (>=5.5.0,<6.0.0)",
"vl-convert-python (>=1.7.0,<2.0.0)",
"pypdf (>=5.5.0,<6.0.0)",
"dynode @ git+https://github.com/CDCgov/DynODE@main",
"pandera[pandas] (>=0.24.0)",
"papermill (>=2.6.0,<3.0.0)",
"ipywidgets (>=8.1.7,<9.0.0)",
"itables (>=2.4.4,<3.0.0)",
"ipykernel (>=6.30.0,<7.0.0)",
"nbconvert (>=7.16.6,<8.0.0)",
"jupyter (>=1.1.1,<2.0.0)",
"jupyterlab (>=4.4.5,<5.0.0)",
"rich (>=14.1.0,<15.0.0)",
]

[tool.poetry]
packages = [{ include = "cfa" }]


[tool.poetry.group.dev.dependencies]
ruff = "^0.9.9"
pytest = "^8.3.5"
pytest-mock = "^3.14.0"
pytest-cov = "^6.1.1"
hypothesis = "^6.133.0"
faker = "^37.3.0"
coverage-badge = "^1.1.2"

[tool.poetry.group.mkdocs.dependencies]
mkdocs = "^1.6.1"
mkdocs-material = "^9.6.16"
mkdocstrings = { extras = ["python"], version = "^0.30.0" }
mdx-truly-sane-lists = "^1.3"

[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"

[tool.poetry.scripts]
state_report_pdf = "cfa.dataops.workflows.post_processing.state_report_pdf:main"

[tool.pytest.ini_options]
addopts = "--doctest-modules -vv --cov=cfa --cov-report html --cov-report term"
[project]
name = "cfa.dataops"
version = "2025.08.14.1a"
description = "Data cataloging, ETL, modeling, verification, and validation for CFA"
authors = [
{ name = "Phil Rogers", email = "ap66@cdc.gov" },
{ name = "Ryan Raasch", email = "xng3@cdc.gov" },
]
readme = "README.md"
requires-python = ">=3.10,<3.11"
dependencies = [
"cfa-azure @ git+https://github.com/CDCgov/cfa_azure.git",
"tomli (>=2.2.1,<3.0.0)",
"httpx (>=0.28.1,<0.29.0)",
"mako (>=1.3.9,<2.0.0)",
"duckdb (>=1.2.0,<2.0.0)",
"tqdm (>=4.67.1,<5.0.0)",
"pyarrow (>=19.0.1,<20.0.0)",
"fastparquet (>=2024.11.0,<2025.0.0)",
"matplotlib (~=3.9)",
"pandas (>=2.2.3)",
"polars (>=1.26.0)",
"tqdm (>=4.67.0)",
"altair (>=5.5.0,<6.0.0)",
"vl-convert-python (>=1.7.0,<2.0.0)",
"pypdf (>=5.5.0,<6.0.0)",
"dynode @ git+https://github.com/CDCgov/DynODE@main",
"pandera[pandas] (>=0.24.0)",
"papermill (>=2.6.0,<3.0.0)",
"ipywidgets (>=8.1.7,<9.0.0)",
"itables (>=2.4.4,<3.0.0)",
"ipykernel (>=6.30.0,<7.0.0)",
"nbconvert (>=7.16.6,<8.0.0)",
"jupyter (>=1.1.1,<2.0.0)",
"jupyterlab (>=4.4.5,<5.0.0)",
"rich (>=14.1.0,<15.0.0)",
]
[tool.poetry]
packages = [{ include = "cfa" }]
[tool.poetry.group.dev.dependencies]
ruff = "^0.9.9"
pytest = "^8.3.5"
pytest-mock = "^3.14.0"
pytest-cov = "^6.1.1"
hypothesis = "^6.133.0"
faker = "^37.3.0"
coverage-badge = "^1.1.2"
[tool.poetry.group.mkdocs.dependencies]
mkdocs = "^1.6.1"
mkdocs-material = "^9.6.16"
mkdocstrings = { extras = ["python"], version = "^0.30.0" }
mdx-truly-sane-lists = "^1.3"
[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.scripts]
state_report_pdf = "cfa.dataops.workflows.post_processing.state_report_pdf:main"
[tool.pytest.ini_options]
addopts = "--doctest-modules -vv --cov=cfa --cov-report html --cov-report term"