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