Fix bugs with dependency tracking
This commit is contained in:
parent
86e893d7ba
commit
619cae3f45
@ -217,7 +217,7 @@ class DependencyVarProxy:
|
||||
else:
|
||||
return repr(self)
|
||||
|
||||
def raw_(self) -> Dict[str, Any]:
|
||||
def raw_(self) -> Union[Dict[str, Any], List[Any], int, str, bool]:
|
||||
if not self._current_path_prefix:
|
||||
raw_dict = self._vars.toplevel()
|
||||
else:
|
||||
@ -238,6 +238,12 @@ class DependencyVarProxy:
|
||||
self._tracker.register_variable(dotted_path, raw_value)
|
||||
return raw_value
|
||||
|
||||
def __iter__(self):
|
||||
return iter(self.raw_())
|
||||
|
||||
def __contains__(self, item):
|
||||
return item in self.raw_()
|
||||
|
||||
|
||||
class DependencyCache:
|
||||
def __init__(self):
|
||||
|
@ -247,7 +247,11 @@ class Kitchen:
|
||||
sous_vars = recipe.recipe_context.variables
|
||||
vars_to_hash = {}
|
||||
for var in prev_book.var_list:
|
||||
vars_to_hash[var] = sous_vars.get_dotted(var)
|
||||
try:
|
||||
vars_to_hash[var] = sous_vars.get_dotted(var)
|
||||
except KeyError:
|
||||
# variable missing
|
||||
return prev_book, False
|
||||
my_varhash = hash_dict(vars_to_hash)
|
||||
if prev_book.varhash != my_varhash:
|
||||
return prev_book, False
|
||||
|
Loading…
Reference in New Issue
Block a user