-
Notifications
You must be signed in to change notification settings - Fork 0
/
pre-commit.nix
86 lines (86 loc) · 1.42 KB
/
pre-commit.nix
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
{ pkgs, python }:
(with pkgs; [
{
package = nixfmt-rfc-style;
id = "nixfmt";
args = [
"--width"
"70"
"--strict"
];
types = [ "nix" ];
}
{
package = deadnix;
args = [ "--edit" ];
types = [ "nix" ];
}
{
package = statix;
args = [ "fix" ];
pass_filenames = false;
types = [ "nix" ];
}
{
package = taplo;
args = [ "format" ];
types = [ "toml" ];
}
{ package = typos; }
{
package = yamlfix;
args = [
"--exclude=.pre-commit-config.yaml"
"--exclude=.yamllint.yml"
"."
];
types = [ "yaml" ];
}
{
package = yamllint;
args = [ "." ];
types = [ "yaml" ];
}
])
++ (
let
py =
attrs:
attrs
// {
types_or = [
"python"
"pyi"
];
};
in
with python.pkgs;
[
(py {
name = "ruff check";
package = ruff;
# ERA001: catch commented-out code - here because we don't want it for normal dev
# ISC001: check for implicitly concatenated strings - disabled for format
args = [
"check"
"--fix"
"--extend-select=ERA001,ISC001"
"--unfixable=ERA001"
];
})
(py {
name = "ruff format";
package = ruff;
args = [ "format" ];
})
(py {
package = mypy;
id = "dmypy";
args = [
"run"
"."
];
pass_filenames = false;
})
]
)