docxmd-converter


Namedocxmd-converter JSON
Version 3.0.0 PyPI version JSON
download
home_pageNone
SummaryConvert between .docx and .md files with template support and advanced document post-processing
upload_time2025-08-09 08:17:00
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords docx markdown converter pandoc office documentation post-processing document-cleaning text-processing
VCS
bugtrack_url
requirements pypandoc python-docx pytest pytest-cov black isort flake8 mypy
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DocxMD Converter

[![PyPI version](https://badge.fury.io/py/docxmd-converter.svg)](https://badge.fury.io/py/docxmd-converter)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Мощный Python пакет для конвертации между Microsoft Word (.docx) и Markdown (.md) файлами с поддержкой шаблонов, рекурсивной обработкой директорий и **передовой системой пост-обработки документов**.

## ✨ Особенности

### 🔄 Конвертация
- **Двунаправленная конвертация**: `.docx` ⇄ `.md`
- **Поддержка шаблонов**: используйте кастомные .docx шаблоны
- **Рекурсивная обработка**: конвертируйте целые деревья папок
- **Сохранение структуры**: иерархия папок остается неизменной

### 🧠 Финальная интеграция - Enhanced процессор v2.1.0
- **🚀 Единая архитектура**: объединены все лучшие решения
- **📋 Интеллектуальное распознавание**: автоматическое определение должностных инструкций
- **🛡️ Безопасная обработка**: защита документации от случайных изменений
- **🎯 Полная структуризация**: стандартизированный формат документов
- **✨ Комплексная очистка**: удаление всех артефактов КонсультантПлюс
- **📊 Расширенные метаданные**: качественная оценка обработки

### 🖥️ Интерфейсы
- **CLI**: мощный командный интерфейс
- **GUI**: удобное графическое приложение
- **API**: программный доступ ко всем функциям

### 📈 Отчетность и качество
- **Детальные отчеты**: статистика обработки и качества
- **Метрики качества**: high/medium/low оценки
- **Прогресс**: отслеживание выполнения операций

## 🚀 Быстрый старт

### Установка

```bash
# Из PyPI (рекомендуемо)
pip install docxmd-converter

# Или локально для разработки
git clone https://github.com/we256681/docxmd_converter.git
cd docxmd_converter && pip install -e .
```

**Важно**: Требуется установленный [Pandoc](https://pandoc.org/).

#### Установка Pandoc

**Ubuntu/Debian:**
```bash
sudo apt-get install pandoc
```

**macOS:**
```bash
brew install pandoc
```

**Windows:**
```bash
choco install pandoc
# или скачайте с pandoc.org
```

### Примеры использования

#### 🎯 Рекомендуемое использование (Enhanced процессор v2.1.0)

```bash
# Безопасное тестирование в специальной папке
docxmd --src ./docs/Conversion --dst ./docs/Conversion --format docx2md --processor enhanced --post-process

# Полная конвертация с передовой пост-обработкой
docxmd --src ./documents --dst ./markdown --format docx2md --processor enhanced --post-process

# Принудительная переобработка всех файлов (осторожно!)
docxmd --src ./documents --dst ./markdown --format docx2md --processor enhanced --post-process --force-process
```

#### 📋 Базовые операции

```bash
# Простая конвертация без обработки
docxmd --src ./documents --dst ./markdown --format docx2md

# Обратная конвертация с шаблоном
docxmd --src ./markdown --dst ./documents --format md2docx --template ./template.docx

# Подробный вывод
docxmd --src ./input --dst ./output --format docx2md --verbose
```

#### ⚙️ Типы пост-процессоров

```bash
# Enhanced (рекомендуемый) - полная очистка и структурирование
--processor enhanced

# Advanced - продвинутая обработка
--processor advanced

# Basic - базовая очистка
--processor basic
```

## � Что делает Enhanced процессор

### ✅ Очистка артефактов
- Удаляет все следы КонсультантПлюс и других систем
- Очищает обратные слеши и неправильные переносы
- Исправляет сломанную пунктуацию и форматирование

### 🏗️ Структурирование документов
- Создает единый формат для всех должностных инструкций:
  ```markdown
  # Должностная инструкция: Название_должности

  ## Информация о документе
  ## 1. Общие положения
  ## 2. Функции
  ## 3. Должностные обязанности
  ## 4. Права
  ## 5. Ответственность
  ## 6. Заключительные положения
  ## 7. Согласование и утверждение
  ```

### 🎯 Интеллектуальные возможности
- **Распознавание контента**: определяет должностные инструкции по содержимому
- **Пропуск нерелевантных файлов**: не обрабатывает документацию и конфигурации
- **Исправление полей**: унифицирует поля заполнения в формат `` `____________________________` ``
- **Склеивание разбитых строк**: восстанавливает целостность текста

## 🔧 Программное использование

```python
from docxmd_converter import DocxMdConverter
from docxmd_converter.enhanced_processor import EnhancedDocumentProcessor

# Безопасное тестирование
converter = DocxMdConverter()
converter.convert_directory(
    src_dir="./docs/Conversion",
    dst_dir="./docs/Conversion",
    format="docx2md",
    post_process=True,
    processor_type="enhanced"
)

# Продакшн конвертация с полной пост-обработкой
converter.convert_directory(
    src_dir="./documents",
    dst_dir="./markdown",
    format="docx2md",
    post_process=True,
    processor_type="enhanced"
)

# Только пост-обработка существующих файлов
processor = EnhancedDocumentProcessor()
results = processor.process_directory("./docs/Conversion")
print(f"Обработано: {results.processed}/{results.total}")
print(f"Пропущено: {results.skipped}, Ошибок: {results.errors}")
print(f"Качество: {results.quality_stats}")
```

## 📋 GUI Приложение

```bash
# Запуск графического интерфейса
docxmd-gui
```

Или программно:
```python
from docxmd_converter.gui import main
main()
```

## 🔍 Поиск проблем

### Частые проблемы

**Pandoc не найден:**
```bash
# Проверьте установку
pandoc --version

# Ubuntu/Debian
sudo apt-get install pandoc

# Или обновите PATH
```

**Ошибки кодировки:**
```bash
# Используйте параметр verbose для диагностики
docxmd --src ./input --dst ./output --format docx2md --verbose
```

**Пропускаются файлы:**
```bash
# Принудительная обработка
docxmd --src ./input --dst ./output --format docx2md --processor enhanced --post-process --force-process
```

## � Связанные документы

- [CHANGELOG.md](CHANGELOG.md) - история изменений
- [docs/documentation_management/Rules.md](docs/documentation_management/Rules.md) - правила документации
- [examples/](examples/) - примеры использования
- [tests/](tests/) - тесты

## 🤝 Вклад в проект

1. Изучите [правила документации](docs/documentation_management/Rules.md)
2. Создайте форк проекта
3. Создайте ветку для изменений
4. Добавьте тесты для новых функций
5. Убедитесь, что тесты проходят
6. Создайте Pull Request

## 📄 Лицензия

MIT License - подробности в [LICENSE](LICENSE).

## 🚀 Финализация в версии 2.1.0

### ✅ Завершена полная интеграция
- **Единая архитектура**: объединены все лучшие решения из scripts/
- **Enhanced процессор v2.1.0**: финальная версия с комплексной обработкой
- **Безопасность**: защита документации от случайных изменений
- **Тестирование**: папка docs/Conversion/ для безопасных экспериментов
- **Очищенный код**: удалена директория scripts/, все интегрировано

### 🛡️ Безопасная обработка документов
- **Защита системных файлов**: автоматический пропуск .py, .json, .yml файлов
- **Защита документации**: исключение docs/documentation_management/
- **Интеллектуальный анализ**: обработка только должностных инструкций
- **Архивирование**: старые скрипты сохранены в archive/scripts_backup/

---

**Статус проекта**: ✅ Активная разработка
**Поддерживаемые версии Python**: 3.8+
**Платформы**: Windows, macOS, Linux

<!-- METADATA
{
  "created_at": "2025-08-09",
  "updated_at": "2025-08-09",
  "author": "BAS-Core Team",
  "version": "2.1.0",
  "status": "current",
  "category": "guide",
  "integration_status": "completed",
  "scripts_migration": "completed_and_archived"
}
-->

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "docxmd-converter",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "docx, markdown, converter, pandoc, office, documentation, post-processing, document-cleaning, text-processing",
    "author": null,
    "author_email": "we256681 <we256681@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/61/95/f045da11444a982942dbed4b7e077d1a57923851d221a2311103422b2fba/docxmd_converter-3.0.0.tar.gz",
    "platform": null,
    "description": "# DocxMD Converter\n\n[![PyPI version](https://badge.fury.io/py/docxmd-converter.svg)](https://badge.fury.io/py/docxmd-converter)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\u041c\u043e\u0449\u043d\u044b\u0439 Python \u043f\u0430\u043a\u0435\u0442 \u0434\u043b\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 Microsoft Word (.docx) \u0438 Markdown (.md) \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432, \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0438 **\u043f\u0435\u0440\u0435\u0434\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043f\u043e\u0441\u0442-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432**.\n\n## \u2728 \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438\n\n### \ud83d\udd04 \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f\n- **\u0414\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f**: `.docx` \u21c4 `.md`\n- **\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432**: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 .docx \u0448\u0430\u0431\u043b\u043e\u043d\u044b\n- **\u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430**: \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0446\u0435\u043b\u044b\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u043f\u0430\u043f\u043e\u043a\n- **\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b**: \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u043f\u0430\u043f\u043e\u043a \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u0439\n\n### \ud83e\udde0 \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f - Enhanced \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 v2.1.0\n- **\ud83d\ude80 \u0415\u0434\u0438\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430**: \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0432\u0441\u0435 \u043b\u0443\u0447\u0448\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\n- **\ud83d\udccb \u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435**: \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439\n- **\ud83d\udee1\ufe0f \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430**: \u0437\u0430\u0449\u0438\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n- **\ud83c\udfaf \u041f\u043e\u043b\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u044f**: \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432\n- **\u2728 \u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430**: \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u041a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442\u041f\u043b\u044e\u0441\n- **\ud83d\udcca \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435**: \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438\n\n### \ud83d\udda5\ufe0f \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b\n- **CLI**: \u043c\u043e\u0449\u043d\u044b\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\n- **GUI**: \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\n- **API**: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\n\n### \ud83d\udcc8 \u041e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u044c \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\n- **\u0414\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0442\u0447\u0435\u0442\u044b**: \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430\n- **\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430**: high/medium/low \u043e\u0446\u0435\u043d\u043a\u0438\n- **\u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441**: \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439\n\n## \ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\n\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n```bash\n# \u0418\u0437 PyPI (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u043e)\npip install docxmd-converter\n\n# \u0418\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\ngit clone https://github.com/we256681/docxmd_converter.git\ncd docxmd_converter && pip install -e .\n```\n\n**\u0412\u0430\u0436\u043d\u043e**: \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 [Pandoc](https://pandoc.org/).\n\n#### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Pandoc\n\n**Ubuntu/Debian:**\n```bash\nsudo apt-get install pandoc\n```\n\n**macOS:**\n```bash\nbrew install pandoc\n```\n\n**Windows:**\n```bash\nchoco install pandoc\n# \u0438\u043b\u0438 \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0441 pandoc.org\n```\n\n### \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n\n#### \ud83c\udfaf \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 (Enhanced \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 v2.1.0)\n\n```bash\n# \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435\ndocxmd --src ./docs/Conversion --dst ./docs/Conversion --format docx2md --processor enhanced --post-process\n\n# \u041f\u043e\u043b\u043d\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0441 \u043f\u0435\u0440\u0435\u0434\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u0442-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439\ndocxmd --src ./documents --dst ./markdown --format docx2md --processor enhanced --post-process\n\n# \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 (\u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e!)\ndocxmd --src ./documents --dst ./markdown --format docx2md --processor enhanced --post-process --force-process\n```\n\n#### \ud83d\udccb \u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438\n\n```bash\n# \u041f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0431\u0435\u0437 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438\ndocxmd --src ./documents --dst ./markdown --format docx2md\n\n# \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c\ndocxmd --src ./markdown --dst ./documents --format md2docx --template ./template.docx\n\n# \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\ndocxmd --src ./input --dst ./output --format docx2md --verbose\n```\n\n#### \u2699\ufe0f \u0422\u0438\u043f\u044b \u043f\u043e\u0441\u0442-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432\n\n```bash\n# Enhanced (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439) - \u043f\u043e\u043b\u043d\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\n--processor enhanced\n\n# Advanced - \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\n--processor advanced\n\n# Basic - \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430\n--processor basic\n```\n\n## \ufffd \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 Enhanced \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\n\n### \u2705 \u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432\n- \u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u0441\u043b\u0435\u0434\u044b \u041a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442\u041f\u043b\u044e\u0441 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\n- \u041e\u0447\u0438\u0449\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u0441\u043b\u0435\u0448\u0438 \u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044b\n- \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u0443\u044e \u043f\u0443\u043d\u043a\u0442\u0443\u0430\u0446\u0438\u044e \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\n\n### \ud83c\udfd7\ufe0f \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432\n- \u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0435\u0434\u0438\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439:\n  ```markdown\n  # \u0414\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f: \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435_\u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438\n\n  ## \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435\n  ## 1. \u041e\u0431\u0449\u0438\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\n  ## 2. \u0424\u0443\u043d\u043a\u0446\u0438\u0438\n  ## 3. \u0414\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u044b\u0435 \u043e\u0431\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u0438\n  ## 4. \u041f\u0440\u0430\u0432\u0430\n  ## 5. \u041e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c\n  ## 6. \u0417\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\n  ## 7. \u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\n  ```\n\n### \ud83c\udfaf \u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\n- **\u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430**: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443\n- **\u041f\u0440\u043e\u043f\u0443\u0441\u043a \u043d\u0435\u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432**: \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\n- **\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439**: \u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 `` `____________________________` ``\n- **\u0421\u043a\u043b\u0435\u0438\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0445 \u0441\u0442\u0440\u043e\u043a**: \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u0430\n\n## \ud83d\udd27 \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n```python\nfrom docxmd_converter import DocxMdConverter\nfrom docxmd_converter.enhanced_processor import EnhancedDocumentProcessor\n\n# \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\nconverter = DocxMdConverter()\nconverter.convert_directory(\n    src_dir=\"./docs/Conversion\",\n    dst_dir=\"./docs/Conversion\",\n    format=\"docx2md\",\n    post_process=True,\n    processor_type=\"enhanced\"\n)\n\n# \u041f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u043b\u043d\u043e\u0439 \u043f\u043e\u0441\u0442-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439\nconverter.convert_directory(\n    src_dir=\"./documents\",\n    dst_dir=\"./markdown\",\n    format=\"docx2md\",\n    post_process=True,\n    processor_type=\"enhanced\"\n)\n\n# \u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u0442-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432\nprocessor = EnhancedDocumentProcessor()\nresults = processor.process_directory(\"./docs/Conversion\")\nprint(f\"\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043e: {results.processed}/{results.total}\")\nprint(f\"\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e: {results.skipped}, \u041e\u0448\u0438\u0431\u043e\u043a: {results.errors}\")\nprint(f\"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e: {results.quality_stats}\")\n```\n\n## \ud83d\udccb GUI \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\n\n```bash\n# \u0417\u0430\u043f\u0443\u0441\u043a \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\ndocxmd-gui\n```\n\n\u0418\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e:\n```python\nfrom docxmd_converter.gui import main\nmain()\n```\n\n## \ud83d\udd0d \u041f\u043e\u0438\u0441\u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\n\n### \u0427\u0430\u0441\u0442\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b\n\n**Pandoc \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d:**\n```bash\n# \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443\npandoc --version\n\n# Ubuntu/Debian\nsudo apt-get install pandoc\n\n# \u0418\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 PATH\n```\n\n**\u041e\u0448\u0438\u0431\u043a\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438:**\n```bash\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 verbose \u0434\u043b\u044f \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438\ndocxmd --src ./input --dst ./output --format docx2md --verbose\n```\n\n**\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b:**\n```bash\n# \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\ndocxmd --src ./input --dst ./output --format docx2md --processor enhanced --post-process --force-process\n```\n\n## \ufffd \u0421\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b\n\n- [CHANGELOG.md](CHANGELOG.md) - \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n- [docs/documentation_management/Rules.md](docs/documentation_management/Rules.md) - \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438\n- [examples/](examples/) - \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n- [tests/](tests/) - \u0442\u0435\u0441\u0442\u044b\n\n## \ud83e\udd1d \u0412\u043a\u043b\u0430\u0434 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\n\n1. \u0418\u0437\u0443\u0447\u0438\u0442\u0435 [\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438](docs/documentation_management/Rules.md)\n2. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u043e\u0440\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430\n3. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0432\u0435\u0442\u043a\u0443 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n4. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0442\u0435\u0441\u0442\u044b \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439\n5. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0442\u0435\u0441\u0442\u044b \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442\n6. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 Pull Request\n\n## \ud83d\udcc4 \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\n\nMIT License - \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432 [LICENSE](LICENSE).\n\n## \ud83d\ude80 \u0424\u0438\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 2.1.0\n\n### \u2705 \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u043f\u043e\u043b\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f\n- **\u0415\u0434\u0438\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430**: \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0432\u0441\u0435 \u043b\u0443\u0447\u0448\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u0437 scripts/\n- **Enhanced \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 v2.1.0**: \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439\n- **\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c**: \u0437\u0430\u0449\u0438\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n- **\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435**: \u043f\u0430\u043f\u043a\u0430 docs/Conversion/ \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432\n- **\u041e\u0447\u0438\u0449\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434**: \u0443\u0434\u0430\u043b\u0435\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f scripts/, \u0432\u0441\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e\n\n### \ud83d\udee1\ufe0f \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432\n- **\u0417\u0430\u0449\u0438\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432**: \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a .py, .json, .yml \u0444\u0430\u0439\u043b\u043e\u0432\n- **\u0417\u0430\u0449\u0438\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438**: \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 docs/documentation_management/\n- **\u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437**: \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439\n- **\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435**: \u0441\u0442\u0430\u0440\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 archive/scripts_backup/\n\n---\n\n**\u0421\u0442\u0430\u0442\u0443\u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u0430**: \u2705 \u0410\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430\n**\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Python**: 3.8+\n**\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b**: Windows, macOS, Linux\n\n<!-- METADATA\n{\n  \"created_at\": \"2025-08-09\",\n  \"updated_at\": \"2025-08-09\",\n  \"author\": \"BAS-Core Team\",\n  \"version\": \"2.1.0\",\n  \"status\": \"current\",\n  \"category\": \"guide\",\n  \"integration_status\": \"completed\",\n  \"scripts_migration\": \"completed_and_archived\"\n}\n-->\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Convert between .docx and .md files with template support and advanced document post-processing",
    "version": "3.0.0",
    "project_urls": {
        "Bug Reports": "https://github.com/we256681/docxmd_converter/issues",
        "Documentation": "https://github.com/we256681/docxmd_converter#readme",
        "Homepage": "https://github.com/we256681/docxmd_converter",
        "Source": "https://github.com/we256681/docxmd_converter"
    },
    "split_keywords": [
        "docx",
        " markdown",
        " converter",
        " pandoc",
        " office",
        " documentation",
        " post-processing",
        " document-cleaning",
        " text-processing"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c82c5041c319c3e7934a0f0fda9c1e8ffb8229bdbe0847e193aa481e086bd0b5",
                "md5": "4aa63d5ad3071f3647375ce38a4b5bdf",
                "sha256": "977b367e6b2dd53fc4ff075c9d922e1a827f9110bdb52170b01e0d29be9596b2"
            },
            "downloads": -1,
            "filename": "docxmd_converter-3.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4aa63d5ad3071f3647375ce38a4b5bdf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 33902,
            "upload_time": "2025-08-09T08:16:58",
            "upload_time_iso_8601": "2025-08-09T08:16:58.551696Z",
            "url": "https://files.pythonhosted.org/packages/c8/2c/5041c319c3e7934a0f0fda9c1e8ffb8229bdbe0847e193aa481e086bd0b5/docxmd_converter-3.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6195f045da11444a982942dbed4b7e077d1a57923851d221a2311103422b2fba",
                "md5": "a42b5bf81ac0f087957ebb024ca6c597",
                "sha256": "c2e040824337d75f8f3e9a1008a451b208a8230dbb5536668a5bf1997d6be1c7"
            },
            "downloads": -1,
            "filename": "docxmd_converter-3.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a42b5bf81ac0f087957ebb024ca6c597",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 36145,
            "upload_time": "2025-08-09T08:17:00",
            "upload_time_iso_8601": "2025-08-09T08:17:00.468388Z",
            "url": "https://files.pythonhosted.org/packages/61/95/f045da11444a982942dbed4b7e077d1a57923851d221a2311103422b2fba/docxmd_converter-3.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-09 08:17:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "we256681",
    "github_project": "docxmd_converter",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "pypandoc",
            "specs": [
                [
                    ">=",
                    "1.11"
                ]
            ]
        },
        {
            "name": "python-docx",
            "specs": [
                [
                    ">=",
                    "0.8.11"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "7.0"
                ]
            ]
        },
        {
            "name": "pytest-cov",
            "specs": [
                [
                    ">=",
                    "4.0"
                ]
            ]
        },
        {
            "name": "black",
            "specs": [
                [
                    ">=",
                    "22.0"
                ]
            ]
        },
        {
            "name": "isort",
            "specs": [
                [
                    ">=",
                    "5.0"
                ]
            ]
        },
        {
            "name": "flake8",
            "specs": [
                [
                    ">=",
                    "6.0"
                ]
            ]
        },
        {
            "name": "mypy",
            "specs": [
                [
                    ">=",
                    "1.0"
                ]
            ]
        }
    ],
    "lcname": "docxmd-converter"
}
        
Elapsed time: 0.94999s