supabase-py
Python client for Supabase
- Documentation: supabase.com/docs
- Usage:
PyPI installation
Install the package (for Python >= 3.9):
# with pip
pip install supabase
# with uv
uv add supabase
# with conda
conda install -c conda-forge supabase
Usage
Set your Supabase environment variables in a dotenv file, or using the shell:
export SUPABASE_URL="my-url-to-my-awesome-supabase-instance"
export SUPABASE_KEY="my-supa-dupa-secret-supabase-api-key"
Init client:
import os
from supabase import create_client, Client
url: str = os.environ.get("SUPABASE_URL")
key: str = os.environ.get("SUPABASE_KEY")
supabase: Client = create_client(url, key)
Use the supabase client to interface with your database.
Sign-up
user = supabase.auth.sign_up({ "email": users_email, "password": users_password })
Sign-in
user = supabase.auth.sign_in_with_password({ "email": users_email, "password": users_password })
Insert Data
data = supabase.table("countries").insert({"name":"Germany"}).execute()
# Assert we pulled real data.
assert len(data.data) > 0
Select Data
data = supabase.table("countries").select("*").eq("country", "IL").execute()
# Assert we pulled real data.
assert len(data.data) > 0
Update Data
data = supabase.table("countries").update({"country": "Indonesia", "capital_city": "Jakarta"}).eq("id", 1).execute()
Update data with duplicate keys
country = {
"country": "United Kingdom",
"capital_city": "London" # This was missing when it was added
}
data = supabase.table("countries").upsert(country).execute()
assert len(data.data) > 0
Delete Data
data = supabase.table("countries").delete().eq("id", 1).execute()
Call Edge Functions
def test_func():
try:
resp = supabase.functions.invoke("hello-world", invoke_options={'body':{}})
return resp
except (FunctionsRelayError, FunctionsHttpError) as exception:
err = exception.to_dict()
print(err.get("message"))
Download a file from Storage
bucket_name: str = "photos"
data = supabase.storage.from_(bucket_name).download("photo1.png")
Upload a file
bucket_name: str = "photos"
new_file = getUserFile()
data = supabase.storage.from_(bucket_name).upload("/user1/profile.png", new_file)
Remove a file
bucket_name: str = "photos"
data = supabase.storage.from_(bucket_name).remove(["old_photo.png", "image5.jpg"])
List all files
bucket_name: str = "charts"
data = supabase.storage.from_(bucket_name).list()
Move and rename files
bucket_name: str = "charts"
old_file_path: str = "generic/graph1.png"
new_file_path: str = "important/revenue.png"
data = supabase.storage.from_(bucket_name).move(old_file_path, new_file_path)
Important: Proper Client Shutdown
To ensure the Supabase client terminates correctly and to prevent resource leaks, you must explicitly call:
client.auth.sign_out()
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
supabase-2.31.0.tar.gz
(9.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
supabase-2.31.0-py3-none-any.whl
(16.7 kB
view details)
File details
Details for the file supabase-2.31.0.tar.gz.
File metadata
- Download URL: supabase-2.31.0.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3467b09d00482b9a0138235bdbde7a350426f93cf2a1342372eaddfc669f1206
|
|
| MD5 |
f75cca392d29c3179d469443809329d4
|
|
| BLAKE2b-256 |
fe8e54a2f950629689b1613434a61fc3bff5f92f84ba6b20213f5b2add05c1bb
|
File details
Details for the file supabase-2.31.0-py3-none-any.whl.
File metadata
- Download URL: supabase-2.31.0-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25f2a99207a75f2d9377e2332783b4389cf56b02cbebdaf0c1743112dcbb704e
|
|
| MD5 |
d4265fd9771233cfce355f70de0635a4
|
|
| BLAKE2b-256 |
95065e6f4bf89dedadf81f893832115c1866da1aa093142c9989c2818780dae3
|