Repository navigation
Conversation
…of a dimension or a set `sets:` names which combinations of labels exist, and `properties:` maps each row of a dimension or a set into a dimension. Both lower to the program's relations: a set under its own name, a property under `subject.property` with `Relation.subject` naming the rows its key ranges over. An entry over a set is refused with the rewrite to the member dimensions and `where:`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6yvGzZN2iR4WyA9RumvvJ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6yvGzZN2iR4WyA9RumvvJ
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Comment |
…t declare without a misspelling Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6yvGzZN2iR4WyA9RumvvJ
This was referenced Oct 23, 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
A file can now declare
sets:andproperties:. A set lowers to a bare relation with its own name. A property lowers to a relation namedsubject.property. An entry over a set is refused, and the message names the rewrite: the member dimensions withwhere:.Why
This is PR 1 of the stack in which sets and properties replace relations. It stacks on energy-models#945 (the parameter mask).
The YAML, the lowering, and the refusals
Relation(columns from dims, key = every member, missing)under its own name. Sowhere: connectionand a parameter mask that reads a set work on the paths that exist today.Relation((*subject key, (name, into)), subject key, missing, subject=subject)undersubject.property. No file can write a dotted name, so it collides with nothing.Namespace.relationsholds only the names a file can write, so the error messages do not offergenerator.bus. The program gets every table, throughNamespace.tables.missing:works at two levels. On a set, it asks whether every combination ofdimsis a row. On a property, it asks whether every row of the subject has the property. Both takerefusedorabsentonly.NAME.Departures, and what this PR does not do
Relationhas a new field,subject. It is the one change to an existing node. A property of a sparse set withmissing: refusedmeans "every row of the set". The existingmissingcannot say that, and an engine needssubjectfor the check "every property key is a row of its subject".overridelaysproperties:over one subject at a time. Without that, a patch that adds a new subject crashed with anAttributeError.mergestill refuses a subject or a set that appears in two fragments. Joining them is PR 3.subject[property]is PR 2. Until then, nothing in an expression reads a property.generator.bus: G → B, in all three formats. The real legend is PR 4.relations:stays until PR 5.Gates, and the mutation table
pixi run lintandpixi run test(3165 passed, 1 skipped).pixi run docs-build(strict). Every YAML fence on the new page loads, and the quoted refusal and the math were taken from the code's real output.pixi run compile-tex. Tectonic cannot download its bundle in this container, so all 54 documents failed, the existing ones included.tools/mutate.py, so a script took the table instead. The script refuses a tree with uncommitted changes, restores each file withgit checkout --, and drops__pycache__before and after each mutation. The tree came back clean.Generated by Claude Code