[pyar] Portando codigo de python 3.x a python 2.x

Roberto Alsina ralsina en netmanagers.com.ar
Mie Mar 13 09:42:28 ART 2013


On 13/03/13 07:54, Manuel Cerón wrote:
> 2013/3/13 Roberto Alsina <ralsina en netmanagers.com.ar>:
>> On 13/03/13 07:07, Manuel Alejandro Cerón Estrada wrote:
>>>>> pero no sé, si esa esa la mejor manera de hacerlo, o hay alguna otra forma
>>>>> más recomendable. Sin tener que mantener branchs diferentes para cada
>>>>> versión.
>>> Si quieres mantener código que funciona en 2.x y en 3.x es inevitable
>>> mantener algunos branchs.
>> No, no es inevitable :)
>> http://nikola.ralsina.com.ar es todo compatible con python 2.6  hasta
>> 3.3 y son mas de 9000 líneas de python.
> Yo no estaba diciendo que es imposible mantener un código que sea
> compatible con 3.x y 2.x. Simplemente que en un proyecto más o menos
> grande es imposible deshacerse de algunos branches para hacer una cosa
> si es una versión y otra si es la otra. El código de Nikola tiene unos
> cuantos de esos.
De hecho tiene 2!

Este:

        if sys.version_info[0] > 2:
            from imp import reload as _reload
        else:
            _reload = reload  # NOQA

y este que lo podría sacar si requiriera six :-)

if sys.version_info[0] == 3:
    # Python 3
    bytes_str = bytes
    unicode_str = str
    unichr = chr
else:
    bytes_str = str
    unicode_str = unicode  # NOQA

Despues si, tiene unos cuantos try: except ImportError: pero esos
tambien los tenes cuando soportas solo python2.

Tengo que escribir algo al respecto, porque fué bastante menos doloroso
de lo que debiera.



More information about the pyar mailing list