Skip to main content

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

exteragram_alib-1.0.0.tar.gz (16.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exteragram_alib-1.0.0-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

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

Hashes for exteragram_alib-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3c0f1eb482b67ccc2b1ff5d44588d5af0ee15592c4808e14665c4df8072610d3
MD5 a41dad7550ff47630de98e1637a608e5
BLAKE2b-256 5bf0bd0e576ce7e359b5c499ae76f6046dca3bd6e3d08c9d58ea56026b5fb101

See more details on using hashes here.

File details

Details for the file exteragram_alib-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for exteragram_alib-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ce0875458e37133b26d608e929409e884fdc38ceb6228f6477314e31f27d951
MD5 2296222f96adec55cc8ba2658216c5aa
BLAKE2b-256 20cf6a78ffe0fba1bd58f6d611e1dfea5ef71a3385391d94d845a0f98378304b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page