code: def collect_plugins(self, modules=None):
          
          if modules is None:
              modules = self.get_loaded_modules()
          else:
              modules = util.return_list(modules)
  
          plugins = []
          for module in modules:
              module_plugins = [(item[1], item[0])
                                for item
                                in inspect.getmembers(module)
                                if item[1] and item[0] != '__builtins__']
              module_plugins, names = zip(*module_plugins)
  
              module_plugins = self._filter_modules(module_plugins, names)
              plugins.extend(module_plugins)
          return plugins
docs: Collects all the plugins from `modules`.
          If modules is None, collects the plugins from the loaded modules.
  
          All plugins are passed through the module filters, if any are any,
          and returned as a list.