Path 1: 5 calls (0.28)

'module' (2) 'function' (2) 'method' (1)

FunctionDef (3) Module (2)

None (5)

1def _check_docstring(
2        self, node_type: str, node: nodes.Module | nodes.ClassDef | nodes.FunctionDef
3    ) -> None:
4        docstring = node.doc_node.value if node.doc_node else None
5        if docstring and docstring[0] == "\n":
6            self.add_message(
7                "docstring-first-line-empty",
8                node=node,
9                args=(node_type,),
10                confidence=HIGH,
11            )
12
13        # Use "linecache", instead of node.as_string(), because the latter
14        # looses the original form of the docstrings.
15
16        if docstring:
17            lineno = node.fromlineno + 1
18            line = linecache.getline(node.root().file, lineno).lstrip()
19            if line and line.find('"""') == 0:
20                return
21            if line and "'''" in line:
22                quotes = "'''"
23            elif line and line[0] == '"':
24                quotes = '"'
25            elif line and line[0] == "'":
26                quotes = "'"
27            else:
28                quotes = ""
29            if quotes:
30                self.add_message(
31                    "bad-docstring-quotes",
32                    node=node,
33                    args=(node_type, quotes),
34                    confidence=HIGH,
35                )
            

Path 2: 4 calls (0.22)

'module' (3) 'class' (1)

Module (3) ClassDef (1)

1def _check_docstring(
2        self, node_type: str, node: nodes.Module | nodes.ClassDef | nodes.FunctionDef
3    ) -> None:
4        docstring = node.doc_node.value if node.doc_node else None
5        if docstring and docstring[0] == "\n":
6            self.add_message(
7                "docstring-first-line-empty",
8                node=node,
9                args=(node_type,),
10                confidence=HIGH,
11            )
12
13        # Use "linecache", instead of node.as_string(), because the latter
14        # looses the original form of the docstrings.
15
16        if docstring:
17            lineno = node.fromlineno + 1
18            line = linecache.getline(node.root().file, lineno).lstrip()
19            if line and line.find('"""') == 0:
20                return
21            if line and "'''" in line:
22                quotes = "'''"
23            elif line and line[0] == '"':
24                quotes = '"'
25            elif line and line[0] == "'":
26                quotes = "'"
27            else:
28                quotes = ""
29            if quotes:
30                self.add_message(
31                    "bad-docstring-quotes",
32                    node=node,
33                    args=(node_type, quotes),
34                    confidence=HIGH,
35                )
            

Path 3: 2 calls (0.11)

'function' (1) 'class' (1)

FunctionDef (1) ClassDef (1)

None (2)

1def _check_docstring(
2        self, node_type: str, node: nodes.Module | nodes.ClassDef | nodes.FunctionDef
3    ) -> None:
4        docstring = node.doc_node.value if node.doc_node else None
5        if docstring and docstring[0] == "\n":
6            self.add_message(
7                "docstring-first-line-empty",
8                node=node,
9                args=(node_type,),
10                confidence=HIGH,
11            )
12
13        # Use "linecache", instead of node.as_string(), because the latter
14        # looses the original form of the docstrings.
15
16        if docstring:
17            lineno = node.fromlineno + 1
18            line = linecache.getline(node.root().file, lineno).lstrip()
19            if line and line.find('"""') == 0:
20                return
21            if line and "'''" in line:
22                quotes = "'''"
23            elif line and line[0] == '"':
24                quotes = '"'
25            elif line and line[0] == "'":
26                quotes = "'"
27            else:
28                quotes = ""
29            if quotes:
30                self.add_message(
31                    "bad-docstring-quotes",
32                    node=node,
33                    args=(node_type, quotes),
34                    confidence=HIGH,
35                )
            

Path 4: 2 calls (0.11)

'method' (2)

FunctionDef (2)

