@@ -765,7 +765,7 @@ def make_dot(self):
765765 node_data = graph .nodes .get (f'"{ name } "' , {})
766766 if node_data .get ("collapsed" ):
767767 table_count = node_data .get ("table_count" , 0 )
768- label = f"{ name } \\ n ({ table_count } tables)" if table_count != 1 else f" { name } \\ n (1 table)"
768+ label = f"({ table_count } tables)" if table_count != 1 else " (1 table)"
769769 node .set_label (label )
770770 node .set_tooltip (f"Collapsed schema: { table_count } tables" )
771771 else :
@@ -951,43 +951,43 @@ def make_mermaid(self) -> str:
951951 None : "" ,
952952 }
953953
954- # Group nodes by schema into subgraphs (only non- collapsed nodes)
954+ # Group nodes by schema into subgraphs (including collapsed nodes)
955955 schemas = {}
956- collapsed_nodes = []
957956 for node , data in graph .nodes (data = True ):
958957 if data .get ("collapsed" ):
959- collapsed_nodes .append ((node , data ))
958+ # Collapsed nodes use their schema_name attribute
959+ schema_name = data .get ("schema_name" )
960960 else :
961961 schema_name = schema_map .get (node )
962- if schema_name :
963- if schema_name not in schemas :
964- schemas [schema_name ] = []
965- schemas [schema_name ].append ((node , data ))
966-
967- # Add collapsed nodes (not in subgraphs)
968- for node , data in collapsed_nodes :
969- safe_id = node .replace ("." , "_" ).replace (" " , "_" )
970- table_count = data .get ("table_count" , 0 )
971- count_text = f"{ table_count } tables" if table_count != 1 else "1 table"
972- lines .append (f" { safe_id } [[\" { node } <br/>({ count_text } )\" ]]:::collapsed" )
962+ if schema_name :
963+ if schema_name not in schemas :
964+ schemas [schema_name ] = []
965+ schemas [schema_name ].append ((node , data ))
973966
974967 # Add nodes grouped by schema subgraphs
975968 for schema_name , nodes in schemas .items ():
976969 label = cluster_labels .get (schema_name , schema_name )
977970 lines .append (f" subgraph { label } " )
978971 for node , data in nodes :
979- tier = data .get ("node_type" )
980- left , right = shape_map .get (tier , ("[" , "]" ))
981- cls = tier_class .get (tier , "" )
982972 safe_id = node .replace ("." , "_" ).replace (" " , "_" )
983- # Strip module prefix from display name if it matches the cluster label
984- display_name = node
985- if "." in node :
986- prefix = node .rsplit ("." , 1 )[0 ]
987- if prefix == label :
988- display_name = node .rsplit ("." , 1 )[1 ]
989- class_suffix = f":::{ cls } " if cls else ""
990- lines .append (f" { safe_id } { left } { display_name } { right } { class_suffix } " )
973+ if data .get ("collapsed" ):
974+ # Collapsed node - show only table count
975+ table_count = data .get ("table_count" , 0 )
976+ count_text = f"{ table_count } tables" if table_count != 1 else "1 table"
977+ lines .append (f" { safe_id } [[\" ({ count_text } )\" ]]:::collapsed" )
978+ else :
979+ # Regular node
980+ tier = data .get ("node_type" )
981+ left , right = shape_map .get (tier , ("[" , "]" ))
982+ cls = tier_class .get (tier , "" )
983+ # Strip module prefix from display name if it matches the cluster label
984+ display_name = node
985+ if "." in node :
986+ prefix = node .rsplit ("." , 1 )[0 ]
987+ if prefix == label :
988+ display_name = node .rsplit ("." , 1 )[1 ]
989+ class_suffix = f":::{ cls } " if cls else ""
990+ lines .append (f" { safe_id } { left } { display_name } { right } { class_suffix } " )
991991 lines .append (" end" )
992992
993993 lines .append ("" )
0 commit comments