随着 Supabase 社区的发展,对各种客户端库和框架特定 SDK 的需求也在不断增长。这种需求大部分是由开源社区本身提供的,该社区目前维护着数十个库。
⚡️ 发布周的更多信息
当人们向托管的 Supabase 服务提出请求时,我们能够很好地了解其中一些库的使用范围,并且当特定库获得广泛采用时,我们为它添加官方支持是有意义的它。从社区支持到官方支持的飞跃的库的例子包括supabase-flutter和supabase-swift。
在过去的一年半里,Python 客户端库一直得到了令人难以置信的社区支持,但我们看到了采用率的大幅飙升。这是由 AI 和 ML 社区中 Supabase 的广泛采用推动的,其中许多人都是热衷于 Python 的人。
今天,我们宣布 Supabase 平台现已正式支持以下 Python 客户端库:
supabase-py 最初由维护者 lqmanh 于 2020 年 9 月启动,不久后 Fedden 和 J0 加入(后来成为 Supabase 团队的全职成员)。近年来,silentworks 和 juancarlospaco 推动了开发,他们都在推动实现与 supabase-js 同等功能方面发挥了重要作用。
非常感谢迄今为止为客户端库做出贡献的所有人,希望我们将来能看到更多社区库推动官方支持。
下面是 Python 库集合中添加的一些最新功能的概述。
Supabase 客户端默认情况下将自动使用 HTTP 2.0,为您现有的应用程序提供无缝的性能提升。
此改进以完全透明的方式实现,无需更改现有代码,同时可能显着减少延迟并增强性能。
另请参阅:
Supabase 客户端现在默认自动遵循所有 HTTP 重定向,与其他编程语言中 Supabase 客户端的行为保持一致。
此增强功能提高了整个生态系统的一致性,并简化了重定向的处理,减少了在 URL 更改或负载平衡等常见场景中手动干预的需要。
另请参阅:
Supabase 客户端现在默认自动包含一个 keep-alive HTTP 标头,该标头有时会丢失,解决了以前版本中的这种不一致问题。
此增强功能优化了连接管理,可能会减少延迟,并通过维护与服务器的持久连接来提高性能,特别有利于进行非常频繁的 API 调用的应用程序。
添加了对指定边缘函数将运行的区域的支持(区域基本上是世界上的物理位置)。
另请参阅:
Realtime 已升级到 2.0 版本,进行了大量改进和修复,包括更新的示例和新的与状态相关的功能(广播、订阅、跟踪等)。
另请参阅:
匿名登录已添加到 Auth 客户端,包括已添加到 User 类中的新 is_anonymous 布尔属性,sign_in_with_id_token() 和 sign_in_with_sso() 方法已添加到 Auth 客户端,以及许多其他方法错误修复。
另请参阅:
Supabase 通过在客户端内部 SQL 查询中实现 sanitize_param() 进行参数清理,提高了 PostgreSQL 查询安全性,确保所有操作中的数据处理和查询执行更加安全。
一些用户出于某种原因需要使用无效或未经验证的 SSL 来运行 Supabase 客户端(开发环境中的 SSL 调试器/跟踪器/分析器/等),一个新的可选布尔参数被添加到客户端的构造函数中,然后传递验证=False 使其能够使用未经验证的 SSL 运行而不会发出警告。
from postgrest import SyncPostgrestClient url: str = "https://example.com" h: dict = {"Custom-Header": "value"} with SyncPostgrestClient(url, schema="pub", headers=h, verify = False) as client: session = client.session assert session.base_url == "https://example.com"
另请参阅:
Supabase Realtime 库现在包含一个新的 close() 方法,用于关闭套接字连接。
此功能为开发人员提供了对连接生命周期的更精细控制,允许在需要时显式关闭套接字连接。
import os from realtime import AsyncRealtimeClient def callback1(payload): print("Callback 1: ", payload) SUPABASE_ID: str = os.environ.get("SUPABASE_ID") API_KEY: str = os.environ.get("SUPABASE_KEY") URL: str = f"wss://{SUPABASE_ID}.supabase.co/realtime/v1/websocket" client = AsyncRealtimeClient(URL, API_KEY) await client.connect() channel_1 = s.channel("realtime:public:sample") channel_1.subscribe().on_postgres_changes("INSERT", callback1) await client.listen() await client.close()
另请参阅:
边缘函数的超时现已修复,长时间运行的函数可以正确完成,不再有库客户端内部超时切断函数。
用户现在可以自信地在 Edge Functions 中实现更复杂的操作。
import os from supabase import create_client from supabase.lib.client_options import ClientOptions url: str = os.environ.get("SUPABASE_URL") key: str = os.environ.get("SUPABASE_KEY") options = ClientOptions(function_client_timeout = 15) client = create_client(url, key, options) client.functions.url = "http://127.0.0.1:54321/functions/v1/hello-world" print(client.functions.invoke("hello"))
另请参阅:
创建了一个新的简单且可扩展的 CLI 工具,用于将矢量数据从其他服务和 SASS 迁移到 Supabase,它可以通过单个命令将矢量数据从 Pinecone 和 Qdrant 迁移到 Supabase,从而简化工作流程并增强跨 AI 和 ML 的数据可移植性项目。
您可以投票支持未来添加的其他矢量数据库提供商!
另请参阅:
所有库的持续集成构建都已升级并变得更加严格(linter 等)。
另请参阅:
如果您想参与为我们的 Python 客户端库做出贡献,请参阅此处以获取有关如何贡献的一些信息,并查看未决问题列表以获取有关工作内容的一些灵感。
Supabase 文档站点上提供了 Supabase Python 客户端库的完整文档。
以上是超级数据库Python的详细内容。更多信息请关注PHP中文网其他相关文章!