Skip to content

Commit 1fff609

Browse files
committed
[BUG] Fix handling of None in left_right_codes to prevent processing issues
1 parent d8bd904 commit 1fff609

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

gempy_engine/modules/dual_contouring/_dual_contouring.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,11 @@ def compute_dual_contouring(dc_data_per_stack: DualContouringData,
5757
left_right_codes=left_right_codes
5858
)
5959

60-
valid_left_right_codes = left_right_codes[dc_data_per_surface.valid_voxels]
60+
# Handle None left_right_codes case
61+
if left_right_codes is not None:
62+
valid_left_right_codes = left_right_codes[dc_data_per_surface.valid_voxels]
63+
else:
64+
valid_left_right_codes = None
6165

6266
if TRIMESH_LAST_PASS := True:
6367
vertices_numpy, indices_numpy = _last_pass(vertices_numpy, indices_numpy)
@@ -94,6 +98,9 @@ def _parallel_process_surfaces(dc_data_per_stack, left_right_codes, debug, num_w
9498
surface_indices = list(range(dc_data_per_stack.n_surfaces_to_export))
9599
chunks = [surface_indices[i:i + chunk_size] for i in range(0, len(surface_indices), chunk_size)]
96100

101+
# Handle None left_right_codes case - ensure we pass a serializable value
102+
serializable_left_right_codes = left_right_codes
103+
97104
try:
98105
# Use spawn context for better PyTorch compatibility
99106
ctx = mp.get_context("spawn") if MULTIPROCESSING_AVAILABLE else mp
@@ -104,7 +111,7 @@ def _parallel_process_surfaces(dc_data_per_stack, left_right_codes, debug, num_w
104111
for chunk in chunks:
105112
result = pool.apply_async(
106113
_process_surface_batch,
107-
(chunk, dc_data_dict, left_right_codes, debug)
114+
(chunk, dc_data_dict, serializable_left_right_codes, debug)
108115
)
109116
async_results.append(result)
110117

0 commit comments

Comments
 (0)