<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def assign_fitnesses(self, targets):
 """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. """

        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