«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Супабаза Python

Супабаза Python

Опубликовано 31 октября 2024 г.
Просматривать:114

Supabase Python

По мере роста сообщества Supabase растет и спрос на разнообразную коллекцию клиентских библиотек и SDK для конкретных платформ. Этот спрос по большей части удовлетворяется самим сообществом открытого исходного кода, которое в настоящее время поддерживает десятки библиотек.

⚡️ Подробнее о неделе запуска

Когда люди делают запросы к размещенному сервису Supabase, мы можем составить хорошее представление о том, насколько широко используются некоторые из этих библиотек, и когда конкретная библиотека достигает широкого распространения, нам имеет смысл добавить официальную поддержку для это. Примеры библиотек, совершивших переход от поддержки сообщества к официальной поддержке, включают supabase-flutter и supabase-swift.

Клиентские библиотеки Python всегда пользовались невероятной поддержкой сообщества, однако за последние полтора года мы стали свидетелями огромного всплеска их внедрения. Этому способствовало широкое распространение Supabase в сообществах искусственного интеллекта и машинного обучения, многие из которых являются заядлыми питонистами.

Итак, сегодня мы объявляем, что следующие клиентские библиотеки Python теперь официально поддерживаются на платформе Supabase:

  • супабаза-py
  • авторизация
  • хранилище-py
  • функции-py
  • realtime-py

supabase-py изначально был запущен сопровождающим lqmanh в сентябре 2020 года, и вскоре после этого к нему присоединились Fedden и J0 (которые впоследствии стали постоянными членами команды Supabase). В последние годы разработкой руководили Silentworks и Juancarlospaco, которые сыграли важную роль в достижении равенства возможностей с supabase-js.

Огромное спасибо всем, кто до сих пор внес свой вклад в создание клиентских библиотек, и, надеюсь, в будущем мы увидим больше библиотек сообщества, которые будут добиваться официальной поддержки.

Ниже приведен обзор некоторых последних функций, добавленных в коллекцию библиотек Python.

HTTP2 включен по умолчанию

Клиенты Supabase будут автоматически использовать HTTP 2.0, если он доступен по умолчанию, обеспечивая плавное повышение производительности существующих приложений.

Это улучшение реализовано полностью прозрачно и не требует внесения изменений в существующий код, но при этом потенциально обеспечивает значительное сокращение задержек и повышение производительности.

См. также:

  • https://github.com/supabase/functions-py/pull/115
  • https://github.com/supabase/auth-py/pull/534
  • https://github.com/supabase/postgrest-py/pull/462
  • https://github.com/supabase/storage-py/pull/271

Следуйте перенаправлениям по умолчанию

Клиенты Supabase теперь автоматически следуют всем перенаправлениям HTTP по умолчанию, что соответствует поведению клиентов Supabase на других языках программирования.

Это улучшение повышает согласованность всей экосистемы и упрощает обработку перенаправлений, уменьшая необходимость ручного вмешательства в распространенных сценариях, таких как изменение URL-адресов или балансировка нагрузки.

См. также:

  • https://github.com/supabase/postgrest-py/pull/449
  • https://github.com/supabase/functions-py/pull/107
  • https://github.com/supabase/storage-py/pull/257
  • https://github.com/supabase/auth-py/pull/511

Поддержка активности включена по умолчанию

Клиенты Supabase теперь по умолчанию автоматически включают поддерживающий активность HTTP-заголовок, который иногда отсутствовал, что устраняет это несоответствие в предыдущих версиях.

Это улучшение оптимизирует управление соединениями, потенциально снижает задержку и повышает производительность за счет поддержания постоянных соединений с сервером, что особенно полезно для приложений, выполняющих очень частые вызовы API.

Граничные функции

Добавлена ​​поддержка указания региона, в котором будет выполняться функция Edge (регион — это, по сути, физическое местоположение в мире).

См. также:

  • https://github.com/supabase/functions-py/pull/126

Реальное время V2

Realtime обновлен до версии 2.0 с множеством улучшений и исправлений, включая обновленные примеры и новые функции, связанные с присутствием (трансляция, подписка, отслеживание и т. д.).

См. также:

  • https://github.com/supabase/realtime-py/pull/139
  • https://github.com/supabase/realtime-py/pull/178

Улучшения аутентификации

В клиент Auth были добавлены анонимные логины, включая новое логическое свойство is_anonymous, добавленное к классу User, а также в клиент Auth были добавлены методы Sign_in_with_id_token() и Sign_in_with_sso(), среди множества других исправления ошибок.

См. также:

  • https://github.com/supabase/auth-py/pull/528
  • https://github.com/supabase/auth-py/pull/548
  • https://github.com/supabase/auth-py/pull/553
  • https://github.com/supabase/auth-py/pull/506

Postgrest цитирование/экранирование в запросах

Supabase улучшила безопасность запросов PostgreSQL, реализовав sanitize_param() для очистки параметров во внутренних SQL-запросах на стороне клиента, обеспечивая более безопасную обработку данных и выполнение запросов во всех операциях.

