eval-protocol 0.2.84.dev2__py3-none-any.whl → 0.2.84.dev4__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.
eval_protocol/_version.py CHANGED
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-11-10T17:41:27-0800",
11
+ "date": "2025-11-10T18:00:39-0800",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "cd9cc91c34f975482fe05b4bf3a60b4a0bcbd746",
15
- "version": "0.2.84.dev.2"
14
+ "full-revisionid": "e7615d7ec75524b19ed38241d1c6165cf32dd79f",
15
+ "version": "0.2.84.dev.4"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -50,13 +50,19 @@ def _run_pytest_in_docker(project_root: str, image_tag: str, pytest_target: str)
50
50
  "--rm",
51
51
  "-v",
52
52
  f"{project_root}:{workdir}",
53
+ "-e",
54
+ f"EVAL_PROTOCOL_DIR={workdir}/.eval_protocol",
53
55
  "-w",
54
56
  workdir,
55
- image_tag,
56
- "pytest",
57
- pytest_target,
58
- "-vs",
59
57
  ]
58
+ # Try to match host user to avoid permission problems on mounted volume
59
+ try:
60
+ uid = os.getuid() # type: ignore[attr-defined]
61
+ gid = os.getgid() # type: ignore[attr-defined]
62
+ cmd += ["--user", f"{uid}:{gid}"]
63
+ except Exception:
64
+ pass
65
+ cmd += [image_tag, "pytest", pytest_target, "-vs"]
60
66
  print("Running in Docker:", " ".join(cmd))
61
67
  try:
62
68
  proc = subprocess.run(cmd)
@@ -123,6 +129,11 @@ def local_test_command(args: argparse.Namespace) -> int:
123
129
  print("Hint: use --ignore-docker to bypass Docker.")
124
130
  return 1
125
131
  if len(dockerfiles) == 1:
132
+ # Ensure shared logs directory exists on host so container writes are visible to host ep logs
133
+ try:
134
+ os.makedirs(os.path.join(project_root, ".eval_protocol"), exist_ok=True)
135
+ except Exception:
136
+ pass
126
137
  image_tag = "ep-evaluator:local"
127
138
  ok = _build_docker_image(dockerfiles[0], image_tag)
128
139
  if not ok:
