graflo.architecture.evolution.aspects.base¶
What every aspect shares: the refusal, and the entry that names it.
Attributes¶
__all__ = ['Aspect', 'LiftError']
module-attribute
¶
Classes¶
Aspect
¶
Bases: ConfigBaseModel
One cross-cutting vocabulary a manifest can be lifted with.
An aspect is domain-free: it adds the types and relations that let a schema say something every domain needs to say -- where a fact came from, how a fact changes over time -- grounded in a standard vocabulary.
Attributes:
| Name | Type | Description |
|---|---|---|
name |
str
|
How the CLI and a caller address it ( |
description |
str
|
One line, for listings. |
needs_spec |
bool
|
Whether planning it needs declarations only a
:class: |
version |
int
|
Bumped when the vocabulary, or what the planner emits for a given spec, changes. A recorded lift names it, so a re-lift can tell which aspects moved since. |
Source code in graflo/architecture/evolution/aspects/base.py
LiftError
¶
Bases: ValueError
The lift cannot be planned, and the message says which declaration is missing.
Raised rather than guessed. Every case here is one where the planner can see that something is wrong but not what the right answer is -- an ungrounded type, a name it would have to overwrite, a property it was told to move that is part of the key.