def _prepare_eligible_events(self, event_filters: List[str]): """Prepare an event filter list.""" eligible_events = {"Birth", "Death"} event_type = EventType() default_event_types = event_type.get_standard_xml() default_event_map = event_type.get_map() custom_event_types = self.db_handle.get_event_types() for key in event_filters: if key in default_event_types: eligible_events.add(key) continue if key in custom_event_types: eligible_events.add(key) continue if key not in EVENT_CATEGORIES: raise ValueError( f"{key} is not a valid event or event category") for entry in event_type.get_menu_standard_xml(): event_key = entry[0].lower().replace("life events", "vital") if event_key in event_filters: for event_id in entry[1]: if event_id in default_event_map: eligible_events.add(default_event_map[event_id]) break if "custom" in event_filters: for event_name in custom_event_types: eligible_events.add(event_name) return eligible_events