Generate4

This is a cleaned up version of [this](https://github.com/rthalley/dnspython/pull/12) pull request.