From 4a52a71956a8d46fcb7294ac71734504bb09bcc2 Mon Sep 17 00:00:00 2001 From: S. Solomon Darnell Date: Fri, 28 Mar 2025 21:52:21 -0500 Subject: two version of R2R are here --- .../site-packages/storage3/_async/client.py | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .venv/lib/python3.12/site-packages/storage3/_async/client.py (limited to '.venv/lib/python3.12/site-packages/storage3/_async/client.py') diff --git a/.venv/lib/python3.12/site-packages/storage3/_async/client.py b/.venv/lib/python3.12/site-packages/storage3/_async/client.py new file mode 100644 index 00000000..95852a02 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/storage3/_async/client.py @@ -0,0 +1,70 @@ +from __future__ import annotations + +from typing import Optional + +from storage3.constants import DEFAULT_TIMEOUT + +from ..utils import AsyncClient +from ..version import __version__ +from .bucket import AsyncStorageBucketAPI +from .file_api import AsyncBucketProxy + +__all__ = [ + "AsyncStorageClient", +] + + +class AsyncStorageClient(AsyncStorageBucketAPI): + """Manage storage buckets and files.""" + + def __init__( + self, + url: str, + headers: dict[str, str], + timeout: int = DEFAULT_TIMEOUT, + verify: bool = True, + proxy: Optional[str] = None, + ) -> None: + headers = { + "User-Agent": f"supabase-py/storage3 v{__version__}", + **headers, + } + self.session = self._create_session(url, headers, timeout, verify, proxy) + super().__init__(self.session) + + def _create_session( + self, + base_url: str, + headers: dict[str, str], + timeout: int, + verify: bool = True, + proxy: Optional[str] = None, + ) -> AsyncClient: + return AsyncClient( + base_url=base_url, + headers=headers, + timeout=timeout, + proxy=proxy, + verify=bool(verify), + follow_redirects=True, + http2=True, + ) + + async def __aenter__(self) -> AsyncStorageClient: + return self + + async def __aexit__(self, exc_type, exc, tb) -> None: + await self.aclose() + + async def aclose(self) -> None: + await self.session.aclose() + + def from_(self, id: str) -> AsyncBucketProxy: + """Run a storage file operation. + + Parameters + ---------- + id + The unique identifier of the bucket + """ + return AsyncBucketProxy(id, self._client) -- cgit v1.2.3