from PyQt6.QtCore import QObject, pyqtSignal, QRunnable import json from cache import cache from db import db from ui.workers.gather_evolutions_worker import GatherEvolutions from utility.data import exclusive_choice_pokemon from utility.functions import get_display_name, get_form_name, get_shiftable_forms, parse_pfic class GatherBabyStatusWorkerSignals(QObject): finished = pyqtSignal(list) class GatherBabyStatusWorker(GatherEvolutions): def __init__(self): super().__init__() self.signals = GatherBabyStatusWorkerSignals() def run(self): try: gathered_data = self.gather_baby_status(False) self.signals.finished.emit(gathered_data) except Exception as e: print(f"Error gathering Pokémon home storage status: {e}") def gather_baby_status(self, force_refresh = False): all_pokemon_forms = db.get_pokemon_home_list() babys = [] for pokemon_form in all_pokemon_forms: evolution_tree = self.gather_evolution_tree(pokemon_form, force_refresh) if not evolution_tree: continue if evolution_tree["pokemon"] != pokemon_form["name"]: continue if evolution_tree["is_baby"]: babys.append(pokemon_form["pfic"]) return babys