Я работаю над проектом Python, использующим файлы Thrift для определения структуры сетевых сообщений.
Файлы .thrift (которые определяют структуру сообщений), конечно, проверяются на контроль версий (в моем случае git).
Thrift-компилятор используется для генерации кода на выбор языковых привязок (в моем случае Python) для кодирования и декодирования сообщений на проводе от и к собственным структурам данных Python.
Команда для запуска компилятора:
thrift --gen py encoding.thrift
Компилятор создает новый каталог (gen-py), который содержит сгенерированные файлы Python:
$ find gen-py
gen-py
gen-py/__init__.py
gen-py/encoding
gen-py/encoding/constants.py
gen-py/encoding/__init__.py
gen-py/encoding/ttypes.py
Хотя есть плюсы и минусы для проверки сгенерированных файлов в системе контроля версий (см., Например, здесь и здесь ), я на стороне забора, который я предпочитаю не проверка сгенерированных файлов в системе управления версиями.
Я относительно новичок в разработке Python. Я пришел из опыта использования в основном скомпилированных языков (например, C ++), которые используют какой-то инструмент сборки (например, make files), где относительно просто добавить некоторые правила в скрипт сборки для запуска thrift-компилятора и генерации языка. привязок.
Мои вопросы:
Какова лучшая практика в Python для автоматического запуска экономичного компилятора и генерации файлов Python?
Если возможно, я хотел бы иметь представление о зависимостях в любом предложенном вами инструменте сборки, чтобы Thrift-компилятор запускался только при необходимости (т. Е. Сгенерированные файлы отсутствуют или файлы .thrift были затронуты с момента последняя сборка).