verifiers 0.2.2.dev34__py3-none-any.whl → 0.2.2.dev35__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -108,8 +108,8 @@ def _attach_trajectory_tokens_to_prompt(
108
108
  continue
109
109
  msg = prompt[i]
110
110
  if (prompt_ids := tokens.get("prompt_ids")) is not None:
111
- msg.prompt_token_ids = list(prompt_ids)
111
+ msg.prompt_token_ids = list(prompt_ids) # ty:ignore[invalid-assignment]
112
112
  if (completion_ids := tokens.get("completion_ids")) is not None:
113
- msg.generation_token_ids = list(completion_ids)
113
+ msg.generation_token_ids = list(completion_ids) # ty:ignore[invalid-assignment]
114
114
  if (completion_logprobs := tokens.get("completion_logprobs")) is not None:
115
- msg.generation_log_probs = list(completion_logprobs)
115
+ msg.generation_log_probs = list(completion_logprobs) # ty:ignore[invalid-assignment]
@@ -233,7 +233,7 @@ class OpenAIChatCompletionsClient(
233
233
  role="assistant",
234
234
  content=cast(Any, normalize_content(message.content)),
235
235
  tool_calls=cast(Any, oai_tool_calls),
236
- reasoning_content=message.reasoning_content, # type: ignore[arg-type]
236
+ reasoning_content=message.reasoning_content, # type: ignore[arg-type] # ty:ignore[invalid-key]
237
237
  )
238
238
  elif isinstance(message, ToolMessage):
239
239
  return ChatCompletionToolMessageParam(
@@ -290,7 +290,7 @@ class OpenAIChatCompletionsTokenClient(OpenAIChatCompletionsClient):
290
290
  if tool_call_ids:
291
291
  dummy_assistant: OpenAIChatMessage = ChatCompletionAssistantMessageParam(
292
292
  role="assistant",
293
- reasoning_content="", # type: ignore[typeddict-unknown-key]
293
+ reasoning_content="", # type: ignore[typeddict-unknown-key] # ty:ignore[invalid-key]
294
294
  tool_calls=[
295
295
  ChatCompletionMessageFunctionToolCallParam(
296
296
  id=tc_id,
@@ -303,7 +303,7 @@ class OpenAIChatCompletionsTokenClient(OpenAIChatCompletionsClient):
303
303
  else:
304
304
  dummy_assistant: OpenAIChatMessage = ChatCompletionAssistantMessageParam(
305
305
  role="assistant",
306
- reasoning_content="", # type: ignore[typeddict-unknown-key]
306
+ reasoning_content="", # type: ignore[typeddict-unknown-key] # ty:ignore[invalid-key]
307
307
  content="x",
308
308
  )
309
309
 
@@ -294,7 +294,7 @@ class EnvGroup(vf.Environment):
294
294
  return dataset
295
295
 
296
296
  @final
297
- async def run_rollout( # type: ignore[override]
297
+ async def run_rollout( # type: ignore[override] # ty:ignore[override-of-final-method]
298
298
  self,
299
299
  input: RolloutInput,
300
300
  client: Client | ClientConfig,
@@ -330,10 +330,10 @@ class EnvGroup(vf.Environment):
330
330
  state_columns,
331
331
  env.env_client,
332
332
  )
333
- return _set_info_route(output, route) # type: ignore[return-value]
333
+ return _set_info_route(output, route) # type: ignore[return-value] # ty:ignore[invalid-return-type]
334
334
 
335
335
  @final
336
- async def run_group( # type: ignore[override]
336
+ async def run_group( # type: ignore[override] # ty:ignore[override-of-final-method]
337
337
  self,
338
338
  group_inputs: list[RolloutInput],
339
339
  client: Client | ClientConfig,
@@ -342,7 +342,7 @@ class EnvGroup(vf.Environment):
342
342
  max_retries: int = 0,
343
343
  state_columns: list[str] | None = None,
344
344
  env_client: EnvClient | None = None,
345
- ) -> list[vf.RolloutOutput]:
345
+ ) -> list[vf.RolloutOutput]: # ty:ignore[invalid-method-override]
346
346
  target_env_client = env_client or self.env_client
347
347
  if target_env_client is not None:
348
348
  if not isinstance(client, ClientConfig):
@@ -383,7 +383,7 @@ class EnvGroup(vf.Environment):
383
383
  state_columns,
384
384
  env.env_client,
385
385
  )
386
- return [_set_info_route(output, route) for output in outputs] # type: ignore[return-value]
386
+ return [_set_info_route(output, route) for output in outputs] # type: ignore[return-value] # ty:ignore[invalid-return-type]
387
387
 
388
388
  @final
389
389
  async def rollout(
@@ -417,7 +417,7 @@ class EnvGroup(vf.Environment):
417
417
  child_input["info"] = info
418
418
  else:
419
419
  child_input.pop("info", None)
420
- return env_name, child_input, route # type: ignore[return-value]
420
+ return env_name, child_input, route # type: ignore[return-value] # ty:ignore[invalid-return-type]
421
421
 
422
422
  def _input_env_route(self, input: RolloutInput) -> tuple[str, ...]:
423
423
  info = _info_dict(input.get("info"))
@@ -162,7 +162,7 @@ class Environment(ABC):
162
162
 
163
163
  if dataset is not None:
164
164
  if callable(dataset):
165
- self.dataset_source: DatasetBuilder | None = cast(
165
+ self.dataset_source: DatasetBuilder | None = cast( # ty:ignore[unsupported-operator]
166
166
  DatasetBuilder, dataset
167
167
  )
168
168
  else:
@@ -173,7 +173,7 @@ class Environment(ABC):
173
173
 
174
174
  if eval_dataset is not None:
175
175
  if callable(eval_dataset):
176
- self.eval_dataset_source: DatasetBuilder | None = cast(
176
+ self.eval_dataset_source: DatasetBuilder | None = cast( # ty:ignore[unsupported-operator]
177
177
  DatasetBuilder, eval_dataset
178
178
  )
179
179
  else:
@@ -294,7 +294,7 @@ class Environment(ABC):
294
294
  if few_shot:
295
295
  messages.extend(few_shot)
296
296
  messages.append({"role": "user", "content": prompt_str})
297
- return messages
297
+ return messages # ty:ignore[invalid-return-type]
298
298
 
299
299
  if answer_key == "answer":
300
300
  dataset = dataset.map(
@@ -369,7 +369,7 @@ class TaskSet:
369
369
  try:
370
370
  from tqdm.auto import tqdm
371
371
  except ImportError: # pragma: no cover
372
- tqdm = None # type: ignore[assignment]
372
+ tqdm = None # type: ignore[assignment] # ty:ignore[invalid-assignment]
373
373
 
374
374
  import verifiers as vf
375
375
 
@@ -521,7 +521,7 @@ class TaskSet:
521
521
  state: State = { # type: ignore[assignment]
522
522
  "info": info,
523
523
  "answer": row.get("answer", ""),
524
- }
524
+ } # ty:ignore[invalid-assignment]
525
525
  try:
526
526
  valid = await self.validate_instance(state)
527
527
  return valid, None, state
@@ -543,7 +543,7 @@ class TaskSet:
543
543
  state: State = { # type: ignore[assignment]
544
544
  "info": info,
545
545
  "answer": row.get("answer", ""),
546
- }
546
+ } # ty:ignore[invalid-assignment]
547
547
  spec = self.get_sandbox_spec(info)
548
548
  # validate() runs without a SandboxMixin, so resolve
549
549
  # spec.timeout_minutes=None (its "auto-derive at rollout
@@ -319,7 +319,7 @@ async def run_func_call(
319
319
  )
320
320
  try:
321
321
  if isinstance(exec_outputs[0], tuple):
322
- exec_outputs = [list(x) for x in exec_outputs]
322
+ exec_outputs = [list(x) for x in exec_outputs] # ty:ignore[invalid-argument-type]
323
323
  tmp_result = tmp_result or (
324
324
  exec_outputs == test_case_outputs_parsed[0]
325
325
  )
@@ -180,7 +180,7 @@ class HarborMCPMixin:
180
180
  for name in list(jobs):
181
181
  try:
182
182
  pid_file = shlex.quote(self._mcp_pid_file(name))
183
- await self.sandbox_client.execute_command( # type: ignore[attr-defined]
183
+ await self.sandbox_client.execute_command( # type: ignore[attr-defined] # ty:ignore[unresolved-attribute]
184
184
  sandbox_id,
185
185
  f'kill -9 -"$(cat {pid_file} 2>/dev/null)" 2>/dev/null; rm -f {pid_file}',
186
186
  working_dir=None,
@@ -203,7 +203,7 @@ class HarborMCPMixin:
203
203
  f"MCP server {server.name!r} has no port in its URL {server.url!r}"
204
204
  )
205
205
 
206
- job = await self.sandbox_client.start_background_job( # type: ignore[attr-defined]
206
+ job = await self.sandbox_client.start_background_job( # type: ignore[attr-defined] # ty:ignore[unresolved-attribute]
207
207
  sandbox_id=sandbox_id,
208
208
  command=(
209
209
  f"setsid sh -c {shlex.quote(command)} & "
@@ -239,7 +239,7 @@ class HarborMCPMixin:
239
239
  consecutive_failures = 0
240
240
 
241
241
  while True:
242
- status = await self.sandbox_client.get_background_job( # type: ignore[attr-defined]
242
+ status = await self.sandbox_client.get_background_job( # type: ignore[attr-defined] # ty:ignore[unresolved-attribute]
243
243
  sandbox_id, job
244
244
  )
245
245
  if getattr(status, "completed", False):
@@ -251,7 +251,7 @@ class HarborMCPMixin:
251
251
  f"Stderr:\n{stderr}"
252
252
  )
253
253
 
254
- result = await self.sandbox_client.execute_command( # type: ignore[attr-defined]
254
+ result = await self.sandbox_client.execute_command( # type: ignore[attr-defined] # ty:ignore[unresolved-attribute]
255
255
  sandbox_id, health_cmd, working_dir=None, timeout=probe_timeout
256
256
  )
257
257
  if getattr(result, "exit_code", 1) == 0:
@@ -280,7 +280,7 @@ class HarborMCPMixin:
280
280
  if consecutive_failures >= hc.retries:
281
281
  log_tail = ""
282
282
  try:
283
- status = await self.sandbox_client.get_background_job( # type: ignore[attr-defined]
283
+ status = await self.sandbox_client.get_background_job( # type: ignore[attr-defined] # ty:ignore[unresolved-attribute]
284
284
  sandbox_id, job
285
285
  )
286
286
  log_tail = (getattr(status, "stderr", "") or "").strip()[-2000:]
@@ -313,7 +313,7 @@ class HarborMCPMixin:
313
313
  f"echo {shlex.quote(f'127.0.0.1 {h}')} >> /etc/hosts)"
314
314
  for h in sorted(hosts)
315
315
  )
316
- result = await self.sandbox_client.execute_command( # type: ignore[attr-defined]
316
+ result = await self.sandbox_client.execute_command( # type: ignore[attr-defined] # ty:ignore[unresolved-attribute]
317
317
  sandbox_id, statements, working_dir=None
318
318
  )
319
319
  exit_code = getattr(result, "exit_code", 0)
@@ -33,10 +33,10 @@ try:
33
33
  SANDBOX_AVAILABLE = True
34
34
  except ImportError:
35
35
  SANDBOX_AVAILABLE = False
36
- AsyncSandboxClient = None # type: ignore[misc, assignment]
37
- CreateSandboxRequest = None # type: ignore[misc, assignment]
38
- SandboxClient = None # type: ignore[misc, assignment]
39
- APIClient = None # type: ignore[misc, assignment]
36
+ AsyncSandboxClient = None # type: ignore[misc, assignment] # ty:ignore[invalid-assignment]
37
+ CreateSandboxRequest = None # type: ignore[misc, assignment] # ty:ignore[invalid-assignment]
38
+ SandboxClient = None # type: ignore[misc, assignment] # ty:ignore[invalid-assignment]
39
+ APIClient = None # type: ignore[misc, assignment] # ty:ignore[invalid-assignment]
40
40
 
41
41
 
42
42
  class CUAMode:
@@ -366,7 +366,7 @@ class CUAMode:
366
366
  async def _create_sandbox(self) -> str:
367
367
  """Create a new sandbox and return its ID."""
368
368
  client = await self._get_sandbox_client()
369
- sandbox = await client.create(self._sandbox_request.model_copy()) # type: ignore[union-attr]
369
+ sandbox = await client.create(self._sandbox_request.model_copy()) # type: ignore[union-attr] # ty:ignore[unresolved-attribute]
370
370
  self.active_sandboxes.add(sandbox.id)
371
371
  if self.logger:
372
372
  self.logger.debug(f"Created sandbox {sandbox.id}")
@@ -375,7 +375,7 @@ class CUAMode:
375
375
  async def _create_sandbox_with_retry(self) -> str:
376
376
  """Create a sandbox with retry, cleaning up orphaned sandboxes from failed attempts."""
377
377
  previous_sandbox_id: str | None = None
378
- async for attempt in self.retrying: # type: ignore[union-attr]
378
+ async for attempt in self.retrying: # type: ignore[union-attr] # ty:ignore[not-iterable]
379
379
  with attempt:
380
380
  if previous_sandbox_id is not None:
381
381
  try:
@@ -822,7 +822,7 @@ class CUAMode:
822
822
  if self._execution_mode == "local":
823
823
  # Local mode: create session via HTTP
824
824
  try:
825
- async for attempt in self.retrying: # type: ignore[union-attr]
825
+ async for attempt in self.retrying: # type: ignore[union-attr] # ty:ignore[not-iterable]
826
826
  with attempt:
827
827
  result = await self._create_session_http()
828
828
  session_id = result.get("sessionId")
@@ -863,7 +863,7 @@ class CUAMode:
863
863
  await self._start_server(sandbox_id)
864
864
  await self._wait_for_server(sandbox_id)
865
865
 
866
- async for attempt in self.retrying: # type: ignore[union-attr]
866
+ async for attempt in self.retrying: # type: ignore[union-attr] # ty:ignore[not-iterable]
867
867
  with attempt:
868
868
  result = await self._create_session_curl(sandbox_id)
869
869
  session_id = result.get("sessionId")
@@ -910,7 +910,7 @@ class CUAMode:
910
910
  # Local mode: destroy session via HTTP
911
911
  if session_id:
912
912
  try:
913
- async for attempt in self.retrying: # type: ignore[union-attr]
913
+ async for attempt in self.retrying: # type: ignore[union-attr] # ty:ignore[not-iterable]
914
914
  with attempt:
915
915
  await self._destroy_session_http(session_id)
916
916
  with self._sessions_lock:
@@ -926,7 +926,7 @@ class CUAMode:
926
926
 
927
927
  if session_id and sandbox_id:
928
928
  try:
929
- async for attempt in self.retrying: # type: ignore[union-attr]
929
+ async for attempt in self.retrying: # type: ignore[union-attr] # ty:ignore[not-iterable]
930
930
  with attempt:
931
931
  await self._destroy_session_curl(session_id, sandbox_id)
932
932
  with self._sessions_lock:
@@ -939,7 +939,7 @@ class CUAMode:
939
939
 
940
940
  if sandbox_id:
941
941
  try:
942
- async for attempt in self.retrying: # type: ignore[union-attr]
942
+ async for attempt in self.retrying: # type: ignore[union-attr] # ty:ignore[not-iterable]
943
943
  with attempt:
944
944
  await self._delete_sandbox(sandbox_id)
945
945
  except Exception as e:
@@ -968,7 +968,7 @@ class CUAMode:
968
968
  async def _delete_with_semaphore(session_id: str):
969
969
  async with semaphore:
970
970
  try:
971
- async for attempt in self.retrying: # type: ignore[union-attr]
971
+ async for attempt in self.retrying: # type: ignore[union-attr] # ty:ignore[not-iterable]
972
972
  with attempt:
973
973
  await self._destroy_session_http(session_id)
974
974
  with self._sessions_lock:
@@ -807,7 +807,7 @@ class OpenEnvEnv(vf.MultiTurnEnv):
807
807
  if len(props) == 1:
808
808
  field_name, spec = next(iter(props.items()))
809
809
  if isinstance(spec, dict) and spec.get("type") == "string":
810
- return field_name
810
+ return field_name # ty:ignore[invalid-return-type]
811
811
  return None
812
812
 
813
813
  def _render_observation_messages(
@@ -104,7 +104,7 @@ class TextArenaEnv(vf.MultiTurnEnv):
104
104
 
105
105
  async def setup_state(self, state: vf.State, **kwargs) -> vf.State:
106
106
  ta_env = await asyncio.to_thread(deepcopy, self.ta_env, self.shared_memo.copy())
107
- ta_env.state.game_state["secret_word"] = state["answer"] # type: ignore[unresolved-attribute]
107
+ ta_env.state.game_state["secret_word"] = state["answer"] # type: ignore[unresolved-attribute] # ty:ignore[unresolved-attribute]
108
108
  state["ta_env"] = ta_env
109
109
  return state
110
110
 
@@ -33,7 +33,7 @@ class ToolMonitorRubric(vf.Rubric):
33
33
  self.tool_names.remove(tool_name)
34
34
  metric_name = f"{tool_name}_calls"
35
35
  for i, func in enumerate(self.funcs):
36
- if func.__name__ == metric_name:
36
+ if func.__name__ == metric_name: # ty:ignore[unresolved-attribute]
37
37
  self.funcs.pop(i)
38
38
  self.weights.pop(i)
39
39
  break
verifiers/gepa/adapter.py CHANGED
@@ -184,7 +184,7 @@ def _inject_system_prompt(
184
184
  if isinstance(prompt, str):
185
185
  inp_copy["prompt"] = f"{system_prompt}\n\n{prompt}"
186
186
  else:
187
- prompt = [dict(m) for m in prompt]
187
+ prompt = [dict(m) for m in prompt] # ty:ignore[not-iterable]
188
188
  if not prompt:
189
189
  # Empty prompt list - just add system message
190
190
  prompt = [{"role": "system", "content": system_prompt}]
@@ -195,7 +195,7 @@ def _inject_system_prompt(
195
195
  inp_copy["prompt"] = prompt
196
196
 
197
197
  modified.append(inp_copy)
198
- return modified
198
+ return modified # ty:ignore[invalid-return-type]
199
199
 
200
200
 
201
201
  def _extract_user_query(prompt: Messages) -> str:
@@ -129,7 +129,7 @@ class HybridMathRubric(vf.JudgeRubric):
129
129
  self.add_reward_func(self.correct_answer, weight=1)
130
130
 
131
131
  self.judge_model = judge_model if use_judge_fallback else None
132
- self.class_objects["judge_model"] = self.judge_model
132
+ self.class_objects["judge_model"] = self.judge_model # ty:ignore[invalid-assignment]
133
133
 
134
134
  # Delegate math verification to default MathRubric
135
135
  # We clear its auto-registered reward func since we manage scoring ourselves
@@ -168,7 +168,7 @@ class Rubric:
168
168
  **self.class_objects,
169
169
  )
170
170
  for provider in self.group_score_object_providers:
171
- objects.update(provider(states))
171
+ objects.update(provider(states)) # ty:ignore[no-matching-overload]
172
172
  return objects
173
173
 
174
174
  def task_for_state(self, state: State, resources: object | None) -> object:
@@ -203,7 +203,7 @@ class Rubric:
203
203
  ans = float(await maybe_await(func, **merged))
204
204
  except Exception as e:
205
205
  self.logger.error(
206
- f"Error calling reward function {func.__name__}: {e}" # type: ignore[unresolved-attribute]
206
+ f"Error calling reward function {func.__name__}: {e}" # type: ignore[unresolved-attribute] # ty:ignore[unresolved-attribute]
207
207
  )
208
208
  ans = 0.0
209
209
  else:
@@ -212,7 +212,7 @@ class Rubric:
212
212
  ans = float(await maybe_await(func, **allowed))
213
213
  except Exception as e:
214
214
  self.logger.error(
215
- f"Error calling reward function {func.__name__}: {e}" # type: ignore[unresolved-attribute]
215
+ f"Error calling reward function {func.__name__}: {e}" # type: ignore[unresolved-attribute] # ty:ignore[unresolved-attribute]
216
216
  )
217
217
  ans = 0.0
218
218
  return ans
@@ -248,7 +248,7 @@ class Rubric:
248
248
  ans = await maybe_await(func, **merged)
249
249
  except Exception as e:
250
250
  self.logger.error(
251
- f"Error calling group reward function {func.__name__}: {e}" # type: ignore[unresolved-attribute]
251
+ f"Error calling group reward function {func.__name__}: {e}" # type: ignore[unresolved-attribute] # ty:ignore[unresolved-attribute]
252
252
  )
253
253
  ans = [0.0] * len(states)
254
254
  else:
@@ -257,7 +257,7 @@ class Rubric:
257
257
  ans = await maybe_await(func, **allowed)
258
258
  except Exception as e:
259
259
  self.logger.error(
260
- f"Error calling group reward function {func.__name__}: {e}" # type: ignore[unresolved-attribute]
260
+ f"Error calling group reward function {func.__name__}: {e}" # type: ignore[unresolved-attribute] # ty:ignore[unresolved-attribute]
261
261
  )
262
262
  ans = [0.0] * len(states)
263
263
  return ans
@@ -335,7 +335,7 @@ class Rubric:
335
335
  )
336
336
  rewards = RolloutScore(
337
337
  metrics={
338
- func.__name__: reward
338
+ func.__name__: reward # ty:ignore[unresolved-attribute]
339
339
  for func, reward in zip(reward_funcs, reward_scores)
340
340
  },
341
341
  reward=sum(
@@ -380,7 +380,7 @@ class Rubric:
380
380
  # GroupRewardFunc: score all states together
381
381
  group_func = cast(GroupRewardFunc, func)
382
382
  scores = await self._call_group_reward_func(group_func, states)
383
- func_name = func.__name__
383
+ func_name = func.__name__ # ty:ignore[unresolved-attribute]
384
384
  if func_name not in aggregated_metrics:
385
385
  aggregated_metrics[func_name] = [0.0] * num_states
386
386
  for i in range(num_states):
@@ -395,7 +395,7 @@ class Rubric:
395
395
  ]
396
396
  scores = await asyncio.gather(*score_tasks)
397
397
 
398
- func_name = func.__name__
398
+ func_name = func.__name__ # ty:ignore[unresolved-attribute]
399
399
  if func_name not in aggregated_metrics:
400
400
  aggregated_metrics[func_name] = [0.0] * num_states
401
401
  for i in range(num_states):
verifiers/scripts/gepa.py CHANGED
@@ -829,7 +829,7 @@ def run_gepa_optimization(
829
829
  logger.debug(f"Results saved to {run_dir}")
830
830
 
831
831
  # Set result info for final summary
832
- best_prompt = result.best_candidate.get("system_prompt", "") # type: ignore[unresolved-attribute]
832
+ best_prompt = result.best_candidate.get("system_prompt", "") # type: ignore[unresolved-attribute] # ty:ignore[unresolved-attribute]
833
833
  display.set_result(best_prompt=best_prompt, save_path=save_path)
834
834
 
835
835
  return result
verifiers/types.py CHANGED
@@ -479,7 +479,7 @@ class State(dict):
479
479
  return input_obj[key]
480
480
  return super().__getitem__(key)
481
481
 
482
- def get(self, key: str, default: Any = None) -> Any:
482
+ def get(self, key: str, default: Any = None) -> Any: # ty:ignore[invalid-method-override]
483
483
  try:
484
484
  return self[key]
485
485
  except KeyError:
@@ -506,7 +506,7 @@ class State(dict):
506
506
  @overload
507
507
  def pop(self, key: str, default: _DefaultValue) -> Any | _DefaultValue: ...
508
508
 
509
- def pop(self, key: str, default: Any = _MISSING) -> Any:
509
+ def pop(self, key: str, default: Any = _MISSING) -> Any: # ty:ignore[invalid-method-override]
510
510
  if default is _MISSING:
511
511
  return super().pop(key)
512
512
  return super().pop(key, default)
@@ -184,7 +184,7 @@ def maybe_retry(
184
184
 
185
185
  def log_retry(retry_state: tc.RetryCallState) -> None:
186
186
  """Log a warning with the exception and the number of attempts."""
187
- caller = retry_state.fn.__name__ if retry_state.fn else "unknown function"
187
+ caller = retry_state.fn.__name__ if retry_state.fn else "unknown function" # ty:ignore[unresolved-attribute]
188
188
  error_chain = (
189
189
  repr(
190
190
  ErrorChain(
@@ -203,7 +203,7 @@ def maybe_retry(
203
203
 
204
204
  def return_last_result(retry_state: tc.RetryCallState):
205
205
  """Return the last result when retries are exhausted (instead of raising)."""
206
- caller = retry_state.fn.__name__ if retry_state.fn else "unknown function"
206
+ caller = retry_state.fn.__name__ if retry_state.fn else "unknown function" # ty:ignore[unresolved-attribute]
207
207
  error_chain = (
208
208
  repr(
209
209
  ErrorChain(
@@ -424,10 +424,10 @@ def _expand_ablation(ablation: dict, global_defaults: dict) -> list[dict]:
424
424
  for key, value in zip(keys, combo):
425
425
  if key.startswith("env_args."):
426
426
  env_key = key[len("env_args.") :]
427
- config["env_args"] = {**config.get("env_args", {}), env_key: value}
427
+ config["env_args"] = {**config.get("env_args", {}), env_key: value} # ty:ignore[invalid-argument-type]
428
428
  elif key.startswith("args."):
429
429
  env_key = key[len("args.") :]
430
- config["args"] = {**config.get("args", {}), env_key: value}
430
+ config["args"] = {**config.get("args", {}), env_key: value} # ty:ignore[invalid-argument-type]
431
431
  else:
432
432
  config[key] = value
433
433
  expanded.append(config)
@@ -1168,7 +1168,7 @@ async def run_evaluations(config: EvalRunConfig) -> None:
1168
1168
  from verifiers.utils.heartbeat import Heartbeat
1169
1169
 
1170
1170
  heart = Heartbeat(config.heartbeat_url)
1171
- on_progress = [lambda *_a, **_kw: asyncio.create_task(heart.beat())]
1171
+ on_progress = [lambda *_a, **_kw: asyncio.create_task(heart.beat())] # ty:ignore[invalid-assignment]
1172
1172
 
1173
1173
  start_time = time.time()
1174
1174
  all_results = await asyncio.gather(
@@ -1307,7 +1307,7 @@ async def run_evaluations_tui(
1307
1307
 
1308
1308
  on_progress: list[ProgressCallback] = [on_display_progress]
1309
1309
  if heart is not None:
1310
- on_progress.append(lambda *_a, **_kw: asyncio.create_task(heart.beat()))
1310
+ on_progress.append(lambda *_a, **_kw: asyncio.create_task(heart.beat())) # ty:ignore[invalid-argument-type]
1311
1311
 
1312
1312
  def on_log(message: str) -> None:
1313
1313
  display.update_env_state(env_idx, log_message=message)
@@ -129,7 +129,7 @@ class InterceptionServer:
129
129
  )
130
130
  app.router.add_get(
131
131
  "/health",
132
- lambda _: web.json_response({"status": "ok"}),
132
+ lambda _: web.json_response({"status": "ok"}), # ty:ignore[invalid-argument-type]
133
133
  )
134
134
 
135
135
  runner = web.AppRunner(app)
@@ -144,31 +144,31 @@ def normalize_messages(
144
144
 
145
145
 
146
146
  @overload
147
- def get_messages(
147
+ def get_messages( # ty:ignore[invalid-overload]
148
148
  messages: Sequence[MessageLike], role: Literal["assistant"]
149
149
  ) -> list[AssistantMessage]: ...
150
150
 
151
151
 
152
152
  @overload
153
- def get_messages(
153
+ def get_messages( # ty:ignore[invalid-overload]
154
154
  messages: Sequence[MessageLike], role: Literal["system"]
155
155
  ) -> list[SystemMessage]: ...
156
156
 
157
157
 
158
158
  @overload
159
- def get_messages(
159
+ def get_messages( # ty:ignore[invalid-overload]
160
160
  messages: Sequence[MessageLike], role: Literal["user"]
161
161
  ) -> list[UserMessage]: ...
162
162
 
163
163
 
164
164
  @overload
165
- def get_messages(
165
+ def get_messages( # ty:ignore[invalid-overload]
166
166
  messages: Sequence[MessageLike], role: Literal["tool"]
167
167
  ) -> list[ToolMessage]: ...
168
168
 
169
169
 
170
170
  @overload
171
- def get_messages(
171
+ def get_messages( # ty:ignore[invalid-overload]
172
172
  messages: Sequence[MessageLike], role: Literal["text"]
173
173
  ) -> list[TextMessage]: ...
174
174
 
@@ -428,7 +428,7 @@ def _read_mm_hashes(mm: object) -> dict[str, list[str]]:
428
428
  return {}
429
429
  return {
430
430
  modality: list(hs) for modality, hs in hashes.items() if isinstance(hs, list)
431
- }
431
+ } # ty:ignore[invalid-return-type]
432
432
 
433
433
 
434
434
  def _is_monotonic_extension(
@@ -505,7 +505,7 @@ def _diff_mm_data(mm: object, prior_hashes: dict[str, list[str]]) -> object:
505
505
  keep_idx: list[int] = []
506
506
  for i, h in enumerate(mod_hashes):
507
507
  if remaining.get(h, 0) > 0:
508
- remaining[h] -= 1
508
+ remaining[h] -= 1 # ty:ignore[invalid-argument-type]
509
509
  else:
510
510
  keep_idx.append(i)
511
511
  if len(keep_idx) != len(mod_hashes):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: verifiers
3
- Version: 0.2.2.dev34
3
+ Version: 0.2.2.dev35
4
4
  Summary: Verifiers: Environments for LLM Reinforcement Learning
5
5
  Project-URL: Homepage, https://github.com/primeintellect-ai/verifiers
6
6
  Project-URL: Documentation, https://github.com/primeintellect-ai/verifiers
@@ -1,7 +1,7 @@
1
1
  verifiers/__init__.py,sha256=KyP0Zj1hesaJIb202PsXkELCPrj0D4ERYF3doAY0fzE,6654
2
2
  verifiers/decorators.py,sha256=QaZxUV821935zTqVLrdG1lKNasQ6VGKTpR5hTr_9B74,7883
3
3
  verifiers/errors.py,sha256=xaFqOSaYlce2dXt4UPV1ZT-1-hwLzV1ycmXqiNymzeM,1306
4
- verifiers/types.py,sha256=ILO_1tzvvIzvWC1IPbbsxnNMnnvDmfI8pjYdjKwKWu8,33336
4
+ verifiers/types.py,sha256=tCv2WEiv-lVo29BezUH4v9262i4jNYxFexg88SGaI9k,33412
5
5
  verifiers/cli/__init__.py,sha256=F2MjGcaEdXpwSYeGDp2m1bKJiplUsDm8a8uC2ljROJ0,54
6
6
  verifiers/cli/tui.py,sha256=ftGUg44YO3WzrnzcS2dsvGcCHWuJWeTP-n7i7rSzf_w,133
7
7
  verifiers/cli/commands/__init__.py,sha256=_P-5XAMLnV_aZ4ZIZ-jCDAjNoF8tX3ZKGs2o2anXJd0,56
@@ -16,21 +16,21 @@ verifiers/cli/plugins/prime.py,sha256=xO_lKBbeMxYO2vo6U8UTTriyttunx2U_3cCvM5Ohlt
16
16
  verifiers/clients/__init__.py,sha256=x79YmrYG8MYtqPh7c7kvei8HBUIgEjsFZ3tCRqyP7lI,2402
17
17
  verifiers/clients/anthropic_messages_client.py,sha256=HjdETkjIvbOc9FLkS2pky81jfxM3sYfrrnmeOltOZew,19808
18
18
  verifiers/clients/client.py,sha256=1Ims3FAP_7w_wtlp-PPOZEcthsEIpRvHLkidwnxel_A,4752
19
- verifiers/clients/nemorl_chat_completions_client.py,sha256=5DoyxYwAOTdUhZ6MLCsqOsA-gq45cPDLyXpT0oupT-M,4365
20
- verifiers/clients/openai_chat_completions_client.py,sha256=B84z5pfBdwtuJEBdTmlCo_c5dRa3agx8KPg7IRrgjV8,22286
21
- verifiers/clients/openai_chat_completions_token_client.py,sha256=L-kmmBcLa6PG6BuHq_jA29yZ2eFbW7dYkYERrF7Ltlc,16674
19
+ verifiers/clients/nemorl_chat_completions_client.py,sha256=uMy9Hd2rzLVlEx22-Agnuf71r3Ne2p7nkfgQ6cAjBbc,4464
20
+ verifiers/clients/openai_chat_completions_client.py,sha256=yBjLk9w-RFmThY0Of63uEggGTLWB0gZQvlHA2vABZgE,22312
21
+ verifiers/clients/openai_chat_completions_token_client.py,sha256=3O5fiCyQ8mrorLQURPEXR9PBfcL9tgEIee4adj7sAuQ,16726
22
22
  verifiers/clients/openai_completions_client.py,sha256=Ik6Ubf_X1MozoE4N0qPMDwYskWOZRw1f6zkyz9dd28U,7214
23
23
  verifiers/clients/openai_responses_client.py,sha256=K8o5LfwOjgoMlNxJh5LDF-IOLyLHn1-eaaHjiNKEZWQ,18104
24
24
  verifiers/clients/renderer_client.py,sha256=CATc5yOjz0IV_HAtItnePIHLVXfF2NtytB6QwKTDOnU,26814
25
25
  verifiers/envs/__init__.py,sha256=OXkw2QcypssNW5BJmIzw7IpBs9uRMyYQSjlXDHpjIIE,86
26
- verifiers/envs/env_group.py,sha256=_G6VvLwR1-4s8-zkYArKbpGFXSJ7iEI7Zhm7CpJQU5w,16460
27
- verifiers/envs/environment.py,sha256=QAl2ejspzqLwLvSSMHooRb0_y5OaOSE_4g4ndb46GE8,53935
26
+ verifiers/envs/env_group.py,sha256=Z4ZcuVSuN8sGvpwLEF-2Dkh9zlznGqbGbc3wsu0u1mU,16678
27
+ verifiers/envs/environment.py,sha256=YvHEZJPwHMWGVxEJjzh6y2p9lSF3_r0Lv9ddJwxb7FU,54039
28
28
  verifiers/envs/multiturn_env.py,sha256=GdWtFvcQ7rbjPqlZd4zNoHxY6LoMfzXXloi3qDG7xqU,8282
29
29
  verifiers/envs/python_env.py,sha256=f-3_LZq7lcaTv2AEd455sZlHJPftDuVoDPvCczJNPyU,11627
30
30
  verifiers/envs/sandbox_env.py,sha256=SN7jNyZRRI4H0R8LAFlMXUMg3WdYz94GSmvtgOdfCPw,10809
31
31
  verifiers/envs/singleturn_env.py,sha256=iY1L0QV9SnWGMdo2vsMxnqgBuVN2E70K3aFOmoel2mk,527
32
32
  verifiers/envs/stateful_tool_env.py,sha256=P7YtaSGLfAd8dt2KRAPYfOWCNG9D8yAzkFYBOoY9auo,6570
33
- verifiers/envs/tool_env.py,sha256=9OCvwD41MYhyWV9WMG1ycsngS_UPXQYHd2sA6IDsMKc,6958
33
+ verifiers/envs/tool_env.py,sha256=IIump0nhHpjPIf_gyYyB311CerP1wTkcU5COCg_akkc,6993
34
34
  verifiers/envs/experimental/README.md,sha256=Mbw73Sz91S4MzB4siKDpXDccUgi_Y73cMoj81Tp8mKY,1829
35
35
  verifiers/envs/experimental/__init__.py,sha256=wV2TP-Z9KzjiVvrqz-wkARhfo3uXsMB3dFo5UfEL02k,1274
36
36
  verifiers/envs/experimental/cli_agent_env.py,sha256=EY6vPLgOIfGMxvXDJP-uuxotsdvFTR2pl4TiEQFTDWg,31413
@@ -47,7 +47,7 @@ verifiers/envs/experimental/composable/composable_env.py,sha256=-PTE5O_o6NDdNct3
47
47
  verifiers/envs/experimental/composable/harness.py,sha256=oZraFS5v8f5Vr9dyBMWUCmOmOYVTFLMyiIvpwF2Hyfc,7551
48
48
  verifiers/envs/experimental/composable/sandbox_debug_env.py,sha256=liRmBOsJmSJ4hn0GyVmNIbTj3ybyX6H1_N22l1a51g4,12139
49
49
  verifiers/envs/experimental/composable/swe_debug_env.py,sha256=jO9Tb1id9fDVkTiDw6tGlfSgJVwi-WBsx-WanXF4w2A,1107
50
- verifiers/envs/experimental/composable/task.py,sha256=jk2W27VAlbZR5e_sdejDIGuX6oZZW2GYnZTazpP1ddg,30096
50
+ verifiers/envs/experimental/composable/task.py,sha256=l9bTMu64KKgOTKBAl_wUxG-FHZtDgdJNaEbMEWrYAOs,30195
51
51
  verifiers/envs/experimental/composable/harnesses/__init__.py,sha256=cL29z-h8RY8vA85x_ulUQA8X3g8iSKG0tmJVWAEyJTY,1567
52
52
  verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py,sha256=-oJ4Nz2DZOzMEbVtxgcGvnzAZYXt-pdz3B-6hNsoU2A,8882
53
53
  verifiers/envs/experimental/composable/harnesses/opencode.py,sha256=u7raPlUrAL2C_nX4WTAt-1dWkEVR5iLeQhvjXJB3Pkk,10338
@@ -56,7 +56,7 @@ verifiers/envs/experimental/composable/harnesses/rlm.py,sha256=aIjYcvjhp4C7RWcJQ
56
56
  verifiers/envs/experimental/composable/tasksets/__init__.py,sha256=5VKUn5W11Ekx6Issyg0l5rs1n0kNapJYPAIpVnaNBsg,1995
57
57
  verifiers/envs/experimental/composable/tasksets/cp/__init__.py,sha256=Aj5uBcEbzkgmBz5ZX7Wl044fEJcFxS0q0CZqs-SU75s,92
58
58
  verifiers/envs/experimental/composable/tasksets/cp/cp_task.py,sha256=aODpFS85pVqArflN0IZ22dA-u_oGH_cB4X-RjvFnuuo,7882
59
- verifiers/envs/experimental/composable/tasksets/cp/test_utils.py,sha256=vh-hfq27qeJM4vM5OlgeSHUVMA6q25O3orO_7AbM1SQ,12778
59
+ verifiers/envs/experimental/composable/tasksets/cp/test_utils.py,sha256=zr2MphzSX7063SY50ebNmvBMZk3PC8mGWTHwLWLByFM,12814
60
60
  verifiers/envs/experimental/composable/tasksets/harbor/__init__.py,sha256=CUVabDYn2wJ7366OVeAXC-xr16z-5CirmobD03UmjO0,479
61
61
  verifiers/envs/experimental/composable/tasksets/harbor/cli_gym.py,sha256=R2Lj5PS6tfwwLZQtzs7J1hC1qle6cVVj5O-OKUC1NCw,22843
62
62
  verifiers/envs/experimental/composable/tasksets/harbor/harbor.py,sha256=3X2EnWrMnWiwHxa0jnw1mbTuRMzN-_djRDX_vi4BNlg,15886
@@ -89,24 +89,24 @@ verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py,sha256
89
89
  verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py,sha256=ic85cpQDbLpM12LKNSejQbhwTS21ijBjnaLTTVtwSoM,18770
90
90
  verifiers/envs/experimental/harbor_env/__init__.py,sha256=Vhvo86AH26ESQr7Cem_kPRke8Pr5V7WTg0VtYQn3Llw,410
91
91
  verifiers/envs/experimental/harbor_env/env.py,sha256=ObexUEWqPRDnjbnDmDi4zo4frWK1RK4FIvcknCJfvaM,11304
92
- verifiers/envs/experimental/harbor_env/mcp.py,sha256=_Jz3BgYx2w0k7WkjAf-Zlq1GaJ62X7D6HEFmpIQ1V5c,12133
92
+ verifiers/envs/experimental/harbor_env/mcp.py,sha256=_XrwnqnkIHUp_GA6sMua5cMTLm0boD-EJulQ8KqVTxw,12343
93
93
  verifiers/envs/experimental/utils/__init__.py,sha256=MLspkUZeGYH3TNv8FXIq2knBEnUAS8bvkK4pMXeKs7M,575
94
94
  verifiers/envs/experimental/utils/file_locks.py,sha256=S6e4Z8lFSepp-Bbvl3xA4uT9WbcuyI_6ZcV8k0q9DXc,1424
95
95
  verifiers/envs/experimental/utils/git_checkout_cache.py,sha256=wt0EqNQGZMVVWr0ERY67dHunpoKfLSaXp09FPj0bhKI,12117
96
96
  verifiers/envs/integrations/README.md,sha256=trk8lpwTq7uCQBIbid8aNa4O0Q5YnQWmx-X7xQsZQHM,7226
97
97
  verifiers/envs/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
- verifiers/envs/integrations/openenv_env.py,sha256=D3PYmmrCUPrEzkWbQRukrMa2BPC8WUc0AgLXBt67mpA,35711
98
+ verifiers/envs/integrations/openenv_env.py,sha256=MrthKsss3QmuphyW4cHLH14yXBGilRiXtZs4Vn5rzIw,35745
99
99
  verifiers/envs/integrations/reasoninggym_env.py,sha256=-bfYmPhmS6wO5p7VikP890DRQn1_7AJzeWfUXgjC-OQ,3645
100
- verifiers/envs/integrations/textarena_env.py,sha256=ic3zvop6LY89HrOVhHgg879NgSaFqcQ3Dq0pMos_CvE,5565
100
+ verifiers/envs/integrations/textarena_env.py,sha256=AlKbqLh6976aCRzHnDOh_ggPz6R6i6aHejnPcpyI7BE,5600
101
101
  verifiers/envs/integrations/browser_env/README.md,sha256=qUdV14VlzRvjc_cdw8nCJctpDzt0S9uJCgoAwFg7eCw,6026
102
102
  verifiers/envs/integrations/browser_env/__init__.py,sha256=BLF273vjH2RekhvIXA_L8lk_sNvSDH3yViovkdxA3So,1783
103
103
  verifiers/envs/integrations/browser_env/browser_env.py,sha256=yyyrOXUtElUMLasPsILh6rA_8hihnhOEdXx8NyvEhRM,9534
104
104
  verifiers/envs/integrations/browser_env/modes/__init__.py,sha256=lVKSbPjxenIaoUNpTTaw6H_5jWhc9NHbOtz5SjHdaG4,737
105
105
  verifiers/envs/integrations/browser_env/modes/base.py,sha256=IvVqq7tCvFEvVk9cGleQZDQOeZmkNDNd5HuA4u-ECsk,1310
106
- verifiers/envs/integrations/browser_env/modes/cua_mode.py,sha256=SHVBFnJz_H66LSBHGyyoFsNdyoaKxaQ3gXBIL4MbKbs,46219
106
+ verifiers/envs/integrations/browser_env/modes/cua_mode.py,sha256=0uoMq7zPdAcuSsHlPl-M2Tpzb1M8hP74RsRGpDzITDc,46575
107
107
  verifiers/envs/integrations/browser_env/modes/dom_mode.py,sha256=-0AI9SYmjVzLmT0_IgZdv4OOkGNILvh-X6Xyo-qE4_Q,10165
108
108
  verifiers/gepa/__init__.py,sha256=A4eO2OprELja0QqsawJpCLVHcPZDhlC2q57MgYCDUh4,369
109
- verifiers/gepa/adapter.py,sha256=mt2psc4A1YIet6cjs4Zb0Cl9ITSCBPpmB6LFYLAMwXQ,6912
109
+ verifiers/gepa/adapter.py,sha256=zKbkmierleximaNXPZ4G1GVtlaqThUW_k8bUFAn54aI,6973
110
110
  verifiers/gepa/config.py,sha256=yMKFMf7deQUZFU3SRkNIZSk9IyMkZaR88NEOGCLpHtg,1103
111
111
  verifiers/gepa/display.py,sha256=S4xwemM_c7xTjrRXcZUpaDD4p-ccHSM3BlMk2yccHro,18383
112
112
  verifiers/gepa/gepa_utils.py,sha256=5ShRAjDPzKcM6uSkrNnfAe8HHRYU_IU_rWXbTYOIlyo,10691
@@ -118,13 +118,13 @@ verifiers/parsers/xml_parser.py,sha256=ui6k3pMw5J012XWRl6VULpXyllRuB5c0ihJriFiEA
118
118
  verifiers/rubrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
119
  verifiers/rubrics/judge_rubric.py,sha256=VI272RTwO2nG-ADbByXGteBXfnzFZQRyM7NuRC10mcE,5211
120
120
  verifiers/rubrics/math_rubric.py,sha256=NO0mlcCF46vb9kJMQWsuwbJn12bBlSRcAWhYyc_3QE8,5852
121
- verifiers/rubrics/rubric.py,sha256=QuoQoEgpAg9KbLBQSkYjR6Gj3KACDtvvWgw70YVa4Fg,15750
121
+ verifiers/rubrics/rubric.py,sha256=l5wWO_fJ2oaCJzimbEsENBZSyCplKktQKorhDJxFVgQ,16030
122
122
  verifiers/rubrics/rubric_group.py,sha256=ixNNT1wH9GZWN5tDzOXqE1NyLlPzYVY5ysoVXY7Uy5s,5701
123
- verifiers/rubrics/experimental/hybrid_math_rubric.py,sha256=sQ4o7dKICmbdJT9mSD9OQDAmYmdvkKEhrtLWbJure9c,13275
123
+ verifiers/rubrics/experimental/hybrid_math_rubric.py,sha256=56943JXU6c1KeP6CM5wcR-uKsnKtLVxzcCpLA3qLg9s,13308
124
124
  verifiers/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
125
  verifiers/scripts/build.py,sha256=mll9FQCZMDq1gmZ9wnUXzP04DdqP1mRgD4qotp0v5G0,14150
126
126
  verifiers/scripts/eval.py,sha256=Wdht0RonJGmkY1SM8lvQgXqv9oZQP4LqwbwWcziBD4E,31484
127
- verifiers/scripts/gepa.py,sha256=GDRGkg9ASFF9_9wcVoyEW5KxkXjJkc-nGkpIosv2mgQ,27743
127
+ verifiers/scripts/gepa.py,sha256=OdznRkhqW9WHSepISsXoWvew_xmgEPxRwPKLPnmYXf4,27778
128
128
  verifiers/scripts/init.py,sha256=chz59BoF5nj_37OAZS9mQamuxDduF5c9UXS5QFYi7j4,6985
129
129
  verifiers/scripts/install.py,sha256=wMj-nnXbivnIBsSO0ot4FMh-IUfM6PXMiX_QVYs5PxI,2238
130
130
  verifiers/scripts/setup.py,sha256=aRx93cS0V22cu4qLlOzbojRnjCgyVQBNRZc6imlc71E,702
@@ -139,7 +139,7 @@ verifiers/serve/server/env_server.py,sha256=MsfAjbiOmOVdl88Zb1U9q3Lh48zIHlkRO6DP
139
139
  verifiers/serve/server/env_worker.py,sha256=epp3YXHFlLmCGIy1ZElQyWgGNrpw2JkEifCAvNooG28,14404
140
140
  verifiers/serve/server/zmq_env_server.py,sha256=c05fBFur1c0hxxXPqA5EHF0sQ9UDKL3QFoV4VUymzjA,4716
141
141
  verifiers/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
- verifiers/utils/async_utils.py,sha256=Pnh46xD9uKiRVNlOcBtZgl47-FMFMd6sNF8Sbv-O8uk,7893
142
+ verifiers/utils/async_utils.py,sha256=VvNRJD5kX4QwmOBbiO9hmk9haGdoCswWN77wmRf_b4E,7963
143
143
  verifiers/utils/client_utils.py,sha256=0KQT56XrSLmBnhQVPPnAD0iDeL7J4yd61uXens98TZU,4814
144
144
  verifiers/utils/config_utils.py,sha256=l2ar9lX4AVqvQZE73jMNoyR_p9sRXbo2TJ70HApzh2Y,1033
145
145
  verifiers/utils/data_utils.py,sha256=oppbVeKJ49Ti2Cwdj_60sRX1JMSf0xoIzfAw1ZM5zYI,10412
@@ -148,19 +148,19 @@ verifiers/utils/env_config_utils.py,sha256=dFShqX8rHFdU6LopWk0yXz1uDTZAgdPo7WoP_
148
148
  verifiers/utils/env_utils.py,sha256=CHpx1rrwxjK-C_wQVj80ET9ijotEVo9PoNdITwq52gw,2585
149
149
  verifiers/utils/error_utils.py,sha256=AG_zrQzAdNzxSkvRy9ED_4r6DiJAmjCVlFLAA5CbnKI,3846
150
150
  verifiers/utils/eval_display.py,sha256=rzpeDgP7vaUDCSnwiENpv80NMxoL6MpdOpxdlt64C7o,47904
151
- verifiers/utils/eval_utils.py,sha256=DwcwSXcO_q_gbj5yn4jFmtRFZr1DhwtN0YtLCrsPfNA,49690
151
+ verifiers/utils/eval_utils.py,sha256=Ch-XRhC07rkGRRbKTaf-xh55XQsuPgNBDwOB_fM0CmM,49831
152
152
  verifiers/utils/heartbeat.py,sha256=ePXFU4f0DfiMt2L_ysh4s3c6-BtRAeRO6gCxGsO2ISE,783
153
153
  verifiers/utils/import_utils.py,sha256=rWVoXfq8C4evM_1A9HW4cWRI6IGQ66YrOAjTnQv5aow,276
154
154
  verifiers/utils/install_utils.py,sha256=5wIM-S7Bignu9SBqy9hGoURpzX1DrH8InNy8MbZ2N_Q,7533
155
- verifiers/utils/interception_utils.py,sha256=XlHZxzYCP5Ia5sxDDyq4HyS-zt46mgbeRQdCHNw5gMg,37918
155
+ verifiers/utils/interception_utils.py,sha256=JFppjEGmx2bWcX8VOMjd786DcStkt0xhBTYTmuKjezQ,37954
156
156
  verifiers/utils/logging_utils.py,sha256=ORhY77WdhjhExTC8ckXBMubVt-bLwzETYKzZL-zuH9U,8529
157
- verifiers/utils/message_utils.py,sha256=Qm9YG1HT1LMoT1IEOioC86Vg_9ZAbaSrnbHqoWL9hDk,17729
157
+ verifiers/utils/message_utils.py,sha256=c1orN5CVFSK4Hk2ai__LhBV4xboZcSyyWtpltAt15w4,17884
158
158
  verifiers/utils/metric_utils.py,sha256=sdjoixAwjcRBfRHPKH33RSrPB8HVpLXlGa9CzvB8Z-o,6825
159
159
  verifiers/utils/path_utils.py,sha256=DU1xOkGUWuQZ6d4LoDI8Thh5blmPCSa3OQXQP67YKLg,6077
160
160
  verifiers/utils/pricing_utils.py,sha256=V5FaqVUOL02z7JDy4NtPe98UZ9OC-5Sd0oMHSZlwwvg,5156
161
161
  verifiers/utils/process_utils.py,sha256=tFizSYGIUFieg4eGP3dYM2EonB2qmlCzl5EZX8qjmak,2873
162
162
  verifiers/utils/response_utils.py,sha256=E3CrgZ9N_6pCQGxQEI78xAHH0LUGK6utuI01g5Q1NEk,5579
163
- verifiers/utils/save_utils.py,sha256=42o4vZY1Z24EbbWGbhKEWuN47s4DSuqU5wfgMfBa4JQ,34285
163
+ verifiers/utils/save_utils.py,sha256=B8wXkXDnPQuVh_WPd4LUhlr90jXbiSiawhzdVHTZiCA,34355
164
164
  verifiers/utils/serve_utils.py,sha256=sOtquk4fJHj6OYdH-XJho1i6DUqwLLf7O-66DE8q-Jc,4877
165
165
  verifiers/utils/thread_utils.py,sha256=d3hI0djVs24zdKicl6tNDcrqSYNDc6bxKlZ36p0Dp8k,5173
166
166
  verifiers/utils/threaded_sandbox_client.py,sha256=XRzYhWBpMev7kw_aNMWAy6lfa-9uAn3IVQpMTtux-J0,3699
@@ -327,8 +327,8 @@ verifiers/v1/utils/logging.py,sha256=OcMHA6NsYux3oIzjPuI95rDWmFBHNcHDjZeNIhXTX-Y
327
327
  verifiers/v1/utils/memory.py,sha256=ZkIvGk6uITAH5sKon65LifKPbvZr8mJ__PVc23FZpOQ,1835
328
328
  verifiers/v1/utils/sampling.py,sha256=JczGzBn6s3wsIrSY2Hy3hE8m6NreNgsNzhSjDikQqX0,1037
329
329
  verifiers/v1/utils/version.py,sha256=-obEo_-l9-D8FLef4hYxncOe-uJpxrM1g2Hig_37Sgs,1607
330
- verifiers-0.2.2.dev34.dist-info/METADATA,sha256=1kuca0fMkOGeeTfKG1vGbKMoanmyP0JvBzd0UdC4-sg,4540
331
- verifiers-0.2.2.dev34.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
332
- verifiers-0.2.2.dev34.dist-info/entry_points.txt,sha256=dF82JUYEFslR1AOW8LZfuBWeZeQoyX4wCRrduklg8-I,551
333
- verifiers-0.2.2.dev34.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
334
- verifiers-0.2.2.dev34.dist-info/RECORD,,
330
+ verifiers-0.2.2.dev35.dist-info/METADATA,sha256=C_9jwe-5-02Xq4rt1sM686TyE0ZTlQh7VFRi898xpbI,4540
331
+ verifiers-0.2.2.dev35.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
332
+ verifiers-0.2.2.dev35.dist-info/entry_points.txt,sha256=dF82JUYEFslR1AOW8LZfuBWeZeQoyX4wCRrduklg8-I,551
333
+ verifiers-0.2.2.dev35.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
334
+ verifiers-0.2.2.dev35.dist-info/RECORD,,