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

Floris Bruynooghe floris.bruynooghe at gmail.com
Wed Sep 23 18:15:53 CEST 2009


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, ...)


Floris


-- 
Debian GNU/Linux -- The Power of Freedom
www.debian.org | www.gnu.org | www.kernel.org


More information about the Distutils-SIG mailing list