code: def loadmodules(self, modules=None, rel=None):
          
  
          result = []
  
          if rel is None:
              rel = self.rel
  
          if modules is None:
              modules = self._modules
  
          for module in modules:
  
              if isinstance(module, string_types):
                  name = module
                  module = lookup(name)
  
              elif isinstance(module, ModuleType):
                  name = module.__name__
  
              else:
                  raise TypeError(
                      'wrong value {0} in {1}. List of str/module expected.'
                      .format(
                          module, modules
                      )
                  )
  
              if not rel and module in self._loadedmodules:
                  continue
  
              reload_module(module)
              result.append(module)
              self._loadedmodules.add(module)
  
          return result
docs: ry to (re)load modules and return loaded modules.
  
          :param modules: list of module (name) to load.
          :param bool rel: flag for forcing reload of module. Default is this
              rel flag (false by default).
          :rtype: list
          :return: loaded modules.