@@ -374,16 +374,11 @@ def _apply_collapse(self, graph: nx.DiGraph) -> tuple[nx.DiGraph, dict[str, str]
374374 return graph , {}
375375
376376 # Map full_table_names to class_names
377- full_to_class = {
378- node : lookup_class_name (node , self .context ) or node
379- for node in valid_nodes
380- }
377+ full_to_class = {node : lookup_class_name (node , self .context ) or node for node in valid_nodes }
381378 class_to_full = {v : k for k , v in full_to_class .items ()}
382379
383380 # Identify expanded class names
384- expanded_class_names = {
385- full_to_class .get (node , node ) for node in valid_expanded
386- }
381+ expanded_class_names = {full_to_class .get (node , node ) for node in valid_expanded }
387382
388383 # Identify nodes to collapse (class names)
389384 nodes_to_collapse = set (graph .nodes ()) - expanded_class_names
@@ -396,7 +391,7 @@ def _apply_collapse(self, graph: nx.DiGraph) -> tuple[nx.DiGraph, dict[str, str]
396391 for class_name in nodes_to_collapse :
397392 full_name = class_to_full .get (class_name )
398393 if full_name :
399- parts = full_name .replace ('"' , '`' ).split ('`' )
394+ parts = full_name .replace ('"' , "`" ).split ("`" )
400395 if len (parts ) >= 2 :
401396 schema_name = parts [1 ]
402397 if schema_name not in collapsed_by_schema :
@@ -421,7 +416,7 @@ def _apply_collapse(self, graph: nx.DiGraph) -> tuple[nx.DiGraph, dict[str, str]
421416 for node in graph .nodes ():
422417 full_name = class_to_full .get (node )
423418 if full_name :
424- parts = full_name .replace ('"' , '`' ).split ('`' )
419+ parts = full_name .replace ('"' , "`" ).split ("`" )
425420 if len (parts ) >= 2 :
426421 db_schema = parts [1 ]
427422 cls = self ._resolve_class (node )
@@ -466,7 +461,7 @@ def _apply_collapse(self, graph: nx.DiGraph) -> tuple[nx.DiGraph, dict[str, str]
466461 for node in graph .nodes ():
467462 full_name = class_to_full .get (node )
468463 if full_name :
469- parts = full_name .replace ('"' , '`' ).split ('`' )
464+ parts = full_name .replace ('"' , "`" ).split ("`" )
470465 if len (parts ) >= 2 and node in nodes_to_collapse :
471466 schema_name = parts [1 ]
472467 node_mapping [node ] = collapsed_labels [schema_name ]
@@ -481,7 +476,7 @@ def _apply_collapse(self, graph: nx.DiGraph) -> tuple[nx.DiGraph, dict[str, str]
481476 neighbor = next (iter (neighbors ))
482477 full_name = class_to_full .get (neighbor )
483478 if full_name :
484- parts = full_name .replace ('"' , '`' ).split ('`' )
479+ parts = full_name .replace ('"' , "`" ).split ("`" )
485480 if len (parts ) >= 2 :
486481 schema_name = parts [1 ]
487482 node_mapping [node ] = collapsed_labels [schema_name ]
@@ -498,9 +493,13 @@ def _apply_collapse(self, graph: nx.DiGraph) -> tuple[nx.DiGraph, dict[str, str]
498493 # This is a collapsed schema node
499494 if new_node not in added_collapsed :
500495 schema_name = label_to_schema .get (new_node , new_node )
501- new_graph .add_node (new_node , node_type = None , collapsed = True ,
502- table_count = collapsed_counts [new_node ],
503- schema_name = schema_name )
496+ new_graph .add_node (
497+ new_node ,
498+ node_type = None ,
499+ collapsed = True ,
500+ table_count = collapsed_counts [new_node ],
501+ schema_name = schema_name ,
502+ )
504503 added_collapsed .add (new_node )
505504 else :
506505 new_graph .add_node (new_node , ** graph .nodes [old_node ])
@@ -598,7 +597,7 @@ def make_dot(self):
598597
599598 for full_name in self .nodes_to_show :
600599 # Extract schema from full table name like `schema`.`table` or "schema"."table"
601- parts = full_name .replace ('"' , '`' ).split ('`' )
600+ parts = full_name .replace ('"' , "`" ).split ("`" )
602601 if len (parts ) >= 2 :
603602 schema_name = parts [1 ] # schema is between first pair of backticks
604603 class_name = lookup_class_name (full_name , self .context ) or full_name
@@ -748,7 +747,8 @@ def make_dot(self):
748747 description = cls ().describe (context = self .context ).split ("\n " )
749748 description = (
750749 (
751- "-" * 30 if q .startswith ("---" )
750+ "-" * 30
751+ if q .startswith ("---" )
752752 else (q .replace ("->" , "→" ) if "->" in q else q .split (":" )[0 ])
753753 )
754754 for q in description
@@ -867,7 +867,7 @@ def make_mermaid(self) -> str:
867867 schema_modules = {} # schema_name -> set of module names
868868
869869 for full_name in self .nodes_to_show :
870- parts = full_name .replace ('"' , '`' ).split ('`' )
870+ parts = full_name .replace ('"' , "`" ).split ("`" )
871871 if len (parts ) >= 2 :
872872 schema_name = parts [1 ]
873873 class_name = lookup_class_name (full_name , self .context ) or full_name
@@ -909,13 +909,13 @@ def make_mermaid(self) -> str:
909909
910910 # Shape mapping: Manual=box, Computed/Imported=stadium, Lookup/Part=box
911911 shape_map = {
912- Manual : ("[" , "]" ), # box
913- Lookup : ("[" , "]" ), # box
914- Computed : ("([" , "])" ), # stadium/pill
915- Imported : ("([" , "])" ), # stadium/pill
916- Part : ("[" , "]" ), # box
917- _AliasNode : ("((" , "))" ), # circle
918- None : ("((" , "))" ), # circle
912+ Manual : ("[" , "]" ), # box
913+ Lookup : ("[" , "]" ), # box
914+ Computed : ("([" , "])" ), # stadium/pill
915+ Imported : ("([" , "])" ), # stadium/pill
916+ Part : ("[" , "]" ), # box
917+ _AliasNode : ("((" , "))" ), # circle
918+ None : ("((" , "))" ), # circle
919919 }
920920
921921 tier_class = {
@@ -951,7 +951,7 @@ def make_mermaid(self) -> str:
951951 # Collapsed node - show only table count
952952 table_count = data .get ("table_count" , 0 )
953953 count_text = f"{ table_count } tables" if table_count != 1 else "1 table"
954- lines .append (f" { safe_id } [[\ " ({ count_text } )\ " ]]:::collapsed" )
954+ lines .append (f' { safe_id } [["({ count_text } )"]]:::collapsed' )
955955 else :
956956 # Regular node
957957 tier = data .get ("node_type" )
0 commit comments