from collections.abc import Mapping from typing import Any class CalcConfigView: def __init__(self, raw: Mapping[str, Any] | None): self.raw = dict(raw or {}) @property def equips(self) -> dict[str, dict[str, Any]]: return dict(self.raw.get('equips') or {}) @property def oaths(self) -> dict[str, dict[str, Any]]: return dict(self.raw.get('oaths') or {}) @property def emblems(self) -> dict[str, dict[str, Any]]: return dict(self.raw.get('emblems') or {}) @property def skills(self) -> dict[str, dict[str, Any]]: return dict(self.raw.get('skills') or {}) @property def avatar(self) -> dict[str, Any]: return dict(self.raw.get('avatar') or {}) @property def sundry(self) -> dict[str, Any]: return dict(self.raw.get('sundry') or {}) @property def jades(self) -> dict[str, Any]: return dict(self.raw.get('jades') or {}) @property def options(self) -> dict[str, Any]: return dict(self.raw.get('options') or {}) @property def dsb(self) -> bool: return bool(self.raw.get('DSB', False)) @property def buff(self) -> bool: return bool(self.raw.get('BUFF', False)) def as_legacy_dict(self) -> dict[str, Any]: data = dict(self.raw) data.setdefault('equips', {}) data.setdefault('oaths', {}) data.setdefault('emblems', {}) data.setdefault('skills', {}) data.setdefault('avatar', {}) data.setdefault('sundry', {}) data.setdefault('jades', {}) data.setdefault('options', {}) data.setdefault('DSB', False) data.setdefault('BUFF', False) return data