Source code for polyfactory.persistence

from __future__ import annotations

from typing import Protocol, TypeVar, runtime_checkable

T = TypeVar("T")


[docs]@runtime_checkable class SyncPersistenceProtocol(Protocol[T]): """Protocol for sync persistence"""
[docs] def save(self, data: T) -> T: """Persist a single instance synchronously. :param data: A single instance to persist. :returns: The persisted result. """ ...
[docs] def save_many(self, data: list[T]) -> list[T]: """Persist multiple instances synchronously. :param data: A list of instances to persist. :returns: The persisted result """ ...
[docs]@runtime_checkable class AsyncPersistenceProtocol(Protocol[T]): """Protocol for async persistence"""
[docs] async def save(self, data: T) -> T: """Persist a single instance asynchronously. :param data: A single instance to persist. :returns: The persisted result. """ ...
[docs] async def save_many(self, data: list[T]) -> list[T]: """Persist multiple instances asynchronously. :param data: A list of instances to persist. :returns: The persisted result """ ...