def configure(
            self, conf=None, targets=None, logger=None, callconf=False,
            keepstate=None, modules=None
    ):
        """Apply input conf on targets objects.

        Specialization of this method is done in the _configure method.

        :param conf: configuration model to configure. Default is this conf.
        :type conf: Configuration, Category or Parameter
        :param Iterable targets: objects to configure. self targets by default.
        :param Logger logger: specific logger to use.
        :param bool callconf: if True (False by default), the configuration is
            used in the callable target parameters while calling it.
        :param bool keepstate: if True (default), do not instanciate sub objects
            if they already exist.
        :param list modules: modules to reload before.
        :return: configured targets.
        :rtype: list
        :raises: Parameter.Error for any raised exception.
        """

        result = []

        self.loadmodules(modules=modules)
        modules = []

        conf = self._toconf(conf)

        if conf is None:
            conf = self.conf

        if targets is None:
            targets = self.targets

        if logger is None:
            logger = self.logger

        if keepstate is None:
            keepstate = self.keepstate

        for target in targets:

            try:
                configured = self._configure(
                    conf=conf, logger=logger, target=target, callconf=callconf,
                    keepstate=keepstate, modules=modules
                )

            except Exception:
                if logger is not None:
                    logger.error(
                        'Error {0} raised while configuring {1}/{2}'.format(
                            format_exc(), self, targets
                        )
                    )

            else:
                result.append(configured)

        return result
def configure ( self , conf = None , targets = None , logger = None , callconf = False , keepstate = None , modules = None ) : result = [ ] self . loadmodules ( modules = modules ) modules = [ ] conf = self . _toconf ( conf ) if conf is None : conf = self . conf if targets is None : targets = self . targets if logger is None : logger = self . logger if keepstate is None : keepstate = self . keepstate for target in targets : try : configured = self . _configure ( conf = conf , logger = logger , target = target , callconf = callconf , keepstate = keepstate , modules = modules ) except Exception : if logger is not None : logger . error ( 'Error {0} raised while configuring {1}/{2}' . format ( format_exc ( ) , self , targets ) ) else : result . append ( configured ) return result
Apply input conf on targets objects.

        Specialization of this method is done in the _configure method.

        :param conf: configuration model to configure. Default is this conf.
        :type conf: Configuration, Category or Parameter
        :param Iterable targets: objects to configure. self targets by default.
        :param Logger logger: specific logger to use.
        :param bool callconf: if True (False by default), the configuration is
            used in the callable target parameters while calling it.
        :param bool keepstate: if True (default), do not instanciate sub objects
            if they already exist.
        :param list modules: modules to reload before.
        :return: configured targets.
        :rtype: list
        :raises: Parameter.Error for any raised exception.