tuieval 0.2.0.dev42__py3-none-any.whl → 0.2.0.dev43__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.
tuieval/_version.py CHANGED
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.2.0.dev42'
22
- __version_tuple__ = version_tuple = (0, 2, 0, 'dev42')
21
+ __version__ = version = '0.2.0.dev43'
22
+ __version_tuple__ = version_tuple = (0, 2, 0, 'dev43')
23
23
 
24
24
  __commit_id__ = commit_id = None
tuieval/client.py CHANGED
@@ -17,6 +17,10 @@ import time
17
17
  import urllib.parse
18
18
 
19
19
  SERVER_ERROR_PREFIXES = ("server returned HTTP 5", "server returned HTTP 429", "server error", "connection error")
20
+ # the model can't be reached there at all (a bad key, no credits, or a hosted API with no provider serving it, e.g.
21
+ # OpenRouter's 404 "No endpoints found"): not the model's answer either, and waiting won't fix it
22
+ UNAVAILABLE_PREFIXES = ("server returned HTTP 401", "server returned HTTP 402", "server returned HTTP 403",
23
+ "server returned HTTP 404")
20
24
 
21
25
 
22
26
  def is_server_error(error):
@@ -27,9 +31,15 @@ def is_server_error(error):
27
31
  and "timeout" not in error.lower()
28
32
 
29
33
 
34
+ def is_unavailable(error):
35
+ """True for an error saying the model isn't available on that server at all: HTTP 401, 402, 403 or
36
+ 404. Never the model's answer, and not worth retrying."""
37
+ return bool(error) and error.startswith(UNAVAILABLE_PREFIXES)
38
+
39
+
30
40
  def server_error_row(rec):
31
41
  """A stored answer that was really a server failure (never a judgement of the model)."""
32
- return not rec.get("pass") and is_server_error(rec.get("reason"))
42
+ return not rec.get("pass") and (is_server_error(rec.get("reason")) or is_unavailable(rec.get("reason")))
33
43
 
34
44
 
35
45
  class Cancelled(Exception):
tuieval/engine.py CHANGED
@@ -2105,6 +2105,9 @@ class Engine:
2105
2105
  self._check()
2106
2106
  if res["error"] and not alive():
2107
2107
  raise ModelFailed(f"the server stopped: {res['error']}")
2108
+ if client.is_unavailable(res["error"]): # never an answer; retrying won't help
2109
+ raise ModelFailed(f"the model isn't available there (not counted against it): "
2110
+ f"{res['error'][:300]}")
2108
2111
  if not client.is_server_error(res["error"]):
2109
2112
  break
2110
2113
  # the server failed, not the model: never recorded as an answer
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: tuieval
3
- Version: 0.2.0.dev42
3
+ Version: 0.2.0.dev43
4
4
  Summary: Evaluate local and frontier LLMs on your own questions: accuracy, speed, tokens and PASS/FAIL verdicts, in the terminal.
5
5
  Project-URL: Homepage, https://github.com/ashe-wb/tuieval
6
6
  Project-URL: Issues, https://github.com/ashe-wb/tuieval/issues
@@ -1,12 +1,12 @@
1
1
  tuieval/__init__.py,sha256=myVXVX7htbwezW6k3x_FuKgn1RSZ2WcTaDEMByGn6Wg,312
2
2
  tuieval/__main__.py,sha256=E6Gls0DNz8GQK2K-kOUIx8cYhgANW_CH54VKrfCfs14,52
3
- tuieval/_version.py,sha256=DfGXotYkwonAQhxctMA784jbVvrHBcDTr170a85efeI,535
3
+ tuieval/_version.py,sha256=5PoXfeeUc_RJHZEcbrdVeWQpyK7qC0e8oom2QPT307Y,535
4
4
  tuieval/builtin.toml,sha256=Kxw22RZCJhURUyu5Wz8tj5Y1nM85A8hFVRbA4ocoPUg,4293
