How should I organize Python source code?


I"m getting started with Python (it"s high time I give it a shot), and I"m looking for some best practices.

My first project is a queue which runs command-line experiments in multiple threads. I"m starting to get a very long file, and I"d like to break it up. In general, I"m looking for: How do python programmers organize multiple source files? Is there a particular structure that works for you?

My specific questions include:

  1. Should each class be in a separate file?
  2. How should I organize unit tests relative to source code?
  3. Where should I put doc comments, specifically those for command-line operation?
  4. If I use multiple directories, how do I import classes between them?

I can probably draw some of my own conclusions here by trial and error, but I"d rather start from something good.