graflo.architecture.evolution.ingestion¶
Ingestion-side evolution ops: mutations whose primary effect is the pipeline.
Every other op touches ingestion_model only as a cascade of a schema
change. These are the fundamentals the other direction, leaving
graph_schema untouched: :func:apply_add_resource_transforms appends
transform steps to a named level of named resources (and optionally registers
named transforms), and :func:apply_ensure_extracted_fields widens a
producing step's projection so named fields survive extraction.
Attributes¶
Classes¶
Functions:¶
apply_add_resource_transforms(manifest, op)
¶
Append transform steps to named resources' pipelines, in place.
Raises when the manifest carries no ingestion_model (an ingestion-only
op silently dropped would be a lie in the revision log), when a named
resource does not exist, when a registry name collides with a different
body, when a step's call.use resolves against neither the existing
registry nor op.transforms, or when an op.at path does not resolve
to a descend level. Steps are appended at the end of the level
op.at names (the root pipeline by default); actor type-priority
ordering runs them before vertex extraction at that level.
Source code in graflo/architecture/evolution/ingestion.py
apply_add_resources(manifest, op)
¶
Append resources to ingestion_model, creating the block if absent.
A name already present raises: two definitions under one name would
shadow each other in the name-keyed lookup, and rename_resources or
remove_resources exist to make room explicitly.
Source code in graflo/architecture/evolution/ingestion.py
apply_ensure_extracted_fields(manifest, op)
¶
Widen producing steps' projections so named fields survive, in place.
Raises when the manifest carries no ingestion_model, when a named
resource does not exist, or when an entry's at path does not resolve.
An entry naming a level that produces the vertex through a plain vertex
step, or through an unrestricted router, applies cleanly and changes
nothing — the fields already survive there.
Source code in graflo/architecture/evolution/ingestion.py
apply_remove_resources(manifest, op)
¶
Drop resources and the resource_connector entries that wired them.
Source code in graflo/architecture/evolution/ingestion.py
apply_set_inverse_emission(manifest, op)
¶
Set or clear emit_inverse on edge steps addressed by position.
Enabling a step that names exactly one edge is checked against the schema here, in the op's own words, rather than left to the next manifest load: the relation needs a declared pair, must not be symmetric, and its inverse edge must be declared.
Source code in graflo/architecture/evolution/ingestion.py
set_emit_inverse_flags(manifest, steps, enabled)
¶
Set or clear emit_inverse on the addressed steps, in place.
The mechanical half of :func:apply_set_inverse_emission, shared with the
ops that move flags as a consequence of a schema change.
Raises:
| Type | Description |
|---|---|
ValueError
|
naming an unknown resource, or a ref that is not an edge step. |
Source code in graflo/architecture/evolution/ingestion.py
stranded_emission_flags(manifest, before, after)
¶
Flagged steps that mirrored into something under before and into nothing under after.
Removing an inverse edge strands the flags that fed it. A flag that was already idle before the change is not the change's to clear.