sometime soon we should break this into a PyPI lib so that webpay and zamboni can use it