(self, name: Optional[str])
return plugins
Iterate over the known adapter plugins. If a name is provided,
        iterate in dependency order over the named plugin and its dependencies.
Iterate over the known adapter plugins. If a name is provided,
        iterate in dependency order over the named plugin and its dependencies.
Iterate over the known adapter plugins . If a name is provided iterate in dependency order over the named plugin and its dependencies .
def get_adapter_plugins(self, name: Optional[str]) -> List[AdapterPlugin]:
        """Iterate over the known adapter plugins. If a name is provided,
        iterate in dependency order over the named plugin and its dependencies.
        """
        if name is None:
            return list(self.plugins.values())

        plugins: List[AdapterPlugin] = []
        seen: Set[str] = set()
        plugin_names: List[str] = [name]
        while plugin_names:
            plugin_name = plugin_names[0]
            plugin_names = plugin_names[1:]
            try:
                plugin = self.plugins[plugin_name]
            except KeyError:
                raise InternalException(
                    f'No plugin found for {plugin_name}'
                ) from None
            plugins.append(plugin)
            seen.add(plugin_name)
            if plugin.dependencies is None:
                continue
            for dep in plugin.dependencies:
                if dep not in seen:
                    plugin_names.append(dep)
        return plugins
def get_adapter_plugins ( self , name : Optional [ str ] ) -> List [ AdapterPlugin ] : if name is None : return list ( self . plugins . values ( ) ) plugins : List [ AdapterPlugin ] = [ ] seen : Set [ str ] = set ( ) plugin_names : List [ str ] = [ name ] while plugin_names : plugin_name = plugin_names [ 0 ] plugin_names = plugin_names [ 1 : ] try : plugin = self . plugins [ plugin_name ] except KeyError : raise InternalException ( f'No plugin found for {plugin_name}' ) from None plugins . append ( plugin ) seen . add ( plugin_name ) if plugin . dependencies is None : continue for dep in plugin . dependencies : if dep not in seen : plugin_names . append ( dep ) return plugins