Rewrite docs content for v4 API #284
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Workflow that runs on code changes to a pull request. | |
| name: Code changes | |
| on: | |
| pull_request: | |
| paths: | |
| - src/** | |
| - tests/** | |
| - .github/** | |
| - changelog.d/** | |
| workflow_dispatch: | |
| jobs: | |
| check-changelog: | |
| name: Check changelog fragment | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Check for changelog fragment | |
| run: .github/check-changelog.sh | |
| Lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install ruff | |
| run: pip install ruff | |
| - name: Run ruff format check | |
| run: ruff format --check . | |
| - name: Run ruff check | |
| run: ruff check . | |
| Mypy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| - name: Install package | |
| run: uv pip install -e .[dev] --system | |
| - name: Run mypy (informational) | |
| run: mypy src/policyengine || echo "::warning::mypy found errors (non-blocking until codebase is clean)" | |
| Python-Compat: | |
| name: Install + smoke-import (py${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Install package (no country-model extras) | |
| # `h5py` is used transitively by policyengine.core.scoping_strategy | |
| # but is normally supplied via the [us]/[uk] extras (through | |
| # policyengine-core). Install it directly so the smoke import can | |
| # exercise the wrapper without the country models, which pin | |
| # versions that don't support 3.9/3.10 yet. | |
| run: uv pip install --system . h5py | |
| - name: Smoke-import core modules | |
| run: python -c "import policyengine; from policyengine.core import Dataset, Policy, Simulation; from policyengine.outputs import aggregate, poverty, inequality; print('import OK')" | |
| Test: | |
| runs-on: macos-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.13', '3.14'] | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Install package | |
| run: uv pip install -e .[dev] --system | |
| - name: Install policyengine | |
| run: uv pip install policyengine --system | |
| - name: Run tests with coverage | |
| run: make test | |
| env: | |
| HUGGING_FACE_TOKEN: ${{ secrets.HUGGING_FACE_TOKEN }} |