Path 1: 1080 calls (1.0)

partial (1080)

1@contextlib.contextmanager
2    def _astroid_module_checker(
3        self,
4    ) -> Iterator[Callable[[nodes.Module], bool | None]]:
5        """Context manager for checking ASTs.
6
7        The value in the context is callable accepting AST as its only argument.
8        """
9        walker = ASTWalker(self)
10        _checkers = self.prepare_checkers()
11        tokencheckers = [
12            c for c in _checkers if isinstance(c, checkers.BaseTokenChecker)
13        ]
14        # TODO: 3.0: Remove deprecated for-loop
15        for c in _checkers:
16            with warnings.catch_warnings():
17                warnings.filterwarnings("ignore", category=DeprecationWarning)
18                if (
19                    interfaces.implements(c, interfaces.ITokenChecker)
20                    and c not in tokencheckers
21                    and c is not self
22                ):
23                    tokencheckers.append(c)  # type: ignore[arg-type]  # pragma: no cover
24                    warnings.warn(  # pragma: no cover
25                        "Checkers should subclass BaseTokenChecker "
26                        "instead of using the __implements__ mechanism. Use of __implements__ "
27                        "will no longer be supported in pylint 3.0",
28                        DeprecationWarning,
29                    )
30        rawcheckers = [
31            c for c in _checkers if isinstance(c, checkers.BaseRawFileChecker)
32        ]
33        # TODO: 3.0: Remove deprecated if-statement
34        for c in _checkers:
35            with warnings.catch_warnings():
36                warnings.filterwarnings("ignore", category=DeprecationWarning)
37                if (
38                    interfaces.implements(c, interfaces.IRawChecker)
39                    and c not in rawcheckers
40                ):
41                    rawcheckers.append(c)  # type: ignore[arg-type] # pragma: no cover
42                    warnings.warn(  # pragma: no cover
43                        "Checkers should subclass BaseRawFileChecker "
44                        "instead of using the __implements__ mechanism. Use of __implements__ "
45                        "will no longer be supported in pylint 3.0",
46                        DeprecationWarning,
47                    )
48        # notify global begin
49        for checker in _checkers:
50            checker.open()
51            walker.add_checker(checker)
52
53        yield functools.partial(
54            self.check_astroid_module,
55            walker=walker,
56            tokencheckers=tokencheckers,
57            rawcheckers=rawcheckers,
58        )
59
60        # notify global end
61        self.stats.statement = walker.nbstatements
62        for checker in reversed(_checkers):
63            checker.close()