The eval package currently builds as a flat top-level package synapt_eval, which breaks the shared synapt.* PEP 420 namespace it should co-inhabit with recall (synapt.recall), extract (synapt.extract), premium (synapt.premium), and runner (synapt.runner).
Current state (verified 2026-07-21):
- dist name
synapt-eval — correct (hyphen)
[tool.hatch.build.targets.wheel] packages = ["src/synapt_eval"] — WRONG
- layout
eval/src/synapt_eval/ → imports as synapt_eval, so import synapt.eval fails
Fix:
- move
src/synapt_eval/ → src/synapt/eval/
- set hatchling to build the
synapt/ namespace dir (e.g. packages = ["src/synapt"]), no __init__.py at src/synapt/ (namespace package)
- keep dist name
synapt-eval (hyphen)
Why now: grep found zero .py files importing the package yet — no call sites to update. Cheap now, expensive once code accrues. (Runner is already correct: synapt/runner/ → synapt.runner, no change needed.)
Three spellings must stay consistent: PyPI synapt-eval / import synapt.eval / dir src/synapt/eval/.
Premium boundary: OSS (eval framework is public synapt-eval).
The eval package currently builds as a flat top-level package
synapt_eval, which breaks the sharedsynapt.*PEP 420 namespace it should co-inhabit with recall (synapt.recall), extract (synapt.extract), premium (synapt.premium), and runner (synapt.runner).Current state (verified 2026-07-21):
synapt-eval— correct (hyphen)[tool.hatch.build.targets.wheel] packages = ["src/synapt_eval"]— WRONGeval/src/synapt_eval/→ imports assynapt_eval, soimport synapt.evalfailsFix:
src/synapt_eval/→src/synapt/eval/synapt/namespace dir (e.g.packages = ["src/synapt"]), no__init__.pyatsrc/synapt/(namespace package)synapt-eval(hyphen)Why now: grep found zero
.pyfiles importing the package yet — no call sites to update. Cheap now, expensive once code accrues. (Runner is already correct:synapt/runner/→synapt.runner, no change needed.)Three spellings must stay consistent: PyPI
synapt-eval/ importsynapt.eval/ dirsrc/synapt/eval/.Premium boundary: OSS (eval framework is public
synapt-eval).