Je cherchais cette fonctionnalité, mais je ne l'ai pas vue dans la documentation, j'ouvre donc une demande de fonctionnalité.
J'aimerais voir un réparateur qui prend le code compatible Python 2/3 et supprime le support Python 2 du mieux possible.
Cela permettrait :
__future__
importations inutiles ( print_function
par exemple)from future import standard_library
et standard_library.install_aliases()
from builtins import *
from future.utils import python_2_unicode_compatible
Si un tel réparateur existe déjà, j'aimerais bien le savoir.
Un certain nombre de mes clients utilisent future
pour mettre à niveau leur code vers Python 3, puis abandonnent la prise en charge de Python 2 peu de temps après et un tel correctif leur serait très utile.
Si cela existe, alors ce n'est pas bien documenté. J'ai dû supprimer manuellement tout cela. L'utilisation d'un appareil qui s'exécute automatiquement peut-être avec un indicateur tel que -3
pour signifier uniquement refactoriser pour la conformité 3 et ignorer la compatibilité python2 serait formidable.
J'ai fait quelques transformations moi-même et je les ai regroupées dans un script. Il est actuellement disponible ici : https://github.com/purplediane/drop2
Un outil connexe, avec un certain chevauchement (à savoir des importations de __future__
) :
Autres choses notables :
u
(object)
des définitions class
super()
jour mock
jour des importations de Cela dit, j'ai pu utiliser sed
pour standard_library
:
sed -i '' '/.*standard_library.*/d' **/*.py
-from future import standard_library
-standard_library.install_aliases()
import json
import logging
import urllib.parse
J'envisage de faire la même chose pour :
.*python_2_unicode_compatible.*
.*implements_iterator.*
from builtins.*
Je connais déjà pyupgrade et je l'ai utilisé. C'est très utile.
pyupgrade
(plus le hook de pré-commit) est un excellent outil à cet effet. Peut-on fermer ce FR puisque l'alternative est disponible ?
Commentaire le plus utile
J'ai fait quelques transformations moi-même et je les ai regroupées dans un script. Il est actuellement disponible ici : https://github.com/purplediane/drop2