Есть ли способ узнать, какие версии python поддерживаются моим кодом? - PullRequest
3 голосов
/ 13 июля 2009

Возможно, вы знаете инструмент соответствия Windows, который помогает людям узнать, поддерживается ли их код какой-либо версией ОС MS.

Я ищу что-то похожее для Python.

Я пишу библиотеку с Python 2.6, и я понял, что она не совместима с Python 2.5 из-за использования ключевого слова with.

Я хотел бы знать, существует ли простой и автоматический способ избежать этой ситуации в будущем.

Меня также интересует что-то похожее, чтобы знать, какие ОС поддерживаются.

Спасибо за вашу помощь

Ответы [ 3 ]

7 голосов
/ 13 июля 2009

В ответ на предыдущий вопрос об этом я написал pyqver . Если у вас есть какие-либо улучшения, пожалуйста, не стесняйтесь и помогите!

6 голосов
/ 13 июля 2009

Я рекомендую вам использовать автоматические тесты, а не инструмент анализа кода.

Помните, что в стандартной библиотеке Python есть тонкие изменения поведения, от которых ваш код может зависеть или не зависеть. Например, httplib: при загрузке файлов обычно указываются данные как str. В Python 2.6 вы можете вместо этого давать потоковые объекты (полезно для> 1 ГБ файлов), если вы подтолкнете их правильно, но в Python 2.5 вы получите ошибку.

Полный набор модульных тестов и интеграционных тестов будет гораздо надежнее, поскольку они проверяют, действительно ли ваша программа работает на Python версии X.Y.

$ python2.6 tests/run_all.py
.................................
33 tests passed
[OK]

Вы совместимы с Python 2.6.

$ python2.4 tests/run_all.py
...........EEE.........EEE.......
27 tests passed, 6 errors
[FAIL]

Вы не Python 2.4 совместимый.

0 голосов
/ 13 июля 2009

Python 2.5 все еще можно сохранить, поскольку он может использовать ключевое слово with:

from __future__ import with_statement
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...