diff options
author | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
---|---|---|
committer | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
commit | 4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch) | |
tree | ee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/supabase-2.14.0.dist-info/METADATA | |
parent | cc961e04ba734dd72309fb548a2f97d67d578813 (diff) | |
download | gn-ai-master.tar.gz |
Diffstat (limited to '.venv/lib/python3.12/site-packages/supabase-2.14.0.dist-info/METADATA')
-rw-r--r-- | .venv/lib/python3.12/site-packages/supabase-2.14.0.dist-info/METADATA | 319 |
1 files changed, 319 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/supabase-2.14.0.dist-info/METADATA b/.venv/lib/python3.12/site-packages/supabase-2.14.0.dist-info/METADATA new file mode 100644 index 00000000..8e00a9e3 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/supabase-2.14.0.dist-info/METADATA @@ -0,0 +1,319 @@ +Metadata-Version: 2.1 +Name: supabase +Version: 2.14.0 +Summary: Supabase client for Python. +Home-page: https://github.com/supabase/supabase-py +License: MIT +Author: Joel Lee +Author-email: joel@joellee.org +Requires-Python: >=3.9,<4.0 +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Requires-Dist: gotrue (>=2.11.0,<3.0.0) +Requires-Dist: httpx (>=0.26,<0.29) +Requires-Dist: postgrest (>=0.19,<0.20) +Requires-Dist: realtime (>=2.4.0,<2.5.0) +Requires-Dist: storage3 (>=0.10,<0.12) +Requires-Dist: supafunc (>=0.9,<0.10) +Project-URL: Documentation, https://github.com/supabase/supabase-py +Project-URL: Repository, https://github.com/supabase/supabase-py +Description-Content-Type: text/markdown + +# `supabase-py` + +Python client for [Supabase](https://supabase.com) + +- Documentation: [supabase.com/docs](https://supabase.com/docs/reference/python/introduction) +- Usage: + - [GitHub OAuth in your Python Flask app](https://supabase.com/blog/oauth2-login-python-flask-apps) + - [Python data loading with Supabase](https://supabase.com/blog/loading-data-supabase-python) + +> [!NOTE] +> Do you want to help us shape the future of this library? [We're hiring](https://jobs.ashbyhq.com/supabase/85d07345-47c6-4980-82e2-57782f83ab4e). + +## Set up a Local Development Environment + +### Clone the Repository + +```bash +git clone https://github.com/supabase/supabase-py.git +cd supabase-py +``` + +### Create and Activate a Virtual Environment + +We recommend activating your virtual environment. For example, we like `poetry` and `conda`! Click [here](https://docs.python.org/3/library/venv.html) for more about Python virtual environments and working with [conda](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#activating-an-environment) and [poetry](https://python-poetry.org/docs/basic-usage/). + +Using venv (Python 3 built-in): + +```bash +python3 -m venv env +source env/bin/activate # On Windows, use .\env\Scripts\activate +``` + +Using conda: + +```bash +conda create --name supabase-py +conda activate supabase-py +``` + +### PyPi installation + +Install the package (for Python >= 3.9): + +```bash +# with pip +pip install supabase + +# with conda +conda install -c conda-forge supabase +``` + +### Local installation + +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. + +## Usage + +Set your Supabase environment variables in a dotenv file, or using the shell: + +```bash +export SUPABASE_URL="my-url-to-my-awesome-supabase-instance" +export SUPABASE_KEY="my-supa-dupa-secret-supabase-api-key" +``` + +Init client: + +```python +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 + +```python +user = supabase.auth.sign_up({ "email": users_email, "password": users_password }) +``` + +### Sign-in + +```python +user = supabase.auth.sign_in_with_password({ "email": users_email, "password": users_password }) +``` + +### Insert Data + +```python +data = supabase.table("countries").insert({"name":"Germany"}).execute() + +# Assert we pulled real data. +assert len(data.data) > 0 +``` + +### Select Data + +```python +data = supabase.table("countries").select("*").eq("country", "IL").execute() + +# Assert we pulled real data. +assert len(data.data) > 0 +``` + +### Update Data + +```python +data = supabase.table("countries").update({"country": "Indonesia", "capital_city": "Jakarta"}).eq("id", 1).execute() +``` + +### Update data with duplicate keys + +```python +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 + +```python +data = supabase.table("countries").delete().eq("id", 1).execute() +``` + +### Call Edge Functions + +```python +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 + +```python +bucket_name: str = "photos" + +data = supabase.storage.from_(bucket_name).download("photo1.png") +``` + +### Upload a file + +```python +bucket_name: str = "photos" +new_file = getUserFile() + +data = supabase.storage.from_(bucket_name).upload("/user1/profile.png", new_file) +``` + +### Remove a file + +```python +bucket_name: str = "photos" + +data = supabase.storage.from_(bucket_name).remove(["old_photo.png", "image5.jpg"]) +``` + +### List all files + +```python +bucket_name: str = "charts" + +data = supabase.storage.from_(bucket_name).list() +``` + +### Move and rename files + +```python +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) +``` + + +## Roadmap + +- [x] Wrap [Postgrest-py](https://github.com/supabase/postgrest-py/) + - [x] Add remaining filters + - [x] Add support for EXPLAIN + - [ ] Add proper error handling + - [x] Use `sanitize_param()` to sanitize inputs. + - [x] Fix client-side timeouts for long running queries. + - [x] Enable HTTP2 by default. + - [x] Enable follow redirects by default. + - [x] Enable keep-alive by default. + - [x] Enable running with unverified SSL via `verify=False`. + - [x] Add Stalebot. + - [x] Update CI (linters, etc). + - [x] Check cyclomatic complexity and fix if needed (mccabe, prospector). + +- [ ] Wrap [Realtime-py](https://github.com/supabase/realtime-py) + - [ ] Integrate with Supabase-py + - [ ] Support WALRUS + - [ ] Support broadcast (to check if already supported) + - [x] Add `close()` method to close a socket. + - [x] Add Stalebot. + - [x] Update CI (linters, etc). + - [x] Check cyclomatic complexity and fix if needed (mccabe, prospector). + +- [x] Wrap [auth-py](https://github.com/supabase/auth-py) + - [x] Remove references to GoTrue-js v1 and do a proper release + - [ ] Test and document common flows (e.g. sign in with OAuth, sign in with OTP) + - [ ] Add MFA methods + - [x] Add SSO methods + - [x] Add Proof Key for Code Exchange (PKCE) methods. Unlike the JS library, we do not currently plan to support Magic Link (PKCE). Please use the [token hash](https://supabase.com/docs/guides/auth/server-side/email-based-auth-with-pkce-flow-for-ssr#create-api-endpoint-for-handling-tokenhash) in tandem with `verifyOTP` instead. + - [x] Add `is_anonymous` boolean property. + - [x] Add `sign_in_with_id_token()` method. + - [x] Add `sign_in_with_sso()` method. + - [x] Enable HTTP2 by default. + - [x] Enable follow redirects by default. + - [x] Enable keep-alive by default. + - [x] Enable running with unverified SSL via `verify=False`. + - [x] Add Stalebot. + - [x] Update CI (linters, etc). + - [x] Check cyclomatic complexity and fix if needed (mccabe, prospector). + +- [x] Wrap [storage-py](https://github.com/supabase/storage-py) + - [ ] Support resumable uploads + - [x] Setup testing environment + - [x] Fix client-side timeouts for long running operations. + - [x] Enable HTTP2 by default. + - [x] Enable follow redirects by default. + - [x] Enable keep-alive by default. + - [x] Enable running with unverified SSL via `verify=False`. + - [x] Add Stalebot. + - [x] Update CI (linters, etc). + - [x] Check cyclomatic complexity and fix if needed (mccabe, prospector). + - [x] Document how to properly upload different file types (e.g. jpeg/png and download it) + +- [x] Wrap [functions-py](https://github.com/supabase/functions-py) + - [x] Fix client-side timeouts for long running functions. + - [x] Enable HTTP2 by default. + - [x] Enable follow redirects by default. + - [x] Enable keep-alive by default. + - [x] Enable running with unverified SSL via `verify=False`. + - [x] Add Regions support. + - [x] Add Stalebot. + - [x] Update CI (linters, etc). + - [x] Check cyclomatic complexity and fix if needed (mccabe, prospector). + + +### Overall Tasks + +- [x] Add async support across the entire library +- [ ] Add FastAPI helper library (external to supabase-py) +- [ ] Add `django-supabase-postgrest` (external to supabase-py) + +## Contributing + +Contributing to the Python libraries are a great way to get involved with the Supabase community. Reach out to us on [Discord](https://discord.supabase.com) or on our [Github Discussions](https://github.com/orgs/supabase/discussions) page if you want to get involved. + +### Running Tests + +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: + +<p align="center"> + <img width="720" height="481" src="https://i.ibb.co/Bq7Kdty/db.png"> +</p> + +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 + +```bash +./test.sh +``` + +## Badges + +[](https://opensource.org/licenses/MIT) +[](https://github.com/supabase/supabase-py/actions/workflows/ci.yml) +[](https://pypi.org/project/supabase) +[](https://pypi.org/project/supabase) +[](https://codecov.io/gh/supabase/supabase-py) +[](https://github.com/supabase/supabase-py/commits) +[](https://github.com/supabase/supabase-py/commits) +[](https://github.com/supabase/supabase-py/stargazers) +[](https://github.com/supabase/supabase-py/network/members) +[](https://github.com/supabase/supabase-py) +[](https://github.com/supabase/supabase-py/graphs/contributors) + |