Repository navigation
feat(language): a partition names the value columns it groups by, so a relation may gain one without changing the call - #540
Merged
Conversation
…a relation may gain one without changing the call `within=` is required whenever `shift`, `sum_back` or `position` names a `by=`. Omitted, it meant every value column, so a calendar that gained a `week` column regrouped every `shift` through it with nothing failing to load (#538). The refusal names the rewrite, in the words the walk's own refusal uses. Every call in the tree names its group; the typeset math does not move, so the golden outputs are unchanged. Closes #538 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q2gdGgMAdJ5ZVe8VM8tDTk
Documentation build overview
8 files changed ·
|
FBumann
added this pull request to stack #541
September 18, 2026 14:38
FBumann
pushed a commit
that referenced
this pull request
Sep 18, 2026
The rename lands on the docs and the partition rules that #539–#552 and #540 rewrote. The relations page main added already says "direction", so the sweep now only reaches the four operator-page sentences, the dimension-set table's error column and the declare-a-column how-to that still said "walk". `_partition_direction` takes the `within=` columns main made required, and `Direction`'s docstring says the group is the ones `within=` named. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016mvLvAhLGB26wJ4gsCtRSe
This was referenced Sep 18, 2026
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.
Note
The following content was generated by AI.
What this changes
within=is required whenevershift,sum_backorpositionnames aby=. Closes #538. The docs PR #539 stacks on this one.shiftandsum_backrefuse aby=withoutwithin=by their call shape, the mechanismsumandatalready use forover=andinto=.position()refuses it at resolution, since its grammar stays permissive so that the message can name the rewrite.shift() through a relation leaves within= unsaid. A partition names the value columns it groups by, so that a relation may gain a value column without changing what this call means. Write: ….outfiles are unchanged and the schema is unchanged.shift(…, by=cal)and nowithin=no longer loads. The refusal names the rewrite. No alias and no deprecation, per the alpha stream.Why
Rule 3 of the rules agreed for relations says adding a value column is safe. It held for
sumandatsince #532 and failed for partitions, where an omittedwithin=meant every value column:Tests
Three refusal cases in
tests/test_validation.pyfail onmainand pass here: ashift, asum_backand apositionthat leavewithin=unsaid.tests/test_lowering.pygains a test that the same call groups by('day',)on both calendars above once it nameswithin=day.Coverage that moved: no test asserted the old default in words. The tests that relied on it now name their group, one per call.
Gates
pixicannot be installed here, since the egress proxy refusespixi.sh, so the gates ran from a uv venv on Python 3.13.pytest -n autoruff check,ruff format --checkpyrefly checktypos, prettiermkdocs build --strictdocs.python.orginventory dropped for the runtools.schema,tests.typesetting.golden, the four page generators.outfiles did not movecompile-texreuse lint,zizmor,taplo🤖 Generated with Claude Code
https://claude.ai/code/session_01Q2gdGgMAdJ5ZVe8VM8tDTk
Generated by Claude Code