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

Reply via email to