Skip to content

Preview CLI

Используйте preview CLI в Potato, чтобы проверять конфигурации YAML, просматривать схемы разметки и получать статический предпросмотр интерфейса без запуска полного сервера.

Preview CLI проверяет конфигурации разметки и показывает, как будут отрисованы схемы, без запуска полного сервера. Это удобно для быстрого прототипирования, отладки и проверок в CI/CD.

Обзор

Preview CLI даёт:

  • Проверку конфигурации: поиск ошибок и предупреждений до развёртывания
  • Предпросмотр схем: как схемы разметки будут выглядеть в HTML
  • Поиск конфликтов горячих клавиш: выявление пересекающихся сочетаний
  • Несколько форматов вывода: сводка, HTML, JSON или только фрагмент разметки страницы

Базовое использование

bash
# Default summary output
python -m potato.preview_cli config.yaml
 
# Or using the module directly
python -m potato.preview_cli path/to/your/config.yaml

Форматы вывода

Сводка (по умолчанию)

Показывает текстовую сводку по конфигурации:

bash
python -m potato.preview_cli config.yaml

Вывод:

text
============================================================
ANNOTATION TASK PREVIEW
============================================================
Task Name: Sentiment Annotation
Task Directory: ./my_task

Validation: PASSED

ANNOTATION SCHEMAS (2 total):
----------------------------------------
  [radio] sentiment
          Select the sentiment of the text...
          Labels: 3
          Keybindings: 3

  [multiselect] topics
          Select all relevant topics...
          Labels: 5
          Keybindings: 0

============================================================

Вывод в HTML

Сформируйте предпросмотр полной HTML-страницы:

bash
python -m potato.preview_cli config.yaml --format html > preview.html

Откройте preview.html в браузере, чтобы увидеть, как будут выглядеть ваши схемы разметки.

Вывод в JSON

Сформируйте структурный вывод JSON для программной обработки:

bash
python -m potato.preview_cli config.yaml --format json

Только фрагмент HTML

Сформируйте только HTML-фрагмент схемы разметки:

bash
python -m potato.preview_cli config.yaml --layout-only > task_layout.html

Это удобно для встраивания в свои шаблоны или для проверки отрисовки схемы в отрыве от остального.

Параметры командной строки

ПараметрКраткоОписание
--format-fФормат вывода: summary, html или json
--layout-only-lВывести только HTML-фрагмент разметки страницы задачи
--verbose-vВключить подробный отладочный вывод

Проверка конфигурации

Preview CLI проверяет вашу конфигурацию и сообщает о проблемах:

Ошибки (блокирующие)

text
ERROR: Missing required field 'annotation_task_name'
ERROR: Must have either 'data_files' or 'data_directory'

Предупреждения (неблокирующие)

text
WARNING: No annotation schemes found in configuration
WARNING: Key '1' used by both 'schema1:Label1' and 'schema2:Label2'

Коды возврата

  • 0: конфигурация корректна
  • 1: в конфигурации есть ошибки

Используйте коды возврата в конвейерах CI/CD:

bash
python -m potato.preview_cli config.yaml || echo "Config validation failed"

Сценарии применения

Быстрое прототипирование

Быстро дорабатывайте устройство схем:

bash
# Edit config, then preview immediately
python -m potato.preview_cli config.yaml --format html > preview.html && open preview.html

Интеграция с CI/CD

Проверяйте конфигурации в своём конвейере развёртывания:

yaml
# .github/workflows/validate.yml
- name: Validate Potato Config
  run: python -m potato.preview_cli configs/production.yaml

Разработка шаблонов

Формируйте фрагменты разметки страницы для встраивания в свои шаблоны:

bash
python -m potato.preview_cli config.yaml --layout-only > templates/includes/schemas.html

Справочник по API

Функции preview CLI можно вызывать и программно:

python
from potato.preview_cli import (
    load_config,
    validate_config,
    get_annotation_schemes,
    detect_keybinding_conflicts,
    generate_preview_html,
)
 
# Load and validate
config = load_config("config.yaml")
issues = validate_config(config)
 
# Extract schemes and check for conflicts
schemes = get_annotation_schemes(config)
conflicts = detect_keybinding_conflicts(schemes)
 
# Generate output
html = generate_preview_html(schemes)

Решение проблем

Ошибка «Module not found»

Убедитесь, что Potato установлен:

bash
pip install potato-annotation

Ошибки отрисовки схемы

Если схема не отрисовывается, в выводе будет сообщение об ошибке. Проверьте, что конфигурация схемы заполнена полностью.

Что почитать дальше

Детали реализации — в исходной документации.