docs(pypsa): the pypsa spec names its repeated row conditions as masks, and its topic files read them under given: masks: - #825
Merged
Conversation
…s, and its topic files read them under given: masks:
Sixteen masks name the conditions examples/pypsa.yaml wrote out at every
row: per committable class C, C_committed (26 sites), C_com_ext (8),
C_maint_ext (5) and C_ramps_from_previous (6); StorageUnit_fix and _ext
(6 each); Line_lossy and Transformer_lossy (4 each). 165 where strings
change. Each where, with every mask expanded, equals the one it
replaces: 352 declarations and every cased expression were compared
conjunct by conjunct.
tools/pypsa_split.py places a mask in the topic its name names and
writes given: masks: for every other topic that reads it. All 24
fragments load alone and merge to the one file's canonical form. The
symbol table spells the masks as on^{qualifier} and prev, and the
gallery's table cut includes masks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PBmqeqBrqpQC6MVoSrguHK
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PBmqeqBrqpQC6MVoSrguHK
Documentation build overview
27 files changed ·
|
FBumann
changed the base branch from
claude/trusting-allen-xp0tgb
to
refactor/named-expression
October 2, 2026 06:50
FBumann
added this pull request to stack #823
October 2, 2026 06:50
FBumann
removed this pull request from stack #823
October 2, 2026 06:51
FBumann
changed the base branch from
refactor/named-expression
to
claude/trusting-allen-xp0tgb
October 2, 2026 06:51
FBumann
pushed a commit
that referenced
this pull request
Oct 2, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PBmqeqBrqpQC6MVoSrguHK
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.
examples/pypsa.yamlnames 16 row conditions it wrote out at every row as masks. They replace parts of 165wherestrings, and no row changes. The topic files read them undergiven: masks:. Stacked on #821.The masks, the equivalence check, gate output, what is not done
The masks
Each one is named after the PyPSA row class it selects. "Uses" counts the sites that read it.
C_committed(C = Generator, Link, Process)C_committable AND C_activeC_com_extcom-extrows)C_maint_extC_ramps_from_previousStorageUnit_fix,StorageUnit_extLine_lossy,Transformer_lossytransmission_losses AND C_activeThe symbol table spells them in the file's style:
\mathrm{on}^{qualifier}with the class letter, and\mathrm{prev}for the ramp masks.Equivalence
I loaded the file before and after. I expanded each mask into its predicate and compared the flattened conjunct sets of every
where. All 352 declarations and every cased expression's regions match.The split
tools/pypsa_split.pyputs each mask in the topic its name names.Model.frames()reads mask frames, so a topic that reads another topic's mask states it undergiven: masks:with that frame. For example,generator_rampingreadsGenerator_com_extfromgenerator_commitment.tools/gallery.pyincludes masks and given masks in each page's symbol cut. The gallery is regenerated.Gates
pixi run lint: clean.pixi run test: 2662 passed.pixi run python -m tools.pypsa_split check examples/pypsa: "24/24 fragments load alone", "the merged fragments and the one file have one canonical form".compile-tex, because the tectonic bundle does not download here, and this PR touchesexamples/.docs-build, because the proxy blocks an inventory fetch. CI runs both.Not done
Generator_activeand its siblings stay bool data parameters. docs(pypsa): the generator spec declares PyPSA's generator attributes and derives its period, cost and commitment data from them #802 derives them from build year and lifetime, and that changes what the data supplies.🤖 Generated with Claude Code
https://claude.ai/code/session_01PBmqeqBrqpQC6MVoSrguHK