If you're new (or not) to Python or Web2py, I would suggest: First: put the functions in the controllers that call them Second: put the function in "models" if multiple controllers need to call it Third: local_import() from "modules" if it doesn't need access to the web2py environment (pass in "request" if necessary) Fourth: after looking at "LOAD" and "XML-RPC", consider exec_environment()
I usually try to start simply and increase complexity gradually and (only) as needed.