5
5
  tuieval/cli.py,sha256=kI1P0a7TMS-daHjZjLDBdBDPOwBCmPw1qjw6VDlY258,4505
6
- tuieval/client.py,sha256=Vui7ucVv_GiKObGoVS_EWSZFUKPou9PWmutqMTrahXk,9313
6
+ tuieval/client.py,sha256=kpsyLEZKfxCsvIGBHBbBy83TpI97CvnGCDq-4AbJS4Y,9986
7
7
  tuieval/compare.py,sha256=SHN_o_nlppFcHMBqBZRITIkeQDPaR_JxhUZItQLMBwo,26270
8
8
  tuieval/doctor.py,sha256=y1C_ggjd8oikXTrovgTBf26wjThP8EoVkfTVeO_n5dQ,6070
9
- tuieval/engine.py,sha256=xTDlcU2nPGcSvv6a45gLTsMU7p7ZvNxmzrkGPMe9vfQ,113950
9
+ tuieval/engine.py,sha256=w3KsgxzFAMcRyVzFGQXhTgN3d9qYRtAZZxNLXZOgnrQ,114222
10
10
  tuieval/export.py,sha256=dbHQgL_ubWtIPM1sLzAew_gETnrDJyd0zgqVA5vkpXM,9657
11
11
  tuieval/machines.py,sha256=ImEihNj8QlBRdCHLED4QIdjJUvjVtZgo6DiVU5h6Zzs,13415
12
12
  tuieval/onboard.py,sha256=IYETVDWCCo9vF0Dtj4_rr9VanYeCky8PwP3-2g5A_l0,6215
@@ -46,8 +46,8 @@ tuieval/templates/packs/tool_call/pack.toml,sha256=n4bx0lGJHSmW41uVqhfIXJ2BWZpmT
46
46
  tuieval/templates/packs/tool_call/system.txt,sha256=mKxu-lB-0YjLHXdgeFJa8x2C180OvcNz5cHv2N5Bg3U,254
47
47
  tuieval/templates/packs/tool_call/tests.yaml,sha256=Nv7c4syrzJ9cU8EBKSK_1ZSFx9V02aCjW4-2TBCPT7s,1859
48
48
  tuieval/templates/packs/tool_call/tools.yaml,sha256=HgxCkh0On2VwbHSsjAGM8tNCK7ZtKLGrs7lMCn3Fprs,1048
49
- tuieval-0.2.0.dev42.dist-info/METADATA,sha256=dGI2rKY-NRJBTTx7nc3LvsgWxkpZwaaGivddPyzBDrw,13881
50
- tuieval-0.2.0.dev42.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
51
- tuieval-0.2.0.dev42.dist-info/entry_points.txt,sha256=7eIhi1GpFxBP2OLJV02Nn8LwsNuO512eKOGt1IBbj04,45
52
- tuieval-0.2.0.dev42.dist-info/licenses/LICENSE,sha256=7wfRgGtBGH1aXhZkIn47oUznqKC18kEPMvUVgol7Ffc,1077
53
- tuieval-0.2.0.dev42.dist-info/RECORD,,
49
+ tuieval-0.2.0.dev43.dist-info/METADATA,sha256=P6oHoB_GI8wBLV-_DUqU4TggqZdTVGtz5glAfpIn2jU,13881
50
+ tuieval-0.2.0.dev43.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
51
+ tuieval-0.2.0.dev43.dist-info/entry_points.txt,sha256=7eIhi1GpFxBP2OLJV02Nn8LwsNuO512eKOGt1IBbj04,45
52
+ tuieval-0.2.0.dev43.dist-info/licenses/LICENSE,sha256=7wfRgGtBGH1aXhZkIn47oUznqKC18kEPMvUVgol7Ffc,1077
53
+ tuieval-0.2.0.dev43.dist-info/RECORD,,