'Generates a string according to the configuration.
:return: A string containing pokemons and their info, ready to be displayed.
:rtype: string'

def _get_pokemons_line(self):

    def get_poke_info(info, pokemon):
        poke_info = {'cp': pokemon.cp, 'iv': pokemon.iv, 'ivcp': pokemon.ivcp, 'ncp': pokemon.cp_percent, 'level': pokemon.level, 'hp': pokemon.hp, 'dps': pokemon.moveset.dps}
        if (info not in poke_info):
            raise ConfigException("order    by    {}'    isn't    available".format(self.order_by))
        return poke_info[info]
    def get_poke_info_formatted(info, pokemon):
        poke_info = {'name': pokemon.name, 'cp': 'CP    {}'.format(pokemon.cp), 'iv_ads': 'A/D/S    {}/{}/{}'.format(pokemon.iv_attack, pokemon.iv_defense, pokemon.iv_stamina), 'iv_pct': 'IV    {}'.format(pokemon.iv), 'ivcp': 'IVCP    {}'.format(round(pokemon.ivcp, 2)), 'ncp': 'NCP    {}'.format(round(pokemon.cp_percent, 2)), 'level': 'Level    {}'.format(pokemon.level), 'hp': 'HP    {}/{}'.format(pokemon.hp, pokemon.hp_max), 'moveset': 'Moves:    {}'.format(pokemon.moveset), 'dps': 'DPS    {}'.format(round(pokemon.moveset.dps, 2))}
        if (info not in poke_info):
            raise ConfigException("info    '{}'    isn't    available    for    displaying".format(info))
        return poke_info[info]
    info_to_show = (['name'] + self.info_to_show)
    pokemons_ordered = sorted(self.pokemons, key=(lambda x: get_poke_info(self.order_by, x)), reverse=True)
    pokemons_ordered = pokemons_ordered[:self.amount]
    poke_info = ['({})'.format(',    '.join([get_poke_info_formatted(x, p) for x in info_to_show])) for p in pokemons_ordered]
    line = '    |    '.join(poke_info)
    return line
