-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.pre-commit-config.yaml
More file actions
141 lines (130 loc) · 4.5 KB
/
.pre-commit-config.yaml
File metadata and controls
141 lines (130 loc) · 4.5 KB
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
# To install the git pre-commit hook run:
# pre-commit install
# pre-commit.ci
ci:
autofix_commit_msg: |
[pre-commit.ci] auto fixes from pre-commit hooks
For more information, see https://pre-commit.ci
autofix_prs: false
autoupdate_branch: 'master'
autoupdate_commit_msg: '[pre-commit.ci] pre-commit autoupdate'
autoupdate_schedule: 'quarterly'
skip: []
submodules: false
# hooks
repos:
# pre-commit-hooks supplies a multitude of small hooks
# To get an overview of them all as well as the ones used here, please see
# https://github.com/pre-commit/pre-commit-hooks#hooks-available
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-json
name: Check JSON
- id: check-toml
name: Check TOML
- id: check-yaml
name: Check YAML
exclude: ^{{ cookiecutter.project_slug }}/\.github/workflows/.*\.yml$
- id: debug-statements
exclude: ^{{ cookiecutter.project_slug }}/
- id: end-of-file-fixer
- id: mixed-line-ending
- id: requirements-txt-fixer
name: Fix requirements*.txt
files: ^requirements.*\.txt$
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]
# Markdown linter to ensure the quality of the documentation
# More information can be found in its source repository:
# https://github.com/DavidAnson/markdownlint-cli2
- repo: https://github.com/DavidAnson/markdownlint-cli2
rev: v0.22.1
hooks:
- id: markdownlint-cli2
name: markdownlint
args:
- --fix
- --config=.markdownlint.yaml
# Pyupgrade is a code upgrade tool
# It works on files in-place
- repo: https://github.com/asottile/pyupgrade
rev: v3.21.2
hooks:
- id: pyupgrade
args: [--py310-plus]
exclude: ^{{ cookiecutter.project_slug }}/
# Black is a code style and formatter
# It works on files in-place
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 26.3.1
hooks:
- id: black
exclude: ^{{ cookiecutter.project_slug }}/
# Run black on Python code in documentation strings and files
- repo: https://github.com/adamchainz/blacken-docs
rev: 1.20.0
hooks:
- id: blacken-docs
additional_dependencies: [black]
exclude: ^{{ cookiecutter.project_slug }}/
# ruff is a Python linter, incl. import sorter and formatter
# It works partly on files in-place
# More information can be found in its documentation:
# https://docs.astral.sh/ruff/
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.11
hooks:
- id: ruff-check
name: ruff
args: ["--fix", "--exit-non-zero-on-fix"]
exclude: ^{{ cookiecutter.project_slug }}/
# Bandit is a security linter
# More information can be found in its documentation:
# https://bandit.readthedocs.io/en/latest/
- repo: https://github.com/PyCQA/bandit
rev: 1.9.4
hooks:
- id: bandit
args: ["-r"]
exclude: ^{{ cookiecutter.project_slug }}/
# mypy is a static typing linter
# The main code repository can be found at:
# https://github.com/python/mypy
# The project's documentation can be found at:
# https://mypy.readthedocs.io/en/stable/index.html
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.20.1
hooks:
- id: mypy
exclude: ^{{ cookiecutter.project_slug }}/
# ci-cd is a collection of hooks to help with CI/CD
# The main code repository can be found at:
# https://github.com/SINTEF/ci-cd
# The project's documentation can be found at:
# https://SINTEF.github.io/ci-cd/
- repo: https://github.com/SINTEF/ci-cd
rev: v2.9.2
hooks:
- id: docs-api-reference
args:
- "--root-repo-path={{ cookiecutter.project_slug }}"
- "--package-dir={{ cookiecutter.package_name }}"
- "--docs-folder=docs"
- "--full-docs-folder=strategies"
- id: docs-landing-page
files: ^{{ cookiecutter.project_slug }}/README.md$
args:
- "--root-repo-path={{ cookiecutter.project_slug }}"
- "--docs-folder=docs"
- "--replacement-separator=,"
- "--replacement=(LICENSE),(LICENSE.md)"
- "--replacement=(compose.yml),({{ cookiecutter.scm_url }}/blob/main/compose.yml)"
- "--replacement=(pyproject.toml),({{ cookiecutter.scm_url }}/blob/main/pyproject.toml)"
- id: update-pyproject
stages: [manual]
verbose: true
args:
- "--root-repo-path={{ cookiecutter.project_slug }}"
- "--ignore=dependency-name=oteapi-core...versions=>=2"
- "--skip-unnormalized-python-package-names"