from evolalg.base.frams_step import FramsStep
from evolalg.base.individual import Individual


class FramsPopulation(FramsStep):
    def __init__(self, frams_lib, genetic_format, pop_size, commands=None):
        if commands is None:
            commands = []
        super().__init__(frams_lib, commands)

        self.pop_size = pop_size
        self.genetic_format = genetic_format

    def call(self, *args, **kwargs):
        return [Individual(self.frams.getSimplest(self.genetic_format)) for _ in range(self.pop_size)]

