graflo.architecture.schema.document¶
Full graph schema document (metadata + core + DB profile).
Classes¶
Schema
¶
Bases: ConfigBaseModel
Graph schema (A+B): metadata, core schema, and DB profile.
Source code in graflo/architecture/schema/document.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 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 | |
Attributes¶
core_schema = PydanticField(..., description='Core schema model (vertices + edges).', validation_alias=AliasChoices('core_schema', 'graph'))
class-attribute
instance-attribute
¶
db_profile = PydanticField(default_factory=DatabaseProfile, description='Database-specific physical profile (secondary indexes, naming, TigerGraph GSQL DEFAULT overrides via default_property_values, etc.).')
class-attribute
instance-attribute
¶
metadata = PydanticField(..., description='Schema metadata and versioning (name, version).')
class-attribute
instance-attribute
¶
Methods:¶
default_dump_filename()
¶
Return default schema dump filename:
Source code in graflo/architecture/schema/document.py
dump(path=None, *, exclude_defaults=True)
¶
Dump schema YAML to path, excluding defaults by default.
If path is omitted, writes into current working directory using
<schema_name>-<version>.yaml.
Source code in graflo/architecture/schema/document.py
effective_namespace(db_flavor=None, override=None)
¶
The database / graph / space this schema deploys into on db_flavor.
metadata.name is a label; this is the identifier. See
:func:~graflo.architecture.schema.namespace.resolve_namespace for the
precedence (override, db_profile.target_namespace, sanitized name).
Source code in graflo/architecture/schema/document.py
finish_init()
¶
Source code in graflo/architecture/schema/document.py
remove_disconnected_vertices()
¶
resolve_db_aware(db_flavor=None)
¶
Build DB-aware runtime wrappers for db_flavor.
Non-mutating: when db_flavor differs from the authored profile, the
wrappers are built over a copy. This used to assign onto
self.db_profile, which made the schema's flavor a function of
whoever resolved it last — fine while resolution only ever happened once
per ingest, wrong as soon as two readers want two different targets from
one shared Schema.