Supabase Python

Aug 31, 2024 am 06:04 AM

Supabase Python

À mesure que la communauté Supabase s'est développée, la demande pour une collection diversifiée de bibliothèques client et de SDK spécifiques au framework a également augmenté. Cette demande a été en grande partie satisfaite par la communauté open source elle-même, qui gère actuellement des dizaines de bibliothèques.

⚡️ En savoir plus sur la semaine de lancement

Lorsque des personnes font des demandes au service hébergé Supabase, nous sommes en mesure d'avoir une bonne idée de la manière dont certaines de ces bibliothèques sont largement utilisées, et lorsqu'une bibliothèque particulière est largement adoptée, il est logique pour nous d'ajouter un support officiel pour il. Des exemples de bibliothèques qui ont fait le saut du support communautaire au support officiel incluent supabase-flutter et supabase-swift.

Il y a toujours eu un soutien incroyable de la communauté pour les bibliothèques clientes Python, au cours de la dernière année et demie, mais nous avons constaté une énorme augmentation de leur adoption. Cela a été motivé par l'adoption généralisée de Supabase par la communauté de l'IA et du ML, dont beaucoup sont de fervents Pythonistas.

Aujourd'hui, nous annonçons que les bibliothèques clientes Python suivantes sont désormais officiellement prises en charge sur la plateforme Supabase :

  • supabase-py
  • auth-py
  • stockage-py
  • fonctions-py
  • temps réel-py

