You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: move the relevance dependencies that can be moved today
Fifteen fields stated a relevance dependency in their description, in five
languages, enforced nowhere. The useful question was not how many there are
but which of them a rule can express today, so that got measured before any
of it got written:
- Five can, and now do. The seed-and-shuffle dependency in the five
splitters that take both, and the covariance explorer's delta degrees of
freedom. Their conditions read a plain boolean sibling, which is all the
algebra needs.
- Two cannot, because the condition is not in the schema at all.
ColumnArithmetic and ColumnConcat say the constant is "only used (and
required) when a single column is selected", and how many columns the user
picked is session state. Those wait for the context channel, and a test
now says so rather than leaving the omission looking like an oversight.
- One could not because of the value model, which is the ExponentialSmoothing
case from the previous commit.
- Three were never dependencies. The sweep matched "at 0.0 the depth map has
no effect" and "when keep_binary_mask is enabled, mask_i columns...", which
describe what a value means and which columns get produced, not what the
field depends on. Retracted rather than converted.
The five splitters share one rule object instead of five copies of the same
sentence. A rule is stateless, so one instance can be listed by several
schemas, and each still has its field names checked against its own fields,
so listing it somewhere without a shuffle field fails at import. Holdout's
inline copy from the first commit is now that shared one too. The
alternative was a shared base schema for five components, which is a
structural change for one shared sentence.
The covariance explorer is the interesting one: delta_degree_of_freedom is
declared 30 lines above the numeric_only it depends on. A @field_validator
there would read info.data, find its controller absent and quietly do
nothing — the same silent no-op the RAG chunkers avoid only by luck of
declaration order. A rule runs on the complete model, so the order cannot
disable it, and there is a test asserting the order is in fact the bad one.
31 cases, including that the prose is gone from all ten descriptions in the
five splitters, and that the two repeated fold splitters correctly declare
no such rule: they have a seed but no shuffle flag, because sklearn always
shuffles them.
0 commit comments