Skip to content

chore(deps): bump mloda to 0.10.0 - #86

Merged
TomKaltofen merged 1 commit into
mloda-ai:mainfrom
TomKaltofen:chore/bump-mloda-0.10.0-v2
Jul 13, 2026
Merged

chore(deps): bump mloda to 0.10.0#86
TomKaltofen merged 1 commit into
mloda-ai:mainfrom
TomKaltofen:chore/bump-mloda-0.10.0-v2

Conversation

@TKaltofen

Copy link
Copy Markdown
Collaborator

Updates mloda from 0.9.0 to 0.10.0. Supersedes #85, which was cut from a stale fork main and duplicated the columnar work already on main.

What 0.10.0 forces

The legacy flattened PROPERTY_MAPPING form is retired. A spec's accepted values must live under DefaultOptionKeys.allowed_values; a bare value entry is now an unknown spec key and raises at class definition. Every feature group here used the flattened form, so without this the package does not import.

54 specs across 41 files move their value space under allowed_values and change nothing else. An AST diff of every spec before and after confirms no spec's accepted values, default, context, or strict_validation differs: each hunk is a pure {**METHODS, ...} to {allowed_values: METHODS, ...} reshape.

Plain dicts rather than the property_spec builder. The builder takes explanation as a required positional and most of these specs have none (their text lives inside the value dict), so adopting it means authoring 54 descriptions, which turns a mechanical migration into an authoring exercise. Tracked as #84.

Also in scope

The PROPERTY_MAPPING sweep test forward-ported the upstream validator for 0.8.x. That replica is dead now that the floor is 0.10.0, and it used the removed validation_function key, so it failed at import. It now delegates to the upstream validator, and its two fixtures move onto element_validator and allowed_values.

demo.ipynb taught the flattened form under "swap in your own embedder", which no longer imports (verified: it raises unknown spec key 'my_model'). Fixed. While there, it also still unwrapped run_all results the pre-0.9.0 way, which was missed when the columnar contract landed and is broken on main today (KeyError(0) on a columnar dict), so it now pivots through the repo's columnar_to_rows.

Review

Two independent deep reviews ran against this work. codex could not run: its bwrap sandbox fails to initialize in this environment, and it returned "no findings" while itself reporting that repository inspection was blocked and confidence was very low, so that verdict was discarded rather than reported as a pass. A second, adversarially-framed reviewer was substituted. Both notebook defects above come from those reviews.

Not taken: capping mloda<0.11.0. Every dependency here is floor-only pinned, so changing that policy belongs in its own PR.

Verification

tox green: 705 passed, ruff format, ruff check, mypy --strict, bandit.

mloda 0.10.0 retires the legacy flattened PROPERTY_MAPPING form: a spec's accepted
values must live under DefaultOptionKeys.allowed_values, and a bare value entry is
now an unknown spec key that raises at class definition. Every feature group here
used the flattened form, so without this the package does not import.

54 specs across 41 files move their value space under allowed_values, unchanged
otherwise: no spec's accepted values, default, context, or strict_validation
differs. Plain dicts rather than the property_spec builder, which takes explanation
as a required positional that most of these specs do not have; adopting it means
authoring 54 descriptions, so it is left to mloda-ai#84.

The PROPERTY_MAPPING sweep test forward-ported the upstream validator for 0.8.x.
That replica is dead now that the floor is 0.10.0, and it used the removed
validation_function key, so it fails at import: drop it, delegate to the upstream
validator, and move its two fixtures onto element_validator and allowed_values.

demo.ipynb taught the flattened form under "swap in your own embedder", which no
longer imports. It also still unwrapped run_all results the pre-0.9.0 way, missed
when the columnar contract landed, so it pivots through columnar_to_rows now.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants