Question

J'ai une application Django écrit en Python 2.5 et je prévois de le mettre à jour pour être compatible avec Python 2.6. Il contient des centaines de fichiers .py. Est-il un moyen simple de trouver toutes les fonctions dépréciées dans ces fichiers?

Était-ce utile?

La solution

Je ne suis pas sûr de ce que vous entendez par « fonctions dépréciée », lors du passage de Python 2.5 à Python 2.6.

Les notes de version sont très spécifiques. http://docs.python.org/whatsnew/2.6.html

Il n'y a pas de fonctions non. Quelques modules entiers sont obsolètes, et un attribut de la classe Exception.

Vous avez GREP (ou trouver) et vous avez PYTHON que vous pouvez utiliser pour rechercher 100 de fichiers de sources Python.

Lorsque nous avons fait le changement de 2,5 à 2,6, nous avons eu zéro problèmes avec les fonctions dépréciées.

Obsolète signifie « fonctionne toujours ».

Nous avons eu un seul module désapprouvée, et il a été signalé lors de nos tests unitaires via un message d'avertissement. Nous lisons simplement le journal des messages obsolètes et le module remplacé. (Il a été md5, en passant.) Finalement, nous avons fait un GREP pour toutes les utilisations de md5 et les remplacer.

Autres conseils

releasses entre le point de python (comme entre 2,5 et 2,6) tout ce qui pourrait briser est un avertissement pour au moins une autorisation. La plupart des avertissements sont émis par les programmes obsolètes par défaut, mais vous avez un contrôle précis à grains sur les avertissements émis avec l'option -W d'invocation de l'interpréteur.

Ce problème est relativement faible entre le point releass car ils sont explicitement destinés à être rétrocompatible. Un plus grand changement est entre Python 2.x et 3.0 pour que certains outils spéciaux, y compris l'option -3 appel interprète qui montre les avertissements liés Python 3.0 obsolescence.

Je pense que Python 2.5 des applications devrait fonctionner correctement 2.6 sans mises à jour. 2.6 pourrait se plaindre de certaines fonctionnalités, mais désapprouvée ceux qui ne sont retirés dans la version 3.0 et fonctionne toujours en 2.6.

La vraie affaire est de migrer 2,6 à 3,0. Si vous voulez tout savoir, il y a un très bon discours pour que:

http://blip.tv/file/1949281

Comprend:

  • incompatibilités;
  • travail autour;
  • à dos;
  • outils de migration automatique.

De plus en plus je suis persuadé que la bonne réponse est « Il suffit de lancer votre testsuite pour savoir. » Vous avez votre testsuite couvrant votre programme raisonnable, non? Dans le cas contraire, cela est une excellente occasion de créer un (vous pouvez convaincre votre patron de points à tête qu'il est « migration »).)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top