Supabase Python

Aug 31, 2024 am 06:04 AM

Supabase Python

Memandangkan komuniti Supabase telah berkembang, begitu juga permintaan untuk koleksi perpustakaan pelanggan yang pelbagai dan SDK khusus rangka kerja. Permintaan ini sebahagian besarnya telah dilayan oleh komuniti sumber terbuka itu sendiri, yang pada masa ini mengekalkan berpuluh-puluh perpustakaan.

⚡️ Lagi pada Minggu Pelancaran

Apabila orang membuat permintaan kepada perkhidmatan Supabase yang dihoskan, kami dapat membina gambaran yang baik tentang sejauh mana sesetengah perpustakaan ini digunakan, dan apabila perpustakaan tertentu mencapai penerimaan luas, masuk akal untuk kami menambah sokongan rasmi untuk ia. Contoh perpustakaan yang telah membuat lonjakan daripada komuniti yang disokong kepada disokong secara rasmi termasuk supabase-flutter dan supabase-swift.

Selalu ada sokongan komuniti yang luar biasa untuk perpustakaan pelanggan Python, sepanjang setengah tahun lalu namun kami telah melihat lonjakan besar dalam penerimaan. Ini telah didorong oleh penggunaan meluas Supabase dalam komuniti AI dan ML, yang kebanyakannya adalah Pythonista yang berminat.

Jadi hari ini, kami mengumumkan bahawa Perpustakaan Pelanggan Python berikut kini disokong secara rasmi pada platform Supabase:

  • supabase-py
  • auth-py
  • penyimpanan-py
  • fungsi-py
  • py masa nyata

supabase-py pada asalnya dimulakan oleh penyelenggara lqmanh pada September 2020, dan tidak lama selepas itu disertai oleh fedden dan J0 (yang kemudiannya menjadi ahli sepenuh masa Pasukan Supabase). Dalam beberapa tahun kebelakangan ini, pembangunan telah didorong oleh kerja senyap dan juancarlospaco yang kedua-duanya memainkan peranan penting dalam usaha mencapai pariti ciri dengan supabase-js.

Terima kasih banyak kepada semua orang yang telah menyumbang kepada lib pelanggan setakat ini dan semoga kita akan melihat lebih banyak lib komuniti membuat dorongan untuk sokongan rasmi pada masa hadapan.

Di bawah ialah gambaran keseluruhan beberapa ciri terbaharu yang ditambahkan pada koleksi lib Python.

Didayakan HTTP2 secara lalai

Pelanggan Supabase akan menggunakan HTTP 2.0 secara automatik apabila tersedia secara lalai, menawarkan peningkatan prestasi yang lancar kepada aplikasi sedia ada anda.

Peningkatan ini dilaksanakan dengan cara yang benar-benar telus dan tidak memerlukan perubahan pada kod sedia ada anda, sambil berpotensi memberikan pengurangan kependaman yang ketara dan peningkatan prestasi.

Lihat juga:

  • 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

Ikut ubah hala secara lalai

Klien Supabase kini secara automatik mengikut semua ubah hala HTTP secara lalai, sejajar dengan gelagat klien Supabase dalam bahasa pengaturcaraan lain.

Peningkatan ini meningkatkan ketekalan merentas ekosistem dan memudahkan pengendalian ubah hala, mengurangkan keperluan untuk campur tangan manual dalam senario biasa seperti perubahan URL atau pengimbangan beban.

Lihat juga:

  • 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

Keep-alive didayakan secara lalai

Klien Supabase kini secara automatik menyertakan pengepala HTTP kekal hidup secara lalai, yang kadangkala tiada, menangani ketidakkonsistenan ini dalam versi terdahulu.

Peningkatan ini mengoptimumkan pengurusan sambungan, berpotensi mengurangkan kependaman dan meningkatkan prestasi dengan mengekalkan sambungan berterusan dengan pelayan, terutamanya bermanfaat untuk aplikasi yang membuat panggilan API yang sangat kerap.

Kawasan Fungsi Tepi

Tambahan sokongan untuk menentukan rantau yang fungsi tepi akan dijalankan (rantau pada asasnya ialah lokasi fizikal di dunia).

Lihat juga:

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

V2 masa nyata

Masa nyata telah ditingkatkan kepada versi 2.0 dengan banyak penambahbaikan dan pembetulan, termasuk contoh yang dikemas kini dan ciri berkaitan Kehadiran baharu (siaran, langgan, trek, dll).

Lihat juga:

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

Penambahbaikan pengesahan

Log masuk tanpa nama telah ditambahkan pada klien Auth, termasuk sifat boolean is_anonymous baharu yang telah ditambahkan pada kelas Pengguna, juga kaedah sign_in_with_id_token() dan sign_in_with_sso() telah ditambahkan pada Auth Client, antara banyak kaedah lain pembetulan pepijat.

Lihat juga:

  • 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

Petikan/melarikan diri selepas postgrest dalam pertanyaan

Supabase meningkatkan keselamatan pertanyaan PostgreSQL dengan melaksanakan sanitize_param() untuk sanitasi parameter dalam pertanyaan SQL dalaman pada sisi klien, memastikan pengendalian data dan pelaksanaan pertanyaan yang lebih selamat merentas semua operasi.

Berjalan dengan SSL yang tidak disahkan

Sesetengah pengguna perlu menjalankan klien Supabase dengan SSL yang tidak sah atau tidak disahkan atas apa jua sebab (penyahpepijat SSL/pengesan/profiler/dll dalam persekitaran pembangunan), hujah boolean pilihan baharu telah ditambahkan pada pembina pelanggan, kemudian lulus pengesahan =False membolehkannya berjalan dengan SSL yang tidak disahkan tanpa amaran.

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"

Lihat juga:

  • 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

Tutup soket dalam Masa Nyata

Pustaka Supabase Realtime kini termasuk kaedah close() baharu untuk menutup sambungan soket.

Tambahan ini memberikan pembangun kawalan yang lebih baik ke atas kitaran hayat sambungan, membenarkan penutupan eksplisit sambungan soket apabila diperlukan.

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

Lihat juga:

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

tamat masa Fungsi Edge

Tamamasa untuk Fungsi Tepi kini ditetapkan dan fungsi yang berjalan lama selesai dengan betul, tiada lagi tamat masa dalaman pihak pelanggan perpustakaan yang memotong fungsi tersebut.

Pengguna kini boleh melaksanakan operasi yang lebih kompleks dengan yakin dalam Fungsi 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"))

Lihat juga:

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

Alat baharu Vec2pg untuk memindahkan data ke Supabase

Alat CLI baharu yang ringkas dan boleh diperluaskan untuk memindahkan data vektor daripada perkhidmatan lain dan SASS ke Supabase telah dicipta, ia boleh memindahkan data vektor daripada Pinecone dan Qdrant ke Supabase dengan satu arahan, memperkemas aliran kerja dan meningkatkan kemudahalihan data merentas AI dan ML projek.

Anda boleh mengundi penyedia pangkalan data vektor lain untuk ditambahkan pada masa hadapan!

Lihat juga:

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

CI dikemas kini

Binaan Integrasi Berterusan untuk semua perpustakaan telah dinaik taraf dan dibuat lebih ketat (linters, dll).

Lihat juga:

  • 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

Macam-macam

  • Liputan unittest telah dipertingkatkan merentas semua repositori kod.
  • Kerumitan cyclomatic telah dianalisis dan dipertingkatkan dalam semua perpustakaan (mccabe, prospector).
  • Berbilang pembetulan untuk gaya kod, penamaan simbol, dokumentasi, ulasan dan rentetan dokumen.

Menyumbang

Jika anda ingin terlibat dalam menyumbang kepada perpustakaan pelanggan Python kami, lihat di sini untuk mendapatkan beberapa maklumat tentang cara menyumbang dan semak senarai isu terbuka untuk mendapatkan inspirasi tentang perkara yang perlu diusahakan.

Bermula

Dokumentasi penuh tersedia untuk perpustakaan Klien Supabase Python di tapak Supabase Docs.

Atas ialah kandungan terperinci Supabase Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah kaedah kelas dalam python Apakah kaedah kelas dalam python Aug 21, 2025 am 04:12 AM

Classmethodsinpythonareboundtotheclassandnottoinstances, membolehkanThemTobeCalledWithoutCreatingAnobject.1.theyaredefinedusingthe@Classmethoddecoratorandtakeclsasthefirstparameter, referringtotheclassitervarfe.2.TheycanCasteScess,

HDF5 Nama Dataset Konflik dan Nama Kumpulan: Penyelesaian dan Amalan Terbaik HDF5 Nama Dataset Konflik dan Nama Kumpulan: Penyelesaian dan Amalan Terbaik Aug 23, 2025 pm 01:15 PM

Artikel ini menyediakan penyelesaian terperinci dan amalan terbaik untuk masalah yang nama dataset bertentangan dengan nama kumpulan ketika mengendalikan fail HDF5 menggunakan perpustakaan H5PY. Artikel ini akan menganalisis punca konflik secara mendalam dan memberikan contoh kod untuk menunjukkan cara untuk menghindari dan menyelesaikan masalah tersebut dengan berkesan untuk memastikan bacaan dan penulisan fail HDF5 yang betul. Melalui artikel ini, pembaca akan dapat lebih memahami struktur fail HDF5 dan menulis lebih banyak kod H5PY yang mantap.

