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