@@ -370,6 +370,7 @@ class Style:
370370 ## DATA node
371371
372372 kw_data = {}
373+ kw_data_pruned = {"color" : Ref ("cancel_color" ), "tooltip" : "(pruned node)" }
373374 kw_data_in_plan = {"color" : Ref ("in_plan" )}
374375 kw_data_in_solution = {"style" : "filled" , "fillcolor" : Ref ("fill_color" )}
375376 kw_data_overwritten = {"style" : "filled" , "fillcolor" : Ref ("overwrite_color" )}
@@ -386,6 +387,7 @@ class Style:
386387 kw_op = {}
387388 #: props only for HTML-Table label
388389 kw_op_label = {}
390+ kw_op_pruned = {"color" : Ref ("cancel_color" )}
389391 kw_op_executed = {"fillcolor" : Ref ("fill_color" )}
390392 kw_op_rescheduled = {"penwidth" : Ref ("resched_thickness" )}
391393 kw_op_endured = {"penwidth" : Ref ("resched_thickness" )}
@@ -657,24 +659,29 @@ def _make_node(self, plot_args: PlotArgs, node_args: NodeArgs) -> pydot.Node:
657659 if nx_node in solution .overwrites :
658660 kw .update (style .kw_data_overwritten )
659661
660- val = solution .get (nx_node )
661- tooltip = "None" if val is None else f"({ type (val ).__name__ } ) { val } "
662- kw ["tooltip" ] = quote_html_tooltips (tooltip )
662+ if nx_node not in solution .plan .dag .nodes :
663+ kw .update (** style .kw_data_pruned )
664+ else :
665+ val = solution .get (nx_node )
666+ tooltip = "None" if val is None else f"({ type (val ).__name__ } ) { val } "
667+ kw ["tooltip" ] = quote_html_tooltips (tooltip )
663668
664669 kw .update (_pub_props (node_attrs ))
665670
666671 else : # OPERATION
667-
672+ op_name = nx_node . name
668673 kw_label = style .kw_op_label .copy ()
669674 kw_label .update (
670675 {
671- "op_name" : nx_node . name ,
676+ "op_name" : op_name ,
672677 "fn_name" : func_name (nx_node .fn , mod = 1 , fqdn = 1 , human = 1 ),
673678 "op_tooltip" : self ._make_op_tooltip (plot_args , node_args ),
674679 "fn_tooltip" : self ._make_fn_tooltip (plot_args , node_args ),
675680 }
676681 )
677682
683+ if steps and nx_node not in steps :
684+ kw_label .update (style .kw_op_pruned )
678685 if nx_node .rescheduled :
679686 kw_label .update (style .kw_op_rescheduled )
680687 if nx_node .endured :
@@ -700,9 +707,7 @@ def _make_node(self, plot_args: PlotArgs, node_args: NodeArgs) -> pydot.Node:
700707 "name" : quote_node_id (nx_node .name ),
701708 "shape" : "plain" ,
702709 "label" : _render_template (self .style .op_template , ** kw_label ),
703- "tooltip" : graphviz_html_string (
704- nx_node .name # without it, "TABLE" shown...
705- ),
710+ "tooltip" : graphviz_html_string (op_name ), # or else, "TABLE" shown...
706711 }
707712
708713 # Graphviz node attributes interacting badly with HTML-Labels.
0 commit comments