verifiers 0.2.1.dev24__py3-none-any.whl → 0.2.1.dev27__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.
@@ -125,13 +125,15 @@ async def _install_in_sandbox(server: ServerBase, runtime: Runtime) -> str:
125
125
  # build, silently running the server against a released (older) API. Pretend the
126
126
  # local version so the floor is satisfied by the build we uploaded.
127
127
  vf_version = importlib.metadata.version("verifiers")
128
+ extras = ",".join(type(server).EXTRAS)
128
129
  setup = (
129
130
  f"{_ENSURE_UV}; set -e; "
130
131
  f'for t in {root}/*.tar.gz; do tar -xzf "$t" -C {root}; done && '
131
132
  f"uv venv {venv} && "
132
133
  f"SETUPTOOLS_SCM_PRETEND_VERSION={shlex.quote(vf_version)} "
133
134
  f"uv pip install --python {venv} {root}/{shlex.quote(vf.name)} && "
134
- f"uv pip install --python {venv} {root}/{shlex.quote(env.name)}"
135
+ f"uv pip install --python {venv} "
136
+ f"{shlex.quote(f'{root}/{env.name}' + (f'[{extras}]' if extras else ''))}"
135
137
  )
136
138
  result = await runtime.run(["sh", "-c", setup], {})
137
139
  if result.exit_code != 0:
@@ -116,6 +116,9 @@ class ServerBase(Generic[ConfigT, StateT]):
116
116
  # The empty value falls back to the snake-cased class name.
117
117
  TOOL_PREFIX: ClassVar[str] = ""
118
118
 
119
+ EXTRAS: ClassVar[tuple[str, ...]] = ()
120
+ """Package extras the server's module needs, applied at sandbox install."""
121
+
119
122
  def __init__(self, config: ConfigT) -> None:
120
123
  self.config = config
121
124
  self._state_cls = state_cls(type(self))
@@ -180,12 +180,10 @@ class Runtime(ABC):
180
180
  if digest not in self._uv_interpreters:
181
181
  tmp = f"{path}.{uuid.uuid4().hex}.tmp"
182
182
  await self.write(tmp, data)
183
- await self.run(
184
- ["sh", "-c", f"mv -f {shlex.quote(tmp)} {shlex.quote(path)}"],
185
- {},
186
- )
187
183
  command = (
188
- f"{_ENSURE_UV}; uv sync --script {shlex.quote(path)} -q --no-config "
184
+ f"mv -f {shlex.quote(tmp)} {shlex.quote(path)} "
185
+ f"&& {{ {_ENSURE_UV}; }} "
186
+ f"&& uv sync --script {shlex.quote(path)} -q --no-config "
189
187
  f"&& uv python find --script {shlex.quote(path)} --no-config"
190
188
  )
191
189
  result = await self.run(["sh", "-c", command], env or {})
@@ -138,7 +138,7 @@ class PrimeRuntime(Runtime):
138
138
  logger.info(
139
139
  "prime: sandbox %s up (image=%s)", self.info.id, self.config.image
140
140
  )
141
- await self._client.run_background_job(
141
+ await self._client.execute_command(
142
142
  self.info.id, f"mkdir -p {shlex.quote(self.config.workdir)}"
143
143
  )
144
144
  except (
@@ -39,6 +39,8 @@ class TextArenaState(vf.State):
39
39
  class TextArenaUser(vf.User[vf.UserConfig, TextArenaState]):
40
40
  """Keep a seeded game alive across user turns in the harness process."""
41
41
 
42
+ EXTRAS = ("ta",)
43
+
42
44
  async def setup(self) -> None:
43
45
  if not self.config.colocated:
44
46
  raise ValueError(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: verifiers
3
- Version: 0.2.1.dev24
3
+ Version: 0.2.1.dev27
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
@@ -291,16 +291,16 @@ verifiers/v1/judges/reference.txt,sha256=Ej35kGXiT2uJ0LcHIeez49rCS_9uHmCQKoVdn93
291
291
  verifiers/v1/judges/rubric.py,sha256=HEWFLhTKYPO6c1uuY4FY2iKDyQnan-6DiLB5NeQpiPI,11856
292
292
  verifiers/v1/judges/rubric.txt,sha256=3KA2ZeYYdcDweJhUGopxu9EFgARhu2aWft5S5cj8Bc8,323
293
293
  verifiers/v1/mcp/__init__.py,sha256=Bn_eIjJxPXOoRqAroC_W92jDmEesUVkq-0QTUwxoV3Y,634
294
- verifiers/v1/mcp/launch.py,sha256=wt-pCIoQKsdQkYWn0v_ACkageDbp4_YzjmeVT7o60A0,21092
295
- verifiers/v1/mcp/server.py,sha256=MXEW6w72TkLa3iEPqrWgxQSlOBR-ostjImt5LNMtVo0,10692
294
+ verifiers/v1/mcp/launch.py,sha256=RaePuHsugHObSqIoYBrDgd4yy1dzv8rn-jcltKNvz-0,21188
295
+ verifiers/v1/mcp/server.py,sha256=rWmvGU1SEA9ioJZR1PrLftcJC1UbRN3eUJsM-egQWpc,10816
296
296
  verifiers/v1/mcp/toolset.py,sha256=tSPXgTNREZyaeCnoFVnDfXxFAj_pStZMPUIgyPrY_Dk,996
297
297
  verifiers/v1/mcp/user.py,sha256=u_2KMRtNfg6WkwOCRLpR7j4ziFCUzGb1t6SomTbbu4Q,1591
298
298
  verifiers/v1/runtimes/__init__.py,sha256=L8BCIcL9InpQi3ip2-WoZKyO6FHXLnKBoYFWexEpI8Y,2138
299
- verifiers/v1/runtimes/base.py,sha256=VlaQoOqj0-Bj2Q6nBpMtPk8Z_5caXwjdDuHzUJxcDYU,11183
299
+ verifiers/v1/runtimes/base.py,sha256=rp7wzehr6VGkB0unu4tflAE9EVOP7PlS5aEMbDeovdc,11123
300
300
  verifiers/v1/runtimes/docker.py,sha256=c96-HxwuH-aQY_mFYbFTb6TgLInUDuMTgY7z9T6DB3k,7414
301
301
  verifiers/v1/runtimes/limiters.py,sha256=LUcsvyvDkjgdDwMgx4QUduYHHPsgQJ_tgCVCV7L79Hs,2719
302
302
  verifiers/v1/runtimes/modal.py,sha256=a4NghySLu0k_YGqi59OlZdA6AqLYU96KNY2w_FExpTw,8788
303
- verifiers/v1/runtimes/prime.py,sha256=vnx9agHjOUxUInL99bTA9wgFAgyRdc59U6iAOmgMJDg,11547
303
+ verifiers/v1/runtimes/prime.py,sha256=m72TYumj9XmRJdDs_qmr4s77DZbpOFC1rB8G7dDwKKw,11544
304
304
  verifiers/v1/runtimes/subprocess.py,sha256=blhgfr_0YBzfxUNqiXCwMjdEUWwYW3ybebn70JvpzSI,4581
305
305
  verifiers/v1/serve/__init__.py,sha256=WUv1gllOdxoFDiwZRK7llYjcxljlbcyKevzu0trLuUw,708
306
306
  verifiers/v1/serve/client.py,sha256=ZI_q42DX66lS9yLrrxutyWyRACIHeVZ6iekJfRRk7iA,6590
@@ -314,7 +314,7 @@ verifiers/v1/tasksets/lean/__init__.py,sha256=-13Mjoj6oGpiV0hxAF9fsw9-4xWpr5MPJl
314
314
  verifiers/v1/tasksets/lean/scoring.py,sha256=sfzsT6MUK0zdMgAQ57_P_0CBaPHy3M7go71QMr5hDrs,10599
315
315
  verifiers/v1/tasksets/lean/taskset.py,sha256=gIgKjv6foV7RywOVRpOr9Lv9Qe4NjEZalWvlchxHnWk,9196
316
316
  verifiers/v1/tasksets/textarena/__init__.py,sha256=_R_E3PFP3X0lQGoedu_J9lKlB1a8tURvu6aVjthGkjA,375
317
- verifiers/v1/tasksets/textarena/taskset.py,sha256=VChXZQwzevEI4wpDnl3Cn_xY8Xhe-UUEl_gSzAop4g8,5236
317
+ verifiers/v1/tasksets/textarena/taskset.py,sha256=8lpfK4XXmpuGQVBcin6mi2EuDgwttpHvkr6Bv7GPtW4,5258
318
318
  verifiers/v1/utils/__init__.py,sha256=1RDUX9pjAuQHKYEDevehifHd3IB03y9LAUsln3exPQo,27
319
319
  verifiers/v1/utils/aio.py,sha256=ZKTHeURNbWhTpHMyYuqMLsdPWVHyn5anfG1IJs5y-Zg,1481
320
320
  verifiers/v1/utils/format.py,sha256=NfQo9M5KMzWCZpQaet5YtsJx56vCKAZPfbjZZJLJhhM,2187
@@ -324,8 +324,8 @@ verifiers/v1/utils/interrupt.py,sha256=F-KKhc5ndPJJfhd3SuMqyqhXhA32FhCRy5KWFJpEo
324
324
  verifiers/v1/utils/logging.py,sha256=OcMHA6NsYux3oIzjPuI95rDWmFBHNcHDjZeNIhXTX-Y,2084
325
325
  verifiers/v1/utils/memory.py,sha256=ZkIvGk6uITAH5sKon65LifKPbvZr8mJ__PVc23FZpOQ,1835
326
326
  verifiers/v1/utils/sampling.py,sha256=JczGzBn6s3wsIrSY2Hy3hE8m6NreNgsNzhSjDikQqX0,1037
327
- verifiers-0.2.1.dev24.dist-info/METADATA,sha256=wdrMNFYferAi7vmgilNIAb9x0QWpri0ZnW8YIJMSClM,5136
328
- verifiers-0.2.1.dev24.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
329
- verifiers-0.2.1.dev24.dist-info/entry_points.txt,sha256=dF82JUYEFslR1AOW8LZfuBWeZeQoyX4wCRrduklg8-I,551
330
- verifiers-0.2.1.dev24.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
331
- verifiers-0.2.1.dev24.dist-info/RECORD,,
327
+ verifiers-0.2.1.dev27.dist-info/METADATA,sha256=9AfTa1iQ6MEq01-m4QQa3kHde-_fdJ3vVJ2a1yaCg2c,5136
328
+ verifiers-0.2.1.dev27.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
329
+ verifiers-0.2.1.dev27.dist-info/entry_points.txt,sha256=dF82JUYEFslR1AOW8LZfuBWeZeQoyX4wCRrduklg8-I,551
330
+ verifiers-0.2.1.dev27.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
331
+ verifiers-0.2.1.dev27.dist-info/RECORD,,