[Distutils] [Python-Dev] Distutils ML wrap-up: setup.cfg new format

Eric Smith eric at trueblade.com
Wed Sep 23 19:00:10 CEST 2009


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
>> <floris.bruynooghe at gmail.com> 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.



More information about the Distutils-SIG mailing list