name: lint_python on: push: paths-ignore: - .gitlab-ci.yml pull_request: repository_dispatch: types: [backend_automation] workflow_dispatch: jobs: lint_python: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: actions/setup-python@v7 with: python-version: '3.12.3' - run: pip install --upgrade pip wheel - run: pip install bandit black codespell flake8 flake8-2020 flake8-bugbear flake8-comprehensions isort mypy pytest pyupgrade safety - run: python -m pip install --upgrade requests - run: python -m pip install 'setuptools>=65.5.1' - run: bandit --recursive --skip B101,B110,B306,B307,B311,B605,B607 . - run: black --check . || true - run: codespell --count --ignore-words-list=aline,asociated,auxilliary,ba,ficticious,hist,iinclude,iself,ist,ket,mapp,nd,numer,ser,te --skip="*/graveyard,*.dtx,*.F,*.f,*.f90,*.fh,*.frg,*.orig,*.out,*.par,*.pdb,*.pl,*.tex,*.txt" || true - run: flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - run: flake8 . --count --exit-zero --max-complexity=10 --max-line-length=88 --show-source --statistics - run: isort --check-only --profile black . || true - run: pip install -r requirements.txt || pip install --editable . || true - run: mkdir --parents --verbose .mypy_cache - run: mypy --ignore-missing-imports --install-types --non-interactive . || true - run: pytest . || true - run: pytest --doctest-modules . || true - run: shopt -s globstar && pyupgrade --py36-plus **/*.py || true # - run: safety check