<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def reload_component(self, name):
 """ Reloads given Component. :param name: Component name. :type name: unicode :return: Method success. :rtype: bool """


        if not name in self.__engine.components_manager.components:
            raise manager.exceptions.ComponentExistsError(
                "{0} | '{1}' Component isn't registered in the Components Manager!".format(self.__class__.__name__,
                                                                                           name))

        component = self.__engine.components_manager.components[name]
        LOGGER.debug("> Attempting '{0}' Component reload.".format(component.name))
        if component.interface.deactivatable:
            dependents = list(reversed(self.__engine.components_manager.list_dependents(component.name)))

            if filter(lambda x: not self.__engine.components_manager[x].deactivatable, dependents):
                LOGGER.warning(
                    "!> {0} | '{1}' Component has non reloadable dependencies and won't be reloaded!".format(
                        self.__class__.__name__, component.name))
                return False

            LOGGER.info("{0} | '{1}' Component dependents: '{2}'.".format(self.__class__.__name__,
                                                                          component.name,
                                                                          ", ".join(dependents)))

            LOGGER.debug("> Deactivating '{0}' Component dependents.".format(component.name))
            dependents.append(component.name)
            for dependent in dependents:
                if self.__engine.components_manager[dependent].activated:
                    self.deactivate_component(dependent)
                self.__engine.process_events()

            LOGGER.debug("> Reloading '{0}' Component dependents.".format(component.name))
            self.__engine.components_manager.reload_component(component.name)

            LOGGER.debug("> Activating '{0}' Component dependents.".format(component.name))
            for dependent in reversed(dependents):
                if not self.__engine.components_manager[dependent].activated:
                    self.activate_component(dependent)
                self.__engine.process_events()

            LOGGER.info("{0} | '{1}' Component has been reloaded!".format(self.__class__.__name__, component.name))
            self.reloaded_component.emit(component.name)
            return True
        else:
            raise manager.exceptions.ComponentReloadError(
                "{0} | '{1}' Component cannot be deactivated and won't be reloaded!".format(self.__class__.__name__,
                                                                                            component.name))