import logging import roman from .cards import Cards class Opus(Cards): def __init__(self, opus_id: str): super().__init__() logger = logging.getLogger(__name__) if opus_id.isnumeric(): self.__name = f"Opus {roman.toRoman(int(opus_id)).upper()}" self.__number = opus_id self.__filename = f"opus_{opus_id}" params = {"set": [self.__name]} elif opus_id == "chaos": self.__name = "Boss Deck Chaos" self.__number = "B" self.__filename = "boss_deck_chaos" params = {"set": [self.__name]} elif opus_id == "promo": self.__name = "Promo" self.__number = "PR" self.__filename = "promo" params = {"rarity": ["pr"]} else: self.__name = "?" self.__number = "?" self.__filename = "?" params = {"set": "?"} self._load(params) # remove reprints for card in self: if not card.code.opus == self.__number: self.remove(card) # sort cards by opus, then serial self.sort(key=lambda x: x.code.serial) self.sort(key=lambda x: x.code.opus) for card in self: logger.info(f"imported card {card}") @property def name(self) -> str: return self.__name @property def number(self) -> str: return self.__number @property def filename(self) -> str: return self.__filename