import os import setuptools from distutils.command.install_data import install_data from setuptools.command.build_py import build_py from setuptools.command.install import install try: import multiprocessing # noqa except ImportError: pass class Parser_build_py(build_py): """Override build_py to call customized build.""" def run(self): print(" === Before nfv parser build === ") # self.run_command('xxx') super(Parser_build_py, self).run() print(" === After nfv parser build === ") class Parser_install(install): """Override install to call customized install.""" def run(self): print(" === Before nfv parser install === ") super(Parser_install, self).run(self) # Custom stuff here # distutils.command.install actually has some nice helper methods # and interfaces. I strongly suggest reading the docstrings. print(" === After nfv parser install === ") class Parser_post_install(install_data): """Override install_data to call customized install_data.""" def run(self): print(" === Before nfv parser post install data === ") # Call parent super(Parser_post_install, self).run(self) # Execute commands print(" === After nfv parser post install data ===") setuptools.setup( setup_requires=['pbr>=2.0.0'], cmdclass={ "build_py": Parser_build_py, "install_data": Parser_install, "post_install": Parser_post_install, }, pbr=True)