Feature/submodule gems craft#243
Open
Juliette-Gerbaux wants to merge 13 commits into
Open
Conversation
aoustry
reviewed
Jul 2, 2026
|
|
||
| All notable changes to GemsPy are documented here. | ||
|
|
||
| ## [2.0.0] - Unreleased |
Collaborator
There was a problem hiding this comment.
Maybe rather 1.0.0 or 0.2.0 ?
aoustry
reviewed
Jul 2, 2026
|
|
||
|
|
||
| class HybridLibrarySchema(LibrarySchema): | ||
| port_types: List[HybridPortTypeSchema] = Field(default_factory=list) # type: ignore[assignment] |
Collaborator
There was a problem hiding this comment.
Shall we add "write_yaml" methods in the gems_craft_hybrid module (for lib and system) or shall those methods in gems_craft be sufficient and also manage hybrid cases?
5 tasks
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.
Process ID
Process: GP-01
Description
This PR splits the former monolithic
gemspackage into three dedicated packages and introduces hybrid GEMS study support.Package restructuring (
gems→gems_craft+gems_runner)gems_craft: I/O and data structures only (no solver dependency) — YAML parsing/writing for libraries, systems, optim-config, scenario buildergems_runner: solver and execution logic — expression language, model resolution, simulation, sessionload_yaml_*/write_yaml_*withPathinputs; stream-based helpers kept as private_parse_yaml_*for testsScenarioBuilder.load/dumprenamed toload_dat/write_datload_yaml_systemandload_yaml_libraryare now generic (accept aschemaTypeVar with default) to support subclass schemas without code duplicationNew package:
gems_craft_hybridHybridSystemSchema(SystemSchema): addsarea-connectionsandthermal-capacity-connections(with nestedthermal-component: {area, cluster-id})HybridPortTypeSchema(PortTypeSchema): addsarea-connectionandthermal-capacity-connectionHybridLibrarySchema(LibrarySchema): overridesport-typeswithHybridPortTypeSchemaDocumentation
AGENTS.mdupdated with correct package names, CLI, and architecturedocs/user-guide/inputs.mdextended with hybrid study format and examplesdocs/agents/python-convention.mdandtesting.mdupdatedImpact Analysis
gems_craft/: I/O functions renamed — any external code importing fromgemsmust migrate togems_craft/gems_runnergems_runner/: all internal imports updated; no logic changes, solver output values unchangedgems_craft_hybrid/: new package, additive onlyChecklist
pytest)mypy)black,isort)pyproject.tomlversion bumped if applicableAGENTS.mdreviewed for impact and updated if needed