docs: 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