I added the `imports` input to the Function interface to avoid having to import from within the function. The main advantage (aside from avoiding PyFlakes complaining about reimporting the same module a bunch of times) is that it catches missing script dependencies at compile-time rather than in the middle of the workflow.