A reactive declarative UI and threading utility library for exteraGram / Telegram plugins.
Project description
exteragram-alib 🚀
Библиотека реактивного декларативного UI и утилит работы с потоками для плагинов exteraGram (клиента Telegram на Android).
A reactive declarative UI and threading utility library for writing exteraGram (Android Telegram client) plugins.
Установка / Installation (PyPI)
В метаданных вашего плагина exteraGram укажите библиотеку в списке __requirements__:
Add the library to the __requirements__ metadata list in your exteraGram plugin:
__requirements__ = ["exteragram-alib"]
Возможности / Features
1. Реактивные состояния / Reactive States (State)
Связывает состояние переменных с UI-элементами. При изменении значения через .set(), UI автоматически перерисовывается на Android-устройстве.
Binds state values to UI components. When the value changes via .set(), the UI elements automatically update.
from alib import State
counter = State(0)
counter.set(counter.get() + 1)
2. Декларативный UI / Declarative UI (alib.ui)
Компоновка интерфейса с помощью древовидной структуры виджетов: Build native Android Telegram interfaces using nested declarative layouts:
from alib import VBox, Card, RowItem, Toggle, Selector, Button
layout = VBox(
padding=[16, 12, 16, 12],
children=[
Card(
children=[
RowItem(
title="Настройка плагина",
subtext="Включение или выключение",
right_widget=Toggle(value=my_state)
),
Selector(
text="Язык интерфейса",
items=["Русский", "English"],
value=lang_index
)
]
)
]
)
3. Управление потоками / Threading & Dispatching (alib.threading)
Декораторы и хелперы для бесшовного выполнения задач на UI-потоке Android или в фоновых очередях Telegram. Decorators and helper utilities for executing code on Android UI thread or background queues in Telegram.
@main_thread(или@run_on_ui) — переключает исполнение функции на главный UI-поток.@background_thread(или@run_on_background) — запускает функцию асинхронно в фоне на одной из очередей (например,"network","plugins","global").
from alib import main_thread, background_thread
@background_thread(queue="network", delay=1000)
def fetch_api_data():
# Работает в фоновом потоке
data = load_some_data_from_web()
update_ui(data)
@main_thread
def update_ui(data):
# Работает на UI-потоке
status_label.set(data)
Лицензия / License
Библиотека распространяется под лицензией MIT. / Distributed under the MIT license.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file exteragram_alib-1.0.0.tar.gz.
File metadata
- Download URL: exteragram_alib-1.0.0.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c0f1eb482b67ccc2b1ff5d44588d5af0ee15592c4808e14665c4df8072610d3
|
|
| MD5 |
a41dad7550ff47630de98e1637a608e5
|
|
| BLAKE2b-256 |
5bf0bd0e576ce7e359b5c499ae76f6046dca3bd6e3d08c9d58ea56026b5fb101
|
File details
Details for the file exteragram_alib-1.0.0-py3-none-any.whl.
File metadata
- Download URL: exteragram_alib-1.0.0-py3-none-any.whl
- Upload date:
- Size: 15.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ce0875458e37133b26d608e929409e884fdc38ceb6228f6477314e31f27d951
|
|
| MD5 |
2296222f96adec55cc8ba2658216c5aa
|
|
| BLAKE2b-256 |
20cf6a78ffe0fba1bd58f6d611e1dfea5ef71a3385391d94d845a0f98378304b
|