Poetry: Otimizando a Gestão de Dependências e Ambientes Virtuais

poetry

Geralmente, quando estamos trabalhando em muitos projetos baseados em Python, uma dos grande desafios é gerenciar dependências e garantir que a dependência de um projeto não interfira no outro. E com o Robot Framework não é diferente, e se não for bem estruturado, também pode ter os mesmos problemas

Existem várias ferramentas que podem ser utilizadas para vencer esses desafios:

  • requirement.txt
  • venv
  • conda
  • pipenv
  • pyenv
  • etc 

Todos possuem suas virtudes e podem ajudar na criação de projetos bem estruturados.

Nesse post, vamos falar do Poetry, que é uma das possibilidades para gerenciar dependências e criar ambiente virtuais para projetos Python. E que recentemente a Robot Framework Foundation passou a sugerir para criação de projetos de automação com Robot Framework.

O que é o Poetry?

Poetry é uma ferramenta de gerenciamento de dependências e construção de pacotes para projetos Python. Ele foi desenvolvido para simplificar o processo de gerenciamento de dependências, fornecendo uma maneira fácil e intuitiva de especificarinstalar atualizar as dependências de um projeto.

Com o Poetry, você pode definir as dependências do seu projeto em um arquivo chamado pyproject.toml. Esse arquivo permite especificar as bibliotecas necessárias, suas versões e até mesmo restrições de compatibilidade

Uma das principais vantagens do Poetry é sua integração com o Python Package Index (PyPI), o repositório oficial de pacotes Python. Ele permite que você instale pacotes diretamente do PyPI e também suporta a instalação de pacotes privados a partir de repositórios Git ou outros gerenciadores de pacotes.

Poetry também facilita a criação de ambientes virtuais isolados para seus projetos. Ele gerencia automaticamente um ambiente virtual dedicado, onde todas as dependências do projeto são instaladas, garantindo que não haja conflitos entre diferentes projetos Python no mesmo sistema.

Instalação

ATENÇÃO: Para usar o Poetry em seus projetos, é necessário ter o Python 3.6 ou superior. Caso esteja em versões anteriores, clique aqui para realizar a atualização.

Para realizar a instalação do Poetry é relativamente simples, execute os comandos abaixo de acordo com o seu sistema operacional:

  • PowerShell (Windows)
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
  • Linux e WSL  (Windows Subsystem for Linux)
curl -sSL https://install.python-poetry.org | python3 -
  • MacOS
brew install poetry

Após a instalação, você pode verificar se o Poetry foi instalado corretamente executando o comando poetry –version. Se tudo deu certo, você será capaz de ver a versão do Poetry com sucesso, como no exemplo abaixo:

Poetry (version 1.3.2)

Ambiente Virtual Isolado

Com o Poetry instalado, podemos iniciar a criação de um projeto ou atualizar um já existente e consequentemente um ambiente virtual isolado.

Para Projeto Novo:

1 – Navegue até o diretório onde deseja criar o seu projeto e execute o seguinte comando para criar uma nova estrutura de diretórios:

poetry new nome-do-projeto

Isso criará um novo diretório com as seguintes packages e arquivos:

  • Package com do Módulo do Projeto
  • Package de Testes do Módulo
  • Arquivo pyprojetct.toml
  • README

Como a nossa ideia aqui é criar um projeto de automação com o Robot Framework e não um projeto desenvolvido diretamente em Python, você pode descartar os dois packages criados pelo Poetry. O que de fato nos interessa, é o arquivo pyproject.tml.

2 – No terminal, dentro da pasta do novo projeto criado, execute o seguinte comando:

poetry shell

Esse comando iniciará o ambiente virtual isolado do projeto. É nesse ambiente que as dependências serão instaladas e não correrão riscos de conflitar com outros projetos.

3 – Com o ambiente virtual ativado no terminal, podemos iniciar a instalação das dependências do nosso projeto. Então, vamos fazer a instalação do Robot Framework.:

poetry add robotframework

Com isso, o Robot Framework e qualquer outra biblioteca que você queria instalar com dependência estará disponível apenas no novo projeto, eliminando o risco de conflito de dependências.

Para Projetos Existentes:

A única diferença será a substituição do comando “poetry new” por “poetry init“. O “poetry init” criará um arquivo pyproject.toml para o seu projeto e com isso, disponibilizará com o “poetry shell” um ambiente isolado para o seu projeto.

Durante a execução do “poetry init“, o Poetry fará alguns questionamentos para agilizar a criação do arquivo pyproject.tml.

Conclusão

No geral, o Poetry oferece uma solução abrangente moderna para o gerenciamento de dependências Python. Ele simplifica o processo de desenvolvimento, garantindo que as dependências corretas sejam instaladas e que seu projeto seja construído maneira eficiente.

E ai… 

O que achou do Poetry? Já conhecia? Ou já usava outra ferramenta para gerenciar dependências?

Diz ai nos comentários! 

E não esqueça, se tiver alguma dificuldade, deixe nos comentários que tentarei te ajudar.

Grande abraço!

VALEU!

1 Comment.

  1. Boa tarde meu caro,

    muito obrigado pelo curso e pelo texto sou analista de sistemas estou migrando para Qa testes automatizados e não conchecia o poetry

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *