Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
supabase-py
Python client for Supabase
git clone https://github.com/supabase/supabase-py.git
cd supabase-py
We recommend activating your virtual environment. For example, we like poetry
and conda
! Click here for more about Python virtual environments and working with conda and poetry.
Using venv (Python 3 built-in):
python3 -m venv env
source env/bin/activate # On Windows, use .\env\Scripts\activate
Using conda:
conda create --name supabase-py
conda activate supabase-py
Install the package (for Python >= 3.9):
# with pip
pip install supabase
# with conda
conda install -c conda-forge supabase
You can also install locally after cloning this repo. Install Development mode with pip install -e
, which makes it editable, so when you edit the source code the changes will be reflected in your python module.
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.
user = supabase.auth.sign_up({ "email": users_email, "password": users_password })
user = supabase.auth.sign_in_with_password({ "email": users_email, "password": users_password })
data = supabase.table("countries").insert({"name":"Germany"}).execute()
# Assert we pulled real data.
assert len(data.data) > 0
data = supabase.table("countries").select("*").eq("country", "IL").execute()
# Assert we pulled real data.
assert len(data.data) > 0
data = supabase.table("countries").update({"country": "Indonesia", "capital_city": "Jakarta"}).eq("id", 1).execute()
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
data = supabase.table("countries").delete().eq("id", 1).execute()
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"))
bucket_name: str = "photos"
data = supabase.storage.from_(bucket_name).download("photo1.png")
bucket_name: str = "photos"
new_file = getUserFile()
data = supabase.storage.from_(bucket_name).upload("/user1/profile.png", new_file)
bucket_name: str = "photos"
data = supabase.storage.from_(bucket_name).remove(["old_photo.png", "image5.jpg"])
bucket_name: str = "charts"
data = supabase.storage.from_(bucket_name).list()
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)
Wrap Postgrest-py
sanitize_param()
to sanitize inputs.verify=False
.Wrap Realtime-py
close()
method to close a socket.Wrap auth-py
verifyOTP
instead.is_anonymous
boolean property.sign_in_with_id_token()
method.sign_in_with_sso()
method.verify=False
.Wrap storage-py
verify=False
.Wrap functions-py
verify=False
.django-supabase-postgrest
(external to supabase-py)Contributing to the Python libraries are a great way to get involved with the Supabase community. Reach out to us on Discord or on our Github Discussions page if you want to get involved.
Currently, the test suites are in a state of flux. We are expanding our clients' tests to ensure things are working, and for now can connect to this test instance, which is populated with the following table:
The above test database is a blank supabase instance that has populated the countries
table with the built-in countries script that can be found in the supabase UI. You can launch the test scripts and point to the above test database by running
./test.sh
FAQs
Supabase client for Python.
We found that supabase demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.