@@ -223,7 +223,8 @@ def pop(self) -> ExplorationTask | None:
223223 self ._tasks .values (),
224224 key = lambda t : t .metadata .get ("delta_E_hartree" , 0.0 ),
225225 )
226- del self ._tasks [id (selected )]
226+ target_key = next (k for k , v in self ._tasks .items () if v is selected )
227+ del self ._tasks [target_key ]
227228 return selected
228229
229230 # ── Select nodes and energy accessor based on energy mode ───────────
@@ -250,7 +251,8 @@ def _edge_ts_e(edge):
250251 if not self ._tasks :
251252 return None
252253 selected = next (iter (self ._tasks .values ()))
253- del self ._tasks [id (selected )]
254+ target_key = next (k for k , v in self ._tasks .items () if v is selected )
255+ del self ._tasks [target_key ]
254256 return selected
255257
256258 n_nodes = len (nodes )
@@ -457,7 +459,8 @@ def _edge_ts_e(edge):
457459 task .priority = 0.0
458460
459461 selected = max (self ._tasks .values (), key = lambda t : t .priority )
460- del self ._tasks [id (selected )]
462+ target_key = next (k for k , v in self ._tasks .items () if v is selected )
463+ del self ._tasks [target_key ]
461464 logger .debug (
462465 "RCMC pop(): selected EQ%d priority(q)=%.6f "
463466 "remaining_tasks=%d" ,
@@ -705,7 +708,7 @@ def all_edges(self) -> list:
705708 priority = 0.0 ,
706709 metadata = {"delta_E_hartree" : eff_e },
707710 )
708- queue ._tasks [ id (task )] = task
711+ queue .push (task )
709712
710713 # ── Run RCMC – one full pop() pass ────────────────────────────────────────
711714 energy_label = "Gibbs free energy (G_tot)" if use_free_energy else "Electronic energy (SCF)"
0 commit comments