Method: pylint.checkers.utils.class_is_abstract
Calls: 1844, Exceptions: 0, Paths: 10Back
Path 1: 1112 calls (0.6)
ClassDef (1112)
False (1112)
1def class_is_abstract(node: nodes.ClassDef) -> bool:
2 """Return true if the given class node should be considered as an abstract
3 class.
4 """
5 # Protocol classes are considered "abstract"
6 if is_protocol_class(node):
7 return True
8
9 # Only check for explicit metaclass=ABCMeta on this specific class
10 meta = node.declared_metaclass()
11 if meta is not None:
12 if meta.name == "ABCMeta" and meta.root().name in ABC_MODULES:
13 return True
14
15 for ancestor in node.ancestors():
16 if ancestor.name == "ABC" and ancestor.root().name in ABC_MODULES:
17 # abc.ABC inheritance
18 return True
19
20 for method in node.methods():
21 if method.parent.frame(future=True) is node:
22 if method.is_abstract(pass_is_abstract=False):
23 return True
24 return False
Path 2: 569 calls (0.31)
ClassDef (569)
False (569)
1def class_is_abstract(node: nodes.ClassDef) -> bool:
2 """Return true if the given class node should be considered as an abstract
3 class.
4 """
5 # Protocol classes are considered "abstract"
6 if is_protocol_class(node):
7 return True
8
9 # Only check for explicit metaclass=ABCMeta on this specific class
10 meta = node.declared_metaclass()
11 if meta is not None:
12 if meta.name == "ABCMeta" and meta.root().name in ABC_MODULES:
13 return True
14
15 for ancestor in node.ancestors():
16 if ancestor.name == "ABC" and ancestor.root().name in ABC_MODULES:
17 # abc.ABC inheritance
18 return True
19
20 for method in node.methods():
21 if method.parent.frame(future=True) is node:
22 if method.is_abstract(pass_is_abstract=False):
23 return True
24 return False
Path 3: 37 calls (0.02)
ClassDef (37)
False (37)
1def class_is_abstract(node: nodes.ClassDef) -> bool:
2 """Return true if the given class node should be considered as an abstract
3 class.
4 """
5 # Protocol classes are considered "abstract"
6 if is_protocol_class(node):
7 return True
8
9 # Only check for explicit metaclass=ABCMeta on this specific class
10 meta = node.declared_metaclass()
11 if meta is not None:
12 if meta.name == "ABCMeta" and meta.root().name in ABC_MODULES:
13 return True
14
15 for ancestor in node.ancestors():
16 if ancestor.name == "ABC" and ancestor.root().name in ABC_MODULES:
17 # abc.ABC inheritance
18 return True
19
20 for method in node.methods():
21 if method.parent.frame(future=True) is node:
22 if method.is_abstract(pass_is_abstract=False):
23 return True
24 return False
Path 4: 32 calls (0.02)
ClassDef (32)
True (32)
1def class_is_abstract(node: nodes.ClassDef) -> bool:
2 """Return true if the given class node should be considered as an abstract
3 class.
4 """
5 # Protocol classes are considered "abstract"
6 if is_protocol_class(node):
7 return True
8
9 # Only check for explicit metaclass=ABCMeta on this specific class
10 meta = node.declared_metaclass()
11 if meta is not None:
12 if meta.name == "ABCMeta" and meta.root().name in ABC_MODULES:
13 return True
14
15 for ancestor in node.ancestors():
16 if ancestor.name == "ABC" and ancestor.root().name in ABC_MODULES:
17 # abc.ABC inheritance
18 return True
19
20 for method in node.methods():
21 if method.parent.frame(future=True) is node:
22 if method.is_abstract(pass_is_abstract=False):
23 return True
24 return False
Path 5: 31 calls (0.02)
ClassDef (31)
True (31)
1def class_is_abstract(node: nodes.ClassDef) -> bool:
2 """Return true if the given class node should be considered as an abstract
3 class.
4 """
5 # Protocol classes are considered "abstract"
6 if is_protocol_class(node):
7 return True
8
9 # Only check for explicit metaclass=ABCMeta on this specific class
10 meta = node.declared_metaclass()
11 if meta is not None:
12 if meta.name == "ABCMeta" and meta.root().name in ABC_MODULES:
13 return True
14
15 for ancestor in node.ancestors():
16 if ancestor.name == "ABC" and ancestor.root().name in ABC_MODULES:
17 # abc.ABC inheritance
18 return True
19
20 for method in node.methods():
21 if method.parent.frame(future=True) is node:
22 if method.is_abstract(pass_is_abstract=False):
23 return True
24 return False
Path 6: 20 calls (0.01)
ClassDef (20)
True (20)
1def class_is_abstract(node: nodes.ClassDef) -> bool:
2 """Return true if the given class node should be considered as an abstract
3 class.
4 """
5 # Protocol classes are considered "abstract"
6 if is_protocol_class(node):
7 return True
8
9 # Only check for explicit metaclass=ABCMeta on this specific class
10 meta = node.declared_metaclass()
11 if meta is not None:
12 if meta.name == "ABCMeta" and meta.root().name in ABC_MODULES:
13 return True
14
15 for ancestor in node.ancestors():
16 if ancestor.name == "ABC" and ancestor.root().name in ABC_MODULES:
17 # abc.ABC inheritance
18 return True
19
20 for method in node.methods():
21 if method.parent.frame(future=True) is node:
22 if method.is_abstract(pass_is_abstract=False):
23 return True
24 return False
Path 7: 18 calls (0.01)
ClassDef (18)
False (18)
1def class_is_abstract(node: nodes.ClassDef) -> bool:
2 """Return true if the given class node should be considered as an abstract
3 class.
4 """
5 # Protocol classes are considered "abstract"
6 if is_protocol_class(node):
7 return True
8
9 # Only check for explicit metaclass=ABCMeta on this specific class
10 meta = node.declared_metaclass()
11 if meta is not None:
12 if meta.name == "ABCMeta" and meta.root().name in ABC_MODULES:
13 return True
14
15 for ancestor in node.ancestors():
16 if ancestor.name == "ABC" and ancestor.root().name in ABC_MODULES:
17 # abc.ABC inheritance
18 return True
19
20 for method in node.methods():
21 if method.parent.frame(future=True) is node:
22 if method.is_abstract(pass_is_abstract=False):
23 return True
24 return False
Path 8: 13 calls (0.01)
ClassDef (13)
True (13)
1def class_is_abstract(node: nodes.ClassDef) -> bool:
2 """Return true if the given class node should be considered as an abstract
3 class.
4 """
5 # Protocol classes are considered "abstract"
6 if is_protocol_class(node):
7 return True
8
9 # Only check for explicit metaclass=ABCMeta on this specific class
10 meta = node.declared_metaclass()
11 if meta is not None:
12 if meta.name == "ABCMeta" and meta.root().name in ABC_MODULES:
13 return True
14
15 for ancestor in node.ancestors():
16 if ancestor.name == "ABC" and ancestor.root().name in ABC_MODULES:
17 # abc.ABC inheritance
18 return True
19
20 for method in node.methods():
21 if method.parent.frame(future=True) is node:
22 if method.is_abstract(pass_is_abstract=False):
23 return True
24 return False
Path 9: 9 calls (0.0)
ClassDef (9)
False (9)
1def class_is_abstract(node: nodes.ClassDef) -> bool:
2 """Return true if the given class node should be considered as an abstract
3 class.
4 """
5 # Protocol classes are considered "abstract"
6 if is_protocol_class(node):
7 return True
8
9 # Only check for explicit metaclass=ABCMeta on this specific class
10 meta = node.declared_metaclass()
11 if meta is not None:
12 if meta.name == "ABCMeta" and meta.root().name in ABC_MODULES:
13 return True
14
15 for ancestor in node.ancestors():
16 if ancestor.name == "ABC" and ancestor.root().name in ABC_MODULES:
17 # abc.ABC inheritance
18 return True
19
20 for method in node.methods():
21 if method.parent.frame(future=True) is node:
22 if method.is_abstract(pass_is_abstract=False):
23 return True
24 return False
Path 10: 3 calls (0.0)
ClassDef (3)
False (3)
1def class_is_abstract(node: nodes.ClassDef) -> bool:
2 """Return true if the given class node should be considered as an abstract
3 class.
4 """
5 # Protocol classes are considered "abstract"
6 if is_protocol_class(node):
7 return True
8
9 # Only check for explicit metaclass=ABCMeta on this specific class
10 meta = node.declared_metaclass()
11 if meta is not None:
12 if meta.name == "ABCMeta" and meta.root().name in ABC_MODULES:
13 return True
14
15 for ancestor in node.ancestors():
16 if ancestor.name == "ABC" and ancestor.root().name in ABC_MODULES:
17 # abc.ABC inheritance
18 return True
19
20 for method in node.methods():
21 if method.parent.frame(future=True) is node:
22 if method.is_abstract(pass_is_abstract=False):
23 return True
24 return False