¿Cómo subclasifico el comando de comstackción?

El tema es auto-descriptivo: necesito subclasificar el comando setup.py build para poder realizar pasos de comstackción adicionales. Sin embargo, no he podido encontrar ninguna clase de comando de build para heredar. He estado intentando:

 class BuildCommandProxy(setuptools.command.build): pass 

y

 class BuildCommandProxy(distutils.command.build): pass 

e incluso:

 class BuildCommandProxy(setuptools.distutils.command.build): pass 

Sin ningún éxito.

ACTUALIZACIÓN : buscando cómo implementar algo como esto con setuptools .

ACTUALIZACIÓN2 : Tengo alguna implementación de comando personalizado:

 class CustomCommand(setuptools.Command): # ... 

Lo que me gustaría implementar es pasar este comando a cmdclass esta manera:

 cmdclass={ "build": CustomCommand, } 

y luego invoque la build original en CustomCommand.run después de realizar algunos pasos personalizados.

Setuptools no anula el distutils build distutils sí; solo los subcomandos build_py y build_ext .

Entonces, para crear su propia subclase necesita importar desde el módulo distutils.command.build , que contiene una clase de build (subclase de Command ):

 import distutils.command.build class BuildCommandProxy(distutils.command.build.build): pass 

Para completar, aquí hay un ejemplo completo de cómo agregar operaciones de comstackción personalizadas:

 import distutils.command.build # Override build command class BuildCommand(distutils.command.build.build): def run(self): # Run the original build command distutils.command.build.build.run(self) # Custom build stuff goes here # Replace the build command with ours setup(..., cmdclass={"build": BuildCommand})