3.2 KiB
3.2 KiB
AGENTS.md — контекст проекта для OMP
Проект: набор библиотек для конвертации файлов → markdown. Текущий формат: Excel (.xlsx). Дальше — pdf, docx, pptx, html…
Workflow для каждого формата
- Сгенерировать простые тест-кейсы (базовые данные, заголовки, типы)
- Найти лучшие библиотеки: сначала фреймворки (docling, owi, surya, paddle…), потом докопаться до низкоуровневых либ формата (для Excel: openpyxl, pandas, xlrd, calamine…)
- Оценить по функционалу → таблица в
libs_eval/ - Сгенерировать сложные тест-кейсы:
- пустые, но отформатированные колонки (их много)
- большие промежутки между колонками (файл целиком читать не хочется)
- сложное форматирование: объединённые ячейки, стили, цвета
- формулы и ссылки
- пограничный размер: миллионы строк
- разные кодировки и форматы данных
- Проверить качество конвертации
- Забенчмаркировать: скорость, потребление памяти, нагрузка на CPU
Ключевые договорённости
- Excel: картинки НЕ нужны — только текст, структура, форматирование, формулы
- Тест-кейсы: генерировать скриптами (openpyxl), файлы в
testcases/excel/ - Именование:
tc<N>_<описание>.xlsx, напримерtc01_basic.xlsx - Бенчмарки: замерять wall-time, RSS (memory_profiler/psutil), CPU% — выводить таблицей
- Python 3, зависимости в
requirements.txt, venv в.venv/(не коммитить)
Питфоллы (проверено)
- Миллионы строк: openpyxl read_only mode / pandas chunking / calamine (Rust)
- Пустые отформатированные колонки: проверять
ws.calculate_dimension()/ws.max_column— многие либы их игнорируют - Формулы: openpyxl
data_only=Trueдаёт cached value (если файл открывался в Excel), иначе формулу; calamine отдаёт cached value сразу - xlsx внутри — UTF-8 XML, но данные бывают в разных локалях; .xls (BIFF) — отдельная история (xlrd >=2.0 только .xls!)
Стиль работы
- Сначала изучить существующее (README, libs_eval/, тест-кейсы), не дублировать
- Код — через тебя (OMP), короткие итерации, самопроверка запуском
- Результаты бенчмарков/оценок — в markdown-таблицы в libs_eval/
- Обновления вики — делает Hermes, не трогай /mnt/synology/