Code source de tikon.rae.orgs.insectos.ins

from tikon.rae.orgs.organismo import Organismo, Etapa

JUVENIL = 'juvenil'


[docs]class Insecto(Organismo): """ La clase pariente para cada tipo de insecto. """ def __init__(símismo, nombre, huevo=False, njuvenil=0, pupa=False, adulto=True, tipo_ecs=None): super().__init__(nombre=nombre) if tipo_ecs is None: tipo_ecs = {} # Añadir las etapas if huevo: símismo.añadir_etapa('huevo') if njuvenil < 0: raise ValueError('El número de juveniles no puede ser inferior a 0.') for i in range(0, njuvenil): # Establecer el nombre de la etapa juvenil if njuvenil == 1: nombre = JUVENIL else: nombre = f'{JUVENIL}_{i + 1}' # Agregar la etapa símismo.añadir_etapa(nombre) if pupa: símismo.añadir_etapa('pupa') if adulto: símismo.añadir_etapa('adulto') símismo.activar_ecs(tipo_ecs) def resolver_etapas(símismo, etapas): if isinstance(etapas, (str, Etapa)): etapas = [etapas] if etapas is not None and JUVENIL in etapas: etapas.remove(JUVENIL) for etp in símismo._etapas: if etp.nombre.startswith(JUVENIL): etapas.append(etp) return super().resolver_etapas(etapas)