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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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 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é.

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.

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,

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.

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

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.

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