Embar — это новый ORM для Python с сильной типизацией и SQL‑образным синтаксисом, вдохновлённый Drizzle и рассчитанный на Python 3.14 и выше.
Embar ставит целью сделать работу с БД в Python максимально типобезопасной: ваш type checker знает валидные аргументы и точные типы результатов, а LSP подсказывает, как собрать нужный запрос. Запросы пишутся в SQL‑подобном стиле, но при этом вы всегда можете просто использовать сырой SQL, когда нужно.
Сейчас Embar поддерживает три клиента: SQLite 3 через стандартную библиотеку, Postgres через psycopg3 и Postgres через async‑клиент psycopg3 (рекомендуется именно async‑вариант). Для валидации используется Pydantic, а дизайн библиотеки хорошо ложится на привычные сценарии с FastAPI.
Embar активно использует новые template strings (t‑строки), поэтому поддерживает только Python 3.14. Есть CLI для генерации миграций с помощью LLM и ANTHROPIC_API_KEY, но корректный diff миграций пока в разработке.
#python #orm #asyncio #postgres #sqlite #typing #pydantic #python314 #fastapi #drizzleinspired
https://github.com/carderne/embar
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - carderne/embar: A Python ORM with types
A Python ORM with types. Contribute to carderne/embar development by creating an account on GitHub.
1👍2🔥1
Pristan.
📱 Pristan — это библиотека для построения плагинных систем в Python, где плагины “подцепляются” к хост‑коду автоматически, а сам хост вообще не знает о конкретных реализациях.
Декорируете функцию как слот через
🔹 Ключевые особенности:
🔘 Максимальная простота: объявил функцию и вызываешь её как обычно, плагины прозрачно расширяют или заменяют поведение.
🔘 Pythonic‑подход: декораторы + аннотации типов определяют и контракт, и способ агрегации результатов.
🔘 Type safety: проверки совместимости сигнатур слота и плагинов на основе
🔘 Авто‑обнаружение: плагины находятся через entry points в
🔘 Slot как коллекция: можно смотреть установленные плагины, обращаться к ним по имени (
✅ Если вы пишете расширяемую библиотеку и хотите простую, типобезопасную плагинную систему без собственного фреймворка — pristan как раз для этого.
#python #plugins #pristan #pyproject #entrypoints #typing #decorators #opensource
📱 Ссылка на репозиторий:
https://github.com/mutating/pristan
Декорируете функцию как слот через
@slot, а плагины объявляете как @some_slot.plugin — при вызове слота фактически вызываются все подключённые плагины, а результат агрегируется в list или dict в зависимости от аннотации типов.sigmatch, плюс проверка типов возвращаемых значений через simtypes. pyproject.toml, достаточно указать модуль в секции [project.entry-points.pristan] или в своём namespace.slot['name']()), считать их количество, ограничивать max, требовать уникальные имена или однократный вызов плагина (run_once). #python #plugins #pristan #pyproject #entrypoints #typing #decorators #opensource
https://github.com/mutating/pristan
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - mutating/pristan: Function-based plugin system with respect to typing
Function-based plugin system with respect to typing - mutating/pristan
1🔥3👍2⚡1