@dowski using requirements makes easier to maintain an updated version of the packages.
Having a separate requirements.txt file allows for easy parsing so many tools can augment our productivity.

For example, let's say you update pymongo from 1.9 to 2.0, this is how you would update your system + requirements:

```console
pip install -U pymongo
pip-dump
git commit requirements.txt -m "Updating dependencies"
```

Also, the reason I added those requirements to begin with is because there were a lot of missing dependencies in the requirements list inside of setup.py. I think that just proofs my point on how diesel needs a better "protocol" to keep track of dependencies. :)