Skip to content

Models

models

Frozen value types for resolved uv workspaces.

STDLIB only (dataclasses + pathlib); axm-ingot stays a leaf of the forge dependency graph -- no Pydantic, no axm_* import.

Member dataclass

A single uv-workspace member.

Attributes:

Name Type Description
name str

Directory name of the member.

path Path

Absolute, resolved path to the member directory.

Source code in packages/axm-ingot/src/axm_ingot/uv/models.py
Python
@dataclass(frozen=True)
class Member:
    """A single uv-workspace member.

    Attributes:
        name: Directory name of the member.
        path: Absolute, resolved path to the member directory.
    """

    name: str
    path: Path

ResolvedWorkspace dataclass

A uv workspace with its resolved members.

Attributes:

Name Type Description
root Path

Absolute path to the workspace root (holding the root pyproject).

members tuple[Member, ...]

Members sorted by name.

Source code in packages/axm-ingot/src/axm_ingot/uv/models.py
Python
@dataclass(frozen=True)
class ResolvedWorkspace:
    """A uv workspace with its resolved members.

    Attributes:
        root: Absolute path to the workspace root (holding the root pyproject).
        members: Members sorted by name.
    """

    root: Path
    members: tuple[Member, ...]