[Distutils] Extending distutils with 3rd party build commands?
bob at redivi.com
Thu Oct 21 00:49:52 CEST 2004
On Oct 20, 2004, at 18:38, Bob Ippolito wrote:
> On Oct 20, 2004, at 18:10, M.-A. Lemburg wrote:
>> Bob Ippolito wrote:
>>> I've developed two bdist commands (bdist_pkg and bdist_mpkg) for
>>> usage on OS X. These commands apply to any setup.py that supports
>>> an "install" command, similar to bdist_wininst, so it would be nice
>>> if every setup.py didn't have to explicitly import something in
>>> order to get the commands there.
>>> I know I can make it work with a pth file that imports bdist_pkg,
>>> but that seems a bit costly to do because it will end up importing a
>>> bunch of stuff (distutils, mainly).
>>> Is there another way to do it?
>> Submit them for inclusion in the standard distribution ;-)
> I will, for 2.5... but there's quite some time between now and then.
Well I did find another way, thanks to PEP 302.
How "evil" would it be if I had this module imported by a pth file? It
does do what I want it to do, but I'm not sure if it's safe to inflict
on users or not..
from sets import Set as set
def __init__(self, package='distutils', hooks=('py2app',
self.package = package
self.hooks = set(hooks)
def find_module(self, fullname, path=None):
if fullname in self.hooks:
if fullname != self.package:
fileobj, filename, stuff = imp.find_module(fullname, None)
hooks = list(self.hooks)
return ImpLoader(fileobj, filename, stuff, hooks)
def __init__(self, fileobj, filename, stuff, hooks):
self.fileobj = fileobj
self.filename = filename
self.stuff = stuff
self.hooks = hooks
def load_module(self, fullname):
mod = imp.load_module(fullname, self.fileobj, self.filename,
for hook in self.hooks:
More information about the Distutils-SIG