首頁  >  文章  >  後端開發  >  超級資料庫Python

超級資料庫Python

王林
王林原創
2024-08-31 06:04:36729瀏覽

Supabase Python

隨著 Supabase 社群的發展,對各種客戶端程式庫和框架特定 SDK 的需求也在不斷增長。這種需求大部分是由開源社群本身提供的,目前該社群維護著數十個函式庫。

⚡️ 發布週的更多信息

當人們向託管的 Supabase 服務提出請求時,我們能夠很好地了解其中一些庫的使用範圍,並且當特定庫獲得廣泛採用時,我們為它添加官方支援是有意義的它。從社區支援到官方支援的飛躍的庫的例子包括supabase-flutter和supabase-swift。

在過去的一年半里,Python 用戶端庫一直得到了令人難以置信的社群支持,但我們看到了採用率的大幅成長。這是由 AI 和 ML 社群中 Supabase 的廣泛採用推動的,其中許多人都是熱衷於 Python 的人。

今天,我們宣布 Supabase 平台現已正式支援以下 Python 用戶端程式庫:

  • supabase-py
  • auth-py
  • 儲存py
  • 函數-py
  • 即時py

supabase-py 最初由維護者 lqmanh 於 2020 年 9 月啟動,不久後 Fedden 和 J0 加入(後來成為 Supabase 團隊的全職成員)。近年來,silentworks 和 juancarlospaco 推動了開發,他們都在推動實現與 supabase-js 同等功能方面發揮了重要作用。

非常感謝迄今為止為客戶端庫做出貢獻的所有人,希望我們將來能看到更多社群庫推動官方支援。

以下是 Python 函式庫集合中新增的一些最新功能的概述。

預設啟用 HTTP2

Supabase 用戶端預設會自動使用 HTTP 2.0,為您現有的應用程式提供無縫的效能提升。

此改進以完全透明的方式實現,無需更改現有程式碼,同時可能顯著減少延遲並增強效能。

另請參閱:

  • https://github.com/supabase/functions-py/pull/115
  • https://github.com/supabase/auth-py/pull/534
  • https://github.com/supabase/postgrest-py/pull/462
  • https://github.com/supabase/storage-py/pull/271

預設遵循重定向

Supabase 用戶端現在預設自動遵循所有 HTTP 重定向,與其他程式語言中 Supabase 用戶端的行為保持一致。

此增強功能提高了整個生態系統的一致性,並簡化了重定向的處理,減少了在 URL 更改或負載平衡等常見場景中手動幹預的需要。

另請參閱:

  • https://github.com/supabase/postgrest-py/pull/449
  • https://github.com/supabase/functions-py/pull/107
  • https://github.com/supabase/storage-py/pull/257
  • https://github.com/supabase/auth-py/pull/511

預設啟用保持活動狀態

Supabase 用戶端現在預設自動包含一個 keep-alive HTTP 標頭,有時會遺失,解決了先前版本中的這種不一致問題。

此增強功能優化了連接管理,可能會減少延遲,並透過維持與伺服器的持久連接來提高效能,特別有利於進行非常頻繁的 API 呼叫的應用程式。

邊緣函數區域

增加了對指定邊緣函數將運行的區域的支援(區域基本上是世界上的物理位置)。

另請參閱:

  • https://github.com/supabase/functions-py/pull/126

即時V2

Realtime 已升級至 2.0 版本,進行了大量改進和修復,包括更新的範例和新的與狀態相關的功能(廣播、訂閱、追蹤等)。

另請參閱:

  • https://github.com/supabase/realtime-py/pull/139
  • https://github.com/supabase/realtime-py/pull/178

身份驗證改進

匿名登入已新增至 Auth 用戶端,包括已新增至 User 類別的新 is_anonymous 布林屬性,sign_in_with_id_token() 和 sign_in_with_sso() 方法已新增至 Auth 用戶端,以及許多其他方法錯誤修復。

另請參閱:

  • https://github.com/supabase/auth-py/pull/528
  • https://github.com/supabase/auth-py/pull/548
  • https://github.com/supabase/auth-py/pull/553
  • https://github.com/supabase/auth-py/pull/506

Postgrest 在查詢中引用/轉義

Supabase 透過在客戶端內部 SQL 查詢中實作 sanitize_param() 進行參數清理,提高了 PostgreSQL 查詢安全性,確保所有操作中的資料處理和查詢執行更加安全。

使用未經驗證的 SSL 運行

有些使用者出於某種原因需要使用無效或未經驗證的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"

另請參閱:

  • https://github.com/supabase/functions-py/pull/106
  • https://github.com/supabase/storage-py/pull/256
  • https://github.com/supabase/auth-py/pull/506
  • https://github.com/supabase/postgrest-py/pull/448
  • https://github.com/supabase/supabase-py/pull/813

即時關閉套接字

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()

另請參閱:

  • https://github.com/supabase-community/realtime-py/pull/142

邊緣函數逾時

邊緣函數的逾時現已修復,長時間運行的函數可以正確完成,不再有庫客戶端內部逾時切斷函數。

使用者現在可以自信地在 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"))

另請參閱:

  • https://github.com/supabase/functions-py/pull/120
  • https://github.com/supabase/supabase-py/pull/846

用於將資料移轉到 Supabase 的新工具 Vec2pg

創建了一個新的簡單且可擴展的CLI 工具,用於將向量資料從其他服務和SASS 遷移到Supabase,它可以透過單一命令將向量資料從Pinecone 和Qdrant 遷移到Supabase,從而簡化工作流程並增強跨AI 和ML 的資料可攜性項目。

您可以投票支援未來新增的其他向量資料庫提供者!

另請參閱:

  • https://github.com/supabase-community/vec2pg
  • https://github.com/supabase-community/vec2pg/pull/5
  • https://github.com/supabase-community/vec2pg/issues/6

更新了 CI

所有函式庫的持續整合建置都已升級並變得更加嚴格(linter 等)。

另請參閱:

  • https://github.com/supabase/supabase-py/pull/772
  • https://github.com/supabase/supabase-py/pull/774
  • https://github.com/supabase/functions-py/pull/93
  • https://github.com/supabase/functions-py/pull/92
  • https://github.com/supabase/storage-py/pull/240
  • https://github.com/supabase/storage-py/pull/237
  • https://github.com/supabase/realtime-py/pull/132
  • https://github.com/supabase/realtime-py/pull/131
  • https://github.com/supabase/postgrest-py/pull/424
  • https://github.com/supabase/postgrest-py/pull/422
  • https://github.com/supabase/functions-py/pull/139
  • https://github.com/supabase/storage-py/pull/287
  • https://github.com/supabase/auth-py/pull/572
  • https://github.com/supabase/postgrest-py/pull/484
  • https://github.com/supabase/supabase-py/pull/887
  • https://github.com/supabase/realtime-py/pull/182

各種各樣的

  • 所有程式碼儲存庫的單元測試覆蓋率均已改善。
  • 所有函式庫(mccabe、prospector)都對循環複雜度進行了分析和改進。
  • 對程式碼樣式、符號命名、文件、註解和文件字串進行了多項修復。

貢獻

如果您想參與為我們的 Python 客戶端庫做出貢獻,請參閱此處以獲取有關如何貢獻的一些信息,並查看未決問題列表以獲取有關工作內容的一些靈感。

入門

Supabase 文件網站上提供了 Supabase Python 用戶端程式庫的完整文件。

以上是超級資料庫Python的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn