Source code for ralph.policy.models._phase_parallelization
"""PhaseParallelization Pydantic model."""
from __future__ import annotations
from typing import Literal
from pydantic import Field
from ralph.policy.models._frozen_policy_model import _FrozenPolicyModel
[docs]
class PhaseParallelization(_FrozenPolicyModel):
"""Transition-scoped parallelization policy for a pipeline phase."""
mode: Literal["same_workspace"] = Field(
default="same_workspace",
description="Parallelization mode; only 'same_workspace' is supported in v1",
)
max_parallel_workers: int = Field(
default=8,
ge=1,
description="Maximum allowed concurrent work units",
)
max_work_units: int = Field(
default=50,
ge=1,
description="Maximum allowed total work units from planning artifact",
)
require_allowed_directories: bool = Field(
default=True,
description="Require each work unit to declare allowed_directories",
)
post_fanout_verification: bool = Field(
default=False,
description=(
"When True, run a serialized workspace-wide verification step after all "
"parallel workers complete. Defaults to False so unit tests never invoke "
"make verify."
),
)