# Workflow to run mypy on select parts of the CPython repo name: mypy on: push: branches: - main pull_request: paths: - ".github/workflows/mypy.yml" - "Lib/_pyrepl/**" - "Lib/test/libregrtest/**" - "Tools/build/generate_sbom.py" - "Tools/cases_generator/**" - "Tools/clinic/**" - "Tools/jit/**" - "Tools/peg_generator/**" - "Tools/requirements-dev.txt" - "Tools/wasm/**" workflow_dispatch: permissions: contents: read env: PIP_DISABLE_PIP_VERSION_CHECK: 1 FORCE_COLOR: 1 TERM: xterm-256color # needed for FORCE_COLOR to work on mypy on Ubuntu, see https://github.com/python/mypy/issues/13817 concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: mypy: strategy: fail-fast: false matrix: target: [ "Lib/_pyrepl", "Lib/test/libregrtest", "Tools/build", "Tools/cases_generator", "Tools/clinic", "Tools/jit", "Tools/peg_generator", "Tools/wasm", ] name: Run mypy on ${{ matrix.target }} runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.13" cache: pip cache-dependency-path: Tools/requirements-dev.txt - run: pip install -r Tools/requirements-dev.txt - run: mypy --config-file ${{ matrix.target }}/mypy.ini