refactor: centralize calc config defaults
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
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
|
||||
Reference in New Issue
Block a user