'Del user modules to force Python to deeply reload them
Do not del modules which are considered as system modules, i.e.
modules installed in subdirectories of Python interpreter\'s binary
Do not del C modules'

def run(self, verbose=False):

    log = []
    for (modname, module) in list(sys.modules.items()):
        if (modname not in self.previous_modules):
            modpath = getattr(module, '__file__', None)
            if (modpath is None):
                continue
            if (not self.is_module_blacklisted(modname, modpath)):
                log.append(modname)
                del sys.modules[modname]
    if (verbose and log):
        _print(('\x1b[4;33m%s\x1b[24m%s\x1b[0m' % ('Reloaded    modules', (':    ' + ',    '.join(log)))))
