He escrito un módulo Python 3.0 puro para Python 3.0/3.1 que también me gustaría que sea compatible con 2.x (probablemente solo 2.6/2.7) para ponerlo a disposición del público más amplio posible.Escribir un módulo para Python 2.xy 3.x
El módulo se ocupa de leer y escribir un conjunto de formatos de archivo relacionados, por lo que las diferencias entre las versiones 2.xy 3.x serían mínimas, por ejemplo, io.BytesIO
en lugar de StringIO.StringIO
- pero no todos se manejan fácilmente a través de bloques try/except, como el establecimiento de metaclases.
¿Cuál es la forma correcta de manejar esto? ¿Dos bases de código casi idénticas que se deben mantener sincronizadas o una base de código salpicada con detección de características? ¿Una base de código única y limpia más 2to3 o 3to2?
HOWTO de Python [Portando el código de Python 2 a Python 3] (http://docs.python.org/py3k/howto/pyporting.html) brinda algunos buenos consejos sobre este tema. –