tuieval 0.2.0.dev23__tar.gz → 0.2.0.dev25__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 (74) hide show
  1. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/PKG-INFO +1 -1
  2. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/_version.py +2 -2
  3. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/graders/code.py +1 -0
  4. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/tests/test_tuieval.py +8 -0
  5. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/.gitignore +0 -0
  6. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/CHANGELOG.md +0 -0
  7. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/LICENSE +0 -0
  8. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/README.md +0 -0
  9. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/RELEASING.md +0 -0
  10. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/README.md +0 -0
  11. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/favicon.ico +0 -0
  12. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/readme-header.png +0 -0
  13. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/social-preview.png +0 -0
  14. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/tuieval-icon-1024.png +0 -0
  15. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/tuieval-icon-128.png +0 -0
  16. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/tuieval-icon-16.png +0 -0
  17. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/tuieval-icon-16.svg +0 -0
  18. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/tuieval-icon-256.png +0 -0
  19. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/tuieval-icon-32.png +0 -0
  20. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/tuieval-icon-48.png +0 -0
  21. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/tuieval-icon-512.png +0 -0
  22. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/tuieval-icon-64.png +0 -0
  23. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/tuieval-icon-animated.svg +0 -0
  24. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/brand/tuieval-icon.svg +0 -0
  25. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/images/tui-setup.png +0 -0
  26. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/models.md +0 -0
  27. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/docs/writing-packs.md +0 -0
  28. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/pyproject.toml +0 -0
  29. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/__init__.py +0 -0
  30. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/__main__.py +0 -0
  31. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/builtin.toml +0 -0
  32. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/cli.py +0 -0
  33. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/client.py +0 -0
  34. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/compare.py +0 -0
  35. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/doctor.py +0 -0
  36. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/engine.py +0 -0
  37. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/export.py +0 -0
  38. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/graders/__init__.py +0 -0
  39. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/graders/answer.py +0 -0
  40. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/graders/rag.py +0 -0
  41. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/graders/reply.py +0 -0
  42. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/graders/tool_call.py +0 -0
  43. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/machines.py +0 -0
  44. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/onboard.py +0 -0
  45. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/packs.py +0 -0
  46. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/profiles.py +0 -0
  47. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/remove.py +0 -0
  48. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/run_evals.py +0 -0
  49. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/scaffold.py +0 -0
  50. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/selftest.py +0 -0
  51. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/models.toml +0 -0
  52. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/answer/pack.toml +0 -0
  53. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/answer/system.txt +0 -0
  54. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/answer/tests.yaml +0 -0
  55. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/code/pack.toml +0 -0
  56. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/code/system.txt +0 -0
  57. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/code/tests.yaml +0 -0
  58. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/rag/pack.toml +0 -0
  59. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/rag/system.txt +0 -0
  60. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/rag/tests.yaml +0 -0
  61. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/reply/pack.toml +0 -0
  62. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/reply/system.txt +0 -0
  63. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/reply/tests.yaml +0 -0
  64. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/tool_call/pack.toml +0 -0
  65. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/tool_call/system.txt +0 -0
  66. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/tool_call/tests.yaml +0 -0
  67. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/templates/packs/tool_call/tools.yaml +0 -0
  68. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/tui.py +0 -0
  69. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/tune.py +0 -0
  70. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/verdict.py +0 -0
  71. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/watch_proxy.py +0 -0
  72. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/workspace.py +0 -0
  73. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/src/tuieval/yamlout.py +0 -0
  74. {tuieval-0.2.0.dev23 → tuieval-0.2.0.dev25}/tests/mock_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: tuieval
3
- Version: 0.2.0.dev23
3
+ Version: 0.2.0.dev25
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
@@ -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.dev23'
22
- __version_tuple__ = version_tuple = (0, 2, 0, 'dev23')
21
+ __version__ = version = '0.2.0.dev25'
22
+ __version_tuple__ = version_tuple = (0, 2, 0, 'dev25')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -53,6 +53,7 @@ def _err(e):
53
53
  return last[:200]
54
54
  try:
55
55
  exec(compile(CANDIDATE, "candidate.py", "exec"), ns)
56
+ ns = dict(ns) # tests get a copy, so their imports can't rebind the candidate's globals
56
57
  exec(compile(SETUP, "setup.py", "exec"), ns)
57
58
  setup_error = None
58
59
  except BaseException as e:
@@ -242,6 +242,14 @@ class Units(unittest.TestCase):
242
242
  "not decided yet for Coding")
243
243
  self.assertEqual(todo, [("Coding", "run Certify (the sample screened so far looks promising)", ["coding"])])
244
244
 
245
+ def test_code_checks_cannot_rebind_candidate_names(self):
246
+ from tuieval.graders.code import grade_code
247
+ answer = "```python\nfrom datetime import datetime\ndef f(s):\n return datetime.fromisoformat(s)\n```"
248
+ tests = ("# SETUP\nimport datetime\n# CHECK: parse\n"
249
+ "assert f('2026-01-02') == datetime.datetime(2026, 1, 2)\n")
250
+ out = grade_code(answer, {"hidden_tests": tests}, {})
251
+ self.assertTrue(out["pass"], out)
252
+
245
253
  def test_short_note(self):
246
254
  from tuieval import tui
247
255
  self.assertEqual(tui.short_note("server exited with code 1 while loading: bad file"), "didn't start: bad file")
File without changes
File without changes
File without changes