From 6d7ba58f880be618ade07f8ea080fe8c4bf8a896 Mon Sep 17 00:00:00 2001 From: cyfraeviolae Date: Wed, 3 Apr 2024 03:10:44 -0400 Subject: venv --- .../site-packages/polyfactory/persistence.py | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 venv/lib/python3.11/site-packages/polyfactory/persistence.py (limited to 'venv/lib/python3.11/site-packages/polyfactory/persistence.py') diff --git a/venv/lib/python3.11/site-packages/polyfactory/persistence.py b/venv/lib/python3.11/site-packages/polyfactory/persistence.py new file mode 100644 index 0000000..7aa510b --- /dev/null +++ b/venv/lib/python3.11/site-packages/polyfactory/persistence.py @@ -0,0 +1,53 @@ +from __future__ import annotations + +from typing import Protocol, TypeVar, runtime_checkable + +T = TypeVar("T") + + +@runtime_checkable +class SyncPersistenceProtocol(Protocol[T]): + """Protocol for sync persistence""" + + def save(self, data: T) -> T: + """Persist a single instance synchronously. + + :param data: A single instance to persist. + + :returns: The persisted result. + + """ + ... + + 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 + + """ + ... + + +@runtime_checkable +class AsyncPersistenceProtocol(Protocol[T]): + """Protocol for async persistence""" + + async def save(self, data: T) -> T: + """Persist a single instance asynchronously. + + :param data: A single instance to persist. + + :returns: The persisted result. + """ + ... + + 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 + """ + ... -- cgit v1.2.3