cddb07a176
docs / deploy (push) Has been cancelled
docs / changes (push) Has been cancelled
docs / check-and-build (push) Has been cancelled
build container image / cpu (push) Has been cancelled
build container image / cuda (push) Has been cancelled
build container image / rocm (push) Has been cancelled
frontend checks / frontend-checks (push) Has been cancelled
frontend tests / frontend-tests (push) Has been cancelled
lfs checks / lfs-check (push) Has been cancelled
python checks / python-checks (push) Has been cancelled
python tests / py3.12: macos-default (push) Has been cancelled
python tests / py3.11: windows-cpu (push) Has been cancelled
python tests / py3.12: windows-cpu (push) Has been cancelled
python tests / py3.11: linux-cpu (push) Has been cancelled
typegen checks / typegen-checks (push) Has been cancelled
uv lock checks / uv-lock-checks (push) Has been cancelled
openapi checks / openapi-checks (push) Has been cancelled
python tests / py3.11: macos-default (push) Has been cancelled
python tests / py3.12: linux-cpu (push) Has been cancelled
26 lines
848 B
Python
26 lines
848 B
Python
from abc import ABC, abstractmethod
|
|
|
|
|
|
class ModelRelationshipsServiceABC(ABC):
|
|
"""High-level service for managing model-to-model relationships."""
|
|
|
|
@abstractmethod
|
|
def add_model_relationship(self, model_key_1: str, model_key_2: str) -> None:
|
|
"""Creates a relationship between two models keys."""
|
|
pass
|
|
|
|
@abstractmethod
|
|
def remove_model_relationship(self, model_key_1: str, model_key_2: str) -> None:
|
|
"""Removes a relationship between two models keys."""
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_related_model_keys(self, model_key: str) -> list[str]:
|
|
"""Gets all models keys related to a given model key."""
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_related_model_keys_batch(self, model_keys: list[str]) -> list[str]:
|
|
"""Get related model keys for multiple models."""
|
|
pass
|