"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सुपाबेस पायथन

सुपाबेस पायथन

2024-10-31 को प्रकाशित
ब्राउज़ करें:834

Supabase Python

जैसे-जैसे सुपाबेस समुदाय बढ़ा है, वैसे-वैसे क्लाइंट लाइब्रेरी और फ्रेमवर्क विशिष्ट एसडीके के विविध संग्रह की मांग भी बढ़ी है। अधिकांश भाग के लिए यह मांग ओपन सोर्स समुदाय द्वारा ही पूरी की गई है, जो वर्तमान में दर्जनों पुस्तकालयों का रखरखाव करता है।

⚡️ लॉन्च सप्ताह पर अधिक जानकारी

जब लोग होस्ट की गई सुपाबेस सेवा के लिए अनुरोध करते हैं तो हम एक अच्छी तस्वीर बनाने में सक्षम होते हैं कि इनमें से कुछ पुस्तकालयों का उपयोग कितने व्यापक रूप से किया जाता है, और जब कोई विशेष पुस्तकालय व्यापक रूप से अपनाया जाता है तो हमारे लिए आधिकारिक समर्थन जोड़ना समझ में आता है यह। पुस्तकालयों के उदाहरण जिन्होंने समुदाय समर्थित से आधिकारिक तौर पर समर्थित तक छलांग लगाई है, उनमें सुपाबेस-फ़्लटर और सुपाबेस-स्विफ्ट शामिल हैं।

पायथन क्लाइंट लाइब्रेरीज़ के लिए हमेशा अविश्वसनीय सामुदायिक समर्थन रहा है, पिछले डेढ़ साल में हमने गोद लेने में भारी वृद्धि देखी है। इसे एआई और एमएल समुदाय में सुपाबेस को व्यापक रूप से अपनाने से प्रेरित किया गया है, जिनमें से कई उत्सुक पाइथॉनिस्टा हैं।

इसलिए आज, हम घोषणा कर रहे हैं कि निम्नलिखित पायथन क्लाइंट लाइब्रेरी अब आधिकारिक तौर पर सुपाबेस प्लेटफॉर्म पर समर्थित हैं:

  • supabase-py
  • auth-py
  • भंडारण-पाइ
  • फ़ंक्शन-पाइ
  • रियलटाइम-पाइ

supabase-py को मूल रूप से 2020 के सितंबर में अनुरक्षक lqmanh द्वारा शुरू किया गया था, और कुछ ही समय बाद इसमें फेडडेन और J0 (जो आगे चलकर Supabase टीम के पूर्णकालिक सदस्य बन गए) शामिल हो गए। हाल के वर्षों में विकास को साइलेंटवर्क्स और जुआनकार्लोस्पाको द्वारा संचालित किया गया है, जो दोनों सुपरबेस-जेएस के साथ फीचर समानता तक पहुंचने में सहायक रहे हैं।

अब तक ग्राहक कार्यों में योगदान देने वाले सभी लोगों को बहुत-बहुत धन्यवाद और उम्मीद है कि हम भविष्य में अधिक सामुदायिक कार्यों को आधिकारिक समर्थन के लिए प्रेरित करते हुए देखेंगे।

नीचे पायथन लिब के संग्रह में जोड़ी गई कुछ हालिया सुविधाओं का अवलोकन है।

डिफ़ॉल्ट रूप से HTTP2 सक्षम किया गया

डिफ़ॉल्ट रूप से उपलब्ध होने पर सुपाबेस क्लाइंट स्वचालित रूप से 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

डिफ़ॉल्ट रूप से रीडायरेक्ट का पालन करें

सुपाबेस क्लाइंट अब स्वचालित रूप से डिफ़ॉल्ट रूप से सभी HTTP रीडायरेक्ट का पालन करते हैं, जो अन्य प्रोग्रामिंग भाषाओं में सुपाबेस क्लाइंट के व्यवहार के साथ संरेखित होते हैं।

यह वृद्धि पारिस्थितिकी तंत्र में स्थिरता में सुधार करती है और रीडायरेक्ट के प्रबंधन को सरल बनाती है, जिससे यूआरएल परिवर्तन या लोड संतुलन जैसे सामान्य परिदृश्यों में मैन्युअल हस्तक्षेप की आवश्यकता कम हो जाती है।

यह भी देखें:

  • 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

डिफ़ॉल्ट रूप से सक्रिय रखें

सुपाबेस क्लाइंट अब स्वचालित रूप से डिफ़ॉल्ट रूप से एक जीवित HTTP हेडर शामिल करते हैं, जो कभी-कभी गायब था, पिछले संस्करणों में इस असंगतता को संबोधित करता है।

यह संवर्द्धन कनेक्शन प्रबंधन को अनुकूलित करता है, संभावित रूप से विलंबता को कम करता है, और सर्वर के साथ लगातार कनेक्शन बनाए रखकर प्रदर्शन में सुधार करता है, विशेष रूप से बहुत बार एपीआई कॉल करने वाले अनुप्रयोगों के लिए फायदेमंद है।

एज फ़ंक्शंस क्षेत्र

उस क्षेत्र को निर्दिष्ट करने के लिए समर्थन जोड़ा गया जिस पर एज फ़ंक्शन चलेगा (एक क्षेत्र मूल रूप से दुनिया में एक भौतिक स्थान है)।

यह भी देखें:

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

रीयलटाइम V2

