in sapp/pipeline/model_generator.py [0:0]
def run(self, input: DictEntries, summary: Summary) -> Tuple[TraceGraph, Summary]:
self.summary = summary
self.summary["trace_entries"] = defaultdict(
lambda: defaultdict(list)
) # : Dict[TraceKind, Dict[Tuple[str, str], List[ParseCondition]]]
self.summary["missing_traces"] = defaultdict(
set
) # Dict[TraceKind, Set[Tuple[str, str]]]
self.summary["big_tito"] = set() # Set[Tuple[str, str, int]]
self.graph = TraceGraph()
self.summary["run"] = self._create_empty_run(status=RunStatus.INCOMPLETE)
self.summary["run"].id = DBID()
self.summary["trace_entries"][TraceKind.precondition] = input["preconditions"]
self.summary["trace_entries"][TraceKind.postcondition] = input["postconditions"]
callables = self._compute_callables_count(input["issues"])
log.info("Generating issues and traces")
for entry in input["issues"]:
self._generate_issue(self.summary["run"], entry, callables)
if self.summary.get("store_unused_models"):
for trace_kind, traces in self.summary["trace_entries"].items():
for _key, entry in traces:
self._generate_trace_frame(trace_kind, self.summary["run"], entry)
return self.graph, self.summary