title: The Pythonic way of organizing modules and packages
body: <p>I come from a background where I normally create one file per class. I organize common classes under directories as well. This practice is intuitive to me and it has been proven to be effective in C++, PHP, JavaSript, etc. </p>
  
  <p>I am having trouble bringing this metaphor into Python: files are not just files anymore, but they are formal modules. It doesn't seem right to just have one class in a module --- most classes are useless by themselves. If I have a <code>automobile.py</code> and an <code>Automobile</code> class, it seems silly to always reference it as <code>automobile.Automobile</code> as well.</p>
  
  <p>But, at the same time, it doesn't seem right to throw a ton of code into one file and call it a day. Obviously, a very complex application should have more than 5 files.</p>
  
  <p>What is the correct---or pythonic---way? (Or if there is no correct way, what is your preferred way and why?) How much code should I be throwing in a Python module?</p>