code: def reload_recent_submodules(module, mtime=0, processed=[]):
      
      if module.endswith(".py"):
          module = module[:-3]
      if module in processed:
          return False
      any_reloaded = False
      for key in WatchList:
          if WatchList[key]["parent"] == module:
              reloaded = reload_recent_submodules(key, mtime, processed)
              filemtime = module_getmtime(WatchList[key]["file"])
              filemtime = latest_submodule_time(key, filemtime)
              any_reloaded = any_reloaded or reloaded
              if reloaded or filemtime > WatchList[key]["time"]:
                  WatchList[key]["time"] = filemtime
                  for second in WatchList:
                      if second != key and WatchList[second]["file"] == WatchList[key]["file"]:
                          WatchList[second]["time"] = filemtime
                  modkey = module_sys_modules_key(key)
                  if modkey:
                      try:
                          reload_including_local(sys.modules[modkey])
                          tangelo.log("Reloaded %s" % modkey)
                      except ImportError:
                          del sys.modules[modkey]
                          tangelo.log("Asking %s to reimport" % modkey)
                      any_reloaded = True
      return any_reloaded
docs: Recursively reload submodules which are more recent than a specified
      timestamp.  To be called from a thread that has acquired the import lock to
      be thread safe.
  
      :param module: the module name.  The WatchList is checked for modules that
                     list this as a parent.
      :param mtime: the latest module time known to this point.
      :param processed: a list of modules that were processed (to avoid infinite
                        recursion).
      :returns: True if any submodule was reloaded.