| ======================== | |
| CODE SNIPPETS | |
| ======================== | |
| TITLE: Install Supabase Python Client via pip | |
| DESCRIPTION: This snippet shows how to install the `supabase-py` package using pip, the Python package installer. This is the standard way to install Python libraries from PyPI. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_3 | |
| LANGUAGE: bash | |
| CODE: | |
| ``` | |
| # with pip | |
| pip install supabase | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Install Supabase Python Client in Editable Mode | |
| DESCRIPTION: This snippet explains how to install the `supabase-py` package locally in 'editable' mode using `pip install -e`. This is useful for development, as changes made to the source code are immediately reflected in the installed package without reinstallation. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_5 | |
| LANGUAGE: bash | |
| CODE: | |
| ``` | |
| pip install -e | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Install Supabase Python Client via Conda | |
| DESCRIPTION: This snippet demonstrates how to install the `supabase-py` package using Conda from the `conda-forge` channel. This method is suitable for users who prefer Conda for package management. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_4 | |
| LANGUAGE: bash | |
| CODE: | |
| ``` | |
| # with conda | |
| conda install -c conda-forge supabase | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Initialize Supabase Python Client | |
| DESCRIPTION: This Python snippet demonstrates how to initialize the Supabase client using the `create_client` function. It retrieves the Supabase URL and API key from environment variables, which is a recommended practice for security. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_7 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| 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) | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Sign Up a New User with Supabase Auth | |
| DESCRIPTION: This Python snippet shows how to register a new user with an email and password using the Supabase authentication service. The `sign_up` method returns the user object upon successful creation. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_8 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| user = supabase.auth.sign_up({ "email": users_email, "password": users_password }) | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Clone Supabase Python Client Repository | |
| DESCRIPTION: This snippet demonstrates how to clone the `supabase-py` GitHub repository to your local machine and navigate into its directory, which is the first step for local development. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_0 | |
| LANGUAGE: bash | |
| CODE: | |
| ``` | |
| git clone https://github.com/supabase/supabase-py.git | |
| cd supabase-py | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Create and Activate Python Virtual Environment (venv) | |
| DESCRIPTION: This snippet shows how to create and activate a Python virtual environment using the built-in `venv` module. A virtual environment isolates project dependencies, preventing conflicts with other Python projects. The activation command differs slightly for Windows. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_1 | |
| LANGUAGE: bash | |
| CODE: | |
| ``` | |
| python3 -m venv env | |
| source env/bin/activate # On Windows, use .\env\Scripts\activate | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Execute Supabase-py Test Suite | |
| DESCRIPTION: This command runs the test scripts for the Supabase Python client library. It connects to a pre-populated test database instance, which includes a `countries` table. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_22 | |
| LANGUAGE: bash | |
| CODE: | |
| ``` | |
| ./test.sh | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Create and Activate Conda Environment | |
| DESCRIPTION: This snippet demonstrates how to create and activate a dedicated Conda environment for the `supabase-py` project. Conda is a popular package, dependency, and environment management system for multiple languages. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_2 | |
| LANGUAGE: bash | |
| CODE: | |
| ``` | |
| conda create --name supabase-py | |
| conda activate supabase-py | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Set Supabase Environment Variables | |
| DESCRIPTION: This snippet shows how to set the `SUPABASE_URL` and `SUPABASE_KEY` environment variables in your shell. These variables are crucial for the Supabase client to connect to your specific Supabase instance securely. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_6 | |
| LANGUAGE: bash | |
| CODE: | |
| ``` | |
| export SUPABASE_URL="my-url-to-my-awesome-supabase-instance" | |
| export SUPABASE_KEY="my-supa-dupa-secret-supabase-api-key" | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Sign In an Existing User with Supabase Auth | |
| DESCRIPTION: This Python snippet demonstrates how to authenticate an existing user using their email and password via the Supabase authentication service. The `sign_in_with_password` method returns the authenticated user object. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_9 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| user = supabase.auth.sign_in_with_password({ "email": users_email, "password": users_password }) | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Supabase Python Storage Bucket API Module Definition | |
| DESCRIPTION: This entry specifies the API documentation for the `supabase.lib.storage.storage_bucket_api` module. It utilizes Sphinx's `automodule` directive to automatically generate documentation for all public members and display the inheritance hierarchy of classes within the module. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/docs/storage_bucket.rst#_snippet_0 | |
| LANGUAGE: APIDOC | |
| CODE: | |
| ``` | |
| .. automodule:: supabase.lib.storage.storage_bucket_api | |
| :members: | |
| :show-inheritance: | |
| ``` | |
| ---------------------------------------- | |
| TITLE: List Files in Supabase Storage Bucket | |
| DESCRIPTION: This Python snippet demonstrates how to list all files within a specified Supabase Storage bucket. It provides an overview of the bucket's contents. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_19 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| bucket_name: str = "charts" | |
| data = supabase.storage.from_(bucket_name).list() | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Download File from Supabase Storage | |
| DESCRIPTION: This Python snippet demonstrates how to download a file from a specified Supabase Storage bucket. It uses the `download` method, providing the file path within the bucket. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_16 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| bucket_name: str = "photos" | |
| data = supabase.storage.from_(bucket_name).download("photo1.png") | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Select Data from Supabase Table | |
| DESCRIPTION: This Python snippet demonstrates how to query and retrieve data from a Supabase table. It uses the `select` method to specify columns (or all with `*`) and `eq` to filter results based on a condition, followed by `execute()`. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_11 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| data = supabase.table("countries").select("*").eq("country", "IL").execute() | |
| # Assert we pulled real data. | |
| assert len(data.data) > 0 | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Supabase Python Query Builder Module API Reference | |
| DESCRIPTION: This entry documents the `supabase.lib.query_builder` module using Sphinx's `automodule` directive. This directive automatically generates comprehensive API documentation, including all public members and the inheritance hierarchy for the specified Python module. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/docs/query_builder.rst#_snippet_0 | |
| LANGUAGE: APIDOC | |
| CODE: | |
| ``` | |
| .. automodule:: supabase.lib.query_builder | |
| :members: | |
| :show-inheritance: | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Upload File to Supabase Storage | |
| DESCRIPTION: This Python snippet shows how to upload a new file to a Supabase Storage bucket. It specifies the destination path within the bucket and the file content to be uploaded. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_17 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| bucket_name: str = "photos" | |
| new_file = getUserFile() | |
| data = supabase.storage.from_(bucket_name).upload("/user1/profile.png", new_file) | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Insert Data into Supabase Table | |
| DESCRIPTION: This Python snippet illustrates how to insert a new row into a specified Supabase table. It uses the `insert` method, chaining it with `execute()` to perform the operation and retrieve the result. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_10 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| data = supabase.table("countries").insert({"name":"Germany"}).execute() | |
| # Assert we pulled real data. | |
| assert len(data.data) > 0 | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Invoke Supabase Edge Function | |
| DESCRIPTION: This Python snippet shows how to call a Supabase Edge Function by its name using the `invoke` method. It includes error handling for `FunctionsRelayError` and `FunctionsHttpError`, demonstrating how to catch and print function-related exceptions. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_15 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| 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")) | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Move and Rename Files in Supabase Storage | |
| DESCRIPTION: This Python snippet shows how to move a file from one path to another within a Supabase Storage bucket, effectively allowing for renaming or reorganizing files. It requires both the old and new file paths. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_20 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| 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) | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Proper Supabase Client Shutdown in Python | |
| DESCRIPTION: To ensure the Supabase client terminates correctly and to prevent resource leaks, you must explicitly call the `sign_out()` method on the `auth` object of your client instance. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_21 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| client.auth.sign_out() | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Upsert Data into Supabase Table | |
| DESCRIPTION: This Python snippet demonstrates how to perform an 'upsert' operation, which inserts a new row if it doesn't exist or updates it if it does. It's useful for handling data with potential duplicate keys gracefully. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_13 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| 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 | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Update Data in Supabase Table | |
| DESCRIPTION: This Python snippet shows how to update existing rows in a Supabase table. It uses the `update` method with a dictionary of new values and `eq` to specify which rows to update based on a condition. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_12 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| data = supabase.table("countries").update({"country": "Indonesia", "capital_city": "Jakarta"}).eq("id", 1).execute() | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Remove Files from Supabase Storage | |
| DESCRIPTION: This Python snippet illustrates how to delete one or more files from a Supabase Storage bucket. It accepts a list of file paths to be removed. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_18 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| bucket_name: str = "photos" | |
| data = supabase.storage.from_(bucket_name).remove(["old_photo.png", "image5.jpg"]) | |
| ``` | |
| ---------------------------------------- | |
| TITLE: Delete Data from Supabase Table | |
| DESCRIPTION: This Python snippet illustrates how to delete rows from a Supabase table. It uses the `delete` method combined with `eq` to specify the criteria for deletion. | |
| SOURCE: https://github.com/supabase/supabase-py/blob/main/README.md#_snippet_14 | |
| LANGUAGE: python | |
| CODE: | |
| ``` | |
| data = supabase.table("countries").delete().eq("id", 1).execute() | |
| ``` | 
