27

Using python 2.6.5, I can use the with statement without calling from __future__ import with_statement. How can I tell which version of Python supports with without specifically importing it from __future__?

CharlesB
  • 86,532
  • 28
  • 194
  • 218
mlzboy
  • 14,343
  • 23
  • 76
  • 97

3 Answers3

51

__future__ features are self-documenting. Try this:

>>> from __future__ import with_statement
>>> with_statement.getOptionalRelease()
(2, 5, 0, 'alpha', 1)
>>> with_statement.getMandatoryRelease()
(2, 6, 0, 'alpha', 0)

These respectively indicate the first release supporting from __future__ import with_statement and the first release to support it without using from __future__.

Also, read this:

>>> import __future__
>>> help(__future__)
Mark Tolonen
  • 166,664
  • 26
  • 169
  • 251
17

You only need it in Python 2.5. Older versions (<= 2.4) don't support it and newer versions (>= 2.6) have it enabled by default.

So if you want to support Python >= 2.5, you can simply put the from __future__ import with_statement at the beginning. For newer versions, it will simply be ignored.

AndiDog
  • 68,631
  • 21
  • 159
  • 205
2

From the doc:

New in version 2.5.
Lie Ryan
  • 62,238
  • 13
  • 100
  • 144