Suponha que eu tenha uma função ou classe python útil (ou o que seja) chamada useful_thing
que exista em um único arquivo. Existem essencialmente duas maneiras de organizar a árvore de origem. A primeira maneira usa um único módulo:
- setup.py
- README.rst
- ...etc...
- foo.py
onde useful_thing
é definido em foo.py
. A segunda estratégia é fazer um pacote:
- setup.py
- README.rst
- ...etc...
- foo
|-module.py
|-__init__.py
onde useful_thing
é definido em module.py
. No caso do pacote __init__.py
ficaria assim
from foo.module import useful_thing
para que nos dois casos você possa fazer from foo import useful_thing
.
Pergunta: Qual o caminho preferido e por quê?
EDIT: Como o usuário gnat diz que esta pergunta está mal formada, acrescentarei que o tutorial oficial de empacotamento do python parece não comentar sobre qual dos métodos descritos acima é o preferido. Eu explicitamente estou não dando a minha lista pessoal de prós e contras, porque eu estou interessado em saber se há um método comunidade preferido, não gerando uma discussão sobre vantagens / desvantagens :)