O Diretório requirements/¶
Possuindo também uma construção extremamente mais simples que os demais diretórios do template pandora, o requirements/
traz consigo uma proposta de simplificar a separação de dependências com base em cenários específicos de uso da biblioteca a ser criada.
O isolamento proposto envolve a existência de três arquivos distintos:
requirements/dev.txt
para dependências de desenvolvimento do projetorequirements/docs.txt
para dependências relacionadas à documentação do projetorequirements/all.txt
todas as dependências do projeto obtidas viapip freeze
requirements/dev.txt¶
No arquivo requirements/dev.txt, o usuário poderá incluir dependências relacionadas ao desenvolvimento propriamente dito de seu pacote Python.
Exemplo de dependêncais que poderiam ser colocadas em dev.txt
build
flake8
pydocstyle
pytest
pytest-cov
notebook
pandas
boto3
requirements/docs.txt¶
Como o pandora proporciona uma rota inicial para documentação de projetos via MkDocs, o isolamento de dependências para esta finalidade se mostra algo interessante quando imaginamos, por exemplo, o deploy automático da página de documentação por plataforma externas como o readthedocs. Além disso, os usuários podem ter uma visão clara sobre as dependências necessárias para desenvolver funcionalidades da biblioteca e dependências utilizadas para fins de documentação.
Exemplo de dependêncais que poderiam ser colocadas em docs.txt
mkdocs
pymdown-extensions
mkdocs-material
mkdocstrings[python]
requirements/all.txt¶
Por fim, o arquivo requirements/all.txt pode consolidar todas as dependências do projeto obtidas através do comando pip freeze
. Aqui, além das referências nominais das principais bibliotecas necessárias para o desenvolvimento da solução, são também consideradas as dependências dessas dependências, permitindo assim uma visão bem específica sobre o ambiente virtual utilizado na construção.
Exemplo de dependêncais que poderiam ser colocadas em all.txt
anyio==3.6.2
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
arrow==1.2.3
asttokens==2.2.1
attrs==22.2.0
backcall==0.2.0
beautifulsoup4==4.11.2
bleach==6.0.0
build==0.10.0
certifi==2022.12.7
cffi==1.15.1
charset-normalizer==3.0.1
click==8.1.3
colorama==0.4.6
comm==0.1.2
coverage==7.2.1
debugpy==1.6.6
decorator==5.1.1
defusedxml==0.7.1
exceptiongroup==1.1.0
executing==1.2.0
fastjsonschema==2.16.3
flake8==6.0.0
...
Considerações¶
Aqui, mais uma vez, é importante reforçar que todos os insumos disponibilizados neste e nos demais diretórios do template pandora são de uso opcional. Os usuários podem decidir adotar as estratégias oferecidas por sua livre e espontânea vontade. A grande ideia é tentar facilitar, ao máximo, trabalhos burocráticos de organização e configuração de repositórios. Se alguma proposta se mostra inviável na prática, sua inutilização é algo totalmente esperado.