1def _check_docstring(
2        self, node_type: str, node: nodes.Module | nodes.ClassDef | nodes.FunctionDef
3    ) -> None:
4        docstring = node.doc_node.value if node.doc_node else None
5        if docstring and docstring[0] == "\n":
6            self.add_message(
7                "docstring-first-line-empty",
8                node=node,
9                args=(node_type,),
10                confidence=HIGH,
11            )
12
13        # Use "linecache", instead of node.as_string(), because the latter
14        # looses the original form of the docstrings.
15
16        if docstring:
17            lineno = node.fromlineno + 1
18            line = linecache.getline(node.root().file, lineno).lstrip()
19            if line and line.find('"""') == 0:
20                return
21            if line and "'''" in line:
22                quotes = "'''"
23            elif line and line[0] == '"':
24                quotes = '"'
25            elif line and line[0] == "'":
26                quotes = "'"
27            else:
28                quotes = ""
29            if quotes:
30                self.add_message(
31                    "bad-docstring-quotes",
32                    node=node,
33                    args=(node_type, quotes),
34                    confidence=HIGH,
35                )
            

Path 5: 2 calls (0.11)

'method' (2)

FunctionDef (2)

1def _check_docstring(
2        self, node_type: str, node: nodes.Module | nodes.ClassDef | nodes.FunctionDef
3    ) -> None:
4        docstring = node.doc_node.value if node.doc_node else None
5        if docstring and docstring[0] == "\n":
6            self.add_message(
7                "docstring-first-line-empty",
8                node=node,
9                args=(node_type,),
10                confidence=HIGH,
11            )
12
13        # Use "linecache", instead of node.as_string(), because the latter
14        # looses the original form of the docstrings.
15
16        if docstring:
17            lineno = node.fromlineno + 1
18            line = linecache.getline(node.root().file, lineno).lstrip()
19            if line and line.find('"""') == 0:
20                return
21            if line and "'''" in line:
22                quotes = "'''"
23            elif line and line[0] == '"':
24                quotes = '"'
25            elif line and line[0] == "'":
26                quotes = "'"
27            else:
28                quotes = ""
29            if quotes:
30                self.add_message(
31                    "bad-docstring-quotes",
32                    node=node,
33                    args=(node_type, quotes),
34                    confidence=HIGH,
35                )
            

Path 6: 2 calls (0.11)

'method' (2)

FunctionDef (2)

1def _check_docstring(
2        self, node_type: str, node: nodes.Module | nodes.ClassDef | nodes.FunctionDef
3    ) -> None:
4        docstring = node.doc_node.value if node.doc_node else None
5        if docstring and docstring[0] == "\n":
6            self.add_message(
7                "docstring-first-line-empty",
8                node=node,
9                args=(node_type,),
10                confidence=HIGH,
11            )
12
13        # Use "linecache", instead of node.as_string(), because the latter
14        # looses the original form of the docstrings.
15
16        if docstring:
17            lineno = node.fromlineno + 1
18            line = linecache.getline(node.root().file, lineno).lstrip()
19            if line and line.find('"""') == 0:
20                return
21            if line and "'''" in line:
22                quotes = "'''"
23            elif line and line[0] == '"':
24                quotes = '"'
25            elif line and line[0] == "'":
26                quotes = "'"
27            else:
28                quotes = ""
29            if quotes:
30                self.add_message(
31                    "bad-docstring-quotes",
32                    node=node,
33                    args=(node_type, quotes),
34                    confidence=HIGH,
35                )
            

Path 7: 1 calls (0.06)

'method' (1)

FunctionDef (1)

1def _check_docstring(
2        self, node_type: str, node: nodes.Module | nodes.ClassDef | nodes.FunctionDef
3    ) -> None:
4        docstring = node.doc_node.value if node.doc_node else None
5        if docstring and docstring[0] == "\n":
6            self.add_message(
7                "docstring-first-line-empty",
8                node=node,
9                args=(node_type,),
10                confidence=HIGH,
11            )
12
13        # Use "linecache", instead of node.as_string(), because the latter
14        # looses the original form of the docstrings.
15
16        if docstring:
17            lineno = node.fromlineno + 1
18            line = linecache.getline(node.root().file, lineno).lstrip()
19            if line and line.find('"""') == 0:
20                return
21            if line and "'''" in line:
22                quotes = "'''"
23            elif line and line[0] == '"':
24                quotes = '"'
25            elif line and line[0] == "'":
26                quotes = "'"
27            else:
28                quotes = ""
29            if quotes:
30                self.add_message(
31                    "bad-docstring-quotes",
32                    node=node,
33                    args=(node_type, quotes),
34                    confidence=HIGH,
35                )