Sweep all 296 v2 modules: simplify verbose docstrings/comments and remove 376 dangling "(design_vN §X)" citations to the now-deleted design docs (v2/README.md is the source of truth). Comment/docstring-only — AST-verified code-identical; the CPU suite holds at 237 passed / 5 pre-existing. Also applies yapf + ruff --fix auto-fixes (import ordering, forward-ref annotation de-quoting under `from __future__ import annotations`; behavior- neutral, suite-confirmed) and adds the legitimate domain terms mot/clen/te to the codespell ignore-list. Remaining ruff (24) + mypy (68 no-untyped-call) findings are pre-existing v2 debt, untouched here.
61 lines
1.6 KiB
Python
61 lines
1.6 KiB
Python
"""Artifact — a named, typed output with provenance.
|
|
|
|
Each modality is its own typed artifact (e.g. audio carries its sample rate as a
|
|
field, not via an ``extra`` dict). Every artifact records which program node
|
|
produced it (``producer``), so multi-modal fan-out outputs are traceable.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
|
|
from v2._types import TensorLike
|
|
from v2.request.modalpart import Modality
|
|
|
|
|
|
@dataclass
|
|
class Artifact:
|
|
name: str # output slot name, e.g. "video", "audio", "text"
|
|
producer: str = "" # program node id that produced it (provenance)
|
|
meta: dict[str, object] = field(default_factory=dict)
|
|
|
|
|
|
@dataclass
|
|
class VideoArtifact(Artifact):
|
|
frames: TensorLike = None # T x H x W x C
|
|
fps: int = 16
|
|
|
|
|
|
@dataclass
|
|
class AudioArtifact(Artifact):
|
|
samples: TensorLike = None
|
|
sample_rate: int = 44100 # first-class, not an extra-dict passenger
|
|
|
|
|
|
@dataclass
|
|
class TextArtifact(Artifact):
|
|
token_ids: tuple[int, ...] = ()
|
|
text: str = ""
|
|
|
|
|
|
@dataclass
|
|
class TensorArtifact(Artifact):
|
|
tensor: TensorLike = None # generic (e.g. action stream)
|
|
|
|
|
|
@dataclass
|
|
class LatentArtifact(Artifact):
|
|
latent: TensorLike = None
|
|
of_modality: Modality = Modality.VIDEO
|
|
|
|
|
|
@dataclass
|
|
class Output:
|
|
"""The collected result of running a program for one request."""
|
|
request_id: str
|
|
artifacts: dict[str, Artifact] = field(default_factory=dict)
|
|
metrics: dict[str, float] = field(default_factory=dict)
|
|
error: str | None = None # set on partial/aborted delivery (failure isolation)
|
|
|
|
def get(self, name: str) -> Artifact | None:
|
|
return self.artifacts.get(name)
|