[Python-Dev] Raising objections (original) (raw)

A.M. Kuchling amk at amk.ca
Wed Apr 19 22:15:08 CEST 2006


On Wed, Apr 19, 2006 at 03:02:15PM -0400, Phillip J. Eby wrote:

I can tell you the reasons, no need to guess:

  1. The Distutils has lots of customization hooks, but if the exact hook you need isn't there, you're in deep trouble. I learned this when trying to implement a package database.

I agree with you, which is why setuptools fixes distutils' flaws by subclassing where possible and monkeypatching only where necessary to ensure compatibility. (Only three classes are monkeypatched: Distribution, Command, and Extension.)

At least some of these changes to Distutils seem unobjectionable for inclusion.

For example, the changes to Command just allow keyword arguments on two methods and adds a class attribute; they seem unlikely to break any existing users of the class.

The Extension change replaces .pyx source files with .c; I'm not sure what the purpose of this change is, but it clearly might cause problems for distributions with Pyrex source files.

The Distribution changes add some more optional kw arguments -- no problem there -- and a bunch of egg-specific methods. This set would need some further study, and also bakes in .egg support; we'd have to be very sure that .eggs are the way to go, so this might need a PEP and/or BDFL pronouncement.

Obviously, applying changes to Distutils makes Phillip's maintenance of setuptools more difficult -- now he has to worry about monkeypatching or not depending on the Python version. But at least some of the monkeypatching can be removed -- maybe all of it if the Distribution class proves amenable.

--amk



More information about the Python-Dev mailing list