[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