angee.compose.dependencies
Project dependency projection for the composed addon set.
AddonDependencyGroupResult
class AddonDependencyGroupResult(StrEnum)Describe what dependency projection did for the host project.
skipped
@property
def skipped() -> boolReturn whether projection had no host target to inspect or write.
AddonDependencyGroup
class AddonDependencyGroup()Project the composed folder addons into the host dependency group.
A co-located addon.toml marks a folder addon and owns its dependencies; hatch-angee owns parsing, union compilation, discovery, and the round-trip-safe pyproject edit. The normal build adapts the resolved Django app graph through :meth:from_app_configs; the pre-Django bootstrap adapts manifest roots through :meth:from_manifest_roots. Both paths converge on the same manifest compile/write core. Plain Django apps, including the framework core, have no manifest and therefore contribute nothing.
__init__
def __init__(manifests: Iterable[AddonManifest], *,
project_dir: Path | None) -> NoneStore the resolved addon manifests and host project directory.
from_app_configs
@classmethod
def from_app_configs(cls, addons: Iterable[AppConfig], *,
project_dir: Path | None) -> AddonDependencyGroupAdapt an already-resolved Django app graph into the projector.
from_manifest_roots
@classmethod
def from_manifest_roots(cls, roots: Iterable[str],
available_manifests: Iterable[AddonManifest], *,
project_dir: Path | None) -> AddonDependencyGroupResolve root folder addons and their manifest-only dependency closure.
Discovery order is source precedence, so the first manifest for a name wins just as the first importable addon root does during Django boot. Dependencies without manifests are core or ordinary Django apps and do not contribute to the generated dependency group.
pyproject_path
@property
def pyproject_path() -> Path | NoneReturn the host pyproject, if a project directory was discovered.
compile
def compile() -> tuple[str, ...]Compile the enabled folder-addon dependency union without writing.
write
def write() -> AddonDependencyGroupResultProject dependencies and report whether the host changed or was skipped.
check
def check() -> AddonDependencyGroupResultRaise when the host dependency group differs from the compiled union.