Estaba buscando esta función, pero no la vi en la documentación, así que estoy abriendo una solicitud de función.
Me encantaría ver un reparador que tome el código compatible con Python 2/3 y elimine el soporte de Python 2 de la mejor manera posible.
Esto sería:
__future__
innecesarias ( print_function
por ejemplo)from future import standard_library
y standard_library.install_aliases()
líneasfrom builtins import *
líneasfrom future.utils import python_2_unicode_compatible
Si ya existe un reparador de este tipo, me encantaría saberlo.
Varios de mis clientes están usando future
para actualizar su código a Python 3 y luego descartan el soporte de Python 2 poco después y un reparador de este tipo sería muy útil para ellos.
Si existe, no está bien documentado. Tuve que eliminar manualmente todo eso. El uso de un accesorio que se ejecutó automáticamente tal vez con una bandera como -3
para significar solo refactorizar para el cumplimiento 3 e ignorar la compatibilidad con python2 sería genial.
Yo mismo hice algunas transformaciones y las reuní en un guión. Actualmente está disponible aquí: https://github.com/purplediane/drop2
Una herramienta relacionada, con cierta superposición (es decir, __future__
importaciones):
Otras cosas notables:
u
(object)
de class
definicionessuper()
llamadasmock
Dicho esto, pude usar sed
por standard_library
:
sed -i '' '/.*standard_library.*/d' **/*.py
-from future import standard_library
-standard_library.install_aliases()
import json
import logging
import urllib.parse
Planeo hacer lo mismo para:
.*python_2_unicode_compatible.*
.*implements_iterator.*
from builtins.*
Ya conozco pyupgrade y lo he usado. Es de mucha ayuda.
pyupgrade
(más el gancho de confirmación previa) es una gran herramienta para este propósito. ¿Podemos cerrar este FR ya que la alternativa está disponible?
Comentario más útil
Yo mismo hice algunas transformaciones y las reuní en un guión. Actualmente está disponible aquí: https://github.com/purplediane/drop2