Skip to content

Commit 49bb5bd

Browse files
authored
fix: better error if requires is not a set (#173)
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
1 parent e383485 commit 49bb5bd

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/repo_review/processor.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,13 +192,18 @@ def process(
192192

193193
# Collect our own config
194194
config = pyproject(package).get("tool", {}).get("repo-review", {})
195-
select_checks = select if select else set(config.get("select", ()))
196-
skip_checks = ignore if ignore else set(config.get("ignore", ()))
195+
select_checks = select if select else frozenset(config.get("select", ()))
196+
skip_checks = ignore if ignore else frozenset(config.get("ignore", ()))
197197

198198
# Make a graph of the check's interdependencies
199-
graph: dict[str, set[str]] = {
200-
n: getattr(t, "requires", set()) for n, t in tasks.items()
199+
graph: dict[str, Set[str]] = {
200+
n: getattr(t, "requires", frozenset()) for n, t in tasks.items()
201201
}
202+
for name, s in graph.items():
203+
if not isinstance(s, Set):
204+
msg = f"requires must be a set, got {s!r} for {name!r}" # type: ignore[unreachable]
205+
raise TypeError(msg)
206+
202207
# Keep track of which checks have been completed
203208
completed: dict[str, str | None] = {}
204209

0 commit comments

Comments
 (0)