Generates state information for the selected container and its dependencies / dependents.

        :param config_ids: MapConfigId tuples.
        :type config_ids: list[dockermap.map.input.MapConfigId]
        :return: Iterable of configuration states.
        :rtype: collections.Iterable[dockermap.map.state.ConfigState]

def get_states(self, config_ids):
        """
        Generates state information for the selected container and its dependencies / dependents.

        :param config_ids: MapConfigId tuples.
        :type config_ids: list[dockermap.map.input.MapConfigId]
        :return: Iterable of configuration states.
        :rtype: collections.Iterable[dockermap.map.state.ConfigState]
        """
        input_paths = [
            (config_id, list(self.get_dependency_path(config_id)))
            for config_id in config_ids
        ]
        log.debug("Dependency paths from input: %s", input_paths)
        dependency_paths = merge_dependency_paths(input_paths)
        log.debug("Merged dependency paths: %s", dependency_paths)
        return itertools.chain.from_iterable(self._get_all_states(config_id, dependency_path)
                                             for config_id, dependency_path in dependency_paths)