62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
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
|