Path 1: 12407 calls (0.51)

1 (1875) 2 (1019) 3 (706) 4 (448) 5 (316) 0 (305) 6 (293) 7 (226) 8 (220) 9 (217)

None (12407)

1def check_message_definition(
2        self, line: int | None, node: nodes.NodeNG | None
3    ) -> None:
4        """Check MessageDefinition for possible errors."""
5        if self.msgid[0] not in _SCOPE_EXEMPT:
6            # Fatal messages and reports are special, the node/scope distinction
7            # does not apply to them.
8            if self.scope == WarningScope.LINE:
9                if line is None:
10                    raise InvalidMessageError(
11                        f"Message {self.msgid} must provide line, got None"
12                    )
13                if node is not None:
14                    raise InvalidMessageError(
15                        f"Message {self.msgid} must only provide line, "
16                        f"got line={line}, node={node}"
17                    )
18            elif self.scope == WarningScope.NODE:
19                # Node-based warnings may provide an override line.
20                if node is None:
21                    raise InvalidMessageError(
22                        f"Message {self.msgid} must provide Node, got None"
23                    )
            

Path 2: 9503 calls (0.39)

None (9034) 16 (13) 4 (12) 8 (10) 10 (10) 15 (10) 21 (10) 9 (9) 11 (9) 12 (9)

FunctionDef (1861) AssignName (1673) ClassDef (1190) Import (609) Call (581) ImportFrom (568) Name (521) Expr (470) Const (349) Module (327)

1def check_message_definition(
2        self, line: int | None, node: nodes.NodeNG | None
3    ) -> None:
4        """Check MessageDefinition for possible errors."""
5        if self.msgid[0] not in _SCOPE_EXEMPT:
6            # Fatal messages and reports are special, the node/scope distinction
7            # does not apply to them.
8            if self.scope == WarningScope.LINE:
9                if line is None:
10                    raise InvalidMessageError(
11                        f"Message {self.msgid} must provide line, got None"
12                    )
13                if node is not None:
14                    raise InvalidMessageError(
15                        f"Message {self.msgid} must only provide line, "
16                        f"got line={line}, node={node}"
17                    )
18            elif self.scope == WarningScope.NODE:
19                # Node-based warnings may provide an override line.
20                if node is None:
21                    raise InvalidMessageError(
22                        f"Message {self.msgid} must provide Node, got None"
23                    )
            

Path 3: 2194 calls (0.09)

None (2108) 0 (4) 10 (3) 6 (2) 8 (2) 12 (2) 31 (2) 33 (2) 38 (2) 11 (2)

ClassDef (1023) Call (221) None (149) Compare (120) If (115) FunctionDef (106) Name (98) BoolOp (82) Assign (43) Subscript (37)

1def check_message_definition(
2        self, line: int | None, node: nodes.NodeNG | None
3    ) -> None:
4        """Check MessageDefinition for possible errors."""
5        if self.msgid[0] not in _SCOPE_EXEMPT:
6            # Fatal messages and reports are special, the node/scope distinction
7            # does not apply to them.
8            if self.scope == WarningScope.LINE:
9                if line is None:
10                    raise InvalidMessageError(
11                        f"Message {self.msgid} must provide line, got None"
12                    )
13                if node is not None:
14                    raise InvalidMessageError(
15                        f"Message {self.msgid} must only provide line, "
16                        f"got line={line}, node={node}"
17                    )
18            elif self.scope == WarningScope.NODE:
19                # Node-based warnings may provide an override line.
20                if node is None:
21                    raise InvalidMessageError(
22                        f"Message {self.msgid} must provide Node, got None"
23                    )
            

Path 4: 1 calls (0.0)

None (1)

None (1)

InvalidMessageError (1)

1def check_message_definition(
2        self, line: int | None, node: nodes.NodeNG | None
3    ) -> None:
4        """Check MessageDefinition for possible errors."""
5        if self.msgid[0] not in _SCOPE_EXEMPT:
6            # Fatal messages and reports are special, the node/scope distinction
7            # does not apply to them.
8            if self.scope == WarningScope.LINE:
9                if line is None:
10                    raise InvalidMessageError(
11                        f"Message {self.msgid} must provide line, got None"
12                    )
13                if node is not None:
14                    raise InvalidMessageError(
15                        f"Message {self.msgid} must only provide line, "
16                        f"got line={line}, node={node}"
17                    )
18            elif self.scope == WarningScope.NODE:
19                # Node-based warnings may provide an override line.
20                if node is None:
21                    raise InvalidMessageError(
22                        f"Message {self.msgid} must provide Node, got None"
23                    )
            

Path 5: 1 calls (0.0)

2 (1)

'fake_node' (1)

InvalidMessageError (1)

1def check_message_definition(
2        self, line: int | None, node: nodes.NodeNG | None
3    ) -> None:
4        """Check MessageDefinition for possible errors."""
5        if self.msgid[0] not in _SCOPE_EXEMPT:
6            # Fatal messages and reports are special, the node/scope distinction
7            # does not apply to them.
8            if self.scope == WarningScope.LINE:
9                if line is None:
10                    raise InvalidMessageError(
11                        f"Message {self.msgid} must provide line, got None"
12                    )
13                if node is not None:
14                    raise InvalidMessageError(
15                        f"Message {self.msgid} must only provide line, "
16                        f"got line={line}, node={node}"
17                    )
18            elif self.scope == WarningScope.NODE:
19                # Node-based warnings may provide an override line.
20                if node is None:
21                    raise InvalidMessageError(
22                        f"Message {self.msgid} must provide Node, got None"
23                    )
            

Path 6: 1 calls (0.0)

None (1)

None (1)

InvalidMessageError (1)

1def check_message_definition(
2        self, line: int | None, node: nodes.NodeNG | None
3    ) -> None:
4        """Check MessageDefinition for possible errors."""
5        if self.msgid[0] not in _SCOPE_EXEMPT:
6            # Fatal messages and reports are special, the node/scope distinction
7            # does not apply to them.
8            if self.scope == WarningScope.LINE:
9                if line is None:
10                    raise InvalidMessageError(
11                        f"Message {self.msgid} must provide line, got None"
12                    )
13                if node is not None:
14                    raise InvalidMessageError(
15                        f"Message {self.msgid} must only provide line, "
16                        f"got line={line}, node={node}"
17                    )
18            elif self.scope == WarningScope.NODE:
19                # Node-based warnings may provide an override line.
20                if node is None:
21                    raise InvalidMessageError(
22                        f"Message {self.msgid} must provide Node, got None"
23                    )