<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _filter_modules(self, plugins, names):
 """ Internal helper method to parse all of the plugins and names through each of the module filters """

        if self.module_plugin_filters:
            # check to make sure the number of plugins isn't changing
            original_length_plugins = len(plugins)
            module_plugins = set()
            for module_filter in self.module_plugin_filters:
                module_plugins.update(module_filter(plugins, names))
                if len(plugins) < original_length_plugins:
                    warning = """Module Filter removing plugins from original
                    data member! Suggest creating a new list in each module
                    filter and returning new list instead of modifying the
                    original data member so subsequent module filters can have
                    access to all the possible plugins.\n {}"""

                    self._log.info(warning.format(module_filter))

            plugins = module_plugins
        return plugins