Init: структура проекта md-converters (Excel → markdown), AGENTS.md для OMP
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
.venv/
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
*.xlsx~
|
||||||
|
.DS_Store
|
||||||
|
benchmarks/results/
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
# AGENTS.md — контекст проекта для OMP
|
||||||
|
|
||||||
|
Проект: набор библиотек для конвертации файлов → markdown.
|
||||||
|
**Текущий формат: Excel (.xlsx).** Дальше — pdf, docx, pptx, html…
|
||||||
|
|
||||||
|
## Workflow для каждого формата
|
||||||
|
|
||||||
|
1. Сгенерировать простые тест-кейсы (базовые данные, заголовки, типы)
|
||||||
|
2. Найти лучшие библиотеки: сначала фреймворки (docling, owi, surya,
|
||||||
|
paddle…), потом докопаться до низкоуровневых либ формата
|
||||||
|
(для Excel: openpyxl, pandas, xlrd, calamine…)
|
||||||
|
3. Оценить по функционалу → таблица в `libs_eval/`
|
||||||
|
4. Сгенерировать сложные тест-кейсы:
|
||||||
|
- пустые, но отформатированные колонки (их много)
|
||||||
|
- большие промежутки между колонками (файл целиком читать не хочется)
|
||||||
|
- сложное форматирование: объединённые ячейки, стили, цвета
|
||||||
|
- формулы и ссылки
|
||||||
|
- пограничный размер: миллионы строк
|
||||||
|
- разные кодировки и форматы данных
|
||||||
|
5. Проверить качество конвертации
|
||||||
|
6. Забенчмаркировать: скорость, потребление памяти, нагрузка на 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/
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# md-converters
|
||||||
|
|
||||||
|
Набор библиотек для преобразования файлов в markdown.
|
||||||
|
Старт: **Excel (.xlsx)** → далее другие форматы (pdf, docx, pptx, html…).
|
||||||
|
|
||||||
|
## Принцип
|
||||||
|
|
||||||
|
Для каждого формата:
|
||||||
|
1. Генерируем тест-кейсы (простые → сложные/пограничные)
|
||||||
|
2. Ищем лучшие библиотеки: фреймворки (docling, owi, surya, paddle…) →
|
||||||
|
низкоуровневые либы формата
|
||||||
|
3. Оцениваем по функционалу → таблица в `libs_eval/`
|
||||||
|
4. Проверяем качество конвертации
|
||||||
|
5. Бенчмарки: скорость, память, CPU
|
||||||
|
|
||||||
|
## Структура
|
||||||
|
|
||||||
|
- `testcases/excel/` — сгенерированные .xlsx (сложность нарастает)
|
||||||
|
- `benchmarks/` — скрипты замера скорости/памяти/CPU
|
||||||
|
- `libs_eval/` — оценка библиотек по функционалу
|
||||||
|
- `src/` — итоговые конвертеры
|
||||||
|
|
||||||
|
## Договорённости
|
||||||
|
|
||||||
|
- Excel: картинки **не нужны** (только текст/структура/форматирование/формулы)
|
||||||
|
- Кодогенерация — через OMP (см. AGENTS.md)
|
||||||
|
- Документация — в вики /mnt/synology/Obsidian/wiki/ (страница markdown-converter-project)
|
||||||
|
|
||||||
|
## Related
|
||||||
|
|
||||||
|
- Gitea: https://gitlab.kzbrd.ru/nkozobrod/md-converters
|
||||||
Reference in New Issue
Block a user