hte-cli 0.2.18__tar.gz → 0.2.21__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.
Files changed (36) hide show
  1. {hte_cli-0.2.18 → hte_cli-0.2.21}/PKG-INFO +2 -1
  2. {hte_cli-0.2.18 → hte_cli-0.2.21}/pyproject.toml +2 -1
  3. {hte_cli-0.2.18 → hte_cli-0.2.21}/src/hte_cli/runner.py +16 -6
  4. hte_cli-0.2.21/tests/e2e/automated_runner.py +891 -0
  5. hte_cli-0.2.21/tests/e2e/conftest.py +180 -0
  6. {hte_cli-0.2.18 → hte_cli-0.2.21}/tests/e2e/e2e_test.py +224 -54
  7. hte_cli-0.2.21/tests/e2e/test_benchmark_flows.py +432 -0
  8. {hte_cli-0.2.18 → hte_cli-0.2.21}/tests/e2e/test_eval_logs.py +54 -33
  9. {hte_cli-0.2.18 → hte_cli-0.2.21}/tests/e2e/test_infrastructure.py +74 -90
  10. {hte_cli-0.2.18 → hte_cli-0.2.21}/tests/e2e/test_runtime_imports.py +53 -39
  11. hte_cli-0.2.21/tests/e2e/test_session_lifecycle.py +420 -0
  12. {hte_cli-0.2.18 → hte_cli-0.2.21}/tests/e2e/verify_docker_deps.py +27 -14
  13. hte_cli-0.2.21/tests/unit/__init__.py +1 -0
  14. hte_cli-0.2.21/tests/unit/conftest.py +169 -0
  15. hte_cli-0.2.21/tests/unit/test_image_utils.py +398 -0
  16. hte_cli-0.2.21/tests/unit/test_runner.py +416 -0
  17. hte_cli-0.2.21/tests/unit/test_scorers.py +334 -0
  18. {hte_cli-0.2.18 → hte_cli-0.2.21}/uv.lock +16 -1
  19. hte_cli-0.2.18/tests/e2e/automated_runner.py +0 -550
  20. hte_cli-0.2.18/tests/e2e/conftest.py +0 -113
  21. hte_cli-0.2.18/tests/e2e/test_benchmark_flows.py +0 -331
  22. hte_cli-0.2.18/tests/e2e/test_session_lifecycle.py +0 -264
  23. {hte_cli-0.2.18 → hte_cli-0.2.21}/.gitignore +0 -0
  24. {hte_cli-0.2.18 → hte_cli-0.2.21}/README.md +0 -0
  25. {hte_cli-0.2.18 → hte_cli-0.2.21}/src/hte_cli/__init__.py +0 -0
  26. {hte_cli-0.2.18 → hte_cli-0.2.21}/src/hte_cli/__main__.py +0 -0
  27. {hte_cli-0.2.18 → hte_cli-0.2.21}/src/hte_cli/api_client.py +0 -0
  28. {hte_cli-0.2.18 → hte_cli-0.2.21}/src/hte_cli/cli.py +0 -0
  29. {hte_cli-0.2.18 → hte_cli-0.2.21}/src/hte_cli/config.py +0 -0
  30. {hte_cli-0.2.18 → hte_cli-0.2.21}/src/hte_cli/errors.py +0 -0
  31. {hte_cli-0.2.18 → hte_cli-0.2.21}/src/hte_cli/events.py +0 -0
  32. {hte_cli-0.2.18 → hte_cli-0.2.21}/src/hte_cli/image_utils.py +0 -0
  33. {hte_cli-0.2.18 → hte_cli-0.2.21}/src/hte_cli/scorers.py +0 -0
  34. {hte_cli-0.2.18 → hte_cli-0.2.21}/src/hte_cli/version_check.py +0 -0
  35. {hte_cli-0.2.18 → hte_cli-0.2.21}/tests/__init__.py +0 -0
  36. {hte_cli-0.2.18 → hte_cli-0.2.21}/tests/e2e/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hte-cli
3
- Version: 0.2.18
3
+ Version: 0.2.21
4
4
  Summary: Human Time-to-Completion Evaluation CLI
5
5
  Project-URL: Homepage, https://github.com/sean-peters-au/lyptus-mono
6
6
  Author: Lyptus Research
@@ -25,6 +25,7 @@ Requires-Dist: pyyaml>=6.0
25
25
  Requires-Dist: rich>=13.0
26
26
  Provides-Extra: dev
27
27
  Requires-Dist: pexpect>=4.8; extra == 'dev'
28
+ Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
28
29
  Requires-Dist: pytest>=7.0; extra == 'dev'
29
30
  Requires-Dist: requests>=2.28; extra == 'dev'
30
31
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hte-cli"
3
- version = "0.2.18"
3
+ version = "0.2.21"
4
4
  description = "Human Time-to-Completion Evaluation CLI"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -36,6 +36,7 @@ dev = [
36
36
  "pexpect>=4.8",
37
37
  "requests>=2.28",
38
38
  "pytest>=7.0",
39
+ "pytest-asyncio>=0.23",
39
40
  ]
40
41
 
41
42
  [project.scripts]
@@ -271,12 +271,22 @@ class TaskRunner:
271
271
  file_dest_base = _get_file_dest_from_compose(compose_path)
272
272
 
273
273
  files_to_mount: dict[str, str] = {}
274
- excluded_files = {"compose.yaml", "README.md", "instructions.txt"}
275
- for file_path in task_dir.iterdir():
276
- if file_path.is_file() and file_path.name not in excluded_files:
277
- dest_path = f"{file_dest_base}/{file_path.name}"
278
- files_to_mount[dest_path] = str(file_path)
279
- logger.info(f"Will mount file: {file_path.name} -> {dest_path}")
274
+ excluded_files = {"compose.yaml", "README.md", "instructions.txt", "logs"}
275
+
276
+ # Walk directory tree recursively to handle nested file structures
277
+ # (e.g., cybench tasks with blog/, nginx/, rcache/ subdirectories)
278
+ for file_path in task_dir.rglob("*"):
279
+ if not file_path.is_file():
280
+ continue
281
+ # Get relative path from task_dir
282
+ rel_path = file_path.relative_to(task_dir)
283
+ # Skip excluded files (check both filename and first directory component)
284
+ if rel_path.name in excluded_files or rel_path.parts[0] in excluded_files:
285
+ continue
286
+ # Build destination path preserving directory structure
287
+ dest_path = f"{file_dest_base}/{rel_path}"
288
+ files_to_mount[dest_path] = str(file_path)
289
+ logger.info(f"Will mount file: {rel_path} -> {dest_path}")
280
290
 
281
291
  # Create the Inspect task
282
292
  inspect_task = self.create_inspect_task(