Utilities

Config-driven keyboard creation, introspection, and validation helpers.

Config-Driven Keyboards

Create keyboards from dictionaries or JSON — useful for dynamic UIs stored in databases or config files.

from pykeyboard.utils import create_keyboard_from_config

config = {
    "type": "inline",
    "row_width": 2,
    "buttons": [
        {"text": "Option A", "callback_data": "a"},
        {"text": "Option B", "callback_data": "b"},
        {"text": "🔗 Link", "url": "https://example.com"},
    ]
}

kb = create_keyboard_from_config(config)
await message.reply("Dynamic:", reply_markup=kb)

Introspection

from pykeyboard.utils import get_keyboard_info

info = get_keyboard_info(kb)
print(info)
# {'type': 'inline', 'rows': 2, 'buttons': 3, 'row_width': 2}

Validation

from pykeyboard.utils import validate_keyboard_config

errors = validate_keyboard_config(config)
if errors:
    print("Config errors:", errors)
else:
    print("Config is valid!")

Functions

FunctionReturnsDescription
create_keyboard_from_config(config)KeyboardBuild keyboard from dict/JSON config
get_keyboard_info(keyboard)dictGet metadata about a keyboard instance
validate_keyboard_config(config)listValidate config dict, returns error list