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