digitalocean / digitalocean/sample-functions-python-helloworld
library code for multiple python functions?
- Linguagem predominante
- Python
- Estrelas
- 33
- Forks
- 65
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
Suppose we have multiple functions that would share common, library code -- I'm sure this is a very common situation.
I currently ended up writing a minimal python project inside "lib" (the python package is also, inaptly, named `lib` -- apologies). I've ended up with a structure similar to the following:
```
.
├── .env
├── .gitignore
├── lib
│ └── lib
│ ├── pyproject.toml
│ └── src
│ └── lib
│ ├── __init__.py
│ ├── db.py
│ └── rest.py
├── packages
│ └── servers
│ ├── get_servers
│ │ ├── __deployer__.zip
│ │ ├── __main__.py
│ │ ├── build.sh
│ │ └── virtualenv
│ └── put_server
│ ├── __deployer__.zip
│ ├── __main__.py
│ ├── build.sh
│ └── virtualenv
└── project.yml
```
and each function's build.sh roughly doing
```
virtualenv --without-pip virtualenv
pip install ../../../lib/lib --target virtualenv/lib/python3.9/site-packages
```
Is there a better way? Could you add an example (or alter an existing example) with how to best achieve this?
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Direção de pesquisa
Comece revisando project.yml e os arquivos específicos de cada função packages/servers/get_servers/build.sh e put_server/build.sh e, em seguida, compare-os com lib/lib/pyproject.toml e seus módulos src/lib. Determine qual abordagem de biblioteca compartilhada o projeto deve demonstrar e documente-a com um exemplo que abranja ambas as funções; o trabalho estará concluído quando uma pessoa nova puder seguir o exemplo para criar funções que reutilizem o código comum.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- build-system
- Tipo de issue
- Documentação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Estagnada
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 25/100