Недостижимый обработчик ImportError для odfpy (импорт на уровне модуля) #25

Closed
opened 2026-06-25 19:59:14 +07:00 by artem.kokos · 0 comments
Owner

Приоритет: важно.

Проблема: В cli.py (строки 120–128) есть полезный обработчик except ImportError, который сообщает "❌ odfpy is not installed. Install with: pip install odfpy" при сохранении .odt. Однако этот код недостижим: цепочка импортов cli.pyfactory.py (from .odt import ODTFormatter) → odt.py (from odf.opendocument import ...) выполняется на уровне модуля. Если odfpy не установлен, программа падает с ImportError до вызова main(), и пользователь видит сырой traceback вместо понятного сообщения.

Ожидаемое поведение: При отсутствии odfpy пользователь получает понятное сообщение об ошибке установки, а не сырой traceback.

Рекомендация: Использовать ленивый импорт ODTFormatter внутри get_formatter_by_extension или перенести импорты odf внутрь методов ODTFormatter.

**Приоритет:** важно. **Проблема:** В `cli.py` (строки 120–128) есть полезный обработчик `except ImportError`, который сообщает `"❌ odfpy is not installed. Install with: pip install odfpy"` при сохранении `.odt`. Однако этот код **недостижим**: цепочка импортов `cli.py` → `factory.py` (`from .odt import ODTFormatter`) → `odt.py` (`from odf.opendocument import ...`) выполняется на уровне модуля. Если odfpy не установлен, программа падает с `ImportError` **до** вызова `main()`, и пользователь видит сырой traceback вместо понятного сообщения. **Ожидаемое поведение:** При отсутствии odfpy пользователь получает понятное сообщение об ошибке установки, а не сырой traceback. **Рекомендация:** Использовать ленивый импорт `ODTFormatter` внутри `get_formatter_by_extension` или перенести импорты odf внутрь методов `ODTFormatter`.
artem.kokos added the bugpackagingcliformats labels 2026-06-25 19:59:14 +07:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: artem.kokos/redmine-reporter#25