-
Notifications
You must be signed in to change notification settings - Fork 35
/
.pre-commit-config.yaml
100 lines (100 loc) · 3.8 KB
/
.pre-commit-config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/kynan/nbstripout
rev: 0.4.0
hooks:
- id: nbstripout
name: nbstripout - Strip outputs from notebooks (auto-fixes)
args:
- --extra-keys
- "metadata.colab metadata.kernelspec cell.metadata.colab cell.metadata.executionInfo cell.metadata.id cell.metadata.outputId"
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: check-added-large-files
name: Check for files larger than 5 MB
args: [ "--maxkb=5120" ]
- id: end-of-file-fixer
name: Check for a blank line at the end of scripts (auto-fixes)
exclude: '\.Rd'
- id: trailing-whitespace
name: Check for trailing whitespaces (auto-fixes)
- repo: https://github.com/pycqa/isort
rev: 5.12.0
hooks:
- id: isort
name: isort - Sort python imports (auto-fixes)
args: [ "--profile", "black", "--filter-files" ]
- id: isort
name: isort - Sort cython imports (auto-fixes)
types: [cython]
args: [ "--profile", "black", "--filter-files" ]
- id: isort
name: isort - Sort pyi imports (auto-fixes)
types: [pyi]
args: [ "--profile", "black", "--filter-files" ]
- repo: https://github.com/psf/black
rev: 22.8.0 # Replace by any tag/version: https://github.com/psf/black/tags
hooks:
- id: black
name: black - consistent Python code formatting (auto-fixes)
language_version: python # Should be a command that runs python3.6+
- repo: https://github.com/PyCQA/flake8
rev: 5.0.4
hooks:
- id: flake8
name: flake8 - Python linting
- repo: https://github.com/nbQA-dev/nbQA
rev: 0.12.0
hooks:
- id: nbqa-isort
name: nbqa-isort - Sort Python imports (notebooks; auto-fixes)
args: [ --nbqa-mutate ]
additional_dependencies: [ isort==5.8.0 ]
- id: nbqa-black
name: nbqa-black - consistent Python code formatting (notebooks; auto-fixes)
args: [ --nbqa-mutate ]
additional_dependencies: [ black==21.5b2 ]
# TODO: Disabled for now until it's clear how to add noqa to specific cells of a Jupyter notebook
#- id: nbqa-flake8
# name: nbqa-flake8 - Python linting (notebooks)
# additional_dependencies: [ flake8==3.9.2 ]
- repo: https://github.com/Yelp/detect-secrets
rev: v1.0.3
hooks:
- id: detect-secrets
name: detect-secrets - Detect secrets in staged code
args: [ "--baseline", ".secrets.baseline" ]
exclude: .*/tests/.*|^\.cruft\.json$
- repo: https://github.com/PyCQA/bandit
rev: '1.7.5'
hooks:
- id: bandit
name: bandit - Checks for vulnerabilities
args: ["-c", "pyproject.toml"]
additional_dependencies: ["bandit[toml]"]
{% if cookiecutter.using_R == "Yes" %}
# R specific hooks: https://github.com/lorenzwalthert/precommit
- repo: https://github.com/lorenzwalthert/precommit
rev: v0.1.3
hooks:
- id: style-files
name: Style files using styler
args: [ --style_pkg=styler, --style_fun=tidyverse_style ]
- id: roxygenize
name: Run roxygen2::roxygenize()
# codemeta must be above use-tidy-description when both are used
# - id: codemeta-description-updated
- id: use-tidy-description
name: Run sethis::use_tidy_description()
- id: lintr
name: Run lintr::lint()
exclude: renv/activate.R
- id: readme-rmd-rendered
name: Check README.Rmd has been rendered to README.md
- id: parsable-R
name: Check for valid R code using the parse() function
- id: no-browser-statement
name: Check for accidential browser() statements
{% endif -%}