forked from giacomonazzaro/hanagram
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.pre-commit-config.yaml
157 lines (148 loc) · 4.15 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
154
155
156
157
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
# filesystem
- id: check-illegal-windows-names
- id: check-case-conflict
- id: check-executables-have-shebangs
- id: check-shebang-scripts-are-executable
# git
- id: check-added-large-files
- id: check-merge-conflict
# secrets
- id: detect-private-key
# text in files
- id: end-of-file-fixer
- id: mixed-line-ending
args: ["--fix=lf"]
- id: trailing-whitespace
# python
- id: check-ast
- id: check-docstring-first
- id: debug-statements
- id: requirements-txt-fixer
- id: name-tests-test
args: ["--pytest-test-first"]
# filetypes
- id: check-json
exclude_types: [jupyter]
- id: check-symlinks
- id: check-toml
- id: check-yaml
- id: check-xml
- id: pretty-format-json
exclude_types: [jupyter]
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
hooks:
# python
- id: python-check-blanket-noqa
- id: python-check-blanket-type-ignore
- id: python-check-mock-methods
- id: python-no-eval
- id: python-no-log-warn
- id: python-use-type-annotations
# rst
- id: rst-backticks
- id: rst-directive-colons
- id: rst-inline-touching-normal
# text
- id: text-unicode-replacement-char
# environment manager
- repo: https://github.com/mxr/sync-pre-commit-deps
rev: v0.0.3
hooks:
- id: sync-pre-commit-deps
- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.5.26
hooks:
- id: uv-lock
- id: uv-export
args: ["--no-dev", "--output-file=requirements.txt"]
# jupyter notebooks
- repo: local
hooks:
- id: forbid-ipynb
name: forbid ipynb
entry: filenames must not end in .ipynb
language: fail
types: [jupyter]
# general formatting
- repo: https://github.com/Lucas-C/pre-commit-hooks
rev: v1.5.5
hooks:
- id: forbid-tabs
- repo: https://github.com/editorconfig-checker/editorconfig-checker.python
rev: 3.2.0
hooks:
- id: editorconfig-checker
exclude_types: [jupyter]
- repo: https://github.com/rbubley/mirrors-prettier
rev: v3.4.2
hooks:
- id: prettier
types_or: [yaml, markdown, html, css, scss, javascript, json]
args: ["--prose-wrap=always"]
exclude_types: [jupyter]
# python formatting and linting
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 25.1.0
hooks:
- id: black
- repo: https://github.com/adamchainz/blacken-docs
rev: 1.19.1
hooks:
- id: blacken-docs
additional_dependencies:
- black==25.1.0
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.9.4
hooks:
- id: ruff
alias: ruff-isort
name: ruff isort
args: ["--select", "I001", "--fix"]
- id: ruff
- repo: local
hooks:
- id: mypy-local
name: mypy
entry: uv run mypy
language: system
files: '(\.pyi?|^uv.lock$)'
pass_filenames: false
# validate schema
- repo: https://github.com/abravalheri/validate-pyproject
rev: v0.23
hooks:
- id: validate-pyproject
additional_dependencies:
- validate-pyproject-schema-store[all]
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.31.1
hooks:
- id: check-dependabot
- id: check-github-workflows
- id: check-readthedocs
# shell scripts
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.10.0.1
hooks:
- id: shellcheck
# spell checks
- repo: https://github.com/codespell-project/codespell
rev: v2.4.1
hooks:
- id: codespell
- repo: local
hooks:
- id: disallow-caps
name: disallow improper capitalization
language: pygrep
entry: PyBind|Numpy|Cmake|CCache|Github|PyTest
exclude: .pre-commit-config.yaml
ci:
autoupdate_commit_msg: "chore: update pre-commit hooks"
autofix_commit_msg: "style: pre-commit fixes"
exclude: ^.cruft.json|.copier-answers.yml$