Skip to main content

aip_sdk.MetricDrift

aip_sdk.MetricDrift

One metric of a published plan whose receipt no longer matches what it resolves to now.

Derived on read, never stored: a stored comparison would be stale the moment either side moved, for the same reason required_columns is not stored. Per metric rather than per plan — a union-level diff can only say the columns differ, while this names the metric, the version it moved between, and the columns that moved with it, which is the difference between a warning people ignore and one someone can act on.

Lives here, beside the receipt it reads, so the API response and the SDK record are one shape: the server computes it, the client reads it, and neither can restate it differently.

Advisory. Run creation's own live metric check remains the only gate; what this adds is the sentence after that gate fires — this plan was published against a version that did not require that column — which separates "the metric moved" from "you named the wrong dataset".

A metric with no receipt to compare is absent from a plan's drift list rather than reported against nothing (see aip_api.services.test_plan_validation.metric_drift), which is why both published_* fields are required here: "not published against a recorded version" is already spelled as absence from the list, and a second spelling of it as nulls inside an entry would leave a reader deciding which one they were looking at.

aip_sdk.MetricDrift.current_required_columns​

aip_sdk.MetricDrift.current_required_columns: list[str] = Field(description='Columns it requires now.')

No docstring is defined in the source.

aip_sdk.MetricDrift.current_version​

aip_sdk.MetricDrift.current_version: str | None = Field(default=None, description='Implementation version it resolves to now, or null for a registry row carrying no version — unlike the published side, this one is read off whatever is live today.')

No docstring is defined in the source.

aip_sdk.MetricDrift.metric​

aip_sdk.MetricDrift.metric: str = Field(description="The plan's own `metrics` key, as the author wrote it.")

No docstring is defined in the source.

aip_sdk.MetricDrift.model_config​

aip_sdk.MetricDrift.model_config = ConfigDict(extra='forbid', frozen=True)

No docstring is defined in the source.

aip_sdk.MetricDrift.published_required_columns​

aip_sdk.MetricDrift.published_required_columns: list[str] = Field(description='Columns this metric required when the plan was published.')

No docstring is defined in the source.

aip_sdk.MetricDrift.published_version​

aip_sdk.MetricDrift.published_version: str = Field(description='Implementation version this metric resolved to when the plan was published.')

No docstring is defined in the source.