रियलटाइम को कई सुधारों और सुधारों के साथ संस्करण 2.0 में अपग्रेड किया गया है, जिसमें अद्यतन उदाहरण और नई उपस्थिति-संबंधित सुविधाएं (प्रसारण, सदस्यता, ट्रैक इत्यादि) शामिल हैं।

यह भी देखें:

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

प्रामाणिक सुधार

अज्ञात लॉगिन को ऑथ क्लाइंट में जोड़ा गया है, जिसमें एक नया is_anonymous बूलियन प्रॉपर्टी शामिल है जिसे क्लास यूजर में जोड़ा गया है, साइन_इन_विथ_आईडी_टोकन() और साइन_इन_विथ_sso() तरीकों को भी ऑथ क्लाइंट में जोड़ा गया है, कई अन्य के बीच कंप्यूटर प्रोग्राम या प्रणाली में बग को दूर करना।

यह भी देखें:

  • 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

पोस्टग्रेस्ट को उद्धृत करना/प्रश्नों से बचना

सुपाबेस ने क्लाइंट-साइड पर आंतरिक एसक्यूएल प्रश्नों में पैरामीटर सैनिटाइजेशन के लिए sanitize_param() को लागू करके PostgreSQL क्वेरी सुरक्षा में सुधार किया, जिससे सभी ऑपरेशनों में अधिक सुरक्षित डेटा हैंडलिंग और क्वेरी निष्पादन सुनिश्चित हुआ।

असत्यापित एसएसएल के साथ चल रहा है

कुछ उपयोगकर्ताओं को किसी भी कारण से अमान्य या असत्यापित एसएसएल के साथ सुपाबेस क्लाइंट चलाने की आवश्यकता होती है (विकास परिवेश में एसएसएल डिबगर्स/ट्रेसर/प्रोफाइलर/आदि), क्लाइंट्स के कंस्ट्रक्टर्स में एक नया वैकल्पिक बूलियन तर्क जोड़ा गया था, फिर सत्यापन पास किया गया =गलत इसे बिना किसी चेतावनी के असत्यापित एसएसएल के साथ चलने में सक्षम बनाता है।

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

रीयलटाइम में सॉकेट बंद करें

सुपाबेस रीयलटाइम लाइब्रेरी में अब सॉकेट कनेक्शन बंद करने के लिए एक नई क्लोज़() विधि शामिल है।

यह जोड़ डेवलपर्स को कनेक्शन जीवनचक्र पर बेहतर नियंत्रण प्रदान करता है, जिससे जरूरत पड़ने पर सॉकेट कनेक्शन को स्पष्ट रूप से बंद करने की अनुमति मिलती है।

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

एज फ़ंक्शंस टाइमआउट

एज फ़ंक्शंस के लिए टाइमआउट अब तय हो गए हैं और लंबे समय से चल रहे फ़ंक्शन सही ढंग से समाप्त हो गए हैं, फ़ंक्शंस को काटने वाला लाइब्रेरी क्लाइंट-साइड आंतरिक टाइमआउट अब नहीं है।

उपयोगकर्ता अब एज फ़ंक्शंस में अधिक जटिल संचालन को आत्मविश्वास से लागू कर सकते हैं।

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

डेटा को सुपाबेस में स्थानांतरित करने के लिए नया टूल Vec2pg

अन्य सेवाओं और एसएएसएस से वेक्टर डेटा को सुपाबेस में स्थानांतरित करने के लिए एक नया सरल और एक्स्टेंसिबल सीएलआई उपकरण बनाया गया था, यह एक ही कमांड के साथ पाइनकोन और क्यूड्रेंट से वेक्टर डेटा को सुपाबेस में स्थानांतरित कर सकता है, वर्कफ़्लो को सुव्यवस्थित कर सकता है और एआई और एमएल में डेटा पोर्टेबिलिटी बढ़ा सकता है। परियोजनाएं।

आप भविष्य में जोड़े जाने वाले अन्य वेक्टर डेटाबेस प्रदाताओं के लिए वोट कर सकते हैं!

यह भी देखें:

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

अद्यतन सीआई

सभी पुस्तकालयों के लिए सतत एकीकरण बिल्ड को उन्नत किया गया है और अधिक सख्त (लिंटर, आदि) बनाया गया है।

यह भी देखें:

  • 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

मिश्रित

  • सभी कोड रिपॉजिटरी में यूनिटटेस्ट कवरेज में सुधार किया गया था।
  • सभी पुस्तकालयों (मैककेबे, प्रॉस्पेक्टर) में साइक्लोमैटिक जटिलता का विश्लेषण और सुधार किया गया है।
  • कोड शैली, प्रतीक नामकरण, दस्तावेज़ीकरण, टिप्पणियाँ और डॉकस्ट्रिंग्स के लिए कई सुधार।

योगदान

यदि आप हमारे पायथन क्लाइंट पुस्तकालयों में योगदान देने में शामिल होना चाहते हैं, तो योगदान करने के तरीके के बारे में कुछ जानकारी के लिए यहां देखें, और किस पर काम करना है इसके बारे में कुछ प्रेरणा के लिए खुले मुद्दों की सूची देखें।

शुरू करना

सुपाबेस डॉक्स साइट पर सुपाबेस पायथन क्लाइंट लाइब्रेरी के लिए पूर्ण दस्तावेज उपलब्ध है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/supabase/supabase-python-50j?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3