In addition to the structural distinctions you made (client, server, common,) it's also good to separate code by the dependencies they draw in so that dependencies are only loaded if they're actually going to be used. Other than that, there are numerous ways to split up source, and it all comes down to what's maintainable.
I don't know how to add new command-line options for setup.py (probably not difficult,) but you can use os.environ to check environment variables, and use those to pass options.
Kevin Barry
|