Skip to content

Add SchurConditionalCovariance: structured Schur damping with a ridge-regressed hedge #38

Add SchurConditionalCovariance: structured Schur damping with a ridge-regressed hedge

Add SchurConditionalCovariance: structured Schur damping with a ridge-regressed hedge #38

Workflow file for this run

name: ci
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install (with dev extras)
run: |
python -m pip install --upgrade pip
pip install -e .[dev]
- name: Lint
run: ruff check precise tests research
- name: Type check
run: mypy precise
- name: Test
run: pytest
docs-up-to-date:
# The web editions of the papers are generated from their LaTeX sources in papers/.
# Fail if any committed HTML is stale (i.e. a .tex changed but docs/build_paper.sh
# was not rerun). Pandoc is pinned so the regenerated output matches byte-for-byte.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: r-lib/actions/setup-pandoc@v2
with:
pandoc-version: '3.9.0.2'
- name: Regenerate the web papers from LaTeX
run: ./docs/build_paper.sh
- name: Fail if any generated web paper is stale
run: |
if ! git diff --quiet -- docs/papers/schur-likelihood/index.html docs/papers/two-sides-of-schur-damping/index.html; then
echo "::error::a generated web paper under docs/papers/ is out of date — run ./docs/build_paper.sh and commit."
git diff -- docs/papers/schur-likelihood/index.html docs/papers/two-sides-of-schur-damping/index.html | head -120
exit 1
fi
echo "web papers are in sync with the LaTeX sources"
test-minimal:
# Verify the package imports and the full test suite passes with numpy only
# (no pandas, no scikit-learn) — the lean-install promise.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install (numpy-only core + pytest)
run: |
python -m pip install --upgrade pip
pip install .
pip install pytest
- name: Import without optional deps
run: python -c "import precise; print(precise.estimator_names())"
- name: Test
run: pytest