Files
dcalc/backend/core/basic/character/config_view.py
T

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