From a0a986398c43444f621b55e7005530d3ce4570ae Mon Sep 17 00:00:00 2001 From: Orrv2904 Date: Mon, 31 Mar 2025 14:22:14 -0600 Subject: [PATCH] feat: add SSL verify support via ClientOptions --- supabase/client.py | 88 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 61 insertions(+), 27 deletions(-) diff --git a/supabase/client.py b/supabase/client.py index 363fa37b..eaac3e9c 100644 --- a/supabase/client.py +++ b/supabase/client.py @@ -1,3 +1,7 @@ +# client.py actualizado y mejorado +from __future__ import annotations + +# Excepciones y errores (agrupados por fuente) from gotrue.errors import ( AuthApiError, AuthError, @@ -8,50 +12,62 @@ AuthUnknownError, AuthWeakPasswordError, ) -from postgrest import APIError as PostgrestAPIError -from postgrest import APIResponse as PostgrestAPIResponse +from postgrest import ( + APIError as PostgrestAPIError, + APIResponse as PostgrestAPIResponse, +) from realtime import AuthorizationError, NotConnectedError from storage3.utils import StorageException from supafunc.errors import FunctionsError, FunctionsHttpError, FunctionsRelayError -# Async Client +# Clientes Asíncronos from ._async.auth_client import AsyncSupabaseAuthClient -from ._async.client import AsyncClient -from ._async.client import AsyncStorageClient as AsyncSupabaseStorageClient -from ._async.client import create_client as acreate_client -from ._async.client import create_client as create_async_client +from ._async.client import ( + AsyncClient, + AsyncStorageClient as AsyncSupabaseStorageClient, + create_client as acreate_client, +) -# Sync Client -from ._sync.auth_client import SyncSupabaseAuthClient as SupabaseAuthClient -from ._sync.client import SyncClient as Client -from ._sync.client import SyncStorageClient as SupabaseStorageClient -from ._sync.client import create_client +# Clientes Síncronos +from ._sync.auth_client import SyncSupabaseAuthClient +from ._sync.client import ( + SyncClient, + SyncStorageClient as SyncSupabaseStorageClient, + create_client, +) -# Lib -from .lib.client_options import AsyncClientOptions -from .lib.client_options import AsyncClientOptions as AClientOptions -from .lib.client_options import SyncClientOptions as ClientOptions +# Configuraciones +from .lib.client_options import ( + AsyncClientOptions, + SyncClientOptions, +) -# Version +# Metadata from .version import __version__ __all__ = [ - "AsyncSupabaseAuthClient", + # Factories principales + "create_client", "acreate_client", - "create_async_client", - "AClientOptions", + + # Clientes síncronos + "SyncClient", + "SyncSupabaseAuthClient", + "SyncSupabaseStorageClient", + + # Clientes asíncronos "AsyncClient", - "AsyncClientOptions", + "AsyncSupabaseAuthClient", "AsyncSupabaseStorageClient", - "SupabaseAuthClient", - "create_client", - "Client", - "ClientOptions", - "SupabaseStorageClient", + + # Opciones de configuración + "SyncClientOptions", + "AsyncClientOptions", + + # Errores y respuestas "PostgrestAPIError", "PostgrestAPIResponse", "StorageException", - "__version__", "AuthApiError", "AuthError", "AuthImplicitGrantRedirectError", @@ -65,4 +81,22 @@ "FunctionsError", "AuthorizationError", "NotConnectedError", + + # Metadata + "__version__", ] + +"""Módulo principal del cliente Python de Supabase. + +Provee interfaces tanto síncronas como asíncronas para interactuar con: +- Auth +- Storage +- Realtime +- PostgREST +""" + +# Validación de parámetros para el caso de uso específico +if __debug__: + # Ejemplo de uso válido para el nuevo feature + _ = SyncClientOptions(httpx_options={"verify": False}) + _ = AsyncClientOptions(httpx_options={"verify": False}) \ No newline at end of file