Python 2.x and 3.x support