At 05:08 PM 5/14/2010 +0200, Manlio Perillo wrote:
Hi.
In a package, I have gettext catalog messages, and I want to compile
them when the package is build.
I looked at the Mercurial setup.py script, and what it does is:
from distutils.command.build import build
build.sub_commands.insert(0, ('build_mo', None))
Is this the correct way?
No. The correct way is to subclass the build command and use a
cmdclass dictionary in the setup() call. Something like:
from distutils.command.build import build
class build(build):
sub_commands = [('build_mo', None)]+ build.sub_commands
setup(
...
cmdclass = dict(build=build)
)
The way Mercurial is doing it is monkeypatching that will break if
the current Python process runs more than one setup()... e.g. when
the setup script is being run by easy_install or some similar tool.
(As you can see, though, it only adds one line of code to do it the
correct way, as documented in the distutils manual.)
_______________________________________________
Distutils-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig