mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2026-02-08 07:28:45 +00:00
remove poor algorithm
This commit is contained in:
@@ -540,44 +540,6 @@ class LoadingSurvex:
|
||||
|
||||
return topo_sorted_list
|
||||
|
||||
def get_generational_chunks(sorted_blocks):
|
||||
"""
|
||||
Splits a topologically sorted list into chunks where no child
|
||||
exists in the same chunk as its parent.
|
||||
"""
|
||||
chunks = []
|
||||
# Track which IDs are already "saved" (in a previous chunk)
|
||||
saved_ids = set()
|
||||
|
||||
# current_batch will hold blocks for the current "generation"
|
||||
current_batch = []
|
||||
|
||||
for block in sorted_blocks:
|
||||
parent_id = getattr(block.parent, '_blockid', block.parent)
|
||||
|
||||
# If the parent is not yet 'saved', this block MUST
|
||||
# go into a future batch.
|
||||
if parent_id and parent_id not in saved_ids:
|
||||
# Finish the current chunk and start a new one
|
||||
if current_batch:
|
||||
chunks.append(current_batch)
|
||||
# Mark everything in the finished batch as 'saved'
|
||||
saved_ids.update(b._blockid for b in current_batch)
|
||||
current_batch = []
|
||||
|
||||
current_batch.append(block)
|
||||
|
||||
# Safety: Even if there are no dependencies, respect the BATCH_SIZE
|
||||
if len(current_batch) >= BATCH_SIZE:
|
||||
chunks.append(current_batch)
|
||||
saved_ids.update(b._blockid for b in current_batch)
|
||||
current_batch = []
|
||||
|
||||
# Add the final trailing batch
|
||||
if current_batch:
|
||||
chunks.append(current_batch)
|
||||
|
||||
return chunks
|
||||
def get_generational_chunks_optimized(blocks):
|
||||
"""
|
||||
Splits a topologically sorted list into chunks where no child
|
||||
|
||||
Reference in New Issue
Block a user