Рубрики
Software

External dependencies в odoo

В одном из модулей для Odoo была необходимость доставать данные таблицы из PDF документа. Среди множества python библиотек по разбору текста из PDF мне понравилась tabula-py. На ее примере мы посмотрим, как правильно работать с внешними зависимостями в Odoo.

external_dependencies

В нашем модуле мы должны указать внешние зависимости в манифесте:

"external_dependencies": {
    'python': ['tabula']
},

Эти зависимости не будут установлены. Odoo проверит есть ли соответствующие Python пакеты. Если какой-то отсутствует — нас ждет предуприждение:

External dependencies в odoo

Мы можем использовать ключ bin, чтобы указать банарные зависимости.

При импорте внешних зависимостей в коде, рекомендуется использовать try — except:

try:
    import vatnumber
except ImportError:
    _logger.warning("VAT validation partially unavailable because the `vatnumber` Python library cannot be found. "
                    "Install it to support more countries, for example with `easy_install vatnumber`.")
    vatnumber = None