Floris Bruynooghe wrote:
On Wed, Sep 23, 2009 at 03:15:24PM +0200, Tarek Ziadé wrote:
On Wed, Sep 23, 2009 at 2:56 PM, Floris Bruynooghe
<[email protected]> wrote:
[original mail from python-dev
http://mail.python.org/pipermail/python-dev/2009-September/091947.html]
On Tue, Sep 22, 2009 at 03:21:06PM +0200, Tarek Ziadé wrote:
The pseudo-grammar is (I don't know how to write those but you'll
get it hopefully)::
comp: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'
comparison: expr (comp_op expr)*
expr: STRING
test: or_test
or_test: and_test ('or' and_test)*
and_test: not_test ('and' not_test)*
not_test: 'not' not_test | comparison
Here you're re-introducing '<', '>', '<=' and '>=' while you said [0]
that you where going to drop them.
Right, that was a copy-paste typo:
comp: '=='|'!='|'in'|'not' 'in'
I'm still not convinced of
allowing this between strings as it will likely lead to mistakes when
comparing "versions". I'm still tempted by making "python_version" a
RationalVersion() so that you can use '<', '>', '<=' and '>=' safely,
not really convinced of writing something like:
[setup:python_version == '2.2' or python_version == '2.3' or
python_version == '2.4']
That's quite verbose indeed, but that is required if we want to
keep string comparison.
what about keeping python_version a string, but changing the way it's created ?
python_version : string_version('%s.%s' % (sys.version_info[0],
sys.version_info[1]))
where string_version() is a function that makes sure the output is
something we can compare
to strings like '2.4', etc.
I wouldn't talk about RationalVersion() from PEP 386 here, because we
just want a subset of it in this function : The Python version scheme.
Then we could re-introduce '<' and '>'
That's not a bad idea, how about defining python_version as:
'%.8X' % sys.hexversion
Then using '<' and '>' would work again I think, just a little harder
to use. (Of course don't forget the bikeshedding about the name:
python_hexversion, hexversion, ...)
I think I'd rather see us restrict ourselves to just == and != until we
can finalize the version numbering PEP, then allow '>' and '<' in all
places (after converting internally to RationalVersion, or whatever). I
realize it's a hassle in the short term, but in the long term it should
make things easier for us.
Eric.
_______________________________________________
Distutils-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig