Skip to main content

supabase-py with async synax

Project description

supabase-py-async

License: MIT CI Python Version

Downloads Open Issues Pull Requests Contributors Code Size

Supabase client for Python with Async support. This project is an asynchronous variant of supabase-py and mirrors the design of supabase-js.

Status

Status Stability Goal
🚧 Alpha We are testing Supabase with a closed set of customers
🚧 Public Alpha Anyone can sign up over at app.supabase.io. But go easy on us, there are a few kinks.
Public Beta Stable enough for most non-enterprise use-cases
Public Production-ready

Installation

PyPi Installation

To install the package for Python 3.7 and above:

# with pip
pip install supabase-py-async

# with poetry
poetry add supabase-py-async

Local Installation

For local development, clone this repo and install in Development mode with pip install -e.

Async Usage

It's usually best practice to set your api key environment variables in some way that version control doesn't track them, e.g don't put them in your python modules! Set the key and url for the supabase instance in the shell, or better yet, use a dotenv file. Heres how to set the variables in the shell.

export SUPABASE_URL="my-url-to-my-awesome-supabase-instance"
export SUPABASE_KEY="my-supa-dupa-secret-supabase-api-key"

This client is designed to be used asynchronously. Below are some examples on how to use it.

Initialize Supabase Client

import os
from supabase_py_async import create_client, AsyncClient

url: str = os.environ.get("SUPABASE_URL")

key: str = os.environ.get("SUPABASE_KEY")

supabase: AsyncClient = create_client(url, key)

Async Data Operations

async def data_operations():
  # Insert
  insert_data = await supabase.table("countries").insert({"name": "Germany"}).execute()

  # Select
  select_data = await supabase.table("countries").select("*").eq("country", "IL").execute()

  # Update
  update_data = await supabase.table("countries").update({"country": "Indonesia", "capital_city": "Jakarta"}).eq("id",
                                                                                                                 1).execute()

  # Delete
  delete_data = await supabase.table("countries").delete().eq("id", 1).execute()


asyncio.run(data_operations())

Async Authentication

async def async_auth():
  random_email: str = "email@example.com"
  random_password: str = "supersecurepassword"
  user = await supabase.auth.sign_up(email=random_email, password=random_password)


asyncio.run(async_auth())

See Supabase Docs for a full list of examples.

Contributions

Feel free to contribute to this project. We are in the early stages and appreciate any help.

Note

the README.md file is generated by GPT4 from the supabase-py's README.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

supabase_py_async-2.0.4.tar.gz (15.0 kB view hashes)

Uploaded Source

Built Distribution

supabase_py_async-2.0.4-py3-none-any.whl (10.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page