dazy: get rid of resolve_value() and always resolve references

This commit is contained in:
Shiz 2021-12-14 17:59:53 +01:00
parent 2ccc04ad2e
commit fdd7d271a0
1 changed files with 2 additions and 22 deletions

View File

@ -196,9 +196,6 @@ class Type(Generic[T, TemplateT]):
def template_value(self, input: T) -> TemplateT:
raise NotImplementedError
def resolve_value(self, input: T) -> T:
return input
@dataclass
class OptionalType(Generic[T, TemplateT], Type[O[T], O[TemplateT]]):
subtype: Type[T, TemplateT]
@ -230,11 +227,6 @@ class OptionalType(Generic[T, TemplateT], Type[O[T], O[TemplateT]]):
return None
return self.subtype.template_value(input)
def resolve_value(self, input: O[T]) -> O[T]:
if input is None:
return None
return self.subtype.resolve_value(input)
@dataclass
class RefType(Type['Item', SimpleNamespace]):
name: str
@ -254,7 +246,7 @@ class RefType(Type['Item', SimpleNamespace]):
def parse_value(self, input: str, instance: Instance) -> 'Item':
meta = Meta.load(instance, self.name)
return Item.load(instance, input)
return Item.load(instance, input).resolve(meta)
def dump_value(self, input: 'Item') -> str:
return input.name
@ -262,9 +254,6 @@ class RefType(Type['Item', SimpleNamespace]):
def template_value(self, input: 'Item') -> SimpleNamespace:
return input.template()
def resolve_value(self, input: 'Item') -> 'Item':
return input.resolve(Meta.load(input.instance, self.name))
@dataclass
class GlobType(Type[dict[str, 'Item'], dict[str, SimpleNamespace]]):
name: str
@ -290,7 +279,7 @@ class GlobType(Type[dict[str, 'Item'], dict[str, SimpleNamespace]]):
item = Item.load(instance, x)
if not item.is_complete(meta):
continue
out[x] = item
out[x] = item.resolve(meta)
return out
def dump_value(self, input: dict[str, 'Item']) -> str:
@ -299,9 +288,6 @@ class GlobType(Type[dict[str, 'Item'], dict[str, SimpleNamespace]]):
def template_value(self, input: dict[str, 'Item']) -> dict[str, SimpleNamespace]:
return {x.name: x.template() for x in input.values()}
def resolve_value(self, input: dict[str, 'Item']) -> dict[str, 'Item']:
return {k: v.resolve(Meta.load(v.instance, self.name)) for k, v in input.items()}
@dataclass
class LitType(Generic[T], Type[T, T]):
SUBTYPES = {
@ -366,9 +352,6 @@ class ArrType(Generic[T, TemplateT], Type[list[T], list[TemplateT]]):
def template_value(self, input: list[T]) -> list[TemplateT]:
return [self.subtype.template_value(x) for x in input]
def resolve_value(self, input: list[T]) -> list[T]:
return [self.subtype.resolve_value(x) for x in input]
V = TypeVar('V')
TemplateV = TypeVar('TemplateV')
@ -410,9 +393,6 @@ class MapType(Generic[T, TemplateT, V, TemplateV], Type[dict[T, V], dict[Templat
def template_value(self, input: dict[T, V]) -> dict[TemplateT, TemplateV]:
return {self.keytype.template_value(k): self.valtype.template_value(v) for (k, v) in input.items()}
def resolve_value(self, input: dict[T, V]) -> dict[T, V]:
return {self.keytype.resolve_value(k): self.valtype.resolve_value(v) for (k, v) in input.items()}
C = TypeVar('C', bound='Config')