Работа с непроверенным SSL

Некоторым пользователям по какой-либо причине необходимо запускать клиенты Supabase с недействительным или непроверенным SSL (отладчики SSL/трассировщики/профилировщики/и т. д. в средах разработки), в конструкторы клиентов был добавлен новый необязательный логический аргумент с последующей передачей проверки =False позволяет ему работать с непроверенным SSL без предупреждений.

from postgrest import SyncPostgrestClient

url: str = "https://example.com"
h: dict = {"Custom-Header": "value"}

with SyncPostgrestClient(url, schema="pub", headers=h, verify = False) as client:
    session = client.session
    assert session.base_url == "https://example.com"

См. также:

  • https://github.com/supabase/functions-py/pull/106
  • https://github.com/supabase/storage-py/pull/256
  • https://github.com/supabase/auth-py/pull/506
  • https://github.com/supabase/postgrest-py/pull/448
  • https://github.com/supabase/supabase-py/pull/813

Закрыть сокет в реальном времени

Библиотека Supabase Realtime теперь включает новый метод close() для закрытия соединений сокетов.

Это дополнение предоставляет разработчикам более точный контроль над жизненным циклом соединения, позволяя при необходимости явно закрывать соединения сокетов.

import os
from realtime import AsyncRealtimeClient

def callback1(payload):
    print("Callback 1: ", payload)

SUPABASE_ID: str = os.environ.get("SUPABASE_ID")
API_KEY: str = os.environ.get("SUPABASE_KEY")

URL: str = f"wss://{SUPABASE_ID}.supabase.co/realtime/v1/websocket"

client = AsyncRealtimeClient(URL, API_KEY)
await client.connect()

channel_1 = s.channel("realtime:public:sample")
channel_1.subscribe().on_postgres_changes("INSERT", callback1)

await client.listen()
await client.close()

См. также:

  • https://github.com/supabase-community/realtime-py/pull/142

Таймауты пограничных функций

Тайм-ауты для пограничных функций теперь фиксированы, а долговыполняющиеся функции завершаются правильно, больше нет внутреннего тайм-аута на стороне клиента библиотеки, отключающего функции.

Теперь пользователи могут уверенно реализовывать более сложные операции в Edge Functions.

import os
from supabase import create_client
from supabase.lib.client_options import ClientOptions

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

options = ClientOptions(function_client_timeout = 15)
client = create_client(url, key, options)

client.functions.url = "http://127.0.0.1:54321/functions/v1/hello-world"
print(client.functions.invoke("hello"))

См. также:

  • https://github.com/supabase/functions-py/pull/120
  • https://github.com/supabase/supabase-py/pull/846

Новый инструмент Vec2pg для переноса данных в Supabase

Был создан новый простой и расширяемый инструмент CLI для переноса векторных данных из других сервисов и SASS в Supabase. Он может переносить векторные данные из Pinecone и Qdrant в Supabase с помощью одной команды, оптимизируя рабочие процессы и повышая переносимость данных между AI и ML. проекты.

Вы можете проголосовать за добавление других поставщиков векторных баз данных в будущем!

См. также:

  • https://github.com/supabase-community/vec2pg
  • https://github.com/supabase-community/vec2pg/pull/5
  • https://github.com/supabase-community/vec2pg/issues/6

Обновленный CI

Сборки непрерывной интеграции для всех библиотек были обновлены и стали более строгими (линтеры и т. д.).

См. также:

  • https://github.com/supabase/supabase-py/pull/772
  • https://github.com/supabase/supabase-py/pull/774
  • https://github.com/supabase/functions-py/pull/93
  • https://github.com/supabase/functions-py/pull/92
  • https://github.com/supabase/storage-py/pull/240
  • https://github.com/supabase/storage-py/pull/237
  • https://github.com/supabase/realtime-py/pull/132
  • https://github.com/supabase/realtime-py/pull/131
  • https://github.com/supabase/postgrest-py/pull/424
  • https://github.com/supabase/postgrest-py/pull/422
  • https://github.com/supabase/functions-py/pull/139
  • https://github.com/supabase/storage-py/pull/287
  • https://github.com/supabase/auth-py/pull/572
  • https://github.com/supabase/postgrest-py/pull/484
  • https://github.com/supabase/supabase-py/pull/887
  • https://github.com/supabase/realtime-py/pull/182

Разнообразный

  • Улучшено покрытие Unittests во всех репозиториях кода.
  • Цикломатическая сложность была проанализирована и улучшена во всех библиотеках (mccabe, prospector).
  • Множественные исправления стиля кода, именования символов, документации, комментариев и строк документации.

Содействие

Если вы хотите принять участие в разработке наших клиентских библиотек Python, посмотрите здесь некоторую информацию о том, как внести свой вклад, и проверьте список открытых проблем, чтобы узнать, над чем работать.

Начиная

Полная документация для клиентских библиотек Supabase Python доступна на сайте документации Supabase.

Заявление о выпуске Эта статья воспроизводится по адресу: https://dev.to/supabase/supabase-python-50j?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3