code: def assign_fitnesses(self, targets):
          
          self._evals = len(targets)
          px_parameters = zip([self.specification] * len(targets),
                              [self.sequences] * len(targets),
                              [self.parse_individual(x) for x in targets])
          if (self._cores == 1) or (self.mp_disabled):
              models = map(self.build_fn, px_parameters)
              fitnesses = map(self.eval_fn, models)
          else:
              with futures.ProcessPoolExecutor(
                      max_workers=self._cores) as executor:
                  models = executor.map(self.build_fn, px_parameters)
                  fitnesses = executor.map(self.eval_fn, models)
          tars_fits = list(zip(targets, fitnesses))
          if self._store_params:
              self.parameter_log.append(
                  [(self.parse_individual(x[0]), x[1]) for x in tars_fits])
          for ind, fit in tars_fits:
              ind.fitness.values = (fit,)
          return
docs: Assigns fitnesses to parameters.
  
          Notes
          -----
          Uses `self.eval_fn` to evaluate each member of target.
          Parameters
          ---------
  
          targets
              Parameter values for each member of the population.