-
Notifications
You must be signed in to change notification settings - Fork 0
/
.pre-commit-config.yaml
153 lines (137 loc) · 3.82 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# Configuration-file for pre-commit
# References:
# - Official docs: https://pre-commit.com
# - for more hooks: https://pre-commit.com/hooks.html
#
# To avoid duplication, we try to configure the tools in pyproject.toml as much as possible.
#
# Usage:
# > pre-commit install
# > pre-commit install hooks -f
# > pre-commit autoupdate
# > pre-commit run --all-files
repos:
- repo: local
hooks:
# docs: https://black.readthedocs.io/en/stable/integrations/source_version_control.html
- id: black
name: Black
entry: black
args: ["--config=pyproject.toml"]
# "--check", # don't write the files back, just return the status.
language: system # use executable found on path
require_serial: true
types: [python] # check only specific filetypes
# docs: https://flake8.pycqa.org/en/latest/user/using-hooks.html
- repo: local
hooks:
- id: flake8
name: Flake8
entry: flake8
language: system
require_serial: true
types: [python]
# docs: https://pycqa.github.io/isort/docs/configuration/pre-commit.html
- repo: local
hooks:
- id: isort
name: Isort
entry: isort
args: ["--settings-path=pyproject.toml"] # "--filter-files"
language: system
require_serial: true
types: [python] # pyi? cython?
- repo: local
hooks:
- id: ruff
name: Ruff
entry: ruff
args: [--fix, --show-fixes]
language: system
types: [python]
- repo: local
hooks:
- id: mypy
name: Mypy
entry: mypy
language: system
types: [python]
- repo: local
hooks:
- id: bandit
name: Bandit
entry: bandit
language: system
types: [python]
# see https://github.com/PyCQA/bandit/issues/318
args: ["--configfile pyproject.toml", "--baseline etc/bandit-baseline.json"]
- repo: local
hooks:
- id: poetry-check
name: poetry-check
description: run poetry check to validate config
entry: poetry check
language: python
language_version: python3
pass_filenames: false
files: ^pyproject.toml$
# - id: poetry-lock
# name: poetry-lock
# description: run poetry lock to update lock file
# entry: poetry lock
# language: python
# language_version: python3
# pass_filenames: false
# The following are all pre-commit-hooks
# docs: https://github.com/pre-commit/pre-commit-hooks
- repo: local
hooks:
- id: debug-statements
name: Check debug statements
entry: debug-statement-hook
language: system
types: [python]
- repo: local
hooks:
- id: check-toml
name: Check Toml
entry: check-toml
language: system
types: [toml]
- repo: local
hooks:
- id: check-yaml
name: Check Yaml
entry: check-yaml
language: system
types: [yaml]
- repo: local
hooks:
- id: end-of-file-fixer
name: Fix End of Files
entry: end-of-file-fixer
language: system
stages: [commit, push, manual]
types: [python] # text too broad?
- repo: local
hooks:
- id: fix-encoding-pragma
name: Fix encoding pragma
entry: fix-encoding-pragma --remove
language: system
types: [python]
- repo: local
hooks:
- id: mixed-line-ending
name: Fix mixed line-endings
entry: mixed-line-ending
language: system
types: [text]
- repo: local
hooks:
- id: trailing-whitespace
name: Trim Trailing Whitespace # fix-trailing-whitespace
entry: trailing-whitespace-fixer
language: system
stages: [commit, push, manual]
types: [text]