refactor: move the flat-layout research core under grl_snam/ - #103
Merged
Merged
Conversation
sdf_nav / material_nav / train_coef_energy / eval_coef_energy / surrogate_robust were top-level modules at the repo root, imported absolutely (import sdf_nav) by the package + tests + scripts + experiments and shipped via explicit pyproject py-module includes — a flat-layout legacy. Move all five under grl_snam/ and rewrite every import site (78 files) to grl_snam.<module> (aliased imports and a docstring reference preserved; the surrogate_robust<->train_coef_energy try/except cycle survives). pyproject: drop the 5 top-level includes (now under the grl_snam package); add them to the coverage omit list to keep the 80% gate scope unchanged. Verified: all modules import, every .py compiles, and the full test suite passes (378 passed, 26 skipped — the native-lib-gated ones).
Moving the five modules under grl_snam/ pulled them into the black+ruff gate (they were unlinted at the repo root). Rather than carve them back out, bring them up to standard: black-format all five, ruff --fix (44 auto-fixes: import sort, pyupgrade, unused-import cleanup — noqa re-exports preserved), and drop two dead F841 unused locals (surrogate_robust dev, train_coef_energy W) by hand. Lint now clean across the whole grl_snam package with the five IN scope; full suite still 378 passed / 26 skipped.
The cp313 CI leg uses a newer black (its cvcpkg closure is mislaid -> pip-latest) than cp312's pinned black; black 24.x formatting of the moved modules was rejected by cp313's newer black. Reformat the three with black 26.x — verified accepted by BOTH 26.5.1 and 24.10.0 (a fixed point across the matrix), ruff still clean, AST-preserving so behavior is unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The five research-core modules —
sdf_nav.py,material_nav.py,train_coef_energy.py,eval_coef_energy.py,surrogate_robust.py— lived at the repo root as top-level modules, imported absolutely (import sdf_nav) by the package, tests, scripts, and experiments, and shipped via explicit[tool.poetry] packagespy-module includes. That flat layout pollutes the global module namespace and is easy to mistake for stray leftovers.What
grl_snam/(git renames, history preserved).grl_snam.<module>(import grl_snam.sdf_nav as sdf_nav,from grl_snam.sdf_nav import …). Aliased imports (import material_nav as mnav) and a docstring reference are preserved; thesurrogate_robust↔train_coef_energytry/except import cycle still resolves.{ include = "grl_snam" }); add them to the coverageomitlist so the 80% gate scope is unchanged (they were outside the gate before, as top-level modules).Verification
.pycompile.Pure move + import-rewrite — no behavior change.