I am trying to make some of my code Python 2 and 3 compatible.
At the moment I am struggling with functions like range
/xrange
and methods like dict.items
/dict.iteritems
. Ideally I would like my code to be able to use the former in Python 3.x and the latter in Python 2.x.
Using if
/else
seems to me to be the easiest way to implement this:
if py >= 3:
for item in array.items()
...
else:
for item in array.iteritems()
However, doing like that results in lots of repeated and ugly code. Is there a better way to do that using only the standard library? Can I just state somewhere at the beginning of the code to always use range
/dict.items
if py >= 3
and xrange
/dict.iteritems
if not?
Is it possible to do something like this?
if py < 3:
use xrange as range
I have looked around and I know that several libraries, like six o futurize) are used to solve this issue. However I am working on a server that run only python 2.7 and I am not allowed to install any extra libraries on it. I have some python3 code I would like to use but I also want to maintain only one version of the code.