from tikon.rae.orgs.insectos.ins import Insecto
from tikon.rae.orgs.organismo import Etapa
[docs]class Parasitoide(Insecto):
"""
Parasitoides son una clase muy especial de insecto, porque sus larvas crecen adentro de los cuerpos de otros
organismos. Después de mucho dolor de cabeza, decidimos (decidí) implementarlos así.
"""
ext = '.prs'
def __init__(símismo, nombre, pupa=False):
símismo.pupa = pupa
tipo_ec = {}
if pupa:
tipo_ec['pupa'] = dict(
Crecimiento={'Modif': 'Nada', 'Ecuación': 'Nada'},
Depredación={'Ecuación': 'Nada'},
Muertes={'Ecuación': 'Constante'},
Edad={'Ecuación': 'Días'},
Transiciones={'Prob': 'Normal', 'Mult': 'Nada'},
Reproducción={'Prob': 'Nada'},
Movimiento={}
)
tipo_ec['juvenil'] = dict(
Crecimiento={'Modif': 'Nada', 'Ecuación': 'Nada'},
Depredación={'Ecuación': 'Nada'},
Muertes={'Ecuación': 'Constante'},
Edad={'Ecuación': 'Días'},
Transiciones={'Prob': 'Normal', 'Mult': 'Linear'},
Reproducción={'Prob': 'Nada'},
)
tipo_ec['adulto'] = dict(
Crecimiento={'Modif': 'Nada', 'Ecuación': 'Nada'},
Depredación={'Ecuación': 'Kovai'},
Muertes={'Ecuación': 'Nada'},
Edad={'Ecuación': 'Días'},
Transiciones={'Prob': 'Normal', 'Mult': 'Nada'},
Reproducción={'Prob': 'Nada'},
)
super().__init__(
nombre=nombre, huevo=False, njuvenil=1, pupa=pupa, adulto=True, tipo_ecs=tipo_ec
)
[docs] def parasita(símismo, huésped, etps_entra, etp_emerg, etp_símismo='adulto', etp_recip=None):
"""
Indica la relación de parasitismo.
Parameters
----------
huésped: Insecto
El huésped.
etps_entra: Etapa or str or list
Etapas del huésped que pueden ser parasitadas.
etp_emerg: Etapa or str
La etapa de la cual emerge el parasitoide adulto.
etp_símismo: Etapa or str
La etapa del parasitoide que efectua el parasitismo.
etp_recip: Etapa or str
La etapa del parasitoide que emerge del huésped. Si no se especifica, será la primera etapa después
de la fase juvenil.
"""
if etp_recip is None:
etp_recip = 'pupa' if símismo.pupa else 'adulto'
super().parasita(
huésped=huésped, etp_símismo=etp_símismo, etps_entra=etps_entra, etp_emerg=etp_emerg, etp_recip=etp_recip
)
[docs]class Esfécido(Insecto):
"""
Los esfécidos son una familia de avispas que ponen sus huevos en los cuerpos (vivos) de sus presas. Al contrario
de parasitoides típicos, estos paralizan y quitan su presa de la planta. Por lo mismo, se debe considerar
su papel ecológico de manera distinta. (Se considera como depredación con reproducción basada en el éxito
de la depredación).
"""
ext = '.esf'
def __init__(símismo, nombre):
tipo_ec = {'adulto': dict(
Crecimiento={'Modif': 'Nada', 'Ecuación': 'Nada'},
Depredación={'Ecuación': 'Kovai'},
Muertes={'Ecuación': 'Nada'},
Edad={'Ecuación': 'Días'},
Transiciones={'Prob': 'Normal', 'Mult': 'Nada'},
Reproducción={'Prob': 'Depredación'},
),
'juvenil': dict(
Crecimiento={'Modif': 'Nada', 'Ecuación': 'Nada'},
Depredación={'Ecuación': 'Kovai'},
Muertes={'Ecuación': 'Nada'},
Edad={'Ecuación': 'Días'},
Transiciones={'Prob': 'Normal', 'Mult': 'Nada'},
Reproducción={'Prob': 'Nsda'},
)
}
super().__init__(
nombre=nombre, huevo=False, njuvenil=1, pupa=False, adulto=True, tipo_ecs=tipo_ec
)
[docs] def captura(símismo, presa, etps_presa=None):
"""
Establece la relación entre un Esfécido y sus presas.
Parameters
----------
presa: Insecto
La presa.
etps_presa: Etapa or str or list
La(s) etapa(s) de la presa que pueden ser víctimas.
"""
símismo.secome(presa=presa, etps_presa=etps_presa, etps_símismo='adulto')
[docs] def nocaptura(símismo, presa, etps_presa=None):
"""
Borra una relación entre un Esfécido y una presas.
Parameters
----------
presa: Insecto
La presa.
etps_presa: Etapa or str or list
La(s) etapa(s) de la presa que ya no pueden ser víctimas.
"""
símismo.nosecome(presa=presa, etps_presa=etps_presa, etps_símismo='adulto')