"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > سوباباس بايثون

سوباباس بايثون

تم النشر بتاريخ 2024-10-31
تصفح:404

Supabase Python

مع نمو مجتمع Supabase، زاد الطلب أيضًا على مجموعة متنوعة من مكتبات العملاء وإطارات تطوير البرامج (SDK) المحددة. تمت تلبية هذا الطلب في الغالب من قبل مجتمع المصادر المفتوحة نفسه، والذي يحتفظ حاليًا بعشرات المكتبات.

⚡️ المزيد في أسبوع الإطلاق

عندما يقوم الأشخاص بتقديم طلبات إلى خدمة Supabase المستضافة، نكون قادرين على بناء صورة جيدة عن مدى اتساع نطاق استخدام بعض هذه المكتبات، وعندما تحقق مكتبة معينة اعتمادًا واسع النطاق، فمن المنطقي بالنسبة لنا إضافة دعم رسمي لـ هو - هي. من أمثلة المكتبات التي حققت قفزة من الدعم المجتمعي إلى المكتبات المدعومة رسميًا، Supabase-flutter وsupase-swift.

لقد كان هناك دائمًا دعم مجتمعي لا يصدق لمكتبات عملاء Python، على مدار العام ونصف العام الماضيين، ومع ذلك فقد شهدنا طفرة هائلة في الاعتماد. كان هذا مدفوعًا بالاعتماد الواسع النطاق لـ Supabase في مجتمع الذكاء الاصطناعي وتعلم الآلة، والعديد منهم متحمسون لـ Pythonistas.

لذا، نعلن اليوم أن مكتبات عميل Python التالية أصبحت الآن مدعومة رسميًا على منصة Supabase:

  • supabase-py
  • المصادقة الpy
  • سعة التخزين
  • الوظائف-py
  • الوقت الحقيقي-py

بدأ Supabase-py في الأصل بواسطة المشرف lqmanh في سبتمبر من عام 2020، وبعد فترة وجيزة انضم إليه fedden وJ0 (الذي أصبح عضوًا بدوام كامل في فريق Supabase). في السنوات الأخيرة، كان التطوير مدفوعًا بالأعمال الصامتة وjuancarlospaco اللذين لعبا دورًا فعالًا في الدفع نحو تحقيق تكافؤ الميزات مع supabase-js.

شكرًا جزيلاً لكل من ساهم في libs العميل حتى الآن ونأمل أن نرى المزيد من libs المجتمعية تدفع للحصول على الدعم الرسمي في المستقبل.

فيما يلي نظرة عامة على بعض الميزات الحديثة التي تمت إضافتها إلى مجموعة Python libs.

تمكين 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 الآن تلقائيًا بتضمين رأس 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

تحسينات المصادقة

تمت إضافة عمليات تسجيل دخول مجهولة إلى عميل Auth، بما في ذلك خاصية منطقية is_anonymous جديدة تمت إضافتها إلى فئة المستخدم، كما تمت إضافة أساليب Sign_in_with_id_token() وsign_in_with_sso() إلى Auth Client، من بين الكثير من الطرق الأخرى إصلاحات الأخطاء.

أنظر أيضاً:

  • 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 بتحسين سلامة استعلام PostgreSQL من خلال تطبيق sanitize_param() لتطهير المعلمات في استعلامات SQL الداخلية من جانب العميل، مما يضمن معالجة أكثر أمانًا للبيانات وتنفيذ الاستعلام عبر جميع العمليات.

يعمل مع SSL لم يتم التحقق منها

يحتاج بعض المستخدمين إلى تشغيل عملاء Supabase باستخدام SSL غير صالح أو لم يتم التحقق منه لأي سبب من الأسباب (مصححات أخطاء 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 الآن طريقة إغلاق () جديدة لإغلاق اتصالات المقبس.

توفر هذه الإضافة للمطورين تحكمًا أفضل في دورة حياة الاتصال، مما يسمح بإغلاق صريح لاتصالات المقبس عند الحاجة.

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 وتنتهي الوظائف طويلة الأمد بشكل صحيح، ولم تعد هناك مهلة داخلية من جانب عميل المكتبة تقطع الوظائف.

يمكن للمستخدمين الآن تنفيذ عمليات أكثر تعقيدًا بثقة في وظائف Edge.

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 لترحيل البيانات إلى Supabase

تم إنشاء أداة CLI جديدة بسيطة وقابلة للتوسيع لترحيل بيانات المتجهات من الخدمات الأخرى وSASS إلى Supabase، ويمكنها ترحيل بيانات المتجهات من Pinecone وQdrant إلى Supabase بأمر واحد، وتبسيط سير العمل وتعزيز إمكانية نقل البيانات عبر الذكاء الاصطناعي وتعلم الآلة المشاريع.

يمكنك التصويت لصالح إضافة موفري قاعدة بيانات المتجهات الآخرين في المستقبل!

أنظر أيضاً:

  • 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

متنوع

  • تم تحسين تغطية Unittests عبر جميع مستودعات التعليمات البرمجية.
  • تم تحليل التعقيد الدوري وتحسينه في جميع المكتبات (مكابي، المنقب).
  • إصلاحات متعددة لنمط التعليمات البرمجية، وتسمية الرموز، والوثائق، والتعليقات، والمستندات.

المساهمة

إذا كنت ترغب في المشاركة في المساهمة في مكتبات عملاء Python الخاصة بنا، راجع هنا للحصول على بعض المعلومات حول كيفية المساهمة، وتحقق من قائمة المشكلات المفتوحة للحصول على بعض الإلهام حول ما يجب العمل عليه.

ابدء

تتوفر الوثائق الكاملة لمكتبات Supabase Python Client على موقع Supabase Docs.

بيان الافراج هذه المقالة مستنسخة على: https://dev.to/supabase/supabase-python-50j?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3