variableScalar: make model_cache parameter optional

This commit is contained in:
Cosimo Lupo 2023-03-16 12:03:33 +00:00
parent ac0361fe31
commit 69b1752d80
No known key found for this signature in database
GPG Key ID: DF65A8A5A119C9A8

View File

@ -74,17 +74,18 @@ class VariableScalar:
# I *guess* we could interpolate one, but I don't know how. # I *guess* we could interpolate one, but I don't know how.
return self.values[key] return self.values[key]
def value_at_location(self, location, model_cache, avar=None): def value_at_location(self, location, model_cache=None, avar=None):
loc = location loc = location
if loc in self.values.keys(): if loc in self.values.keys():
return self.values[loc] return self.values[loc]
values = list(self.values.values()) values = list(self.values.values())
return self.model(model_cache, avar).interpolateFromMasters(loc, values) return self.model(model_cache, avar).interpolateFromMasters(loc, values)
def model(self, model_cache, avar=None): def model(self, model_cache=None, avar=None):
key = tuple(self.values.keys()) if model_cache is not None:
if key in model_cache: key = tuple(self.values.keys())
return model_cache[key] if key in model_cache:
return model_cache[key]
locations = [dict(self._normalized_location(k)) for k in self.values.keys()] locations = [dict(self._normalized_location(k)) for k in self.values.keys()]
if avar is not None: if avar is not None:
mapping = avar.segments mapping = avar.segments
@ -96,14 +97,15 @@ class VariableScalar:
for location in locations for location in locations
] ]
m = VariationModel(locations) m = VariationModel(locations)
model_cache[key] = m if model_cache is not None:
model_cache[key] = m
return m return m
def get_deltas_and_supports(self, model_cache, avar=None): def get_deltas_and_supports(self, model_cache=None, avar=None):
values = list(self.values.values()) values = list(self.values.values())
return self.model(model_cache, avar).getDeltasAndSupports(values) return self.model(model_cache, avar).getDeltasAndSupports(values)
def add_to_variation_store(self, store_builder, model_cache, avar=None): def add_to_variation_store(self, store_builder, model_cache=None, avar=None):
deltas, supports = self.get_deltas_and_supports(model_cache, avar) deltas, supports = self.get_deltas_and_supports(model_cache, avar)
store_builder.setSupports(supports) store_builder.setSupports(supports)
index = store_builder.storeDeltas(deltas) index = store_builder.storeDeltas(deltas)