Resumo do vídeo "uv: Making Python Local Workflows FAST and BORING in 2025"
Este vídeo é a segunda parte sobre como usar a ferramenta de empacotamento Python uv para tornar o fluxo de trabalho de desenvolvimento local mais rápido e eficiente. Os principais pontos são os seguintes.
1. Uso dos comandos principais do uv
uv run: executa comandos comopytestoufastapidentro de um ambiente virtual usando as dependências definidas empyproject.tomle fixadas no arquivouv.lock.uv add: adiciona uma nova dependência aopyproject.tomle atualiza automaticamente o arquivouv.lock.uv run --with: permite injetar e usar temporariamente módulos auxiliares de desenvolvimento, comopdbpp, sem adicioná-los às dependências principais do projeto.uv lock --upgrade: atualiza o arquivo de lock de dependências com altíssima velocidade. Ouv rundetecta automaticamente alterações no arquivo de lock durante a execução e sincroniza o ambiente.
2. Padronização do workflow com just
- O
uvnão inclui um recurso embutido para definir comandos personalizados, como acontece comhatchoupdm. - O vídeo destaca as desvantagens do
Makefile(dependência de plataforma, sintaxe não padronizada etc.) e recomenda fortemente como alternativa o executor de comandos escrito em Rust,just. - Com um
justfile, tarefas repetitivas podem ser padronizadas como receitas (recipes), como por exemplo:test: executar testes (com possibilidade de passar argumentos)cov: verificar cobertura de testesserve: iniciar o servidor de desenvolvimentocheckall: executar de uma vez lint, verificação de tipos e outras checagens
3. Integração entre just e uv
- arquivo
.env: ojustpode ler um arquivo.envpara definir variáveis de ambiente. Com isso, é possível montar workflows flexíveis, como adicionar dinamicamente o argumento--withaouv runou alterar a porta do servidor. uvx(uv tool run): é um comando que executa pacotes do PyPI de forma independente do projeto, semelhante aopipx. Dentro de receitas dojust, ele permite usar ferramentas comohttpiesem adicioná-las às dependências do projeto.
4. Gerenciamento direto do ambiente virtual (workflow opcional)
- Trata-se de uma abordagem para desenvolvedores que preferem ativar e usar o ambiente virtual (
.venv) da forma tradicional, sem passar pelouv run. uv sync: sincroniza o estado do arquivouv.lockcom a pasta.venv. (instala dependências e remove pacotes desnecessários)direnv: é uma ferramenta de shell que executa automaticamente o script.envrcao entrar em um diretório específico. Com isso, é possível rodaruv syncautomaticamente ao entrar no diretório e ativar o ambiente virtual.
Conclusão
Ao combinar a velocidade do uv com ferramentas como just e direnv, é possível automatizar e padronizar o gerenciamento de dependências e a execução de comandos, permitindo que desenvolvedores se concentrem mais na lógica principal e construam um ambiente de desenvolvimento "rápido e entediante (boring)", ou seja, extremamente estável e previsível.
4 comentários
Criei um template para usar com https://github.com/gracefullight/py-starter.
Com
poethepoet, dá para definir tarefas dentro dopyproject.toml, então eu uso no lugar dojust.Obrigado.
Obrigado. https://poethepoet.natn.io/