PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Violit.

Violit — это высокопроизводительный Python‑фреймворк для UI, вдохновлённый Streamlit, но с O(1)‑обновлением состояния без полного перезапуска скрипта и с режимом десктоп‑приложения.

🔹Основная идея:

🔘Архитектура Zero Rerun: при взаимодействии обновляются только зависящие от состояния компоненты, а не весь скрипт целиком, что даёт «реактивность как в React» без мерцаний и перерасхода ресурсов.

🔘API почти как у Streamlit: app.write, app.button, app.metric, app.columns и т.п., плюс сигнал‑based app.state(...), так что миграция со Streamlit занимает минуты.

🔻Ключевые возможности:

🔘Режимы работы:
✔️WebSocket (по умолчанию) для ultra‑low latency и real‑time broadcasting.
✔️Lite (HTTP/HTMX) для тысяч одновременных пользователей.

🔘Desktop Mode (--native --splash) через pywebview: превращает приложение в настольное без Electron и Node.js. [github](https://github.com/violit-dev/violit)

🔹Темы и UI:

🔘Встроено 30+ премиум‑тем (dark, light, tech, professional), переключаются одной строкой App(theme='cyberpunk', ...) или app.set_theme('ocean'), без верстки и CSS.

🔘Под капотом используются FastAPI, Shoelace‑компоненты, Plotly.js и AG‑Grid для таблиц и графиков.

🔻Установка и запуск:

🔘Установка:
  pip install violit


🔘Пример:
  import violit as vl

app = vl.App(title="Hello Violit", theme="ocean")
count = app.state(0)

app.button("Increase", on_click=lambda: count.set(count.value + 1))
app.write("Count:", count)

app.run()

Скрипт выполняется один раз, дальше всё держится на реактивном состоянии.

#Violit #Python #Streamlit #WebFramework #FastAPI #ReactiveUI #ZeroRerun #Dashboard #DataApps #DesktopApp

📱Ссылка на репозиторий:
https://github.com/violit-dev/violit
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡32