@@ -789,7 +789,7 @@ def tree_to_newick(
789789 attr_sep = attr_sep .value
790790
791791 def _serialize (item : Any ) -> Any :
792- """Serialize item if it contains special Newick characters
792+ """Serialize item if it contains special Newick characters.
793793
794794 Args:
795795 item (Any): item to serialize
@@ -887,7 +887,12 @@ def tree_to_dict(
887887 tree = tree .copy ()
888888 data_dict = {}
889889
890- def recursive_append (node : T ) -> None :
890+ def _recursive_append (node : T ) -> None :
891+ """Recursively iterate through node and its children to export to dictionary.
892+
893+ Args:
894+ node (Node): current node
895+ """
891896 if node :
892897 if (
893898 (not max_depth or node .depth <= max_depth )
@@ -915,9 +920,9 @@ def recursive_append(node: T) -> None:
915920 data_child [v ] = node .get_attr (k )
916921 data_dict [node .path_name ] = data_child
917922 for _node in node .children :
918- recursive_append (_node )
923+ _recursive_append (_node )
919924
920- recursive_append (tree )
925+ _recursive_append (tree )
921926 return data_dict
922927
923928
@@ -960,7 +965,13 @@ def tree_to_nested_dict(
960965 tree = tree .copy ()
961966 data_dict : Dict [str , List [Dict [str , Any ]]] = {}
962967
963- def recursive_append (node : T , parent_dict : Dict [str , Any ]) -> None :
968+ def _recursive_append (node : T , parent_dict : Dict [str , Any ]) -> None :
969+ """Recursively iterate through node and its children to export to nested dictionary.
970+
971+ Args:
972+ node (Node): current node
973+ parent_dict (Dict[str, Any]): parent dictionary
974+ """
964975 if node :
965976 if not max_depth or node .depth <= max_depth :
966977 data_child = {name_key : node .node_name }
@@ -981,9 +992,9 @@ def recursive_append(node: T, parent_dict: Dict[str, Any]) -> None:
981992 parent_dict [child_key ] = [data_child ]
982993
983994 for _node in node .children :
984- recursive_append (_node , data_child )
995+ _recursive_append (_node , data_child )
985996
986- recursive_append (tree , data_dict )
997+ _recursive_append (tree , data_dict )
987998 return data_dict [child_key ][0 ]
988999
9891000
@@ -1044,7 +1055,12 @@ def tree_to_dataframe(
10441055 tree = tree .copy ()
10451056 data_list = []
10461057
1047- def recursive_append (node : T ) -> None :
1058+ def _recursive_append (node : T ) -> None :
1059+ """Recursively iterate through node and its children to export to dataframe.
1060+
1061+ Args:
1062+ node (Node): current node
1063+ """
10481064 if node :
10491065 if (
10501066 (not max_depth or node .depth <= max_depth )
@@ -1071,9 +1087,9 @@ def recursive_append(node: T) -> None:
10711087 data_child [v ] = node .get_attr (k )
10721088 data_list .append (data_child )
10731089 for _node in node .children :
1074- recursive_append (_node )
1090+ _recursive_append (_node )
10751091
1076- recursive_append (tree )
1092+ _recursive_append (tree )
10771093 return pd .DataFrame (data_list )
10781094
10791095
@@ -1212,9 +1228,13 @@ def tree_to_dot(
12121228
12131229 name_dict : Dict [str , List [str ]] = collections .defaultdict (list )
12141230
1215- def recursive_create_node_and_edges (
1216- parent_name : Optional [str ], child_node : T
1217- ) -> None :
1231+ def _recursive_append (parent_name : Optional [str ], child_node : T ) -> None :
1232+ """Recursively iterate through node and its children to export to dot by creating node and edges.
1233+
1234+ Args:
1235+ parent_name (Optional[str]): parent name
1236+ child_node (Node): current node
1237+ """
12181238 _node_style = node_style .copy ()
12191239 _edge_style = edge_style .copy ()
12201240
@@ -1241,9 +1261,9 @@ def recursive_create_node_and_edges(
12411261 _graph .add_edge (edge )
12421262 for child in child_node .children :
12431263 if child :
1244- recursive_create_node_and_edges (child_name , child )
1264+ _recursive_append (child_name , child )
12451265
1246- recursive_create_node_and_edges (None , _tree .root )
1266+ _recursive_append (None , _tree .root )
12471267 return _graph
12481268
12491269
@@ -1522,6 +1542,17 @@ def _construct_style(
15221542 _node_border_colour : str ,
15231543 _node_border_width : float ,
15241544 ) -> str :
1545+ """Construct style for Mermaid.
1546+
1547+ Args:
1548+ _style_name (str): style name
1549+ _node_colour (str): node colour
1550+ _node_border_colour (str): node border colour
1551+ _node_border_width (float): node border width
1552+
1553+ Returns:
1554+ (str)
1555+ """
15251556 style = []
15261557 if _node_colour :
15271558 style .append (f"fill:{ _node_colour } " )
@@ -1539,6 +1570,8 @@ def _construct_style(
15391570 styles .append (default_style )
15401571
15411572 class MermaidNode (Node ):
1573+ """Mermaid Node, adds property `mermaid_name`"""
1574+
15421575 @property
15431576 def mermaid_name (self ) -> str :
15441577 """Reference name for MermaidNode, must be unique for each node.
@@ -1550,7 +1583,7 @@ def mermaid_name(self) -> str:
15501583 return "0"
15511584 return f"{ self .parent .mermaid_name } -{ self .parent .children .index (self )} "
15521585
1553- def get_attr (
1586+ def _get_attr (
15541587 _node : MermaidNode ,
15551588 attr_parameter : str | Callable [[MermaidNode ], str ],
15561589 default_parameter : str ,
@@ -1579,24 +1612,24 @@ def get_attr(
15791612 # Get custom style (node_shape_attr)
15801613 _parent_node_name = ""
15811614 if node .parent .is_root :
1582- _parent_node_shape_choice = get_attr (
1615+ _parent_node_shape_choice = _get_attr (
15831616 node .parent , node_shape_attr , node_shape # type: ignore
15841617 )
15851618 _parent_node_shape = node_shapes [_parent_node_shape_choice ]
15861619 _parent_node_name = _parent_node_shape .format (label = node .parent .name )
1587- _node_shape_choice = get_attr (node , node_shape_attr , node_shape ) # type: ignore
1620+ _node_shape_choice = _get_attr (node , node_shape_attr , node_shape ) # type: ignore
15881621 _node_shape = node_shapes [_node_shape_choice ]
15891622 _node_name = _node_shape .format (label = node .name )
15901623
15911624 # Get custom style (edge_arrow_attr, edge_label)
1592- _arrow_choice = get_attr (node , edge_arrow_attr , edge_arrow ) # type: ignore
1625+ _arrow_choice = _get_attr (node , edge_arrow_attr , edge_arrow ) # type: ignore
15931626 _arrow = edge_arrows [_arrow_choice ]
15941627 _arrow_label = (
15951628 f"|{ node .get_attr (edge_label )} |" if node .get_attr (edge_label ) else ""
15961629 )
15971630
15981631 # Get custom style (node_attr)
1599- _flow_style = get_attr (node , node_attr , "" ) # type: ignore
1632+ _flow_style = _get_attr (node , node_attr , "" ) # type: ignore
16001633 if _flow_style :
16011634 _flow_style_class = f"""class{ node .get_attr ("mermaid_name" )} """
16021635 styles .append (
0 commit comments