@@ -437,7 +437,7 @@ def _prompt_select_interactive(tests: list[DiscoveredTest]) -> list[DiscoveredTe
437
437
  # Check if only one test - auto-select it
438
438
  if len(tests) == 1:
439
439
  print(f"\nFound 1 test: {_format_test_choice(tests[0], 1)}")
440
- confirm = questionary.confirm("Upload this test?", default=True, style=custom_style).ask()
440
+ confirm = questionary.confirm("Select this test?", default=True, style=custom_style).ask()
441
441
  if confirm:
442
442
  return tests
443
443
  else:
@@ -500,7 +500,7 @@ def _prompt_select_fallback(tests: list[DiscoveredTest]) -> list[DiscoveredTest]
500
500
 
501
501
  print("=" * 80)
502
502
  try:
503
- choice = input("Enter the number to upload: ").strip()
503
+ choice = input("Enter the number to select: ").strip()
504
504
  except KeyboardInterrupt:
505
505
  print("\n\nUpload cancelled.")
506
506
  return []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eval-protocol
3
- Version: 0.2.84.dev2
3
+ Version: 0.2.84.dev4
4
4
  Summary: The official Python SDK for Eval Protocol (EP.) EP is an open protocol that standardizes how developers author evals for large language model (LLM) applications.
5
5
  Author-email: Fireworks AI <info@fireworks.ai>
6
6
  License-Expression: MIT
@@ -5,7 +5,7 @@ development/utils/generate_api_key.py,sha256=hHCMFkzW4yxqwcn2ct5diDm-PR9cMX9XP7I
5
5
  development/utils/subprocess_manager.py,sha256=7n7rT9ji7h93i79SMrGS5RNesrnLFjdFON9_eQCmYNE,18937
6
6
  eval_protocol/__init__.py,sha256=I24OX8MFZBIXWeCh8Jhd8e5Qka8M4iXGKuXWme0hFD4,5150
7
7
  eval_protocol/__main__.py,sha256=FIW5fo2X2rsPThurSlZEuqvE1u0XNwJW1uoej_OhAAs,161
8
- eval_protocol/_version.py,sha256=cPtzfV2QGBVQfKawzQ7SX5EGsEhpss5AMbHiR2r5uDM,504
8
+ eval_protocol/_version.py,sha256=hYheD9sAVtx3-P6kDQs3h2t3rkwu5qVSKX6uWVzmmJs,504
9
9
  eval_protocol/auth.py,sha256=fxM8ZBUQ5t6WsNBiXSoxqpHAcwscwGe8wYLdWnPrSV4,13414
10
10
  eval_protocol/cli.py,sha256=XByElRsFCFwpP9R3bs6vZ3TPaoxP2m-7yzYnlAsLlaU,28604
11
11
  eval_protocol/common_utils.py,sha256=2K7c2nMW7B3-wECbmAHBdZRIA1NjnUZIZnhCsNMRKu0,2883
@@ -73,11 +73,11 @@ eval_protocol/cli_commands/common.py,sha256=UuV5AZ02Rp6oioOblr9mfIrFcfTAKJOuxzhO
73
73
  eval_protocol/cli_commands/create_rft.py,sha256=2IlKuNwYCFYCwJ6HK2JP5vy90ZS55Ak2GBmaoVuBvUo,31450
74
74
  eval_protocol/cli_commands/deploy.py,sha256=WwwyK80exi1dBFjcIXEj_odaGOfe1byiWgnLGiUUQvM,24054
75
75
  eval_protocol/cli_commands/deploy_mcp.py,sha256=_6S7NcbCb_hGVqaBUgKLURO53i2UAI7xXUkBVXP6cLo,9961
76
- eval_protocol/cli_commands/local_test.py,sha256=dkiDNO2Wo-KOM3DPL6hxFgJlYikhdhcdtdbYxjSfmmQ,4960
76
+ eval_protocol/cli_commands/local_test.py,sha256=nhPYQ40mebbf8KBZZTpuD4Lch_StVFn96htInWFewXk,5526
77
77
  eval_protocol/cli_commands/logs.py,sha256=Py7WOeQKBkbBHTm-2ZjyB70EIAbgr3JwF2Vs_qTTKng,1833
78
78
  eval_protocol/cli_commands/preview.py,sha256=1iXru9V8QBGx7tLDJ28iG7bjV2ICFroEKaQ8EJsGciU,8072
79
79
  eval_protocol/cli_commands/run_eval_cmd.py,sha256=xLf7Adfjt-5jmfKHh9ioay3n0MDo78tofeZgTnZ-C7w,9730
80
- eval_protocol/cli_commands/upload.py,sha256=8YWjrqB8yV_qWibgabT0ElZtrW8App5K78-qarMi7cI,28022
80
+ eval_protocol/cli_commands/upload.py,sha256=eJxEAUEmAs8dLiZHpJDzxp9wE_nWgLzf_-4Hj-oA7hU,28022
81
81
  eval_protocol/data_loader/__init__.py,sha256=mjl725y1nW_l8g5mnHJt9CXTj-knKoJc15eD35XBTH4,245
82
82
  eval_protocol/data_loader/dynamic_data_loader.py,sha256=tMSqKiECls1ySHv5eHpAlc9PwsRLzE5Rp4Ko3kIYUuA,1442
83
83
  eval_protocol/data_loader/factory_data_loader.py,sha256=9mqkWGyQde8s8O5KmN8vg7TQJLlLn61-RVHAuUTTnD8,1428
@@ -249,7 +249,7 @@ eval_protocol/utils/show_results_url.py,sha256=PHM6dWtCUiuV5WQgvHegnxY7ofkE4b9wO
249
249
  eval_protocol/utils/static_policy.py,sha256=fiKnOS06EG5OB6p5An_yY_dLAvVboYnC4Sqx5z_v3-g,10716
250
250
  eval_protocol/utils/subprocess_utils.py,sha256=2EcoVNLSlfdxwQn-2pscqjiGpBR4Ho8kfRnmzmew-1w,3504
251
251
  eval_protocol/utils/vite_server.py,sha256=0Tfh1LfTqYpFZxkO2syrF5I0cBEJHFmYXd2N4CWkca8,5051
252
- eval_protocol-0.2.84.dev2.dist-info/licenses/LICENSE,sha256=OzeIb507xW9AVhGMqqHpoL_EFRJUo8Sb7A3LN5NqFfQ,1075
252
+ eval_protocol-0.2.84.dev4.dist-info/licenses/LICENSE,sha256=OzeIb507xW9AVhGMqqHpoL_EFRJUo8Sb7A3LN5NqFfQ,1075
253
253
  vendor/tau2/__init__.py,sha256=EQMX_v8x-YBV24ia35_nLkf5MrC6aAuT_M5m7IJcl3k,541
254
254
  vendor/tau2/cli.py,sha256=lhJocXCDxEfdv7gIxya5b0w5J5qebpgrg_ZTpjGp_ww,7515
255
255
  vendor/tau2/config.py,sha256=LrkKRGSFH4Cvf9CNO-MttJMvIia0a2zP1uKVnUQi6B8,1278
@@ -349,8 +349,8 @@ vite-app/dist/assets/index-BGlGI2LH.css,sha256=xsnvbJ70EzoAdWwqDe2frphbsELuQdyGF
349
349
  vite-app/dist/assets/index-CnGlFAnP.js,sha256=VYfX3a8Kx7tXmfCYk12YfCGUjX3XI7WIliD74xpIclg,868987
350
350
  vite-app/dist/assets/index-CnGlFAnP.js.map,sha256=UFXiELpTt9H1hObSUF14I6aa53euAw9LzZaW_MqLsb4,3869740
351
351
  vite-app/dist/assets/logo-light-BprIBJQW.png,sha256=rRXC24eqrQO3y--N493THrD48WQVAhSVMHM_iDKy250,21694
352
- eval_protocol-0.2.84.dev2.dist-info/METADATA,sha256=VBb-TuadIaBT9OPtxekngPlQg82cFSgpvf3HnuVwI9Y,7664
353
- eval_protocol-0.2.84.dev2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
354
- eval_protocol-0.2.84.dev2.dist-info/entry_points.txt,sha256=CebRaxbWXly21zPN1fbyAw26kNUU2dv7zZyGkXxtFVw,183
355
- eval_protocol-0.2.84.dev2.dist-info/top_level.txt,sha256=8jjn7dpvLPL4RX2JBeAfPPMOR6x6f7E4o4yFiKLEHuw,33
356
- eval_protocol-0.2.84.dev2.dist-info/RECORD,,
352
+ eval_protocol-0.2.84.dev4.dist-info/METADATA,sha256=Fv1TZ_Bx-iEgr0jhlJsrheG9xpbdsL65OPxuSvzQEA4,7664
353
+ eval_protocol-0.2.84.dev4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
354
+ eval_protocol-0.2.84.dev4.dist-info/entry_points.txt,sha256=CebRaxbWXly21zPN1fbyAw26kNUU2dv7zZyGkXxtFVw,183
355
+ eval_protocol-0.2.84.dev4.dist-info/top_level.txt,sha256=8jjn7dpvLPL4RX2JBeAfPPMOR6x6f7E4o4yFiKLEHuw,33
356
+ eval_protocol-0.2.84.dev4.dist-info/RECORD,,