On Tue, 18 Aug 2009 06:06:29 +0300, Alex Grönholm firstname.lastname@example.org wrote:
That scheme does not allow me to say "This dependency is required unless platform is X". A practical example of this is Beaker, where pycryptopp is required for cookie encryption, but works without external dependencies on Jython.
Yes, I follow..
That's why I'm so keen on having a pre_setup() and a post_setup() user routine, where the environment and dependencies can be exposed.
I can't see any easy way to do conditional logic in a config file.
imho it just has to go in code.. and it is as simple as that - haha
for example (demonstration code - not runnable):
""" from distutils.core import setup
def pre_setup(): if sys.platform() == "linux2": self.dependencies.append("pycryptopp") return
So, one could modify the dependencies dynamically based on the underlying platform.
Dependencies is a list of packages within the setup class. So the user can add or remove items before the actual setup() is done.
Also, how do I define that this package has a minimum (or maximum) required Python version?
[Python_versions] minimum_supported=2.3 maximum_supported=2.7
We can't tell a user it won't work - only that it isn't supported.
Or that the distribution is only applicable to a certain platform (say, win32 or java)?
[Platforms] supported1=linux2 supported2=mac supported3=win32,win64
I think we can let the developer specify what *is* supported, and if it doesn't match then give the user the choice to proceed or not. (At their own risk)