Complete independent projection runtime
This commit is contained in:
parent
1134c2d375
commit
f1fabaf0ca
38 changed files with 4907 additions and 87 deletions
|
|
@ -15,6 +15,7 @@ from .changesets import ChangesetStore
|
|||
from .errors import DocForgeError
|
||||
from .index import ProjectIndex
|
||||
from .models import Node, ProjectService, ProjectSnapshot
|
||||
from .projection_policy import ManualProjectionMode, validate_manual_projection_mode
|
||||
from .rendering import RenderService
|
||||
|
||||
|
||||
|
|
@ -353,13 +354,19 @@ class CanonicalApplicationService:
|
|||
applier_id: str | None,
|
||||
applier: CanonicalApplier | None,
|
||||
index: ProjectIndex | None = None,
|
||||
manual_policy: ManualProjectionMode = "auto",
|
||||
) -> None:
|
||||
self.project = project
|
||||
self.applier_id = applier_id
|
||||
self.applier = applier
|
||||
self.changesets = ChangesetStore(project, applier_id)
|
||||
self.index = index or ProjectIndex(project)
|
||||
self.rendering = RenderService(project, self.changesets)
|
||||
self.manual_policy = validate_manual_projection_mode(manual_policy)
|
||||
self.rendering = RenderService(
|
||||
project,
|
||||
self.changesets,
|
||||
manual_policy=self.manual_policy,
|
||||
)
|
||||
|
||||
@property
|
||||
def enabled(self) -> bool:
|
||||
|
|
@ -402,7 +409,9 @@ class CanonicalApplicationService:
|
|||
)
|
||||
renders: list[dict[str, object]] = []
|
||||
config = self.project.descriptor.render
|
||||
if config is not None:
|
||||
render_action = "not_configured"
|
||||
if config is not None and self.manual_policy == "auto":
|
||||
render_action = "rendered"
|
||||
for view in config.views:
|
||||
try:
|
||||
rendered = self.rendering.render(view.view_id)
|
||||
|
|
@ -435,6 +444,10 @@ class CanonicalApplicationService:
|
|||
"error": error.as_dict(),
|
||||
}
|
||||
)
|
||||
elif config is not None:
|
||||
render_action = (
|
||||
"skipped_explicit" if self.manual_policy == "explicit" else "skipped_disabled"
|
||||
)
|
||||
return {
|
||||
**applied,
|
||||
"derived_refresh": {
|
||||
|
|
@ -442,6 +455,10 @@ class CanonicalApplicationService:
|
|||
"index": index_result,
|
||||
"check": index_check,
|
||||
"renders": renders,
|
||||
"render_policy": {
|
||||
"mode": self.manual_policy,
|
||||
"action": render_action,
|
||||
},
|
||||
"errors": refresh_errors,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue