dazy: get rid of resolve_value() and always resolve references
This commit is contained in:
parent
2ccc04ad2e
commit
fdd7d271a0
|
@ -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')
|
||||
|
||||
|
|
Loading…
Reference in New Issue