graflo.architecture.schema.context.card¶
Compact orientation card: the cheapest useful thing to hand an agent first.
Answers "what kind of graph is this, where do I start, how much is here" in a payload that stays small no matter how large the schema is.
Attributes¶
Classes¶
BaseCard
¶
Bases: ConfigBaseModel
Common foundation for all card types.
Source code in graflo/architecture/schema/context/card.py
ConnectorCard
¶
Bases: BaseCard
Summary of a data connector (File, Table, etc.).
Source code in graflo/architecture/schema/context/card.py
Attributes¶
name = PydanticField(default=None, description='Authored name.')
class-attribute
instance-attribute
¶
resource_name = PydanticField(default=None, description='Primary resource name bound to this connector.')
class-attribute
instance-attribute
¶
summary = PydanticField(default=None, description='Type-specific summary (e.g. path, table name).')
class-attribute
instance-attribute
¶
type = PydanticField(..., description='Connector class name (FileConnector, etc.).')
class-attribute
instance-attribute
¶
DatabaseProfileCard
¶
Bases: BaseCard
Summary of physical DB features.
Source code in graflo/architecture/schema/context/card.py
Attributes¶
db_flavor = PydanticField(..., description='Target DB flavor.')
class-attribute
instance-attribute
¶
edge_spec_count = PydanticField(default=0, description='Total physical edge specifications.')
class-attribute
instance-attribute
¶
target_namespace = PydanticField(default=None, description='LPG namespace override.')
class-attribute
instance-attribute
¶
vertex_index_count = PydanticField(default=0, description='Total secondary vertex indexes.')
class-attribute
instance-attribute
¶
EdgeCard
¶
Bases: BaseCard
Summary of a single edge type.
Source code in graflo/architecture/schema/context/card.py
Attributes¶
description = PydanticField(default=None, description='Authored description.')
class-attribute
instance-attribute
¶
directed = PydanticField(default=True, description='True if source->target order matters.')
class-attribute
instance-attribute
¶
identity_count = PydanticField(default=0, description='Number of logical uniqueness keys.')
class-attribute
instance-attribute
¶
inverse = PydanticField(default=None, description='Declared inverse relation: the name for reading this edge from its target. Usable in a query whether or not anything is stored under it.')
class-attribute
instance-attribute
¶
inverse_state = PydanticField(default=None, description='State of the declared pair: declared (nothing stored; the inverse reads this edge from its target), native (the database maintains it), materialized (a declared edge of its own), or partial / conflicting.')
class-attribute
instance-attribute
¶
property_count = PydanticField(default=0, description='Total declared properties.')
class-attribute
instance-attribute
¶
relation = PydanticField(default=None, description='Relation type name.')
class-attribute
instance-attribute
¶
source = PydanticField(..., description='Source vertex type name.')
class-attribute
instance-attribute
¶
symmetric = PydanticField(default=False, description='True if the relation is declared its own inverse.')
class-attribute
instance-attribute
¶
target = PydanticField(..., description='Target vertex type name.')
class-attribute
instance-attribute
¶
EntryPoint
¶
Bases: ConfigBaseModel
A vertex type an agent can look up directly.
The single most useful fact about an unfamiliar graph: a type with a natural identity and a secondary index is one you can filter on cheaply, which is where a query should start.
Source code in graflo/architecture/schema/context/card.py
Attributes¶
description = PydanticField(default=None, description='Authored description, if any.')
class-attribute
instance-attribute
¶
identity = PydanticField(..., description='Primary identity field names.')
class-attribute
instance-attribute
¶
identity_mode = PydanticField(..., description='natural / hash / assigned / blank.')
class-attribute
instance-attribute
¶
indexed_fields = PydanticField(default_factory=list, description='Secondary index field-sets on this type.')
class-attribute
instance-attribute
¶
name = PydanticField(..., description='Vertex type name.')
class-attribute
instance-attribute
¶
secondary_identities = PydanticField(default_factory=list, description='Declared secondary identity names.')
class-attribute
instance-attribute
¶
ManifestCard
¶
Bases: BaseCard
Summary of a whole GraphManifest.
Source code in graflo/architecture/schema/context/card.py
Attributes¶
edge_count = PydanticField(default=None, description='Edge count if schema present.')
class-attribute
instance-attribute
¶
has_bindings = PydanticField(..., description='Presence of bindings block.')
class-attribute
instance-attribute
¶
has_ingestion = PydanticField(..., description='Presence of ingestion block.')
class-attribute
instance-attribute
¶
has_schema = PydanticField(..., description='Presence of schema block.')
class-attribute
instance-attribute
¶
name = PydanticField(default=None, description='Manifest name.')
class-attribute
instance-attribute
¶
resource_count = PydanticField(default=None, description='Resource count if ingestion present.')
class-attribute
instance-attribute
¶
version = PydanticField(default=None, description='Manifest version.')
class-attribute
instance-attribute
¶
vertex_count = PydanticField(default=None, description='Vertex count if schema present.')
class-attribute
instance-attribute
¶
ResourceCard
¶
Bases: BaseCard
Summary of an ingestion resource.
Source code in graflo/architecture/schema/context/card.py
Attributes¶
actor_count = PydanticField(default=0, description='Number of pipeline steps.')
class-attribute
instance-attribute
¶
edge_targets = PydanticField(default_factory=list, description='Top edge types this resource writes to.')
class-attribute
instance-attribute
¶
encoding = PydanticField(default='utf-8', description='Character encoding.')
class-attribute
instance-attribute
¶
infer_edges = PydanticField(default=True, description='True if greedy edge inference is enabled.')
class-attribute
instance-attribute
¶
name = PydanticField(..., description='Resource name.')
class-attribute
instance-attribute
¶
vertex_targets = PydanticField(default_factory=list, description='Top vertex types this resource writes to.')
class-attribute
instance-attribute
¶
SchemaCard
¶
Bases: BaseCard
Bounded orientation summary of a whole schema.
Source code in graflo/architecture/schema/context/card.py
Attributes¶
db_flavor = PydanticField(..., description='Target database flavor from the db profile.')
class-attribute
instance-attribute
¶
description = PydanticField(default=None, description='Authored schema description.')
class-attribute
instance-attribute
¶
edge_count = PydanticField(..., description='Declared edges.')
class-attribute
instance-attribute
¶
entry_points = PydanticField(default_factory=list, description='Types that can be looked up directly.')
class-attribute
instance-attribute
¶
hub_types = PydanticField(default_factory=list, description='Highest-ranked types, most central first.')
class-attribute
instance-attribute
¶
identity_modes = PydanticField(default_factory=dict, description='Histogram of vertex identity modes.')
class-attribute
instance-attribute
¶
isolated_type_count = PydanticField(default=0, description='Total isolated types, including any not listed.')
class-attribute
instance-attribute
¶
isolated_types = PydanticField(default_factory=list, description='Vertex types with no incident edge, truncated to ``max_names``.')
class-attribute
instance-attribute
¶
name = PydanticField(..., description='Schema name.')
class-attribute
instance-attribute
¶
relation_count = PydanticField(default=0, description='Total distinct relations, including any not listed.')
class-attribute
instance-attribute
¶
relation_vocabulary = PydanticField(default_factory=list, description='Distinct edge relation names, truncated to ``max_names``.')
class-attribute
instance-attribute
¶
total_property_count = PydanticField(..., description='Declared properties across all vertex types.')
class-attribute
instance-attribute
¶
version = PydanticField(default=None, description='Schema version.')
class-attribute
instance-attribute
¶
vertex_count = PydanticField(..., description='Declared vertex types.')
class-attribute
instance-attribute
¶
TransformCard
¶
Bases: BaseCard
Summary of a data transform.
Source code in graflo/architecture/schema/context/card.py
Attributes¶
foo = PydanticField(default=None, description='Python function name.')
class-attribute
instance-attribute
¶
functional = PydanticField(..., description='True if it wraps a Python function.')
class-attribute
instance-attribute
¶
input_count = PydanticField(default=0, description='Number of input fields.')
class-attribute
instance-attribute
¶
module = PydanticField(default=None, description='Python module path.')
class-attribute
instance-attribute
¶
name = PydanticField(default=None, description='Transform name.')
class-attribute
instance-attribute
¶
output_count = PydanticField(default=0, description='Number of output fields.')
class-attribute
instance-attribute
¶
strategy = PydanticField(default='single', description='Functional call strategy (single, each, all).')
class-attribute
instance-attribute
¶
VertexCard
¶
Bases: BaseCard
Summary of a single vertex type.
Source code in graflo/architecture/schema/context/card.py
Attributes¶
description = PydanticField(default=None, description='Authored description.')
class-attribute
instance-attribute
¶
identity_fields = PydanticField(default_factory=list, description='Primary identity field names.')
class-attribute
instance-attribute
¶
identity_mode = PydanticField(..., description='natural / hash / blank / assigned.')
class-attribute
instance-attribute
¶
name = PydanticField(..., description='Vertex type name.')
class-attribute
instance-attribute
¶
property_count = PydanticField(..., description='Total declared properties.')
class-attribute
instance-attribute
¶
secondary_identity_count = PydanticField(default=0, description='Number of secondary identity field-sets.')
class-attribute
instance-attribute
¶
Functions:¶
build_card(schema, *, top_n=10, max_names=25, graph=None, id=None)
¶
Summarize schema for an agent's first contact with it.
Every list on the card is bounded, with a count reported alongside. A card whose size grows with the schema is not a card — it is the problem this wave exists to solve, wearing a summary's clothes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
schema
|
Schema
|
Schema to summarize. Never mutated. |
required |
top_n
|
int
|
How many hub types and entry points to list. |
10
|
max_names
|
int
|
How many isolated types and relation names to list. |
25
|
graph
|
SchemaGraph | None
|
Prebuilt index, if the caller already has one. |
None
|
Source code in graflo/architecture/schema/context/card.py
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | |
build_connector_card(connector, id=None)
¶
Build a summary card for a data connector.
Source code in graflo/architecture/schema/context/card.py
build_database_profile_card(profile, id=None)
¶
Build a summary card for a database profile.
Source code in graflo/architecture/schema/context/card.py
build_edge_card(edge, id=None, *, schema=None)
¶
Build a summary card for a logical edge type.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
edge
|
Edge
|
The edge to summarize. |
required |
id
|
str | None
|
Identifier carried on the card. |
None
|
schema
|
Schema | None
|
The schema the edge belongs to. With it the card also states the relation's declared inverse and the state of that pair, which an edge alone cannot know; without it those fields stay empty. |
None
|
Source code in graflo/architecture/schema/context/card.py
build_manifest_card(manifest, id=None)
¶
Build a summary card for a full graph manifest.
Source code in graflo/architecture/schema/context/card.py
build_resource_card(resource, id=None, top_n=5)
¶
Build a summary card for an ingestion resource.
Source code in graflo/architecture/schema/context/card.py
build_transform_card(transform, id=None)
¶
Build a summary card for a data transform.
Source code in graflo/architecture/schema/context/card.py
build_vertex_card(vertex, id=None)
¶
Build a summary card for a logical vertex type.