Why use exec?
because on python 3 `raise tp, value, tb` will raise `SyntaxError`, use `exec` to skip syntax check. Ah, TIL. Thanks
On this line you're using `exec` to define `reraise`. I don't understand why you just don't use `def` directly. Would you mind clearing this up for me?

https://github.com/coleifer/peewee/blob/7beab7c60ca32477fb812eb768adc4ac458e5a57/peewee.py#L144