Babel: compila arquivos de tradução ao chamar o setup.py install

Estou desenvolvendo um aplicativo Flask usando Babel. Graças aIntegração Distutils / Setuptools, todos os parâmetros das funções de compilação / extração / ... são armazenados emsetup.cfg compilar os arquivos i18n é tão fácil quanto

./setup.py compile_catalog

Ótimo. Agora eu gostaria que isso fosse feito automaticamente ao executar

./setup.py install

Nomakepalavras de, isso seria deixarinstall alvo dependecompile_catalog alvo.

O contexto

Armazenamos apenas a tradução (.po) no repositório de códigos..gitignore exclui.mo e.pot arquivos sejam rastreados.

Quando um desenvolvedor faz uma nova revisão do código, ele executa

pip install -r requirements.txt

para atualizar dependências e instalar o projeto no modo de desenvolvimento. Em seguida, usando a linha de comando acima, ele compila o binário de tradução (.mo) arquivos.

Existe uma maneira simples e recomendada de modificarsetup.py fazer as duas operações em uma única etapa? Ou estou tentando usar indevidamentesetuptools?

O uso de um script como esse funcionaria para fins de desenvolvimento:

#!/bin/sh
./setup.py compile_catalog
pip install -r requirements.txt

mas eu gostaria de uma solução que também funcione quando o pacote é instalado com osetup.py instruções de instalação, como se instaladas a partir do PyPi.

Devo entender issosetuptools não devem ser usados dessa maneira, e as pessoas que distribuem software compilam seus arquivos de tradução manualmente ou usando scripts personalizados ao criar seus arquivos, em vez de confiar emsetup.py compilá-los no momento da instalação?

Não encontrei muitas postagens na Internet abordando isso. Os que eu achei envolvidos na execuçãopybabel interface de linha de comando de uma funçãosetup.py, que parece uma pena, pois perde o ponto de integração das ferramentas de instalação.

questionAnswers(1)

yourAnswerToTheQuestion