For each Task stored in Tasks, check whether its dependencies as expressed in info are a subset of its declared task ependencies
If this is not the case, purge it from info
Source code in mecfs_bio/build_system/runner/info_purge.py
| def info_purge(info: VerifyingTraceInfo, tasks: SimpleTasks) -> VerifyingTraceInfo:
"""
For each Task stored in Tasks, check whether its dependencies as expressed in info are a subset of its declared task ependencies
If this is not the case, purge it from info
"""
info_dict = deepcopy(info.trace_store)
logger.debug("Looking for invalid dependencies")
for task in tasks.values():
if task.asset_id in info_dict:
recorded_deps = _get_deps_from_trace_record(info_dict[task.asset_id])
actual_deps = set([item.asset_id for item in task.deps])
if not (recorded_deps <= actual_deps):
logger.debug(
f"Dependencies of asset {task.asset_id} appear to be outdated.\n Recorded deps:{recorded_deps}. Actual deps: {actual_deps}. Purging from info store."
)
info_dict.pop(task.asset_id)
logger.debug("Done search for invalid dependencies")
return attrs.evolve(info, trace_store=info_dict)
|