chore(deps): bump mloda to 0.9.0 and adopt the columnar PythonDict contract - #81
Merged
Merged
Conversation
…ntract mloda 0.9.0 ships two breaking changes that affect this plugin: - Input-feature options now forward by default and the feature_chainer_parser_key shield is retired. The graph_rag connector migrates to forward_group_exclude on the source feature it declares. - PythonDict results and mid-chain calculate_feature data are columnar dict[str, list] instead of row-wise list[dict]. Add a columnar_to_rows helper and pivot every calculate_feature data read and run_all result consumer (source, tests, CLI) back to rows. Feature groups still return list[dict]; mloda normalizes homogeneous rows on output. homogenize_rows gives dataset sources a uniform key schema so the stricter columnar output contract accepts mixed corpus/query rows.
… preview Review follow-ups to the mloda 0.9.0 bump: - Document and image source feature groups preserve arbitrary per-row metadata, so mixed inputs (one doc carries author, the next does not) produced heterogeneous rows that mloda 0.9.0's columnar output contract rejects. Run both base sources through homogenize_rows, matching the dataset sources. - rag_demo requested only the final embedded feature, but mloda returns just the requested feature's column, so the chunk-text preview and the --output JSON were always blank. Request the deduped feature alongside and align its chunk text to the embeddings.
columnar_to_rows and homogenize_rows back every PythonDict feature group since the 0.9.0 bump but had no direct unit tests; pin their edge cases (pivot, passthrough, schema-less empty, key backfill and ordering). BaseImageDeduplicator._extract_items re-pivoted rows the shared base had already pivoted; drop the redundant call.
…vance ids Review follow-ups: flatten_result pivoted a leading row dict as if it were a columnar partition, corrupting already-row-wise input; only treat a leading dict as a partition when every value is a list. The evaluators read relevance-id lists with a [] default, but homogenize_rows backfills absent keys with None, so a future mixed-modality dataset would raise; guard with 'or []'.
TKaltofen
force-pushed
the
chore/bump-mloda-0.9.0
branch
from
July 8, 2026 15:14
9b751fe to
242c03a
Compare
This was referenced Jul 8, 2026
This was referenced Jul 8, 2026
feat: public strict columnar_to_rows, is_columnar, homogenize_rows via mloda.user
mloda-ai/mloda#652
Merged
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.
Summary
Bumps mloda from 0.8.0 to 0.9.0 (newest PyPI release) and adopts both of its breaking changes.
Columnar PythonDict contract
mloda 0.9.0 makes PythonDict's native representation columnar dict[str, list] and rejects row lists with heterogeneous keys. mloda ships rows_to_columnar and row_count helpers but no public columnar-to-rows inverse, so this repo adds one:
Option forwarding
Input-feature group options forward by default in 0.9.0 and DefaultOptionKeys.feature_chainer_parser_key is retired. The graph_rag connector migrates to forward_group_exclude on its declared source feature.
Review follow-ups (Claude Opus + codex, both applied)
Testing
No open repo issues existed to fold into this pass.