hte-cli 0.2.2__tar.gz → 0.2.3__tar.gz
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.
- {hte_cli-0.2.2 → hte_cli-0.2.3}/PKG-INFO +1 -1
- {hte_cli-0.2.2 → hte_cli-0.2.3}/pyproject.toml +1 -1
- {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/cli.py +24 -4
- {hte_cli-0.2.2 → hte_cli-0.2.3}/.gitignore +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/README.md +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/__init__.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/__main__.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/api_client.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/config.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/errors.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/events.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/image_utils.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/runner.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/scorers.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/src/hte_cli/version_check.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/__init__.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/__init__.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/automated_runner.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/conftest.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/e2e_test.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/test_benchmark_flows.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/test_eval_logs.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/test_infrastructure.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/test_runtime_imports.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/test_session_lifecycle.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/tests/e2e/verify_docker_deps.py +0 -0
- {hte_cli-0.2.2 → hte_cli-0.2.3}/uv.lock +0 -0
|
@@ -296,18 +296,38 @@ def session_join(ctx, session_id: str, force_setup: bool):
|
|
|
296
296
|
|
|
297
297
|
# Pull images if we have any
|
|
298
298
|
if images:
|
|
299
|
+
from hte_cli.image_utils import check_image_exists_locally
|
|
300
|
+
|
|
299
301
|
console.print(f"[bold]Pulling {len(images)} Docker image(s)...[/bold]")
|
|
300
302
|
pull_start = time.monotonic()
|
|
301
303
|
|
|
302
304
|
for img in images:
|
|
303
305
|
short_name = img.split("/")[-1][:40]
|
|
304
|
-
|
|
305
|
-
|
|
306
|
+
|
|
307
|
+
# Check if already cached
|
|
308
|
+
if check_image_exists_locally(img):
|
|
309
|
+
console.print(f" [green]✓[/green] {short_name} [dim](cached)[/dim]")
|
|
310
|
+
cached_images.append(img)
|
|
311
|
+
continue
|
|
312
|
+
|
|
313
|
+
# Need to pull - show progress
|
|
314
|
+
with console.status(f"[yellow]↓[/yellow] {short_name} [dim]connecting...[/dim]") as status:
|
|
315
|
+
def show_progress(image: str, line: str):
|
|
316
|
+
# Parse docker pull output for layer progress
|
|
317
|
+
# Lines look like: "abc123: Downloading [====> ] 10MB/50MB"
|
|
318
|
+
if ": " in line:
|
|
319
|
+
parts = line.split(": ", 1)
|
|
320
|
+
if len(parts) == 2:
|
|
321
|
+
layer_status = parts[1][:50] # Truncate
|
|
322
|
+
status.update(f"[yellow]↓[/yellow] {short_name} [dim]{layer_status}[/dim]")
|
|
323
|
+
|
|
324
|
+
success = pull_image_with_progress(img, on_progress=show_progress)
|
|
325
|
+
|
|
306
326
|
if success:
|
|
307
|
-
console.print(f" [green]✓[/green] {short_name}")
|
|
327
|
+
console.print(f" [green]✓[/green] {short_name} [dim](downloaded)[/dim]")
|
|
308
328
|
pulled_images.append(img)
|
|
309
329
|
else:
|
|
310
|
-
console.print(f" [red]✗[/red] {short_name} (failed)")
|
|
330
|
+
console.print(f" [red]✗[/red] {short_name} [dim](failed)[/dim]")
|
|
311
331
|
failed_images.append(img)
|
|
312
332
|
|
|
313
333
|
pull_duration = time.monotonic() - pull_start
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|