Спецификация параметров команды

Тип: str

Определяет тип параметра. Должен быть одним из:

  • "str" — строка
  • "int" — целое число
  • "float" — дробное число
  • "bool" — булево значение
  • "list" — массив
  • "dict" — объект (словарь)
"int", "list"

Тип: bool

Если True, параметр должен быть обязательно передан при вызове команды.

True, False

Тип: str

Человекочитаемое описание назначения параметра. Отображается в интерфейсе.

"Уровень яркости", "Включить режим энергосбережения"

Тип: зависит от type

Значение, используемое по умолчанию, если параметр не передан.

  • str: "auto"
  • int: 0
  • bool: False
  • list: []
  • dict: {}
42, ["a"], {"mode": "fast"}

  • min_value, max_value — для int, float
    Например: min_value: 0.5
  • min_length, max_length — для str, list
    Например: max_length: 100
  • choices — список допустимых значений (для str, int, float)
    Например: ["on", "off"]
  • pattern — регулярное выражение для str
    Например: "^[A-Z][0-9]{3}$"

Тип: любой

Пример корректного значения. Показывается как подсказка пользователю.

"night", 99.5, [1, 2, 3], {"key": "value"}
Пример:

Объединённый пример с разными типами параметров.

# Полная спецификация параметров команды
param_specs = {
    "message": {
        "type": "str",
        "required": True,
        "description": "Текст сообщения для вывода",
        "min_length": 1,
        "max_length": 200,
        "example": "Привет, мир!"
    },
    "brightness": {
        "type": "int",
        "required": False,
        "description": "Уровень яркости экрана",
        "default": 50,
        "min_value": 0,
        "max_value": 100,
        "example": 75
    },
    "enabled": {
        "type": "bool",
        "required": False,
        "description": "Включить или отключить устройство",
        "default": True,
        "example": False
    },
    "mode": {
        "type": "str",
        "required": True,
        "description": "Режим работы устройства",
        "choices": ["auto", "manual", "eco", "turbo"],
        "example": "eco"
    },
    "serial_number": {
        "type": "str",
        "required": True,
        "description": "Серийный номер устройства (формат: буква + 4 цифры)",
        "pattern": "^[A-Z][0-9]{4}$",
        "example": "X1234"
    },
    "tags": {
        "type": "list",
        "required": False,
        "description": "Список меток для устройства",
        "default": [],
        "min_length": 0,
        "max_length": 10,
        "example": ["sensor", "room1", "active"]
    },
    "config": {
        "type": "dict",
        "required": False,
        "description": "Дополнительные настройки в формате JSON",
        "default": {},
        "example": {"timeout": 30, "retries": 3}
    },
    "timeout": {
        "type": "float",
        "required": False,
        "description": "Время ожидания ответа в секундах",
        "default": 5.0,
        "min_value": 0.1,
        "max_value": 60.0,
        "example": 10.5
    }
}