diff --git a/.github/workflows/pr-linters.yaml b/.github/workflows/pr-linters.yaml new file mode 100644 index 00000000..62abef4f --- /dev/null +++ b/.github/workflows/pr-linters.yaml @@ -0,0 +1,28 @@ +name: Run PR linters + +on: + pull_request: + workflow_dispatch: + +permissions: + contents: read + pull-requests: read + +jobs: + + mypy: + name: Run mypy static type checker (optional) + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: 3.12 + cache: pip + cache-dependency-path: | + 'pyproject.toml' + 'requirements-dev.txt' + - run: pip install -r requirements-dev.txt -e . + - name: Run mypy and report + run: mypy --config-file pyproject.toml . diff --git a/pyproject.toml b/pyproject.toml index a87ba589..e9c85993 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,3 +48,11 @@ testpaths = [ filterwarnings = [ "ignore::DeprecationWarning", ] + +[tool.mypy] +python_version = "3.8" +exclude = [ + "^examples*", + "^test*", + "^setup.py*", +] diff --git a/requirements-dev.txt b/requirements-dev.txt index 1a1c1f37..23f3a7aa 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,2 +1,3 @@ +mypy~=1.10 pytest~=8.3 pytest-cov~=5.0