Why is so much of the logic in a single file?
A single file, that's all you need!

If it were to get to 10K lines I would consider splitting it up, but I don't imagine it will get that big. The code is also already broken up into the core and the `playhouse` extensions collection.

Look around at sqlalchemy, you'll see a number of 3K line files. Django has several 1K+ line files.
 My experience of new comer is that this is not so welcoming:
- I'm missing an overview of the API structure: who inherits who? which logical groups do we have (Model, Fields, Query, Database…)? Where should I go to understand this piece of logic?
- each time a search for something in the code, I'm missing the context (which class am I? Where in the class hierarchy?)
- my _own_ perception is that files bigger than around 1k lines are bad practice (mainly for readability, i.e. reasons exposed before), so seeing this huge file made me a bit reluctant being confident in peewee as a serious project when I first considered it for a new project I'm starting

Also, I'd suggest to namespace `playhouse` (and call it something more expected like "extras" or "extensions"). I've been reluctant using playhouse module at the first time, because the name suggested me it was more about `playground` or `examples` actual extensions. Also, I was more or less feeling peewee was more of a POC/pet project because of that.

My two cents… ;)
 Peewee has always been a single module. It will remain that way. Honestly there are very few concepts in peewee, and if you read through the entire source, you will have a good grasp on it. Projects that are big, like some other orms, you can't reasonably read. And there's no cohesive order, either. Peewee reads like a book, in order.

Good point about playhouse, need to make it clear those are extensions.
 Not to start again the discussion, but for the record: one other drawback about the single file package I've run into: git(hub) blame and history are very noisy because all changes are in the same file, and thus imho hardly usable.

Is there a reason that peewee.py contains so much of the logic? Surely this can be broken up into different files. Is there an advantage to doing it this way?
