Taskipy, um substituto do Makefile?
TLDR
E se ao invés de utilizar mais um arquivo (Makefile) dentro do seu projeto, por que não inserir tarefas a serem executadas dentro do pyproject.toml? Essa é a ideia da ferramenta taskipy. Nesse artigo eu explico utilizar a ferramenta através de um caso de uso simples de ciência de dados.
Tive conhecimento dessa ferramenta através de um vídeo1 do Vincent Warmerdam no canal do CalmCode. Depois vi que ele criou um blogpost2 também.
A ideia é bem simples. Como dito na documentação da ferramenta3, através da taskipy, você poderá definir tasks a serem executadas no arquivo pyproject.toml (já presente em projetos python) e executá-las através de um simples comando.
Configuração básica
Para inserir tarefas a serem executadas, você precisa primeiro instalar a ferramenta através do comando:
[tool.taskipy.tasks] no arquivo pyproject.toml, contendo as tarefas a serem executadas, por exemplo:
Para executar a tarefa test, estando dentro do ambiente virtual, use o comando:
Para listar as tarefas cadastradas, use:
Caso de uso
Para testar a utilização da ferramenta, criei um caso de uso para ciência de dados, no qual preciso baixar um conjunto de dados utilizando a API do Kaggle.
Criei o seguinte script para baixar um conjunto de dados de reviews de vinhos, desempacotá-lo e inserí-lo na pasta data/raw.
Utilizei a biblioteca kaggle que cria uma interface com a API do Kaggle. Para fazê-la funcionar, você precisa de um token, que pode ser conseguido em https://www.kaggle.com/settings, clicando no botão "Gerar novo token" na seção "API".
Com o token, crie um arquivo .env com o seguinte conteúdo:
O arquivo pyproject.toml contém a seção com a tarefa que executa o script:
Para executar a tarefa, basta usar o comando:
Após a execução, a tarefa criará o diretório data/raw, baixará os arquivos de dados e os descompactará na pasta criada. Depois disso, você poderá usar os arquivos de dados em suas análises.
Conclusão
É claro que a ferramenta não substitui o Makefile. O Makefile é muito mais do que criação e execução de tarefas. Mas pra projetos mais simples, pra simplificação, essa ferramenta pode ser bastante útil.
O caso de uso é somente um exemplo simples do que pode ser feito com a ferramenta, você pode usá-la para diversas outras coisas, que vão desde execução de testes a instalação de dependências externas ou criação de imagens docker. Para mais detalhes dê uma olhada na documentação oficial.
-
Vincent Warmerdam. Your pyproject.toml can be a taskrunner too. Nov 2025. URL: https://www.youtube.com/watch?v=n-L2p-poGUk. ↩
-
Vincent Warmerdam. TaskyPi can turn your pyproject.toml into a Makefile too — koaning.io. 2025. [Accessed 09-03-2026]. URL: https://koaning.io/posts/taskypi-can-turn-your-pyproject.toml-into-a-makefile-too/. ↩
-
taskpy. GitHub - taskipy/taskipy: the complementary task runner for python — github.com. [Accessed 09-03-2026]. URL: https://github.com/taskipy/taskipy. ↩
Se você notar erros ou enganos nesta publicação, não hesite em me contatar pelo e-mail madsonddias@gmail.com e terei o maior prazer em corrigi-los imediatamente!