Недостижимый обработчик ImportError для odfpy (импорт на уровне модуля) #25
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Приоритет: важно.
Проблема: В
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.