Skip to content

type_bridge.crud.strategies

strategies

Strategies for handling different TypeDB model types in the unified manager.

ModelStrategy

Bases: ABC

Abstract strategy for handling model-specific logic.

identify abstractmethod

identify(instance)

Generate identification constraints (IID or keys/roles).

Source code in type_bridge/crud/strategies.py
@abstractmethod
def identify(self, instance: T) -> list[Constraint]:
    """Generate identification constraints (IID or keys/roles)."""
    pass

build_insert abstractmethod

build_insert(instance, var)

Generate insert AST and optional match prerequisites.

Source code in type_bridge/crud/strategies.py
@abstractmethod
def build_insert(self, instance: T, var: str) -> tuple[MatchClause | None, InsertClause]:
    """Generate insert AST and optional match prerequisites."""
    pass

build_match_all abstractmethod

build_match_all(model_class, var, filters)

Generate match AST for filtering.

Source code in type_bridge/crud/strategies.py
@abstractmethod
def build_match_all(
    self, model_class: type[T], var: str, filters: dict[str, Any]
) -> MatchClause:
    """Generate match AST for filtering."""
    pass

EntityStrategy

Bases: ModelStrategy['Entity']

Strategy for handling Entity models.

identify

identify(instance)

Generate identification constraints for an entity.

Delegates to the entity's _build_identification_constraints() method to avoid duplicating the IID/key attribute logic.

Source code in type_bridge/crud/strategies.py
def identify(self, instance: Entity) -> list[Constraint]:
    """Generate identification constraints for an entity.

    Delegates to the entity's _build_identification_constraints() method
    to avoid duplicating the IID/key attribute logic.
    """
    return instance._build_identification_constraints()

RelationStrategy

Bases: ModelStrategy['Relation']

Strategy for handling Relation models.