in sapp/ui/interactive.py [0:0]
def issue(self, issue_instance_id: DBID) -> None:
"""Select an issue.
Parameters:
issue_instance_id: int id of the issue instance to select
Note: We are selecting issue instances, even though the command is called
issue.
"""
with self.db.make_session() as session:
selected_issue = (
session.query(IssueInstance)
.filter(IssueInstance.id == issue_instance_id)
.scalar()
)
if selected_issue is None:
self.warning(
f"Issue {issue_instance_id} doesn't exist. "
"Type 'issues' for available issues."
)
return
self.sources = self._get_leaves_issue_instance(
session, issue_instance_id, SharedTextKind.SOURCE
)
self.sinks = self._get_leaves_issue_instance(
session, issue_instance_id, SharedTextKind.SINK
)
self.features = self._get_leaves_issue_instance(
session, issue_instance_id, SharedTextKind.FEATURE
)
self.current_issue_instance_id = selected_issue.id
self.current_frame_id = DBID(-1)
self.current_trace_frame_index = 1 # first one after the source
print(f"Set issue to {issue_instance_id}.")
if selected_issue.run_id != self._current_run_id:
self._current_run_id = selected_issue.run_id
print(f"Set run to {self._current_run_id}.")
print()
self._generate_trace_from_issue()
self.show()