A faster parser #1528
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
| name: Code Checks | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| # Enables manual execution from the Actions tab | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| ruff-check: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.13"] # Python version to run | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install Fandango | |
| uses: ./.github/workflows/setup-fandango | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| needs-sudo: true | |
| skip-parser: 1 | |
| - name: Check formatting with ruff | |
| run: | | |
| uv run ruff format --check . | |
| - name: Run ruff | |
| run: | | |
| uv run ruff check src tests evaluation scripts | |
| uv-check: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest] | |
| python-version: ["3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| activate-environment: true | |
| cache-dependency-glob: | | |
| pyproject.toml | |
| - name: Check if `uv.lock` is up-to-date | |
| run: | | |
| uv lock --check | |
| - name: Check if `pylock.toml` is up-to-date | |
| shell: bash | |
| run: | | |
| uv export --output-file=pylock.toml --all-extras --locked | |
| if ! git diff --quiet -- pylock.toml; then | |
| echo "Error: pylock.toml is out of sync with uv.lock. Please run 'uv export --output-file=pylock.toml --all-extras --locked'." | |
| git diff -- pylock.toml | |
| exit 1 | |
| fi | |
| mypy-check: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python-version: ["3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install Fandango | |
| uses: ./.github/workflows/setup-fandango | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| needs-sudo: ${{ matrix.os == 'ubuntu-latest' }} | |
| skip-parser: 1 | |
| - name: Run mypy | |
| shell: bash | |
| run: | | |
| uv run mypy . | |
| uv run mypy --strict src |