Source code for RWESharp.Core.ItemData

from PySide6.QtGui import QColor


[docs] class ItemDataItem:
[docs] def __init__(self, name): self.name = name
[docs] class ItemData:
[docs] def __init__(self): self.data = []
def __getitem__(self, item): if isinstance(item, str): return self.searchitem(item) elif isinstance(item, int): return self.data[item] elif isinstance(item, tuple): return self.searchitem(item[1], item[0]) return None
[docs] def searchitem(self, name: str, category: str = None) -> ItemDataItem | None: if category is None: for catnum, cat in enumerate(self.data): for itemnum, items in enumerate(cat["items"]): if items.name == name: return items else: for itemnum, items in enumerate(self.data[self.categories.index(category)]["items"]): if items.name == name: return items return None
[docs] def getnameindex(self, cat: int, name: str) -> int | None: for i, v in enumerate(self.get_items(cat)): if v.name == name: return i return None
[docs] def get_items(self, cat: int) -> list[ItemDataItem]: return self.data[cat]["items"]
[docs] def all_items(self): items = [] for i in range(len(self.categories)): for item in self.get_items(i): items.append(item) return items
@property def categories(self) -> list[str]: return [i["name"] for i in self.data] @property def colors(self) -> list[QColor]: return [i["color"] for i in self.data]
[docs] def append(self, category_data): self.data.append(category_data)
[docs] def addcat(self, name, color): self.data.append({"name": name, "color": color, "items": []})
[docs] def remove(self, category_data): self.data.remove(category_data)
[docs] def insert(self, index, category_data): self.data.insert(index, category_data)
[docs] def pop(self, index): self.data.pop(index)
def __str__(self): return str(self.data) def __len__(self): return len(self.data)
[docs] def isempty(self): return len(self.data) == 0
def __add__(self, other): raise NotImplementedError("not able to add")