mirror of
https://github.com/NicolasBohn/NexQuant.git
synced 2026-08-01 09:27:43 +00:00
fix(security): replace remaining assert statements with proper error handling
Replaced 53 assert statements across 22 files with proper if/raise patterns (TypeError, ValueError, AssertionError) to resolve Bandit B101 alerts.
This commit is contained in:
@@ -75,8 +75,10 @@ class CoSTEER(Developer[Experiment]):
|
||||
|
||||
def _get_last_fb(self) -> CoSTEERMultiFeedback:
|
||||
fb = self.evolve_agent.evolving_trace[-1].feedback
|
||||
assert fb is not None, "feedback is None"
|
||||
assert isinstance(fb, CoSTEERMultiFeedback), "feedback must be of type CoSTEERMultiFeedback"
|
||||
if fb is None:
|
||||
raise AssertionError("feedback is None")
|
||||
if not isinstance(fb, CoSTEERMultiFeedback):
|
||||
raise TypeError("feedback must be of type CoSTEERMultiFeedback")
|
||||
return fb
|
||||
|
||||
def should_use_new_evo(self, base_fb: CoSTEERMultiFeedback | None, new_fb: CoSTEERMultiFeedback) -> bool:
|
||||
@@ -121,7 +123,8 @@ class CoSTEER(Developer[Experiment]):
|
||||
|
||||
for evo_exp in self.evolve_agent.multistep_evolve(evo_exp, self.evaluator):
|
||||
iteration_count += 1
|
||||
assert isinstance(evo_exp, Experiment) # multiple inheritance
|
||||
if not isinstance(evo_exp, Experiment):
|
||||
raise TypeError("evo_exp must be an instance of Experiment")
|
||||
evo_fb = self._get_last_fb()
|
||||
update_fallback = self.should_use_new_evo(
|
||||
base_fb=fallback_evo_fb,
|
||||
@@ -154,7 +157,8 @@ class CoSTEER(Developer[Experiment]):
|
||||
evo_exp = fallback_evo_exp
|
||||
evo_exp.recover_ws_ckp()
|
||||
evo_fb = fallback_evo_fb
|
||||
assert evo_fb is not None # multistep_evolve should run at least once
|
||||
if evo_fb is None:
|
||||
raise AssertionError("multistep_evolve should run at least once")
|
||||
evo_exp = self._exp_postprocess_by_feedback(evo_exp, evo_fb)
|
||||
except CoderError as e:
|
||||
e.caused_by_timeout = reached_max_seconds
|
||||
@@ -264,9 +268,12 @@ class CoSTEER(Developer[Experiment]):
|
||||
- Raise Error if it failed to handle the develop task
|
||||
-
|
||||
"""
|
||||
assert isinstance(evo, Experiment)
|
||||
assert isinstance(feedback, CoSTEERMultiFeedback)
|
||||
assert len(evo.sub_workspace_list) == len(feedback)
|
||||
if not isinstance(evo, Experiment):
|
||||
raise TypeError("evo must be an instance of Experiment")
|
||||
if not isinstance(feedback, CoSTEERMultiFeedback):
|
||||
raise TypeError("feedback must be an instance of CoSTEERMultiFeedback")
|
||||
if len(evo.sub_workspace_list) != len(feedback):
|
||||
raise ValueError("Length of sub_workspace_list must match length of feedback")
|
||||
|
||||
# FIXME: when whould the feedback be None?
|
||||
failed_feedbacks = [
|
||||
|
||||
@@ -122,7 +122,8 @@ class MultiProcessEvolvingStrategy(EvolvingStrategy):
|
||||
last_feedback = None
|
||||
if len(evolving_trace) > 0:
|
||||
last_feedback = evolving_trace[-1].feedback
|
||||
assert isinstance(last_feedback, CoSTEERMultiFeedback)
|
||||
if not isinstance(last_feedback, CoSTEERMultiFeedback):
|
||||
raise TypeError("last_feedback must be of type CoSTEERMultiFeedback")
|
||||
|
||||
# 1.找出需要evolve的task
|
||||
to_be_finished_task_index: list[int] = []
|
||||
|
||||
@@ -1028,7 +1028,8 @@ class CoSTEERKnowledgeBaseV2(EvolvingKnowledgeBase):
|
||||
|
||||
"""
|
||||
node_count = len(nodes)
|
||||
assert node_count >= 2, "nodes length must >=2"
|
||||
if node_count < 2:
|
||||
raise ValueError("nodes length must >=2")
|
||||
intersection_node_list = []
|
||||
if output_intersection_origin:
|
||||
origin_list = []
|
||||
|
||||
@@ -58,10 +58,12 @@ class ModelCodeEvaluator(CoSTEEREvaluator):
|
||||
model_execution_feedback: str = "",
|
||||
model_value_feedback: str = "",
|
||||
):
|
||||
assert isinstance(target_task, ModelTask)
|
||||
assert isinstance(implementation, ModelFBWorkspace)
|
||||
if gt_implementation is not None:
|
||||
assert isinstance(gt_implementation, ModelFBWorkspace)
|
||||
if not isinstance(target_task, ModelTask):
|
||||
raise TypeError("target_task must be of type ModelTask")
|
||||
if not isinstance(implementation, ModelFBWorkspace):
|
||||
raise TypeError("implementation must be of type ModelFBWorkspace")
|
||||
if gt_implementation is not None and not isinstance(gt_implementation, ModelFBWorkspace):
|
||||
raise TypeError("gt_implementation must be of type ModelFBWorkspace")
|
||||
|
||||
model_task_information = target_task.get_task_information()
|
||||
code = implementation.all_codes
|
||||
@@ -113,10 +115,12 @@ class ModelFinalEvaluator(CoSTEEREvaluator):
|
||||
model_value_feedback: str,
|
||||
model_code_feedback: str,
|
||||
):
|
||||
assert isinstance(target_task, ModelTask)
|
||||
assert isinstance(implementation, ModelFBWorkspace)
|
||||
if gt_implementation is not None:
|
||||
assert isinstance(gt_implementation, ModelFBWorkspace)
|
||||
if not isinstance(target_task, ModelTask):
|
||||
raise TypeError("target_task must be of type ModelTask")
|
||||
if not isinstance(implementation, ModelFBWorkspace):
|
||||
raise TypeError("implementation must be of type ModelFBWorkspace")
|
||||
if gt_implementation is not None and not isinstance(gt_implementation, ModelFBWorkspace):
|
||||
raise TypeError("gt_implementation must be of type ModelFBWorkspace")
|
||||
|
||||
system_prompt = T(".prompts:evaluator_final_feedback.system").r(
|
||||
scenario=(
|
||||
|
||||
Reference in New Issue
Block a user