contoh giliran python asyncio contoh giliran python asyncio Aug 21, 2025 am 02:13 AM

Asyncio.queue adalah alat giliran untuk komunikasi yang selamat antara tugas -tugas asynchronous. 1. Pengeluar menambah data melalui Awaitqueue.put (item), dan pengguna menggunakan Awaitqueue.get () untuk mendapatkan data; 2. Untuk setiap item yang anda proses, anda perlu memanggil giliran.task_done () untuk menunggu giliran.join () untuk menyelesaikan semua tugas; 3. Gunakan tiada sebagai isyarat akhir untuk memberitahu pengguna untuk berhenti; 4 Apabila pengguna berganda, isyarat akhir perlu dihantar atau semua tugas telah diproses sebelum membatalkan tugas; 5. Giliran menyokong menetapkan kapasiti had maksimum, meletakkan dan mendapatkan operasi secara automatik menggantung dan tidak menyekat gelung acara, dan program akhirnya melewati Canc

Bagaimana untuk menggunakan ungkapan biasa dengan modul Re di Python? Bagaimana untuk menggunakan ungkapan biasa dengan modul Re di Python? Aug 22, 2025 am 07:07 AM

Ekspresi biasa dilaksanakan di Python melalui modul Re untuk mencari, memadankan dan memanipulasi rentetan. 1. Gunakan re.search () untuk mencari perlawanan pertama dalam keseluruhan rentetan, re.match () hanya sepadan pada permulaan rentetan; 2. Gunakan kurungan () untuk menangkap subkumpulan yang sepadan, yang boleh dinamakan untuk meningkatkan kebolehbacaan; 3. Re.findall () mengembalikan semua perlawanan yang tidak bertindih, dan re.finditer () mengembalikan iterator objek yang sepadan; 4. Re.sub () menggantikan teks yang sepadan dan menyokong penggantian fungsi dinamik; 5. Corak umum termasuk \ d, \ w, \ s, dan lain -lain, anda boleh menggunakan re.ignorecase, re.multiline, re.dotall, re re.

Cara Lulus Argumen Barisan Perintah ke Skrip di Python Cara Lulus Argumen Barisan Perintah ke Skrip di Python Aug 20, 2025 pm 01:50 PM

Penggunaan.ArgvforsimpleArentGumentAccess, whereagrumentemanmuallyhandledandnoautomaticvalidationorhelpispisprovided.2.useAragparseforrobustintinterfaces, asitsupportsautomatichelp, dyechecking, opsyenal

Cara Menggunakan Pembolehubah dan Jenis Data di Python Cara Menggunakan Pembolehubah dan Jenis Data di Python Aug 20, 2025 am 02:07 AM

VariablesinpythonarecreatedbyssigningavalueusingThe = operator, andDatatypessuchasint, float, str, bool, andnonetypedefinetheKindofdatabeingstored, withpythonbeingdynamicallytypecheckecheckecheckechechecharmartimeusingype ()

Penyelesaian untuk Penciptaan Jenis Dinamik dan Penyampaian Proses Multi-Proses Python Di Bawah Windows Penyelesaian untuk Penciptaan Jenis Dinamik dan Penyampaian Proses Multi-Proses Python Di Bawah Windows Aug 31, 2025 pm 06:54 PM

Artikel ini membincangkan masalah yang apabila menggunakan Python Multi-Process dalam persekitaran Windows, kelas yang dibuat secara dinamik tidak boleh disatukan dengan betul dan deserialized oleh proses kanak-kanak. Dengan menganalisis punca kesilapan, artikel ini menyediakan penyelesaian untuk memastikan kelas yang dibuat secara dinamik dapat ditakrifkan dalam proses induk dan digunakan dengan selamat dalam proses kanak -kanak, sambil mengelakkan kerugian prestasi yang disebabkan oleh penciptaan berulang.

Bagaimana untuk mengelakkan disekat semasa mengikis web dengan Python? Bagaimana untuk mengelakkan disekat semasa mengikis web dengan Python? Aug 16, 2025 am 09:54 AM

Toavoidgettingblockedwhilewebscrapingwithpython, usereAlisticRequestheaders, addrandomizeddelays, rotateipaddresseswithproxies, containsessions, hormatrobots.txt, anduseheadlessbrowsersshennerary, memastikanShicealhaviaviortommi

See all articles