repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 hooks: - id: trailing-whitespace - id: check-json - id: check-yaml - repo: https://github.com/python/black rev: 25.1.0 hooks: - id: black - repo: https://github.com/PyCQA/isort rev: 6.0.0 hooks: - id: isort - repo: https://github.com/pycqa/flake8 rev: 7.1.1 hooks: - id: flake8 additional_dependencies: [flake8-bugbear==24.12.12, flake8-pyproject] - repo: https://github.com/codespell-project/codespell rev: v2.4.1 hooks: - id: codespell name: Check source code spelling additional_dependencies: - tomli stages: [pre-commit] - id: codespell name: Check commit message spelling additional_dependencies: - tomli stages: [commit-msg] - repo: local hooks: - id: mypy name: mypy entry: mypy args: [swh] pass_filenames: false language: system types: [python] - id: twine-check name: twine check description: call twine check when pushing an annotated release tag entry: bash -c "ref=$(git describe) && [[ $ref =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] && (python3 -m build --sdist && twine check $(ls -t dist/* | head -1)) || true" pass_filenames: false stages: [pre-push] language: python additional_dependencies: [twine, build]