Maison >développement back-end >Tutoriel Python >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 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.
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 :
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 :
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.
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 :
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 :
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 :
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.
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 :
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 :
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 :
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 :
Les versions d'intégration continue pour toutes les bibliothèques ont été mises à niveau et rendues plus strictes (linters, etc.).
Voir aussi :
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.
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!