code: def run(self):
      for root, dirs, files in os.walk("gensim"):
          files = [
              os.path.join(root, f)
              for f in files
              if os.path.splitext(f)[1] in (".c", ".cpp", ".so")
          ]
          for f in files:
              self.announce("removing %s" % f, level=distutils.log.INFO)
              os.unlink(f)
  
      if os.path.isdir("build"):
          self.announce(
              "recursively removing build", level=distutils.log.INFO
          )
          shutil.rmtree("build")
  
file_path: gensim/setup.py
imports: import itertools
  import os
  import platform
  import shutil
  import sys
  from collections import OrderedDict
  from setuptools import Extension, find_packages, setup, distutils
  from setuptools.command.build_ext import build_ext
label_desc: Use image node_id 3 for calling the CleanExt obj's underlying member method code with example usage: obj.run() without return types