Skip to content

drop support for Python 3.10: remove Python 3.10 tests (#177) #838

drop support for Python 3.10: remove Python 3.10 tests (#177)

drop support for Python 3.10: remove Python 3.10 tests (#177) #838

Workflow file for this run

name: Code-Analysis
on:
push:
workflow_dispatch:
schedule:
- cron: '0 5 * * 1' # Every Monday at 5:00 AM UTC (7:00 AM CEST)
jobs:
pylint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: astral-sh/setup-uv@v5
with:
python-version: "3.13"
- name: Install dependencies
run: |
uv sync --all-extras
uv pip install torch --index-url https://download.pytorch.org/whl/cpu
- name: Analysing the code with pylint
run: |
uv run pylint -d C0301,R0913,W1202 $(git ls-files '*.py') --ignored-modules "rdkit" --max-positional-arguments 10
mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: astral-sh/setup-uv@v5
with:
python-version: "3.13"
- name: Install dependencies
run: |
uv run mypy . || exit_code=$?
uv run mypy --install-types --non-interactive
- name: Analysing the code with mypy
run: |
uv run mypy --ignore-missing-imports --disallow-any-generics --disallow-untyped-defs --no-implicit-optional --disallow-incomplete-defs .
pydocstyle:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.13"
- name: Install dependencies
run: |
python -m pip install pydocstyle
- name: Analysing the code with pydocstyle
run: |
pydocstyle .
docsig:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.13"
- name: Install dependencies
run: |
python -m pip install docsig
- name: Analysing the code with docsig
run: |
docsig --check-class-constructor --check-dunders --check-protected-class-methods --check-nested --check-overridden --check-protected .
flake8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.13"
- name: Install dependencies
run: |
python -m pip install flake8
- name: Analysing the code with flake8
run: |
flake8 --extend-ignore=D203,E203,E501,W503 --extend-exclude .venv .
interrogate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.13"
- name: Install dependencies
run: |
python -m pip install interrogate
- name: Analysing the code with interrogate
run: |
interrogate --ignore-overloaded-functions -vv .
bandit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.13"
- name: Install dependencies
run: |
python -m pip install bandit
- name: Analysing the code with bandit
run: |
bandit -r --skip=B404,B603,B602 -c pyproject.toml .
pyright:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: astral-sh/setup-uv@v5
with:
python-version: "3.13"
- name: Analysing the code with pyright
run: |
uv run --all-extras pyright .
ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: astral-sh/setup-uv@v5
with:
python-version: "3.13"
- name: Analysing the code with ruff
run: |
uv run ruff check --config pyproject.toml
ruff-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: astral-sh/setup-uv@v5
with:
python-version: "3.13"
- name: Analysing the code with ruff
run: |
uvx ruff format --check
test_basis:
needs:
- pylint
- mypy
- pydocstyle
- docsig
- flake8
- interrogate
- bandit
- ruff
- ruff-format
- pyright
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install package
run: |
python -m pip install --upgrade pip
pip install coverage
pip install .
- name: Run unit-tests
run: |
# Run only the core test suite in the tests directory.
coverage run --source=molpipeline,tests -m unittest discover tests
# Create a coverage report. Fail if the coverage is below 85%. Exclude extra packages from the report.
coverage report --fail-under=85 --omit="*chemprop*","*/*chemprop*/*"
test_chemprop:
needs:
- test_basis
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: astral-sh/setup-uv@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install package
run: |
uv sync --all-extras
uv pip install torch --index-url https://download.pytorch.org/whl/cpu
- name: Run unit-tests for chemprop
run: |
# Run only the chemprop test suite.
uv run coverage run --source=molpipeline,tests -m unittest discover test_extras/test_chemprop
# Create a coverage report. Fail if the coverage is below 85%. Include only chemprop files in the report.
uv run coverage report --fail-under=85 --include="*chemprop*","*/*chemprop*/*"
test_notebooks:
needs:
- test_basis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.13
uses: astral-sh/setup-uv@v5
- name: Install package
run: |
uv sync --all-extras
- name: Run unit-tests for notebooks
run: |
uv run python test_extras/test_notebooks/test_notebooks.py --continue-on-failure