pySimBlocks.gui.services.project_saver

class pySimBlocks.gui.services.project_saver.ProjectSaver[source]

Bases: ABC

Define the interface for project persistence services.

abstractmethod save(project_state: ProjectState, block_items: dict[str, BlockItem] | None = None)[source]

Persist the current project state.

Parameters:
  • project_state – Project state to save.

  • block_items – Optional GUI block items used to persist layout data.

abstractmethod export(project_state: ProjectState, block_items: dict[str, BlockItem] | None = None)[source]

Export the current project state into runnable project artifacts.

Parameters:
  • project_state – Project state to export.

  • block_items – Optional GUI block items used to persist layout data.

class pySimBlocks.gui.services.project_saver.ProjectSaverYaml[source]

Bases: ProjectSaver

Save and export projects using the YAML project format.

save(project_state: ProjectState, block_items: dict[str, BlockItem] | None = None)[source]

Write the project YAML file to disk.

Parameters:
  • project_state – Project state to save.

  • block_items – Optional GUI block items used to persist layout data.

export(project_state: ProjectState, block_items: dict[str, BlockItem] | None = None)[source]

Export the project YAML file and generated run script.

Parameters:
  • project_state – Project state to export.

  • block_items – Optional GUI block items used to persist layout data.

Raises:

ValueError – If the project directory is not defined.