隨著 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中文網其他相關文章!