Support Python 3 (and modern Python 2)