[Distutils] setup.cfg new format proposal

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Wed Sep 16 02:42:24 CEST 2009


On 12:09 am, ssteinerx at gmail.com wrote:
>
>On Sep 15, 2009, at 7:52 PM, David Lyon wrote:
>>And imo the discussion has gone way off track..
>>
>>The use case isn't abstract. All this discussion is about trying
>>to rewrite two lines of code.
>>
>>-- setup.py --
>>"""
>>    if sys.platform == 'win32':
>>        setup.dependencies.add('win32com','162')
>>
>>    setup()
>>
>>"""
>>
>>That would be the simplest way to do it in code.
>>
>>It appears as if "if sys.platform == 'win32':"
>>is an evil line of code - that certain people
>>want to go to great lengths to stomp out.
>>
>>It's one line of code for crying out loud...
>>
>>We don't need a mini-language just because we
>>don't like writing it the shortest way...
>>
>>talk about platform bias gone utterly crazy...
>
>Assuming that it really is that simple...
>
>+1 on everything above.
>
>A 1 line change is much better than a 30 message debate, BNF diagram, 
>and DSL for a simple case.  If it doesn't work out for some reason, 
>some _real_ reason, debate it then in context, if it ever comes up 
>again.

I don't think it's really this simple.  The point is to have static 
definition of the package information.  Having a Python program define 
this information at runtime does not satisfy this requirement.  You can 
say that the simple sys.platform test is not evil, but how does that 
lead to a solution allowing PyPI to tell users what the dependencies for 
a package are on their platform?

Still, it may be that if the only use case here is conditionally 
declaring a dependency if the install target is Windows, a simpler 
solution might suffice.  I won't try to describe such a solution. 
Instead, I'll ask if that premise seems valid.

What use cases do we have?  There's the one described above, which lots 
of people have been talking about.  I think there's another one related 
to target Python version - eg, on Python 2.3, depend on simplejson, but 
on Python 2.6, don't.  What else?

Jean-Paul


More information about the Distutils-SIG mailing list