Skip to content

Commit 2bb1a44

Browse files
authored
feat(pyreverse): add support for colorized output for mmd and html (#10250)
1 parent 655a610 commit 2bb1a44

File tree

4 files changed

+53
-1
lines changed

4 files changed

+53
-1
lines changed

doc/whatsnew/fragments/10242.feature

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
`pyreverse`: add support for colorized output when using output format `mmd` (MermaidJS) and `html`.
2+
3+
Closes #10242

pylint/pyreverse/mermaidjs_printer.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ def emit_node(
6464
self.emit(line)
6565
self._dec_indent()
6666
self.emit("}")
67+
# apply style for colored output
68+
if properties.color and properties.color != self.DEFAULT_COLOR:
69+
self.emit(f"style {name} fill:{properties.color}")
6770

6871
def emit_edge(
6972
self,
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
classDiagram
2+
class CheckerCollector {
3+
checker1
4+
checker2
5+
checker3
6+
}
7+
style CheckerCollector fill:#77AADD
8+
class ElseifUsedChecker {
9+
msgs : dict
10+
name : str
11+
leave_module(_: nodes.Module) None
12+
process_tokens(tokens: list[TokenInfo]) None
13+
visit_if(node: nodes.If) None
14+
}
15+
style ElseifUsedChecker fill:#99DDFF
16+
class ExceptionsChecker {
17+
msgs : dict
18+
name : str
19+
options : tuple
20+
open() None
21+
visit_binop(node: nodes.BinOp) None
22+
visit_compare(node: nodes.Compare) None
23+
visit_raise(node: nodes.Raise) None
24+
visit_try(node: nodes.Try) None
25+
visit_trystar(node: nodes.TryStar) None
26+
}
27+
style ExceptionsChecker fill:#44BB99
28+
class StdlibChecker {
29+
msgs : dict[str, MessageDefinitionTuple]
30+
name : str
31+
deprecated_arguments(method: str) tuple[tuple[int | None, str], ...]
32+
deprecated_attributes() Iterable[str]
33+
deprecated_classes(module: str) Iterable[str]
34+
deprecated_decorators() Iterable[str]
35+
deprecated_methods() set[str]
36+
visit_boolop(node: nodes.BoolOp) None
37+
visit_call(node: nodes.Call) None
38+
visit_functiondef(node: nodes.FunctionDef) None
39+
visit_if(node: nodes.If) None
40+
visit_ifexp(node: nodes.IfExp) None
41+
visit_unaryop(node: nodes.UnaryOp) None
42+
}
43+
style StdlibChecker fill:#44BB99
44+
ExceptionsChecker --* CheckerCollector : checker1
45+
StdlibChecker --* CheckerCollector : checker3
46+
ElseifUsedChecker --* CheckerCollector : checker2
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[testoptions]
2-
output_formats=puml
2+
output_formats=puml,mmd
33
command_line_args=-S --colorized --max-color-depth=2

0 commit comments

Comments
 (0)