views:

260

answers:

4

I have a Django app written in Python 2.5 and I plan to upgrade it to be compatible with Python 2.6. It contains hundreds of .py files. Is there a simple way to find all deprecated functions in those files?

A: 

I think Python 2.5 apps should work fine in 2.6 without updates. 2.6 might complain about some deprecated functionality but those are only removed in 3.0 and still work in 2.6.

lhahne
yes, it works fine in Python 2.6. I just want to find out all deprecated functions and make it comply with new version. And also I will know what libraries or functions to avoid in new code.
jack
+5  A: 

Between point releasses of Python (like between 2.5 and 2.6) anything that might break is a warning for at least one release. Most deprecation warnings are emitted by default but you have fine grained control over the emitted warnings with the -W interpreter invocation option.

This is a relatively small issue between point releass as they are explicitly intended to be backwards compatible. A bigger change is between Python 2.x and 3.0 for which some special purpose tools including the -3 interpreter invocation option which shows the Python 3.0 related deprecation warnings.

Tendayi Mawushe
+3  A: 

I'm not sure what you mean by "deprecated functions" when upgrading from Python 2.5 to Python 2.6.

The release notes are very specific. http://docs.python.org/whatsnew/2.6.html

There are no deprecated functions. A few whole modules are deprecated, and one attribute of the Exception class.

You have GREP (or FIND) and you have PYTHON which you can use to search 100's of files of Python source.

When we made the change from 2.5 to 2.6 we had zero issues with deprecated functions.

Deprecated means "still works".

We had exactly one deprecated module, and it was reported during our unit testing via a warning message. We simply read the log for deprecation messages and replaced the module. (It was md5, by the way.) Eventually, we did a GREP for all uses of md5 and replaced them.

S.Lott
A: 

The real deal is to migrate from 2.6 to 3.0. If you want to know all about it, there is a very good speech for that :

http://blip.tv/file/1949281

Includes :

  • incompatibilities;
  • work around;
  • to-dos;
  • automatic migration tools.
e-satis