python 3 compliance