Add session-mode code generation that produces a reusable WorkflowSession class instead of a simple oneshot script. The session mode generates code with an in-class run/close lifecycle for warm ComfyUI reuse. Also refactors render.py to extract shared code sections into common methods, reducing duplication between oneshot and session renderers. Adds WorkflowSessionRuntime with cleanup policies (per_run, session, manual) and reset_every_n_runs support, plus 72 new tests covering session rendering, runtime session, and session export pipeline.
16 lines
475 B
Python
16 lines
475 B
Python
from dataclasses import dataclass, field
|
|
from typing import Literal
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class GenerationPlan:
|
|
import_statements: dict[str, set[str]]
|
|
special_functions_code: list[str]
|
|
loop_code: list[str]
|
|
workflow_data: dict
|
|
metadata_workflow_data: dict | None
|
|
queue_size: int
|
|
custom_nodes: bool
|
|
execution_mode: Literal["oneshot", "session"] = field(default="oneshot")
|
|
executed_variables: dict[str, str] = field(default_factory=dict)
|