MCPcopy
hub / github.com/VectifyAI/PageIndex / build_tree_from_nodes

Function build_tree_from_nodes

pageindex/page_index_md.py:190–221  ·  view source on GitHub ↗
(node_list)

Source from the content-addressed store, hash-verified

188
189
190def build_tree_from_nodes(node_list):
191 if not node_list:
192 return []
193
194 stack = []
195 root_nodes = []
196 node_counter = 1
197
198 for node in node_list:
199 current_level = node['level']
200
201 tree_node = {
202 'title': node['title'],
203 'node_id': str(node_counter).zfill(4),
204 'text': node['text'],
205 'line_num': node['line_num'],
206 'nodes': []
207 }
208 node_counter += 1
209
210 while stack and stack[-1][1] >= current_level:
211 stack.pop()
212
213 if not stack:
214 root_nodes.append(tree_node)
215 else:
216 parent_node, parent_level = stack[-1]
217 parent_node['nodes'].append(tree_node)
218
219 stack.append((tree_node, current_level))
220
221 return root_nodes
222
223
224def clean_tree_for_output(tree_nodes):

Callers 1

md_to_treeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected