Supongamos que tengo una función o clase de python útil (o lo useful_thing
que sea) llamada que existe en un solo archivo. Esencialmente hay dos formas de organizar el árbol de origen. La primera forma usa un solo módulo:
- setup.py
- README.rst
- ...etc...
- foo.py
donde useful_thing
se define en foo.py
. La segunda estrategia es hacer un paquete:
- setup.py
- README.rst
- ...etc...
- foo
|-module.py
|-__init__.py
donde useful_thing
se define en module.py
. En el caso del paquete __init__.py
se vería así
from foo.module import useful_thing
para que en ambos casos puedas hacer from foo import useful_thing
.
Pregunta: ¿Qué camino se prefiere y por qué?
EDITAR: Dado que el usuario gnat dice que esta pregunta está mal formada, agregaré que el tutorial oficial de empaquetado de Python no parece comentar cuál de los métodos descritos anteriormente es el preferido. Yo estoy explícitamente no dando mi lista personal de pros y contras porque estoy interesado en saber si existe un método preferido de la comunidad, no generar una discusión de ventajas / desventajas :)