[Python-3000] [Python-ideas] Namespaces are one honking great idea -- let's do more of those!

Thomas Lee tom at vector-seven.com
Sun Feb 3 09:02:02 CET 2008


Leif Walsh wrote:
> On Feb 2, 2008 8:38 PM, Ron Adam <rrr at ronadam.com> wrote:
>   
>> Instead of a shebang which depends on the shell, maybe a version specifier
>> of some sort could be used?
>>
>>     # -*- pyversions: 2.5, 2.6 -*-
>>
>> So if a python 3.x detects a too low a version, maybe it can try to restart
>> the program with the highest installed version specified.  (Or some
>> variation of this.)
>>     
>
> There is already an idiom with other packages (pygtk etc.) that
> suggests syntax like
>
> try:
>     python.require('3.1')
> except:
>     print('Some warning about version incompatibility')
>     exit(1)
>
> This concern seems better addressed within the language itself, rather
> than in the shebang (which would make the decision depend on the shell
> and the packaging involved).
>
>   
Great idea. Since we've already got everything we need in version_info, 
this would be trivial and could address most of the issues raised ... 
something like this?

 >>> def checkversion(maj, min, rel):
...     version = sys.version_info
...     if version[0] < maj or version[1] < min or version[2] < rel:
...             raise Exception('Version %d.%d.%d of Python is required 
for this program' % (maj, min, rel))
...
 >>> checkversion(2, 5, 0)
 >>> checkversion(3, 0, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 4, in checkversion
Exception: Version 3.0.0 of Python is required for this program
 >>>

Cheers,
T



More information about the Python-3000 mailing list