Skip to content

Commit d04734d

Browse files
authored
Remove remaining code parts related to __implements__ (#8414)
Refs #8404
1 parent 62889d4 commit d04734d

File tree

9 files changed

+7
-43
lines changed

9 files changed

+7
-43
lines changed

pylint/pyreverse/diagrams.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from astroid import nodes, util
1414

1515
from pylint.checkers.utils import decorated_with_property
16-
from pylint.pyreverse.utils import FilterMixIn, is_interface
16+
from pylint.pyreverse.utils import FilterMixIn
1717

1818

1919
class Figure:
@@ -195,11 +195,7 @@ def extract_relationships(self) -> None:
195195
node = obj.node
196196
obj.attrs = self.get_attrs(node)
197197
obj.methods = self.get_methods(node)
198-
# shape
199-
if is_interface(node):
200-
obj.shape = "interface"
201-
else:
202-
obj.shape = "class"
198+
obj.shape = "class"
203199
# inheritance link
204200
for par_node in node.ancestors(recurs=False):
205201
try:

pylint/pyreverse/dot_printer.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,11 @@ class HTMLLabels(Enum):
2525
ALLOWED_CHARSETS: frozenset[str] = frozenset(("utf-8", "iso-8859-1", "latin1"))
2626
SHAPES: dict[NodeType, str] = {
2727
NodeType.PACKAGE: "box",
28-
NodeType.INTERFACE: "record",
2928
NodeType.CLASS: "record",
3029
}
3130
# pylint: disable-next=consider-using-namedtuple-or-dataclass
3231
ARROWS: dict[EdgeType, dict[str, str]] = {
3332
EdgeType.INHERITS: {"arrowtail": "none", "arrowhead": "empty"},
34-
EdgeType.IMPLEMENTS: {"arrowtail": "node", "arrowhead": "empty", "style": "dashed"},
3533
EdgeType.ASSOCIATION: {
3634
"fontcolor": "green",
3735
"arrowtail": "none",

pylint/pyreverse/inspector.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,6 @@ class Linker(IdGeneratorMixIn, utils.LocalsVisitor):
106106
107107
* aggregations_type
108108
as instance_attrs_type but for aggregations relationships
109-
110-
* implements,
111-
list of implemented interface _objects_ (only on astroid.Class nodes)
112109
"""
113110

114111
def __init__(self, project: Project, tag: bool = False) -> None:
@@ -149,7 +146,6 @@ def visit_classdef(self, node: nodes.ClassDef) -> None:
149146
"""Visit an astroid.Class node.
150147
151148
* set the locals_type and instance_attrs_type mappings
152-
* set the implements list and build it
153149
* optionally tag the node with a unique id
154150
"""
155151
if hasattr(node, "locals_type"):

pylint/pyreverse/mermaidjs_printer.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@ class MermaidJSPrinter(Printer):
1717

1818
NODES: dict[NodeType, str] = {
1919
NodeType.CLASS: "class",
20-
NodeType.INTERFACE: "class",
2120
NodeType.PACKAGE: "class",
2221
}
2322
ARROWS: dict[EdgeType, str] = {
2423
EdgeType.INHERITS: "--|>",
25-
EdgeType.IMPLEMENTS: "..|>",
2624
EdgeType.ASSOCIATION: "--*",
2725
EdgeType.AGGREGATION: "--o",
2826
EdgeType.USES: "-->",
@@ -46,7 +44,6 @@ def emit_node(
4644
# pylint: disable=duplicate-code
4745
if properties is None:
4846
properties = NodeProperties(label=name)
49-
stereotype = "~~Interface~~" if type_ is NodeType.INTERFACE else ""
5047
nodetype = self.NODES[type_]
5148
body = []
5249
if properties.attrs:
@@ -60,7 +57,7 @@ def emit_node(
6057
line += f" {get_annotation_label(func.returns)}"
6158
body.append(line)
6259
name = name.split(".")[-1]
63-
self.emit(f"{nodetype} {name}{stereotype} {{")
60+
self.emit(f"{nodetype} {name} {{")
6461
self._inc_indent()
6562
for line in body:
6663
self.emit(line)

pylint/pyreverse/plantuml_printer.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@ class PlantUmlPrinter(Printer):
1717

1818
NODES: dict[NodeType, str] = {
1919
NodeType.CLASS: "class",
20-
NodeType.INTERFACE: "class",
2120
NodeType.PACKAGE: "package",
2221
}
2322
ARROWS: dict[EdgeType, str] = {
2423
EdgeType.INHERITS: "--|>",
25-
EdgeType.IMPLEMENTS: "..|>",
2624
EdgeType.ASSOCIATION: "--*",
2725
EdgeType.AGGREGATION: "--o",
2826
EdgeType.USES: "-->",
@@ -56,7 +54,6 @@ def emit_node(
5654
"""
5755
if properties is None:
5856
properties = NodeProperties(label=name)
59-
stereotype = " << interface >>" if type_ is NodeType.INTERFACE else ""
6057
nodetype = self.NODES[type_]
6158
if properties.color and properties.color != self.DEFAULT_COLOR:
6259
color = f" #{properties.color}"
@@ -76,7 +73,7 @@ def emit_node(
7673
label = properties.label if properties.label is not None else name
7774
if properties.fontcolor and properties.fontcolor != self.DEFAULT_COLOR:
7875
label = f"<color:{properties.fontcolor}>{label}</color>"
79-
self.emit(f'{nodetype} "{label}" as {name}{stereotype}{color} {{')
76+
self.emit(f'{nodetype} "{label}" as {name}{color} {{')
8077
self._inc_indent()
8178
for line in body:
8279
self.emit(line)

pylint/pyreverse/printer.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@
1717

1818
class NodeType(Enum):
1919
CLASS = "class"
20-
INTERFACE = "interface"
2120
PACKAGE = "package"
2221

2322

2423
class EdgeType(Enum):
2524
INHERITS = "inherits"
26-
IMPLEMENTS = "implements"
2725
ASSOCIATION = "association"
2826
AGGREGATION = "aggregation"
2927
USES = "uses"

pylint/pyreverse/utils.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,6 @@ def get_visibility(name: str) -> str:
7272
return visibility
7373

7474

75-
def is_interface(node: nodes.ClassDef) -> bool:
76-
# bw compatibility
77-
return node.type == "interface" # type: ignore[no-any-return]
78-
79-
8075
def is_exception(node: nodes.ClassDef) -> bool:
8176
# bw compatibility
8277
return node.type == "exception" # type: ignore[no-any-return]

pylint/pyreverse/vcg_printer.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,6 @@
152152
SHAPES: dict[NodeType, str] = {
153153
NodeType.PACKAGE: "box",
154154
NodeType.CLASS: "box",
155-
NodeType.INTERFACE: "ellipse",
156155
}
157156
# pylint: disable-next=consider-using-namedtuple-or-dataclass
158157
ARROWS: dict[EdgeType, dict[str, str | int]] = {
@@ -166,12 +165,6 @@
166165
"backarrowstyle": "none",
167166
"backarrowsize": 10,
168167
},
169-
EdgeType.IMPLEMENTS: {
170-
"arrowstyle": "solid",
171-
"backarrowstyle": "none",
172-
"linestyle": "dotted",
173-
"backarrowsize": 10,
174-
},
175168
EdgeType.ASSOCIATION: {
176169
"arrowstyle": "solid",
177170
"backarrowstyle": "none",

pylint/pyreverse/writer.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,10 @@ def write_classes(self, diagram: ClassDiagram) -> None:
7575
# sorted to get predictable (hence testable) results
7676
for obj in sorted(diagram.objects, key=lambda x: x.title): # type: ignore[no-any-return]
7777
obj.fig_id = obj.node.qname()
78-
type_ = NodeType.INTERFACE if obj.shape == "interface" else NodeType.CLASS
7978
self.printer.emit_node(
80-
obj.fig_id, type_=type_, properties=self.get_class_properties(obj)
79+
obj.fig_id,
80+
type_=NodeType.CLASS,
81+
properties=self.get_class_properties(obj),
8182
)
8283
# inheritance links
8384
for rel in diagram.get_relationships("specialization"):
@@ -86,13 +87,6 @@ def write_classes(self, diagram: ClassDiagram) -> None:
8687
rel.to_object.fig_id,
8788
type_=EdgeType.INHERITS,
8889
)
89-
# implementation links
90-
for rel in diagram.get_relationships("implements"):
91-
self.printer.emit_edge(
92-
rel.from_object.fig_id,
93-
rel.to_object.fig_id,
94-
type_=EdgeType.IMPLEMENTS,
95-
)
9690
# generate associations
9791
for rel in diagram.get_relationships("association"):
9892
self.printer.emit_edge(

0 commit comments

Comments
 (0)