Module pybeepop.beepop.mitetreatments
BeePop+ Mite Treatment Management Module.
This module contains classes for managing Varroa mite treatment schedules and efficacy parameters. Mite treatments are critical interventions that reduce mite populations to prevent colony collapse from mite-induced mortality.
Classes
MiteTreatmentItem: Individual treatment schedule with efficacy parameters MiteTreatments: Collection manager for treatment schedules and active treatment lookup
Classes
class MiteTreatmentItem (start_time: datetime.datetime,
duration: int,
pct_mortality: float,
pct_resistant: float)-
Expand source code
@dataclass class MiteTreatmentItem: """Individual mite treatment schedule with efficacy and resistance parameters. Represents a single miticide application with specified timing, duration, and efficacy characteristics. Treatments target Varroa mites with defined mortality rates while accounting for resistant mite populations that survive treatment. Attributes: start_time (datetime): Treatment application start date duration (int): Treatment duration in days pct_mortality (float): Mortality rate for susceptible mites (0-100%) pct_resistant (float): Proportion of mites resistant to treatment (0-100%) """ start_time: datetime duration: int # in days pct_mortality: float # percent mortality (0-100) pct_resistant: float # percent resistant (0-100) # TODO: Need to change logic in rest of program to treat pct_mortality like a float (percentage) def is_valid(self) -> bool: return isinstance(self.start_time, datetime)Individual mite treatment schedule with efficacy and resistance parameters.
Represents a single miticide application with specified timing, duration, and efficacy characteristics. Treatments target Varroa mites with defined mortality rates while accounting for resistant mite populations that survive treatment.
Attributes
start_time:datetime- Treatment application start date
duration:int- Treatment duration in days
pct_mortality:float- Mortality rate for susceptible mites (0-100%)
pct_resistant:float- Proportion of mites resistant to treatment (0-100%)
Instance variables
var duration : intvar pct_mortality : floatvar pct_resistant : floatvar start_time : datetime.datetime
Methods
def is_valid(self) ‑> bool-
Expand source code
def is_valid(self) -> bool: return isinstance(self.start_time, datetime)
class MiteTreatments-
Expand source code
class MiteTreatments: """Collection manager for mite treatment schedules and active treatment lookup. Manages multiple mite treatment schedules and provides functionality to determine active treatments for any given date. Attributes: items (List[MiteTreatmentItem]): Collection of scheduled mite treatments """ def __init__(self): self.items: List[MiteTreatmentItem] = [] def add_item(self, item: MiteTreatmentItem): self.items.append(item) def add_item_by_values( self, start_time: datetime, duration: int, pct_mortality: float, pct_resistant: float, ): item = MiteTreatmentItem(start_time, duration, pct_mortality, pct_resistant) self.add_item(item) def get_item(self, index: int) -> Optional[MiteTreatmentItem]: if 0 <= index < len(self.items): return self.items[index] return None def get_item_by_date(self, date: datetime) -> Optional[MiteTreatmentItem]: for item in self.items: if item.start_time.date() == date.date(): return item return None def get_active_item(self, date: datetime) -> Optional[MiteTreatmentItem]: for item in self.items: if ( item.start_time <= date < item.start_time + timedelta(days=item.duration) ): return item return None def is_new_treatment_starting(self, date: datetime) -> bool: return any(item.start_time.date() == date.date() for item in self.items) def delete_item(self, index: int): if 0 <= index < len(self.items): del self.items[index] def get_count(self) -> int: return len(self.items) def clear_all(self): self.items.clear()Collection manager for mite treatment schedules and active treatment lookup.
Manages multiple mite treatment schedules and provides functionality to determine active treatments for any given date.
Attributes
items:List[MiteTreatmentItem]- Collection of scheduled mite treatments
Methods
def add_item(self,
item: MiteTreatmentItem)-
Expand source code
def add_item(self, item: MiteTreatmentItem): self.items.append(item) def add_item_by_values(self,
start_time: datetime.datetime,
duration: int,
pct_mortality: float,
pct_resistant: float)-
Expand source code
def add_item_by_values( self, start_time: datetime, duration: int, pct_mortality: float, pct_resistant: float, ): item = MiteTreatmentItem(start_time, duration, pct_mortality, pct_resistant) self.add_item(item) def clear_all(self)-
Expand source code
def clear_all(self): self.items.clear() def delete_item(self, index: int)-
Expand source code
def delete_item(self, index: int): if 0 <= index < len(self.items): del self.items[index] def get_active_item(self, date: datetime.datetime) ‑> MiteTreatmentItem | None-
Expand source code
def get_active_item(self, date: datetime) -> Optional[MiteTreatmentItem]: for item in self.items: if ( item.start_time <= date < item.start_time + timedelta(days=item.duration) ): return item return None def get_count(self) ‑> int-
Expand source code
def get_count(self) -> int: return len(self.items) def get_item(self, index: int) ‑> MiteTreatmentItem | None-
Expand source code
def get_item(self, index: int) -> Optional[MiteTreatmentItem]: if 0 <= index < len(self.items): return self.items[index] return None def get_item_by_date(self, date: datetime.datetime) ‑> MiteTreatmentItem | None-
Expand source code
def get_item_by_date(self, date: datetime) -> Optional[MiteTreatmentItem]: for item in self.items: if item.start_time.date() == date.date(): return item return None def is_new_treatment_starting(self, date: datetime.datetime) ‑> bool-
Expand source code
def is_new_treatment_starting(self, date: datetime) -> bool: return any(item.start_time.date() == date.date() for item in self.items)