sentinel / .pre-commit-config.yaml
jeuko's picture
Sync from GitHub (main)
8018595 verified
default_language_version:
python: python3.12
default_stages: [pre-commit]
repos:
- repo: https://github.com/hakancelikdev/unimport
rev: 1.3.0
hooks:
- id: unimport
args:
- --remove
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.13.1
hooks:
- id: ruff-format
- id: ruff-check
args: [--fix, --exit-non-zero-on-fix]
- repo: https://github.com/kynan/nbstripout
rev: 0.8.1
hooks:
- id: nbstripout
- repo: https://github.com/codespell-project/codespell
rev: v2.4.1
hooks:
- id: codespell
name: codespell
description: Checks for common misspellings in text files.
entry: codespell --skip="*.js,*.html,*.css, *.svg" --ignore-words=.codespell-ignore.txt
language: python
types: [text]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: debug-statements
- id: check-ast # Simply check whether the files parse as valid python
- id: check-case-conflict # Check for files that would conflict in case-insensitive filesystems
- id: check-builtin-literals # Require literal syntax when initializing empty or zero Python builtin types
- id: check-docstring-first # Check a common error of defining a docstring after code
- id: check-merge-conflict # Check for files that contain merge conflict strings
- id: check-yaml # Check yaml files
args: ["--unsafe"] # Allows special tags in mkdocs.yaml
- id: end-of-file-fixer # Ensure that a file is either empty, or ends with one newline
exclude: end-to-end-pipeline/web/.*
- id: mixed-line-ending # Replace or checks mixed line ending
- id: trailing-whitespace # This hook trims trailing whitespace
- id: file-contents-sorter # Sort the lines in specified files
files: .*requirements*\.txt$
- repo: https://github.com/google/yamlfmt
rev: v0.17.2
hooks:
- id: yamlfmt
args: ["-formatter", "retain_line_breaks_single=true,pad_line_comments=2"]
- repo: https://github.com/asottile/pyupgrade
rev: v3.20.0
hooks:
- id: pyupgrade
args: [--py312-plus]
# The following hook sorts and formats toml files
- repo: https://github.com/pappasam/toml-sort
rev: v0.24.3
hooks:
- id: toml-sort
description: "Sort and format toml files."
args:
- --all
- --in-place
# The following hook checks for secrets in the code
- repo: https://github.com/zricethezav/gitleaks
rev: v8.28.0
hooks:
- id: gitleaks
# The following hook checks for secrets in the code
- repo: https://github.com/trufflesecurity/trufflehog
rev: v3.90.8
hooks:
- id: trufflehog
- repo: local
hooks:
- id: pylint
name: pylint
entry: pylint
language: python
additional_dependencies: ["pylint"]
types: [python]
args: ["--disable=all", "--enable=missing-docstring,unused-argument"]
exclude: 'test_\.py$'
# The following hook check docstrings quality
- repo: https://github.com/terrencepreilly/darglint
rev: v1.8.1
hooks:
- id: darglint
args: ["--docstring-style=google"]
exclude: 'src/sentinel/risk_models/qcancer\.py$'
# The following hook checks for docstring in functions
- repo: https://github.com/pycqa/pydocstyle
rev: 6.3.0
hooks:
- id: pydocstyle
args: ["--select=D103", "--match-dir=(genomics_research|projects)"]