supabase-py a été initialement lancé par le responsable lqmanh en septembre 2020, et a été rejoint peu de temps après par fedden et J0 (qui sont ensuite devenus membres à plein temps de l'équipe Supabase). Ces dernières années, le développement a été piloté par Silentworks et Juancarlospaco, qui ont tous deux joué un rôle déterminant dans l'atteinte de la parité des fonctionnalités avec supabase-js.

Merci beaucoup à tous ceux qui ont contribué aux bibliothèques client jusqu'à présent et j'espère que nous verrons davantage de bibliothèques communautaires faire pression pour un support officiel à l'avenir.

Vous trouverez ci-dessous un aperçu de certaines fonctionnalités récentes ajoutées à la collection de bibliothèques Python.

HTTP2 activé par défaut

Les clients Supabase utiliseront automatiquement HTTP 2.0 lorsqu'il est disponible par défaut, offrant ainsi une amélioration transparente des performances de vos applications existantes.

Cette amélioration est mise en œuvre de manière totalement transparente et ne nécessite aucune modification de votre code existant, tout en offrant potentiellement une réduction significative de la latence et des améliorations de performances.

Voir aussi :

  • 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

Suivre les redirections par défaut

Les clients Supabase suivent désormais automatiquement toutes les redirections HTTP par défaut, ce qui s'aligne sur le comportement des clients Supabase dans d'autres langages de programmation.

Cette amélioration améliore la cohérence dans l'ensemble de l'écosystème et simplifie la gestion des redirections, réduisant ainsi le besoin d'intervention manuelle dans des scénarios courants tels que les modifications d'URL ou l'équilibrage de charge.

Voir aussi :

  • 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 activé par défaut

Les clients Supabase incluent désormais automatiquement par défaut un en-tête HTTP keep-alive, qui manquait parfois, corrigeant cette incohérence dans les versions précédentes.

Cette amélioration optimise la gestion des connexions, réduisant potentiellement la latence et améliorant les performances en maintenant des connexions persistantes avec le serveur, ce qui est particulièrement bénéfique pour les applications effectuant des appels API très fréquents.

Régions des fonctions Edge

Ajout de la prise en charge de la spécification de la région sur laquelle la fonction Edge s'exécutera (une région est essentiellement un emplacement physique dans le monde).

Voir aussi :

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

Temps réel V2

Realtime a été mis à niveau vers la version 2.0 avec de nombreuses améliorations et correctifs, y compris des exemples mis à jour et les nouvelles fonctionnalités liées à la présence (diffusion, abonnement, suivi, etc.).

Voir aussi :

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

Améliorations de l'authentification

Des connexions anonymes ont été ajoutées au client Auth, y compris une nouvelle propriété booléenne is_anonymous qui a été ajoutée à la classe User, ainsi que des méthodes sign_in_with_id_token() et sign_in_with_sso() ont été ajoutées au client Auth, parmi beaucoup d'autres. corrections de bugs.

Voir aussi :

  • 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 citant/échappant dans les requêtes

Supabase a amélioré la sécurité des requêtes PostgreSQL en implémentant sanitize_param() pour la vérification des paramètres dans les requêtes SQL internes côté client, garantissant ainsi une gestion des données et une exécution des requêtes plus sécurisées dans toutes les opérations.

Exécution avec SSL non vérifié

Certains utilisateurs doivent exécuter les clients Supabase avec un SSL invalide ou non vérifié pour une raison quelconque (débogueurs/traceurs/profileurs SSL/etc dans les environnements de développement), un nouvel argument booléen facultatif a été ajouté aux constructeurs des clients, puis en passant la vérification =False lui permet de s'exécuter avec SSL non vérifié sans avertissement.

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"

Voir aussi :

  • 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

Fermer le socket en temps réel

La bibliothèque Supabase Realtime inclut désormais une nouvelle méthode close() pour fermer les connexions socket.

Cet ajout offre aux développeurs un contrôle plus précis sur le cycle de vie des connexions, permettant la fermeture explicite des connexions socket en cas de besoin.

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

Voir aussi :

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

Délais d’expiration des fonctions Edge

Les délais d'attente pour les fonctions Edge sont désormais corrigés et les fonctions de longue durée se terminent correctement, il n'y a plus de délai d'attente interne côté client de bibliothèque coupant les fonctions.

Les utilisateurs peuvent désormais mettre en œuvre en toute confiance des opérations plus complexes dans 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"))

Voir aussi :

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

Nouvel outil Vec2pg pour migrer les données vers Supabase

Un nouvel outil CLI simple et extensible pour migrer les données vectorielles d'autres services et SASS vers Supabase a été créé. Il peut migrer les données vectorielles de Pinecone et Qdrant vers Supabase avec une seule commande, rationalisant les flux de travail et améliorant la portabilité des données à travers l'IA et le ML. projets.

Vous pouvez voter pour que d'autres fournisseurs de bases de données vectorielles soient ajoutés à l'avenir !

Voir aussi :

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

CI mis à jour

Les versions d'intégration continue pour toutes les bibliothèques ont été mises à niveau et rendues plus strictes (linters, etc.).

Voir aussi :

  • 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

Divers

  • La couverture des tests unitaires a été améliorée dans tous les référentiels de code.
  • La complexité cyclomatique a été analysée et améliorée dans toutes les bibliothèques (mccabe, prospector).
  • Plusieurs correctifs pour le style de code, la dénomination des symboles, la documentation, les commentaires et les docstrings.

Contribuer

Si vous souhaitez participer à la contribution à nos bibliothèques clientes Python, cliquez ici pour obtenir des informations sur la manière de contribuer, et consultez la liste des problèmes ouverts pour trouver de l'inspiration sur les sujets sur lesquels travailler.

Commencer

Une documentation complète est disponible pour les bibliothèques Supabase Python Client sur le site Supabase Docs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

SQLALCHEMY 2.0 AVERTISSEMENT AVERTISSEMENT ET CONNECTION Guide de résolution des problèmes de prolongation SQLALCHEMY 2.0 AVERTISSEMENT AVERTISSEMENT ET CONNECTION Guide de résolution des problèmes de prolongation Aug 05, 2025 pm 07:57 PM

Cet article vise à aider les débutants de Sqlalchemy à résoudre l'avertissement "supprimé en aval de warning" rencontré lors de l'utilisation de Create_Engine et l'erreur de clôture de connexion "ResourceCloseDerror" ultérieure. L'article expliquera la cause de cet avertissement en détail et fournira des étapes et des exemples de code spécifiques pour éliminer les problèmes d'avertissement et de résolution de la connexion pour vous assurer que vous pouvez interroger et faire fonctionner la base de données en douceur.

Python pour l'ingénierie des données etl Python pour l'ingénierie des données etl Aug 02, 2025 am 08:48 AM

Python est un outil efficace pour implémenter les processus ETL. 1. Extraction des données: les données peuvent être extraites des bases de données, des API, des fichiers et d'autres sources via des pandas, sqlalchemy, demandes et autres bibliothèques; 2. Conversion des données: utilisez des pandas pour le nettoyage, la conversion de type, l'association, l'agrégation et d'autres opérations pour assurer la qualité des données et optimiser les performances; 3. Chargement des données: utilisez la méthode Pandas To_SQL ou le SDK de la plate-forme cloud pour écrire des données sur le système cible, faire attention aux méthodes d'écriture et au traitement par lots; 4. Recommandations d'outils: Air Flow, Dagster, Prefect sont utilisés pour la planification et la gestion de processus, combinant des alarmes de journal et des environnements virtuels pour améliorer la stabilité et la maintenabilité.

Comment automatiser la saisie de données d'Excel à un formulaire Web avec Python? Comment automatiser la saisie de données d'Excel à un formulaire Web avec Python? Aug 12, 2025 am 02:39 AM

La méthode de remplissage des données Excel dans les formulaires Web à l'aide de Python est: utilisez d'abord des pandas pour lire les données Excel, puis utilisez le sélénium pour contrôler le navigateur pour remplir et soumettre automatiquement le formulaire; Les étapes spécifiques incluent l'installation de bibliothèques Pandas, OpenPyxl et Selenium, en téléchargeant le pilote de navigateur correspondant, en utilisant des pandas pour lire le nom, le courrier électronique, le téléphone et d'autres champs dans le fichier data.xlsx, le lancement du navigateur via le sélénium pour ouvrir la page Web cible, localiser les éléments de formulaire et remplir le traitement de données, en utilisant le formulaire Web pour traiter le contenu dynamique, ajouter le contenu de la charge dynamique, ajouter un traitement exception et traiter toutes les lignes de données dans une boucle.

Python Pandas Styling Dataframe Exemple Python Pandas Styling Dataframe Exemple Aug 04, 2025 pm 01:43 PM

L'utilisation de pandasstyling dans Jupyternotebook peut réaliser le bel affichage de DataFrame. 1. Utilisez Highlight_max et Highlight_min pour mettre en évidence la valeur maximale (vert) et la valeur minimale (rouge) de chaque colonne; 2. Ajouter la couleur d'arrière-plan du gradient (comme le blues ou les rouges) à la colonne numérique via background_gradient pour afficher visuellement la taille des données; 3. Fonction personnalisée Color_score combinée avec ApplyMap pour définir des couleurs de texte pour différents intervalles fractionnaires (≥90 vert, 80 ~ 89 orange, 60 ~ 79 rouge,

Comment exécuter des requêtes SQL dans Python? Comment exécuter des requêtes SQL dans Python? Aug 02, 2025 am 01:56 AM

Installer le pilote de base de données correspondant; 2. Utilisez Connect () pour se connecter à la base de données; 3. Créez un objet de curseur; 4. Utilisez EXECUTE () ou Execumany () pour exécuter SQL et utiliser une requête paramétrée pour empêcher l'injection; 5. Utilisez fetchall (), etc. pour obtenir des résultats; 6. commit () est requis après modification; 7. Enfin, fermez la connexion ou utilisez un gestionnaire de contexte pour le gérer automatiquement; Le processus complet garantit que les opérations SQL sont sûres et efficaces.

Comment créer un environnement virtuel à Python Comment créer un environnement virtuel à Python Aug 05, 2025 pm 01:05 PM

Pour créer un environnement virtuel Python, vous pouvez utiliser le module VENV. Les étapes sont: 1. Entrez le répertoire de projet pour exécuter l'environnement Python-Mvenvenv pour créer l'environnement; 2. Utilisez SourceEnv / Bin / Activer sur Mac / Linux et Env \ Scripts \ Activate sur Windows; 3. Utilisez le package d'installation PiPinstall, PipFreeze> exigence.txt pour exporter les dépendances; 4. Veillez à éviter de soumettre l'environnement virtuel à GIT et confirmez qu'il est dans le bon environnement pendant l'installation. Les environnements virtuels peuvent isoler les dépendances du projet pour prévenir les conflits, en particulier adaptés au développement multi-projets, et les éditeurs tels que PyCharm ou VScode sont également

Comment partager des données entre plusieurs processus dans Python? Comment partager des données entre plusieurs processus dans Python? Aug 02, 2025 pm 01:15 PM

Utilisez le multiprocessement.queue pour transmettre des données en toute sécurité entre plusieurs processus, adaptés aux scénarios de plusieurs producteurs et consommateurs; 2. Utilisez le multiprocessement.Pipe pour atteindre une communication bidirectionnelle à grande vitesse entre deux processus, mais uniquement pour les connexions à deux points; 3. Utilisez la valeur et le tableau pour stocker des types de données simples dans la mémoire partagée et doivent être utilisés avec le verrouillage pour éviter les conditions de concurrence; 4. Utiliser Manager pour partager des structures de données complexes telles que les listes et les dictionnaires, qui sont très flexibles mais ont de faibles performances, et conviennent aux scénarios avec des états partagés complexes; Les méthodes appropriées doivent être sélectionnées en fonction de la taille des données, des exigences de performance et de la complexité. La file d'attente et le gestionnaire conviennent le plus aux débutants.

Comment implémenter une structure de données de pile à l'aide d'une liste dans Python? Comment implémenter une structure de données de pile à l'aide d'une liste dans Python? Aug 03, 2025 am 06:45 AM

Pythonlistscani implémentation make ajout () Penouspop () popoperations.1.USEAPPEND () Two -celief StoteTopofThestack.2.USEP OP () ToreMoveanDreturnTeTop élément, assurant à cocheterthestackisNotEmptoavoidIndexerror.3

See all articles