Source code for lhp.models._project
"""Project-level configuration (lhp.yaml top-level model)."""
from typing import List, Optional
from pydantic import BaseModel, Field
from ._monitoring import EventLogConfig, MonitoringConfig
from ._operational_metadata import ProjectOperationalMetadataConfig
from ._sandbox import SandboxConfig
from ._test_reporting import TestReportingConfig
from ._uc_tagging import UCTaggingConfig
[docs]
class WheelConfig(BaseModel):
"""Per-project wheel packaging configuration."""
artifact_volume: Optional[str] = None
[docs]
class ProjectConfig(BaseModel):
"""Project-level configuration loaded from lhp.yaml."""
name: str
version: str = "1.0"
description: Optional[str] = None
author: Optional[str] = None
created_date: Optional[str] = None
include: Optional[List[str]] = None
blueprint_include: Optional[List[str]] = None
instance_include: Optional[List[str]] = None
operational_metadata: Optional[ProjectOperationalMetadataConfig] = None
event_log: Optional[EventLogConfig] = None
monitoring: Optional[MonitoringConfig] = None
required_lhp_version: Optional[str] = None
test_reporting: Optional[TestReportingConfig] = None
uc_tagging: Optional[UCTaggingConfig] = None
wheel: Optional[WheelConfig] = None
sandbox: Optional[SandboxConfig] = None
apply_formatting: bool = Field(
True,
description=(
"Whether to run the terminal code-formatting pass over generated "
"Python files. Set to false to skip formatting for faster builds; "
"the AST-parse validity guard (LHP-CFG-031) always runs regardless. "
"The CLI --no-format flag overrides this key."
),
)