digitalocean / digitalocean/sample-functions-python-helloworld

library code for multiple python functions?

Aberta
#3 6 comentários 0 reações 0 responsáveis Ver no GitHub
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

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.