Definitive Python 3 compatibility