forked from optimagic-dev/optimagic
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.pre-commit-config.yaml
More file actions
165 lines (165 loc) · 4.59 KB
/
.pre-commit-config.yaml
File metadata and controls
165 lines (165 loc) · 4.59 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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
---
repos:
- repo: meta
hooks:
- id: check-hooks-apply
- id: check-useless-excludes
# - id: identity # Prints all files passed to pre-commits. Debugging.
- repo: https://github.com/lyz-code/yamlfix
rev: 1.18.0
hooks:
- id: yamlfix
exclude: tests/optimagic/optimizers/_pounders/fixtures
- repo: local
hooks:
- id: update-environment-files
name: check environment file updates
entry: python .tools/update_envs.py
language: python
always_run: true
require_serial: true
- repo: local
hooks:
- id: check-mypy-versions
name: verify that pre-commits and dev env use the same mypy version
entry: python .tools/check_mypy_versions.py
language: python
always_run: true
require_serial: true
additional_dependencies:
- pyyaml
- repo: local
hooks:
- id: update-algo-selection-code
name: update algo selection code
entry: python .tools/update_algo_selection_hook.py
language: python
files: ^(src/optimagic/optimizers/|src/optimagic/algorithms\.py|\.tools/)
require_serial: true
additional_dependencies:
- hatchling
- ruff
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-added-large-files
args:
- --maxkb=1300
exclude: tests/optimagic/optimizers/_pounders/fixtures/
- id: check-case-conflict
- id: check-merge-conflict
- id: check-vcs-permalinks
- id: check-yaml
- id: check-toml
- id: debug-statements
- id: end-of-file-fixer
- id: fix-byte-order-marker
types:
- text
- id: forbid-submodules
- id: mixed-line-ending
args:
- --fix=lf
description: Forces to replace line ending by the UNIX 'lf' character.
- id: name-tests-test
args:
- --pytest-test-first
- id: no-commit-to-branch
args:
- --branch
- main
- id: trailing-whitespace
exclude: docs/
- id: check-ast
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.37.1
hooks:
- id: yamllint
exclude: tests/optimagic/optimizers/_pounders/fixtures
- repo: https://github.com/PyCQA/docformatter
rev: v1.7.7
hooks:
- id: docformatter
args:
- --in-place
- --wrap-summaries
- '88'
- --wrap-descriptions
- '88'
- --blank
exclude: src/optimagic/optimization/algo_options.py
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.13.3
hooks:
# Run the linter.
- id: ruff
types_or:
- python
- pyi
- jupyter
args:
- --fix
# Run the formatter.
- id: ruff-format
types_or:
- python
- pyi
- jupyter
- repo: https://github.com/executablebooks/mdformat
rev: 0.7.22
hooks:
- id: mdformat
additional_dependencies:
- mdformat-gfm
- mdformat-gfm-alerts
- mdformat-ruff
args:
- --wrap
- '88'
files: (README\.md)
- repo: https://github.com/executablebooks/mdformat
rev: 0.7.22
hooks:
- id: mdformat
additional_dependencies:
- mdformat-myst
- mdformat-ruff
args:
- --wrap
- '88'
files: (docs/.)
exclude: docs/source/how_to/how_to_specify_algorithm_and_algo_options.md
- repo: https://github.com/kynan/nbstripout
rev: 0.8.1
hooks:
- id: nbstripout
exclude: |
(?x)^(
docs/source/estimagic/tutorials/estimation_tables_overview.ipynb|
docs/source/estimagic/explanation/bootstrap_montecarlo_comparison.ipynb|
)$
args:
- --drop-empty-cells
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.14.1
hooks:
- id: mypy
files: src|tests
additional_dependencies:
- numpy >= 2
- packaging
- pandas-stubs
- sqlalchemy-stubs
- types-cffi
- types-openpyxl
- types-jinja2
- bokeh
ci:
autoupdate_schedule: monthly
skip:
- update-algo-selection-code
# Skip mypy stubtest on pre-commit.ci due to maximum size limitations. This is
# unlikely to get better in the future as dependencies keep growing. Local runs
# of pre-commit would still execute stubtest. For CI, we have a separate GitHub
# Action that runs stubtest.
- mypy