title: How should I organize Python source code?
body: <p>I'm getting started with Python (it's high time I give it a shot), and I'm looking for some best practices.</p>
  
  <p>My first project is a queue which runs command-line experiments in multiple threads. I'm starting to get a very long <code>main.py</code> file, and I'd like to break it up. In general, I'm looking for: <strong>How do python programmers organize multiple source files?</strong> Is there a particular structure that works for you?</p>
  
  <p>My specific questions include:</p>
  
  <ol>
  <li>Should each class be in a separate file?</li>
  <li>How should I organize unit tests relative to source code?</li>
  <li>Where should I put doc comments, specifically those for command-line operation?</li>
  <li>If I use multiple directories, how do I import classes between them?</li>
  </ol>
  
  <p>I can probably draw some of my own conclusions here by trial and error, but I'd rather start from something <em>good</em>.</p>