I mainly use regular python imports to accomplish this.
For example, if your directory structure is as follows:
mytoplevel/ ├── __init__.py ├── mydeploymenttasks.py └── templates ├── __init__.py └── mytemplate.mak
Your template can be obtained using something like this:
import pkg_resources pkg_resources.resource_filename('mytoplevel.templates',mytemplate.mak)
But since tasks are in regular python modules, you can simply import them using your package structure:
from mytoplevel.mydeploymenttasks import installApplicationTask
As for the structure of your package, it depends on its domain. If you find that a particular topic is growing in your code, disable it in your own module.
source share