On Nov 30, 2008, at 17:39 PM, Josselin Mouette wrote:

When stripping .egg-info files, you run into problems with useless code that checks for dependencies (while the packaging system already checks for them), so you have to strip such code as well.

Let's put it like this: as the author of an application and some libraries written in Python, I would like it if my code could run on $operating_system_distribution even before someone has gotten around to packaging it for $operating_system_distribution. Therefore, I need a way to tell whether some dependency is already installed. I could write a giant switch statement for all known package management tools:

if platform.dist()[0] == 'debian':
        os.system("dpkg --list...")
elif platform.dist()[0] == 'redhat':
        os.system("rpm -q...")
elif platform.system() == 'windows':
        import win32api
        # probe registry ???
... etc

My code currently runs on nine operating systems and I hope to support a lot more before I'm through, so this switch statement would be a significant undertaking to support my users on various platforms.

Fortunately, pkg_resources does this for me in a generic, cross- platform way so that my workload is substantially reduced:

pkg_resources.require('my_dependency >= 1.0')

Note, this didn't use to work so well on some Linux distributions back in the bad old days when they removed .egg-info files, but nowadays it works very well on all of the aforementioned nine operating system distributions that I am aware of.

Now, you as a Debian developer may feel that you would have developed my application differently than me, such as perhaps step 1: make the code run on $operating_system_distribution even before it has been packaged for $operating_system_distribution, or you may not, but either way I truly appreciate that nowadays you preserve the .egg- info files so that I have the option of doing it this way.

Regards,

Zooko
_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to