52 votes

Outil pour déterminer ce que le plus faible de la version de Python nécessaires?

Est-il quelque chose de similaire à Pylint, qui va ressembler à un script Python (ou exécuter), et déterminer la version de Python chaque ligne (ou la fonction)?

Par exemple, la théorie de l'utilisation:

$ magic_tool <EOF
with something:
    pass
EOF
1: 'with' statement requires Python 2.6 or greater

$ magic_tool <EOF
class Something:
    @classmethod
    def blah(cls):
        pass
EOF
2: classmethod requires Python 2.2 or greater
$ magic_tool <EOF
print """Test
"""
EOF
1: Triple-quote requires Python 1.5 of later

Est une chose possible? Je suppose que le plus simple serait d'avoir toutes les versions de Python sur le disque, exécutez le script avec chacun d'eux et voir ce que les erreurs se produisent..

41voto

Greg Hewgill Points 356191

Inspiré par cette excellente question, j'ai récemment monté un script qui tente de le faire. Vous pouvez le trouver sur github à pyqver.

Il est assez complet mais il y a certains aspects qui ne sont pas encore traitées (comme indiqué dans le fichier README). Hésitez pas à fourche et de l'améliorer!

8voto

Martin P. Hellwig Points 474

N'est pas une véritable réponse utile, mais ici, il va de toute façon. Je pense que cela devrait être faisable de faire (bien que probablement tout à fait un exercice), par exemple, vous pouvez assurez-vous que vous avez toutes les langues officielles des grammaires pour les versions que vous souhaitez vérifier, à l'instar de ce un .

Ensuite d'analyser les bits de code commençant par la première version grammaire. Ensuite, vous avez besoin d'une carte de tous les built-dans le module des espaces de noms et d'analyser de nouveau le code de commencer avec la version la plus ancienne, mais il peut être difficile de différencier entre les modules intégrés et de modules externes ou quelque chose entre les deux, comme ElementTree.

Le résultat devrait être une vue d'ensemble des versions qui prennent en charge la syntaxe du code et une vue d'ensemble des modules et de la version (si) est nécessaire pour l'utiliser. Avec ce résultat, vous pouvez calculer le meilleur, le plus bas et le plus élevé de la version.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X